標籤:
軟體測試是為了發現錯誤而執行程式的過程。
軟體測試要經曆三個階段的測試:
1>開發測試:系統的設計人員和程式員
2>發布測試:測試小組對一個系統的完整版本進行測試,然後發布給使用者
3>使用者測試:使用者可能是內部營銷組織,決定軟體是否可以投放市場/發布版本等;使用者也可能是客戶正式測試一個系統,已決定是否應該從系統供應處接收或是進一步開發
使用者測試包括:
α測試:使用者+開發小組
β測試:使用者,公司外部展開測試
接受測試:客戶
軟體開發流程:軟體立項→可行性研究→需求分析→概要設計→詳細設計→編碼實現→單元測試→整合測試→系統測試→驗收測試→運行維護
軟體測試步驟:擷取測試需求→編寫測試計劃→制定測試方案→開發與設計測試案例→執行測試→提交缺陷報告→測試分析與評審→提交測試總結→準備下一個版本的測試
軟體測試的分類:
按照開發階段劃分:
①單元測試:單元測試需要從程式的內部結構出發設計測試案例,多個模組可以平行的獨立進行單元測試。
②整合測試:在單元測試的基礎之上,將所有模組進行有序的、遞增的測試。整合測試是檢測程式單元或組件介面之間的關係,逐步整合符合概要設
計要求的組件或整個系統。每個系統提交整合測試時要進行煙霧測試 (Smoke Test)。
煙霧測試 (Smoke Test)又稱為組建驗證測試。主要是驗證軟體的準系統是否正常。當我們拿到一個軟體時首先要進行的是煙霧測試 (Smoke Test),如果煙霧測試 (Smoke Test)不通過那麼下面就可以不用測了。比如我們測試搜狗IME時,它不能正確地安裝,那麼接下來的功能就可以不用測了。
③系統測試:系統測試是針對軟體產品系統進行的測試,主要驗證整機系統是否滿足了系統需求規格的定義。系統測試是將通過確認測試的軟體,作為整個基於電腦系統的一個元素,與電腦硬體、外設、某些支援軟體、資料和人員等其他元素結合在一起,在實際啟動並執行環境下,對電腦系統進行的測試。系統測試的種類一般有以下幾種:
1)恢複測試:就是採取人工幹預方式使軟體出錯,而不能正常工作,來檢驗系統的恢複能力。比如突然斷電。
2)安全性測試
3)強度測試
4)效能測試
5)其他的一些測試
冒煙測試和系統測試大多數公司都是一起進行的了,要說區別就是確認測試一般是在類比環境下,一般是開發環境,系統測試是真實的環境。
④驗收測試:按照專案工作書或合約、供需雙方約定的驗收依據文檔進行對整個系統的測試和評審,決定是否接收或拒絕系統。
1)對產品說明書的驗證,驗證系統是否和產品說明書中定義的一致,雖然前面的測試也驗證的規格說明書,但是驗收測試對產品說明書的驗證時最嚴格的。如果軟體有明確的使用者,這時使用者將會參與到驗收測試中,按合約逐一檢查。
2)使用者介面和可用性測試,好的介面應符合這7個要素:符合標準和規範、直觀性、一致性、靈活性、舒適性、正確性和實用性。
3)相容性測試:主要是與硬體相容、軟體之間的相容、資料之間的相容。
4)可安裝和可恢複測試
5)文檔測試
按照測試技術劃分:
①白盒測試:清楚瞭解程式結構和處理過程,檢查是否所有的結構和路徑都是正確的,檢查軟體內部動作是否按照設計說明的規定正常運行。
優點:白盒測試能發現程式的隱患,如記憶體流失、誤差累計問題。
②黑箱測試:完全不考慮程式內部結構和處理過程,通過軟體外部表格現來發現缺陷和錯誤,只檢查程式是否按照需求規格說明書的規定正常實現。
缺點:即使軟體輸入和輸出都是正確的,也不能說明軟體就是正確的,如負負得正,只有白盒測試才能發現真正的原因。
③灰盒測試:介於白盒測試和黑箱測試之間,關注輸出對於輸入的正確性,同時也關注內部表現,但但不像白盒測試那樣細節/完整,只是通過一些表徵性的現象、事件來判斷內部的運行狀態。
④靜態測試:對軟體中的需求說明書、設計說明書、來源程式代碼等進行非啟動並執行檢查,靜態測試包括:走查、代碼風格與規則檢查、需求確認等。
靜態測試既可以手工檢查也可以使用自動化工具,如檢查代碼的Jtest、C++ Test等
⑤動態測試:通過人工或使用工具運行程式進行檢查、剖析器的執行狀態和程式的外部表格現。
按照測試類型分類:
①功能測試:通常採用黑箱測試,測試軟體的功能是否符合功能性需求
②效能測試:在正常和負載下的狀況
③安全性測試:防止非法入侵
④易用性測試:測試是否易用,主觀性比較強,鹽根據很多使用者的測試反饋資訊
⑤相容性測試:與各種平台的相容性
軟體測試分類