1. 程式人生 > >測試開發需要學習的知識結構

測試開發需要學習的知識結構



1、黑盒測試


  黑盒測試也稱功能測試或資料驅動測試,它是在已知產品所應具有的功能,通過測試來檢測每個功能是否都能正常使用,在測試時,把程式看作一個不能開啟的黑盆子,在完全不考慮程式內部結構和內部特性的情況下,測試者在程式介面進行測試,它只檢查程式功能是否按照需求規格說明書的規定正常使用,程式是否能適當地接收輸入數鋸而產生正確的輸出資訊,並且保持外部資訊(如資料庫或檔案)的完整性。黑盒測試方法主要有等價類劃分、邊值分析、因—果圖、錯誤推測等,主要用於軟體確認測試。 “黑盒”法著眼於程式外部結構、不考慮內部邏輯結構、針對軟體介面和軟體功能進行測試。“黑盒”法是窮舉輸入測試,只有把所有可能的輸入都作為測試情況使用,才能以這種方法查出程式中所有的錯誤。實際上測試情況有無窮多個,人們不僅要測試所有合法的輸入,而且還要對那些不合法但是可能的輸入進行測試。

2、白盒測試


  白盒測試也稱結構測試或邏輯驅動測試,它是知道產品內部工作過程,可通過測試來檢測產品內部動作是否按照規格說明書的規定正常進行,按照程式內部的結構測試程式,檢驗程式中的每條通路是否都有能按預定要求正確工作,而不顧它的功能,白盒測試的主要方法有邏輯驅動、基路測試等,主要用於軟體驗證。

 “白盒”法全面瞭解程式內部邏輯結構、對所有邏輯路徑進行測試。“白盒”法是窮舉路徑測試。在使用這一方案時,測試者必須檢查程式的內部結構,從檢查程式的邏輯著手,得出測試資料。貫穿程式的獨立路徑數是天文數字。但即使每條路徑都測試了仍然可能有錯誤。第一,窮舉路徑測試決不能查出程式違反了設計規範,即程式本身是個錯誤的程式。第二,窮舉路徑測試不可能查出程式中因遺漏路徑而出錯。第三,窮舉路徑測試可能發現不了一些與資料相關的錯誤。

軟體人員使用白盒測試方法,主要想對程式模組進行如下的檢查:
– 對程式模組的所有獨立的執行路徑至少測試一次;
– 對所有的邏輯判定,取 “ 真 ” 與取 “ 假 ” 的兩種情況都至少測試一次;
– 在迴圈的邊界和執行界限內執行迴圈體;
– 測試內部資料結構的有效性,等。
具體包含的邏輯覆蓋有: – 語句覆蓋 – 判定覆蓋 – 條件覆蓋 – 判定-條件覆蓋 – 條件組合覆蓋 – 路徑覆蓋。

a白盒測試技術
(White Box Testing) : 深入到程式碼一級的測試,使用這種技術發現問題最早,效果也是最好的。該技術主要的特徵是測試物件進入了程式碼內部,根據開發人員對程式碼和對程式的熟悉程度,對有需要的部分進行在軟體編碼階段,開發人員根據自己對程式碼的理解和接觸所進行的軟體測試叫做白盒測試。這一階段測試以軟體開發人員為主,在 JAVA 平臺使用 Xunit 系列工具進行測試, Xunit 測試工具是類一級的測試工具對每一個類和該類的方法進行測試。

b黑盒測試技術( Black Box Testing ):黑盒測試的內容主要有以下幾個方面,但是主要還是功能部分。主要是覆蓋全部的功能,可以結合相容,效能測試等方面進行,根據軟體需求,設計文件,模擬客戶場景隨系統進行實際的測試,這種測試技術是使用最多的測試技術涵蓋了測試的方方面面,可以考慮以下方面:

1正確性
(Correctness) :計算結果,命名等方面。

2可用性 (Usability) :是否可以滿足軟體的需求說明。

3邊界條件 (Boundary Condition) :輸入部分的邊界值,就是使用一般書中說的等價類劃分,試試最大最小和非法資料等等。

4效能 (Performance) : 正常使用的時間內系統完成一個任務需要的時間,多人同時使用的時候響應時間在可以接受範圍內。 J2EE 技術實現的系統在效能方面更是需要照顧的,一般原則是 3 秒以下接受, 3-5 秒可以接受, 5 秒以上就影響易用性了。如果在測試過程中發現效能問題,修復起來是非常艱難的,因為這常常意味著程式的演算法不好,結構不好,或者設計有問題。因此在產品開發的開始階段,就要考慮到軟體的效能問題

5壓力測試 (Stress) : 多使用者情況可以考慮使用壓力測試工具,建議將壓力和效能測試結合起來進行。如果有負載平衡的話還要在伺服器端開啟監測工具 , 檢視伺服器 CPU 使用率,記憶體佔用情況,如果有必要可以模擬大量資料輸入,對硬碟的影響等等資訊。如果有必要的話必須進行效能優化 ( 軟硬體都可以 ) 。這裡的壓力測試針對的是某幾項功能。

6錯誤恢復 (Error Recovery) :錯誤處理,頁面資料驗證,包括突然間斷電,輸入髒資料等。

7安全性測試 (Security) :這個領域正在研究中,防火牆、補丁包、防毒軟體等的就不必說了,不過可以考慮。破壞性測試時任意看了一些資料後得知 , 這裡面設計到的知識 內容可以寫本書了 , 不是一兩句可以說清的,特別是一些商務網站,或者跟錢有關,或者和公司祕密有關的 web 更是需要這方面的測試,在外國有一種專門幹這一行的人叫安全顧問,可以稽核程式碼,提出安全建議,出現緊急事件時的處理辦法等,在國內沒有聽說哪裡有專門搞安全技術測試的內容。