一、什么是軟件測試?
百度百科中是這樣寫的:
軟件測試(英語:Software Testing),描述一種用來促進鑒定軟件的正確性、完整性、安全性和質量的過程。換句話說,軟件測試是一種實際輸出與預期輸出之間的審核或者比較過程。軟件測試的經典定義是:在規定的條件下對程序進行操作,以發現程序錯誤,衡量軟件質量,并對其是否能滿足設計要求進行評估的過程。
一句話形容,其實軟件測試就是通過人力或者計算機來測試某一軟件是否正確的實現了它所需要實現的功能。
二、軟件測試的目的:
?一、軟件測試的目的? ? ? ?
1)軟件測試是為了發現錯誤而執行程序的過程。? ? ? ?
2)測試是為了證明程序有錯,而不是證明程序無錯。(發現錯誤不是唯一目的)? ? ? ?
3)一個好的測試用例在于它發現至今未發現的錯誤。? ? ? ?
4)一個成功的測試是發現了至今未發現的錯誤的測試。
注意:? ? ? ?
????????1、測試并不僅僅是為了要找出錯誤。通過分析錯誤產生的原因和錯誤的分布特征。可以幫助項目管理者發現當前所采用的軟件過程的缺陷,以便改進。同時,通過分析也能幫助我們設計出有針對性的檢測方法,改善測試的有效性。? ? ? ?
????????2、沒有發現錯誤的測試也是有價值的,完整的測試是評定測試質量的一種方法。詳細而嚴謹的可靠性增長模型可以證明這一點。例如Bev Littlewood發現一個經過測試而正常運行了n個小時的系統有繼續正常運行n個小時的概率。
三、軟件測試的原則:
1)應當把“盡早地不斷地進行軟件測試“作為軟件開發者的座右銘。? ? ? ? ?
2)測試用例應由測試數據和與之對應的預期輸出結果這兩部分組成。? ? ? ?
3)程序員應避免檢查自己的程序。? ? ? ?
4)在設計測試用例時,應當包括合理的輸入條件和不合理的輸入條件。? ? ? ?
5)充分注意測試中的群集現象。? ? ? ?
6)嚴格執行測試計劃,排除測試的隨意性。? ? ?
7)應當對每一個測試結果做全面的檢查。? ? ? ?
8)妥善保存測試計劃、測試用例、出錯統計和最終分析報告,為維護提供方便。
四、軟測行業中流行的軟件質量模型的6大特性和27個子特性
ISO9126質量模型:軟件質量模型的6大特性和27個子特性。
ISO9126軟件質量模型是評價軟件質量的國際標準,由6個特性和27個子特性組成,建議大家深入理解各特性、子特性的含義和區別,在測試工作需要從這6個特性和27個子特性去測試、評價一個軟件。這個模型是軟件質量標準的核心,對于大部分的軟件,都可以考慮從這幾個方面著手進行測評。?
其6大特性和27個子特性
1、功能性
1)適合性:提供了相應的功能
2)準確性:正確(用戶需要的)
3)互操作性:產品與產品之間交互數據的能力
4)保密安全性:允許經過授權的用戶和系統能夠正常的訪問相應的數據和信息,禁止未授權的用戶訪問
5)功能性的依從性:國際/國家/行業/企業 標準規范一致性
2、可靠性:產品在規定的條件下,在規定的時間內完成規定功能的能力
1)成熟性:防止內部錯誤導致軟件失效的能力
2)容錯性:軟件出現故障,自我處理能力
3)易恢復性:失效情況下的恢復能力
4)可靠性的依從性
3、易用性:在指定使用條件下,產品被理解、 學習、使用和吸引用戶的能力
1)易理解性
2)易學性
3)易操作性
4)吸引性
5)易用性的依從性
4、效率性:在規定臺條件下,相對于所用資源的數量,軟件產品可提供適當性能的能力
1)時間特性:平均事務響應時間,吞吐率,TPS(每秒事務數)
2)資源利用性:CPU 內存 磁盤 IO 網絡帶寬 隊列 共享內存
3)效率依從性
5、軟件維護性:"四規", 在規定條件下,規定的時間內,使用規定的工具或方法修復規定功能的能力
1)易分析性:分析定位問題的難易程度
2)易改變性:軟件產品使指定的修改可以被實現的能力
3)穩定性:防止意外修改導致程序失效
4)易 測試性:使已修改軟件能被確認的能力
5)維護性的依從性
6、軟件可移植性:從一種環境遷移到另一種環境的能力
1)適應性:適應不同平臺
2)易安裝性:被安裝的能力
3)共存性
4)易替換性
5)可移植性的依從性
五、測試的基本流程
軟件測試的流程
? ? ? ?立項階段-需求階段----設計階段----編碼和單元測試階段----集成測試階段----系統測試階段-----驗收測試階段-----結項總結階段
補充:
根據不同的測試階段,測試可以分為單元測試、集成測試、系統測試和驗收測試,體現了測試由小到大、又內至外、循序漸進的測試過程和分而治之的思想。
單元測試的粒度最小,一般由開發小組采用白盒方式來測試,主要測試單元是否符合“設計”。
集成測試界于單元測試和系統測試之間,起到“橋梁作用”,一般由開發小組采用白盒加黑盒的方式來測試,既驗證“設計”,又驗證“需求”。
系統測試的粒度最大,一般由獨立測試小組采用黑盒方式來測試,主要測試系統是否符合“需求規格說明書”。
驗收測試與系統測試相似,主要區別是測試人員不同,驗收測試由用戶執行。
黑盒測試不考慮程序內部結構和邏輯結構,主要是用來測試系統的功能是否滿足需求規格說明書。一般會有一個輸入值,一個輸入值,和期望值做比較。
白盒測試主要應用在單元測試階段,主要是對代碼級的測試,針對程序內部邏輯結構,測試手段有:語句覆蓋、判定覆蓋、條件覆蓋、路徑覆蓋、條件組合覆蓋
集成測試主要用來測試模塊與模塊之間的接口,同時還要測試一些主要業務功能。
系統測試是在經過以上各階段測試確認之后,把系統完整地模擬客戶環境來進行的測試。