1. 程式人生 > >WorldCount程式碼檢查與優化——軟體測試第三次作業

WorldCount程式碼檢查與優化——軟體測試第三次作業

一.互審程式碼情況:

  1.高階功能測試:

    發現的問題:無法開啟result.txt,output.txt(儲存輸出結果)等檔案,經判斷這些檔案都是gbk編碼,原程式未指定編碼格式。

 

  

    修改:指定為utf-8編碼,並忽略讀取特殊字元的編碼錯誤。

      

  2.待發現

二.靜態程式碼檢查情況

  1.使用的靜態程式碼工具:Pyflakes

    1.1安裝:pip installpyflakes

    1.2使用:pyflakes  *.py

    1.3簡單介紹:

      封裝了PyFlakes,Pep8,NedBatchelder’s McCabe script三個工具。Flake8通過啟動單獨的flake8指令碼執行所有工具,它在一個Per檔案中顯示告警,合併到輸出中。也增加一些特徵:

      1)包含這行檔案將被忽略:#flake8: noqa

           2)結尾包含#noqa註釋的行將不釋出告警

           3)GIT和Mercurial鉤子

           4)McCabe複雜度檢查器

           5)可以通過flake8.extension入口點擴充套件

  2.檢查結果及改正方法(只能指定某個py檔案)

    2.1檢查結果:

      提示從tkinter這個庫中匯入了所有的檔案,無法檢測到未定義的名稱(*)【此為正常提示,*是匯入該庫所有檔案】,但是'tkinter.filedialog.askdirectory沒有使用,然後其他都是正常提示。提示某個變數沒有定義或是從tkinter中匯入。

    2.2改正方法:

      可以忽略,或者不全匯入,而是把需要的檔案匯入(檔案太多,不建議)。

三.單元測試

  1.測試基本功能模組:

  2.測試擴充套件功能模組:

  3.測試高階功能模組:

 

四.效能測試和優化  

  1.選擇的效能測試工具:cProfile

      1.1cProfile介紹:

        (1)Profile自python2.5以來就是標準版Python直譯器預設的效能分析器。

        (2)其他版本的python,比如PyPy裡沒有cProfile的。

        (3)cProfile是一種確定性分析器,只測量CPU時間,並不關心記憶體消耗和其他與記憶體相關聯的資訊。

      1.2cProfile的使用:

        python -m cProfile -o 輸出引數 測試指令碼 輸入引數1 引數2......,如python -m cProfile -o result.txt test.py 1 2 3

  2.

五.參考文章:

    1.Python靜態檢查工具:https://blog.csdn.net/fan_hai_ping/article/details/41733817

    2.cProfile的使用:https://blog.csdn.net/u010453363/article/details/78415553?utm_source=blogxgwz4