【軟體測試】測試理論
基本概念
測試是為了發現程序中的錯誤而執行程序的過程,軟體測試工程師在一家軟體企業中擔當的是「質量管理」角色,及時糾錯及時更正,確保產品的正常運作,軟體測試人員必須具有創新性和綜合分析能力,必須具備判斷準確、追求完美、執著認真、善於合作的品質,以及具有豐富的編程經驗與查檢故障的能力。
測試部門需要保持其獨立性。
詳細分類
1、按照軟體內部結構和實現
1)白盒測試:已知產品的內部工作過程,可以通過測試證明每種內部操作是否符合設計規格要求,所有內部成分是否以經過檢查
2)黑盒測試:已知產品的功能設計規格,可以進行測試證明每個實現了的功能是否符合要求
3)灰盒測試:介於白盒與黑盒之間,在關注輸出正確的同時也考慮內部的實現邏輯
2、按照是否執行程序
1)靜態測試:不執行程序本身,僅通過分析或檢查源程序的語法、結構、過程、介面等
2)動態測試:運行被測程序,檢查運行結果與預期結果的差異
3、按照開發階段
1)單元測試:集中對用源代碼實現的每一個程序單元進行測試,檢查各個程序模塊是否正確地實現了規定的功能
2)集成測試:把已測試過的模塊組裝起來,主要對與設計相關的軟體體系結構的構造進行測試
3)確認測試:檢查已實現的軟體是否滿足了需求規格說明中確定了的各種需求,以及軟體配置是否完全、正確
4)系統測試:把已經經過確認的軟體納入實際運行環境中,與其它系統成份組合在一起進行測試
5)驗收測試:產品發布前進行的保證用戶能正常使用的測試過程
4、按照測試目的
1)回歸測試
2)壓力測試
3)性能測試
4)穩定性測試
5)其他專項測試
測試模型
1、V模型
1)瀑布式模型,非常明確地標明了測試過程中存在的不同級別,並且清楚地描述了這些測試階段和開發過程期間各階段的對應關係
2)局限性:把測試作為編碼之後的最後一個活動,需求分析等前期產生的錯誤直到後期的驗收測試才能發現
2、W模型
1)V模型的發展,強調的是測試伴隨著整個軟體開發周期,而且測試的對象不僅僅是程序,需求、功能和設計同樣要測試。測試與開發是同步進行的,從而有利於儘早地發現問題。
2)局限性:同V模型一樣把開發測試作為一個串列的活動
3、H模型
1)針對單獨的程序片段進行相互分離的編碼和測試,此後通過頻繁的交接,通過集成最終合成為可執行的程序
2)局限性:對測試造成人力、物力和財力的浪費,對測試員的熟練程度要求比較高
4、X模型
1)軟體測試過程活動完全獨立,貫穿於整個產品的周期,與其他流程並發地進行,某個測試點準備就緒時,就可以從測試準備階段進行到測試執行階段。軟體測試可以儘早的進行,並且可以根據被測物的不同而分層次進行
2)局限性:對於大型嵌入式項目很難實施
測試方法
1、等價類劃分
1)有效等價類:對於程序規格說明來說是合理的、有意義的輸入數據構成的集合
2)無效等價類:與有效等價類相反
2、邊界值分析:對輸入或輸出的邊界值進行測試的黑盒測試方法
3、錯誤推斷:基於經驗和直覺推測程序中可能存在的各種錯誤,從而有針對性的設計測試用例的方法
4、因果圖法:利用圖解法分析輸入的各種組合情況,從而設計測試用例的方法,它適合於檢查程序輸入條件的各種組合情況
5、判定表驅動:判定表是分析和表達多邏輯條件下執行不同操作的情況的方法
6、正交實驗法:從大量的實驗數據中挑選適量的,有代表性的點來進行測試用例設計的方法,類似的方法還有聚類分析法、因子法等
7、功能圖法:綜合了邏輯覆蓋和路徑覆蓋的測試方法,偏向於灰盒測試的一種測試方法
8、場景法:根據不同的觸發場景來設計測試用例
推薦閱讀:
※【自動化測試】如何從0到1打造自動化測試
※在得到之前先評估一下自己會失去什麼吧
※定位bug的姿勢對嗎?
※Selenium 2.0與Selenum 3.0介紹
※常用的sql語句
TAG:軟體測試 |