1. 程式人生 > >python實現WordCount(第三次作業)

python實現WordCount(第三次作業)

 0x00 註明

合作者:201631062315 201631062310

程式碼地址:https://gitee.com/c1e4r/word-count2

作業地址:https://edu.cnblogs.com/campus/xnsy/2018softwaretest2398/homework/2187

 

0x01 互審程式碼情況

  在完成本次作業的期間,同一位同學進行了合作,大概就是相互之間測試對方的程式,已達到軟體測試的目的。

 

  發現的問題:

    1.在進行檔案操作的時候報錯,經分析報錯後發現是在開啟某一檔案時未統一編碼規範。檔案是gbk編碼,在開啟檔案的時候要轉化為utf-8。

 

    2.對程式碼的縮排,一些變數定義和空間進行了修改。

 

 0x02 靜態程式碼檢查情況

  1.使用的工具:pyflakes

    PyChecker是Python程式碼的靜態分析工具,它能夠幫助查詢Python程式碼的bug,而且能夠對程式碼的複雜度和格式等提出警告。

  2.檢查的模組以及檢查結果

     檢查模組:所有

    檢查結果:

 

  3.程式碼存在的問題和改進的方法

  由於程式碼是經過除錯和修改後才檢查的,且程式碼量比較少,所以檢查的時候並不存在多大的問題。

0x03 單元測試

  1.設計測試用例方法:等價類劃分法

  2.測試的模組以及思路

    2.1測試所有模組功能:

      2.1.1 測試思路

輸入 有效等價類 無效等價類

讀取檔案命令引數

(1)-l

(2)-w

(3)-c

(4)-c -w

(5)-l -c

(6)-w -c

(7)-l -w -c

(8)空

 

(9)非-l -w -o的任意其他引數

結果寫入檔案命令引數

(10)-o

(11)非-o的其他命令
檔名 (12)原始檔名 (13)非檔名

 

 

 

 

 

 

 

 

 

 

 

 

 

     

      

 

      一共設計四個測試用例:

        1.wc.py -c -w -l -e -a  -o output.txt test.txt 覆蓋①②③④⑤⑥⑦⑧⑩⑫

        2.wc.py -f -t test.txt,測試⑨;

        3.wc.py -l -w -c test.txt -h output.txt,測試⑪;

        4.wc.py -l -w -c dir,測試⑬

      2.1.2 覆蓋情況:語句覆蓋,判定覆蓋,條件覆蓋

    2.2 附加高階功能測試

      2.2.1 等價類劃分

輸入 有效等價類 無效等價類
遍歷資料夾命令輸入 (1)-s (2) 非-s 其他任意引數
停用表 (3)-e (4) 非-e其他任意引數

 

  

 

        共設計三個個測試用例: 

      1. python3 wc.py -s -c -w -l -a -e stopList.txt -o output.txt *.py,覆蓋(1)(3) 
      2. python3 wc.py -s *.py 測試(2)
      3. python3 wc.py -l test.txt,測試(4)

     2.2.2 語句覆蓋,條件覆蓋

3.測試情況

  

 

 

 

 

 

 

 

 

0x04 效能測試和優化

  1.測試工具的選擇:Locust 

     1.1 安裝方法 :

    python3中: python3 -m pip install locust 

    安裝成功後終端輸入locust --help顯示幫助資訊表示安裝成功

  2.測試結果

    由於程式碼量不是很大,且不存在資料庫連線操作和聯網的互動操作,所以測試效能結果較優。

0x05 總結以及參考文章

  通過本次的作業,初步認識到了到一些程式碼檢查工具在對開發過程中的重要性,也體會到了在軟體開發過程中必須保持嚴謹的態度,也要有一定的“大局觀念”,才能在方便在軟體測試時對軟體的功能進行細化的測試。

  同時合作也是至關重要的一環,兩個人相互之間的思考方式不同,邏輯思維也不同,這樣審查程式碼也能發現一些程式碼上的邏輯錯誤,減少BUG的存在。其次程式碼的規範和風格極其重要,良好的編碼習慣不僅會大大地提升整個程式原始碼的可讀性,同時也會減少後期維護的成本,所以要在平時的練習中養成良好的編碼習慣。

  參考文章:

  1. Locust安裝和使用
  2. Pyflakes的安裝和使用
  3. WorldOcunt程式碼檢查與優化