第2章 軟件測試基礎(chǔ)
2.1 軟件測試的定義
關(guān)于軟件測試的定義,不同學者有不同的觀點,了解軟件測試的定義,對于日后的工作很有幫助。
首先要明確測試的定義,測試,就是以檢驗產(chǎn)品是否滿足需求為目標的過程。
而軟件測試,自然是為了發(fā)現(xiàn)軟件(產(chǎn)品)的缺陷而運行軟件(產(chǎn)品)。
在IEEE 標準中,軟件測試的定義為使用人工或自動的手段運行或測定某個系統(tǒng)的過程,其目的在于檢驗軟件是否滿足規(guī)定的需求或弄清預期結(jié)果與實際結(jié)果之間的差別。
在軟件的發(fā)展過程中,軟件測試的定義也是一個逐步發(fā)展的過程。
早期,G.J.Myers 給出的定義:程序測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。這個定義被軟件測試業(yè)界所認可,并經(jīng)常被引用。但實際上,這一定義還不能完全反映軟件測試的內(nèi)涵,仍局限于“程序測試”。
隨后,G.J.Myers進一步提出了有關(guān)程序測試的3個重要觀點,那就是:
(1)測試是為了證明程序有錯,而不是證明程序無錯誤。
(2)一個好的測試用例在于它能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤。
(3)一個成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯誤。
要完整地理解軟件測試,就要從不同方面和視角去辯證地審視軟件測試。概括起來,軟件測試就是貫穿軟件整個開發(fā)生命周期、對軟件產(chǎn)品(包括階段性產(chǎn)品)進行驗證和確認的活動過程,其目的是盡快盡早地發(fā)現(xiàn)軟件產(chǎn)品中存在的各種問題——與用戶需求、預先的定義不一致的地方。
以下是關(guān)于軟件測試的各種觀點。
推薦閱讀
- Learning Real-time Processing with Spark Streaming
- 騰訊iOS測試實踐
- Python數(shù)據(jù)分析基礎(chǔ)
- Unity 2020 Mobile Game Development
- 認識編程:以Python語言講透編程的本質(zhì)
- Learning Three.js:The JavaScript 3D Library for WebGL
- Learning Salesforce Einstein
- C++面向?qū)ο蟪绦蛟O(shè)計習題解答與上機指導(第三版)
- .NET 3.5編程
- Learning Unity 2D Game Development by Example
- Node.js Design Patterns
- Java程序設(shè)計入門
- Unity 2018 Shaders and Effects Cookbook
- Python機器學習:預測分析核心算法
- JavaScript動態(tài)網(wǎng)頁編程