軟體測試技術知識點重點總結
1.3軟體測試技術
分類:靜態測試;動態測試
1)靜態測試
定義:是指不執行程式程式碼而尋找程式碼中可能存在的錯誤或評估程式的過程
包含:各階段評審;程式碼檢查;程式分析;軟體質量度量
程式碼檢查方法:
A.程式碼審查:組長,資深程式設計師,程式程式設計者,專職測試人員採用講解,提問並使用檢查表的方式審查程式碼。
B.桌面檢查:程式設計師自己檢查所編寫的程式
C.程式碼走查:是一種正式的評審活動,小組中至少有一位資深程式設計師,程式設計師誦讀程式碼,解釋,審查人員審查,做出書面報告和錯誤報告,交給程式開發人員。
D.技術評審:最正式的評審,有開發組,測試組和相關人員聯合進行,綜合運用走查,審查技術,逐行,逐段進行檢查。
2)動態測試
定義:通過執行被測程式來檢查執行結果與預期結果的差異,並分析執行效率和健壯性等指標。包含三部分,構造測試例項,執行程式,分析程式的輸出結果
分類:(是否關心軟體內部結構和具體的實現角度劃分)白盒測試,黑盒測試,灰盒測試
(軟體開發的過程)單元測試,整合測試,確認測試,系統測試,驗收測試及迴歸測試
A.白盒測試
定義:“白盒”測試又稱為結構測試或邏輯驅動測試是一種按照程式內部邏輯結構和編碼結構設計測試資料並完成測試的一種測試方法。
分類:
* 語句覆蓋:語句覆蓋是最起碼的測試要求,使得每一條語句至少被執行一次對程式的邏輯覆蓋很少,只關心判定表示式的值,是很弱的邏輯覆蓋標準。
* 判定覆蓋
* 條件覆蓋:不僅每一個語句至少執行一次,使得判定中的每個條件獲得各種可能的結果。
判定覆蓋只關心整個判定表示式的結果,條件覆蓋關心的則是每個條件各種取值的結果。
* 判定/條件覆蓋:設計足夠多的測試用例,使得判定中每個條件的所有可能取值至少能夠獲取一次,同時每個判斷的所有可能的判定結果至少執行一次。
* 條件組合覆蓋:要求設計足夠多的測試用例,使得每個判定中條件的各種組合至少出現一次。滿足條件組合覆蓋標準的測試用例,也一定滿足判定覆蓋、條件覆蓋和判定/條件覆蓋標準。
* 路徑覆蓋:要求設計足夠多的測試用例,使得程式中所有的路徑都至少執行一次 。
B.黑盒測試
定義:黑盒測試又稱功能測試或資料驅動測試把測試物件當作看不見內部的黑盒,在完全不考慮程式內部結構和處理過程的情況下,測試者僅依據程式功能的需求規範考慮,確定測試用例和推斷測試結果的正確性.站在使用軟體或程式的角度,從輸入資料與輸出資料的對應關係進行的測試在軟體的介面處進行測試通過匯出執行程式所有功能需求的輸入條件集,實現功能覆蓋,需求覆蓋。
分類:
* 等價類劃分方法,把所有可能的輸入資料,即程式的輸入域劃分成若干部分,然後從每一部分中選取少數有代表性的資料做為測試用例,代表性資料作用等價於該類中的其他值。使用這一方法設計測試用例,首先必須在分析需求規格說明書的基礎上劃分等價類,列出等價類表。
* 邊界值分析法就是對輸入或輸出的邊界值進行測試的一種黑盒測試方法。通常邊界值分析法是作為對等價類劃分法的補充,這種情況下,其測試用例來自等價類的邊界。從測試工作經驗得知,大量的錯誤是發生在輸入或輸出範圍的邊界上,而不是在輸入範圍的內部。
* 因果圖法是一種利用圖解法分析輸入的各種組合情況,從而設計測試用例的方法,它適合於檢查程式輸入條件的各種組合情況。
3)測試用例設計--測試用例
定義:測試用例是為特定的目的而設計的一組測試輸入,執行條件和預期的結果。
特點:正確性,完整性,準確,清晰簡潔,可維護性,適應性,可重用性等。
基本原則:基於測試需求的原則;基於測試方法的原則;兼顧測試充分性和效率的原則;測試用例的代表性;測試結果的可判定性;測試執行的課再現性原則
測試用例覆蓋內容:
正確性測試; 容錯性(健壯性)測試; 完整(安全)性測試; 介面間測試; 資料庫測試; 邊界值分析法; 壓力測試; 等價劃分; 錯誤推測; 效率; 可理解(操作)性; 可移植性; 迴歸測試; 比較測試
測試用例編寫要素:
名稱和標識; 測試追蹤; 用例說明 ;測試的初始化要求
;測試的輸入 ;期望的測試結果; 評價測試結果的準則;
操作過程; 前提和約束; 測試終止條件
測試用例的設計步驟:
測試需求分析;業務流程分析;測試用例設計;測試用例評審;
測試用例更新完善
4)單元測試
定義:單元測試又稱模組測試,是針對軟體設計的最小的單位——程式模組或功能模組,進行正確性檢驗的測試工作。(程式碼級)
內容:
* 模組介面測試:在單元測開始,應該對通過所有被測模組的資料進行測試。
* 區域性資料結構測試
* 路徑測試:檢查由於計算錯誤、判定錯誤、控制錯誤導致的程式錯誤。
* 錯誤處理測試
* 邊界測試:邊界測試是單元測試中最後的任務。
要求:
語句覆蓋儘可能達到100%;分支覆蓋儘可能達到100%;錯誤處理路徑儘可能達到100%;單元的軟體特性覆蓋;各種資料特性覆蓋。
方法:
驅動模組:相當於所測模組的主程式; 樁模組:由被測模組呼叫,用以代替有被測單元所呼叫的模組的功能。
5)整合測試:
定義:整合測試又叫組裝測試或聯合測試,是單元測試的多級擴充套件,是在單元測試的基礎上進行的一種有序測試。
內容:
* 整合後的功能性測試
* 介面測試:模組間的介面包括函式介面和訊息介面。
* 全域性資料結構測試:全域性資料結構往往存在非法修改的隱患。
* 資源測試:資源測試包括共享資源測試和資源極限測試。
* 效能測試:依據某個部件的效能指標進行效能測試,及時發現效能瓶頸。
* 穩定性測試
方法:
* 一次性組裝方式(或稱大爆炸整合方法):一次性組裝方式是一種非漸增式測試方法,也可叫做整體拼裝。
* 漸增式測試:(1).自頂向下整合測試方法:深度優先方法;廣度優先方法(2).自底向上整合測試方法(3).混合漸增式整合測試方法(或稱三明治整合方法)
6) 確認測試
定義:確認測試是檢查已經組裝好的軟體系統是否滿足需求規格說明的各種需求,以及軟體配置是否安全,正確。
7)系統測試
把經過確認測試的軟體在實際環境中執行,並與其他系統組合在一起測試。
系統測試過程定義
* 系統測試需求獲取:測試需求必須是可觀測、可測評的行為;每個用例或系統的補充需求與測試需求之間不存在一對一的關係;在需求規格說明書中每一個功能描述將派生一個或多個測試需求;....
* 系統測試策略選擇:要實施的測試型別和測試目標;採用的技術;用於評估測試結果和測試是否完成的標準;以及對測試策略所述的測試工作存在影響的特殊事項。
* 系統測試採用的技術
* 系統測試環境建立
* 系統測試人員組成
* 系統測試要交付的文件