A. 軟體測試的方法一共有幾種
1、從是否關心內部結構來看
(1)白盒測試:又稱為結構測試或邏輯驅動測試,是一種按照程序內部邏輯結構和編碼結構,設計測試數據並完成測試的一種測試方法。
(2)黑盒測試:又稱為數據驅動測試,把測試對象當做看不見的黑盒,在完全不考慮程序內部結構和處理過程的情況下,測試者僅依據程序功能的需求規范考慮,確定測試用例和推斷測試結果的正確性,它是站在使用軟體或程序的角度,從輸入數據與輸出數據的對應關系出發進行的測試。
(3)灰盒測試:是一種綜合測試法,它將「黑盒」測試與「白盒」測試結合在一起,是基於程序運行時的外部表現又結合內部邏輯結構來設計用例,執行程序並採集路徑執行信息和外部用戶介面結果的測試技術。
2、從是否執行代碼看
(1)靜態測試:指不運行被測程序本身,僅通過分析或檢查源程序的語法、結構、過程、介面等來檢查程序的正確性。
(2)動態測試:是指通過運行被測程序,檢查運行結果與預期結果的差異,並分析運行效率、正確性和健壯性等性能指標。
3、從開發過程級別看
(1)單元測試:又稱模塊測試,是針對軟體設計的最小單位----程序模塊或功能模塊,進行正確性檢驗的測試工作。其目的在於檢驗程序各模塊是否存在各種差錯,是否能正確地實現了其功能,滿足其性能和介面要求。
(2)集成測試:又叫組裝測試或聯合,是單元測試的多級擴展,是在單元測試的基礎上進行的一種有序測試。旨在檢驗軟體單元之間的介面關系,以期望通過測試發現各軟體單元介面之間存在的問題,最終把經過測試的單元組成符合設計要求的軟體。
(3)系統測試:是為判斷系統是否符合要求而對集成的軟、硬體系統進行的測試活動、它是將已經集成好的軟體系統,作為基於整個計算機系統的一個元素,與計算機硬體、外設、某些支持軟體、人員、數據等其他系統元素結合在一起,在實際運行環境下,對計算機系統進行一系列的組裝測試和確認測試。
在系統測試中,對於具體的測試類型有:
(1)功能測試:對軟體需求規格說明書中的功能需求逐項進行的測試,以驗證功能是否滿足要求。
(2)性能測試:對軟體需求規格說明書的功能需求逐項進行的測試,以驗證功能是否滿足要求。
(3)介面測試:對軟體需求規格說明中的介面需求逐項進行的測試。
(4)人機交互界面測試:對所有人機交互界面提供的操作和顯示界面進行的測試,以檢驗是否滿足用戶的需求。
(5)強度測試:強制軟體運行在異常乃至發生故障的情況下(設計的極限狀態到超出極限),驗證軟體可以運行到何種程序的測試。
(6)餘量測試:對軟體是否達到規格說明中要求的餘量的測試。
(7)安全性測試:檢驗軟體中已存在的安全性、安全保密性措施是否有效的測試,
(8)可靠性測試:在真實的或模擬的環境中,為做出軟體可靠性估計而對軟體進行的功能(其輸入覆蓋和環境覆蓋一般大於普通的功能測試)
(9)恢復性測試:對有恢復或重置功能的軟體的每一類導致恢復或重置的情況,逐一進行的測試。
(10)邊界測試:對軟體處在邊界或端點情況下運行狀態的測試。
(11)數據處理測試:對完成專門數據處理功能所進行的測試。
(12)安裝性測試:對安裝過程是否符合安裝規程的測試,以發現安裝過程中的錯誤。
(13)容量測試:檢驗軟體的能力最高能達到什麼程度的測試。
(14)互操作性測試:為驗證不同軟體之間的互操作能力而進行的測試。
(15)敏感性測試:為發現在有效輸入類中可能引起某種不穩定性或不正常處理的某些數據的組合而進行的測試。
(16)標准符合性測試:驗證軟體與相關國家標准或規范(如軍用標准、國家標准、行業標准及國際標准)一致性的測試。
(17)兼容性測試:驗證軟體在規定條件下與若干個實體共同使用或實現數據格式轉換時能滿足有關要求能力的測試。
(18)中文本地化測試:驗證軟體在不降低原有能力的條件下,處理中文能力的測試。
4、從執行過程是否需要人工干預來看
(1)手工測試:就是測試人員按照事先為覆蓋被測軟體需求而編寫的測試用例,根據測試大綱中所描述的測試步驟和方法,手工地一個一個地輸 入執行,包括與被測軟體進行交互(如輸入測試數據、記錄測試結果等),然後觀察測試結果,看被測程序是否存在問題,或在執行過程中是否會有一場發生,屬於比較原始但是必須執行的一個步驟。
(2)自動化測試:實際上是將大量的重復性的測試工作交給計算機去完成,通常是使用自動化測試工具來模擬手動測試步驟,執行用某種程序設計語言編寫的過程(全自動測試就是指在自動測試過程中,不需要人工干預,由程序自動完成測試的全過程;半自動測試就是指在自動測試過程中,需要手動輸入測試用例或選擇測試路徑,再由自動測試程序按照人工指定的要求完成自動測試)
5、從測試實施組織看
(1)開發測試:開發人員進行的測試
(2)用戶測試:用戶方進行的測試
(3)第三方測試:有別於開發人員或用戶進行的測試,由專業的第三方承擔的測試,目的是為了保證測試工作的客觀性
6、從測試所處的環境看
(1)阿爾法測試:是由一個用戶在開發環境下進行的測試,也可以是公司內部的用戶在模擬實際操作環境下進行的測試
(2)貝塔測試:是用戶公司組織各方面的典型終端用戶在日常工作中實際使用貝塔版本,並要求用戶報告
軟體測試的內容:
1 得到需求、功能設計、內部設計說書和其他必要的文檔
2 得到預算和進度要求
3 確定與項目有關的人員和他們的責任、對報告的要求、所需的標准和過程 ( 例如發行過程、變更過程、等等 )
4 確定應用軟體的高風險范圍,建立優先順序、確定測試所涉及的范圍和限制
5 確定測試的步驟和方法 ── 部件、集成、功能、系統、負載、可用性等各種測試
6 確定對測試環境的要求 ( 硬體、軟體、通信等 )
7 確定所需的測試用具 (testware) ,包括記錄 / 回放工具、覆蓋分析、測試跟蹤、問題 / 錯誤跟蹤、等等
8 確定對測試的輸入數據的要求
9 分配任務和任務負責人,以及所需的勞動力
10 設立大致的時間表、期限、和里程碑
11 確定輸入環境的類別、邊界值分析、錯誤類別
12 准備測試計劃文件和對計劃進行必要的回顧
13 准備白盒測試案例
14 對測試案例進行必要的回顧 / 調查 / 計劃
15 准備測試環境和測試用具,得到必需的用戶手冊 / 參考文件 / 結構指南 / 安裝指南,建立測試跟蹤過程,建立日誌和檔案、建立或得到測試輸入數據
16 得到並安裝軟體版本
17 進行測試
18 評估和報告結果
19 跟蹤問題 / 錯誤,並解決它
20 如果有必要,重新進行測試
21 在整個生命周期里維護和修改測試計劃、測試案例、測試環境、和測試用具