Linux企業級專案實踐之網路爬蟲(23)——系統測試:找出系統中的bug

尹成發表於2014-08-31

為了驗證爬蟲的業務流程、效能和健壯性需要進行測試。

軟體測試是描述一種用來促進鑑定軟體的正確性、完整性、安全性和質量的過程。軟體測試的經典定義是:在規定的條件下對程式進行操作,以發現程式錯誤,衡量軟體質量,並對其是否能滿足設計要求進行評估的過程。


軟體測試的目的:

(1)測試是為了發現程式中的錯誤而執行程式的過程。
(2)好的測試方案是極可能發現迄今為止尚未發現的錯誤的測試方案。
(3)成功的測試是發現了至今為止尚未發現的錯誤的測試。
(4)測試並不僅僅是為了找出錯誤。通過分析錯誤產生的原因和錯誤的發生趨勢,可以幫助專案管理者發現當前軟體開發過程中的缺陷,以便及時改進。
(5)這種分析也能幫助測試人員設計出有針對性的測試方法,改善測試的效率和有效性。
(6)沒有發現錯誤的測試也是有價值的,完整的測試是評定軟體質量的一種方法。

(7)另外,根據測試目的的不同,還有迴歸測試、壓力測試、效能測試等,分別為了檢驗修改或優化過程是否引發新的問題、軟體所能達到處理能力和是否達到預期的處理能力等。


測試方法:
在基本引數如測試時間等,一致的情況下 ,通過設定是否為頁面抓取多執行緒而把兩組其他引數完全相同的測試例項分組測試,然後對其結果做比較分析。
改變頁面連線數引數和DNS請求數引數,然後把這組測試例項進行測試,並和對應沒有改變引數的例項的測試結果做比較、分析。
測試內容:

測試時間TIME,爬行深度DEPT,是否多執行緒MTHD,最大連線數 CONN,最大DNS請求數CDNS,所獲取的頁面數PNUM,所獲取容量MB,每秒爬行頁數 P/S,每秒爬行容量MB/S 


測試原則:
1、測試應該儘早進行,最好在需求階段就開始介入,因為最嚴重的錯誤不外乎是系統不能滿足使用者的需求。
2、程式設計師應該避免檢查自己的程式,軟體測試應該由第三方來負責。
3、設計測試用例時應考慮到合法的輸入和不合法的輸入以及各種邊界條件,特殊情況下要製造極端狀態和意外狀態,如網路異常中斷、電源斷電等。
4、應該充分注意測試中的群集現象。
5、對錯誤結果要進行一個確認過程。一般由A測試出來的錯誤,一定要由B來確認。嚴重的錯誤可以召開評審會議進行討論和分析,對測試結果要進行嚴格地確認,是否真的存在這個問題以及嚴重程度等。
6、制定嚴格的測試計劃。一定要制定測試計劃,並且要有指導性。測試時間安排儘量寬鬆,不要希望在極短的時間內完成也有一個高水平的測試。
7妥善儲存測試計劃、測試用例、出錯統計和最終分析報告,為維護提供方便。


相關文章