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