287.軟件測試概述

1.軟件的缺陷及其影響

1.1什麼是軟件缺陷

軟件缺陷就是軟件產品中所存在的問題,最終表現爲用戶所須要的功能沒有徹底實現,不能知足或不能所有知足用戶的需求。
從產品內部看,軟件缺陷是軟件產品開發或維護過程當中所存在的錯誤、偏差等各類問題。
從外部看,軟件缺陷是系統所須要實現的某種功能的失效或違背。安全

 

軟件缺陷的類型:
(1)軟件未實現產品說明書要求的功能。
(2)軟件出現了產品說明書不該該出現的錯誤。
(3)軟件實現了產品說明書未提到的功能。
(4)軟件未實現產品說明書雖未明確說起但應該實現的功能。
(5)軟件難以理解、不易使用、運行緩慢——從測試員的角度看——最終用戶會認爲很差。網絡

 

1.2 存在軟件缺陷的案例及影響

(1)千年蟲問題(產生約1974年)工具

    日期存儲未存儲世紀post


(2)愛國者導彈防護系統(1991年)性能

    時鐘計算作了一個舍入操做,二進制轉十進制,無限循環導數學習


(3)英特爾奔騰浮點除法缺陷(1994年)開發工具

    


(4)「衝擊波」病毒(2003年)測試

    


(5)諾基亞手機平臺缺陷(2008年)編碼

     

2. 軟件測試的產生與發展

一、軟件測試的產生

軟件缼陷產生的主要緣由:
(1)需求解釋有錯誤;
(2)用戶定義錯誤;
(3)需求記錄錯誤;
(4)設計說明錯誤;
(5)編碼說明有誤;
(6)程序代碼有誤;
(7)其餘有誤,如:數據輸入等。spa

 

二、軟件測試的發展

(1)初級階段(1957-1971年)
(2)發展階段(1972-1982年)
(3)成熟階段(1983年至今)

 

三、修復軟件缺陷的成本


軟件開發過程是使用軟件工程的方法,在整個過程當中,都有可能出現各類各樣的軟件缺陷。隨着開發時間的推移,軟件缺陷修復成本呈倍數的增加。假如早在進行分析時發現相關功能缺失,當即補上就可了,能夠說付出的代價小得幾乎忽略不計。若是在發佈時發現缺失某個功能,那麼此時加上一個功能,至關於從新開發同樣,這時的修補費用能夠說高許多。所以要儘早進行測試。

 

 

2 軟件測試的基本概念

2.1軟件測試的定義


軟件測試專家G.J.Myers早在1979年給軟件測試下定義:軟件測試是爲了發現錯誤而針對某個程序或系統的執行過程。

 

G.J.Myers給出與測試相關的三個要點:
(1)測試是爲了證實程序有錯,而不是證實程序無錯誤;
(2)一個好的測試用例是在於它能發現至今未發現的錯誤;
(3)一個成功的測試是發現了至今未發現的錯誤的測試。

 

 

1990年,IEEE再次給出軟件測試的定義:
(1)在特定的條件下運行系統或構件,觀察或記錄結果,對系統的某個方面作出評價;
(2)分析某個軟件項以發現現存的和要求的條件之差異並評價此軟件項的特性。

 

2.2 軟件測試用例

一、軟件測試用例定義
IEEE標準610(1990)給出的定義:
測試用例是一組測試輸入、執行條件和預期結果的集合,目的是要知足一個特定的目標,好比執行一條特定的程序路徑或檢驗是否符合一個特定的需求。

 

二、測試用例的元素
軟件測試設計的關鍵問題能夠歸納爲5W1H:
Why:爲何測試?對功能、性能、可用性、容錯性、安全性等測試,檢驗是否符合相關要求。
What:測什麼?測試的對象能夠是文檔,代碼,圖表等。
Where:在哪裏測?測試用例的環境,包括系統的硬件、軟件和網絡環境等。
When:何時測?測試用例所需的前提條件,儘早開始。
Which:什麼數據?測試用例設計的各類數據。
How:如何執行?結果怎樣?要據測試用例設計的步驟來執行,最後進行結果比較,肯定是否一致。若一致才能經過測試。

 

 

三、測試用例設計的基本原則
從兩個層次考慮測試用例:
(1)低層次——從單個測試用例看,衡量其描述的規範性、可理解性及可維護性條等。
(2)高層次——以知足某一個測試目標或測試任務來衡量一組測試用例的結構、設計思路和覆蓋率等;

測試用例的基本原則:
(1)表明性。測試用例能表明並覆蓋各類合法的或不合法、邊界內的或越界的以及極限的輸入數據、操做和環境的設置。
(2)可斷定性。測試執行的結果的正確性是能夠斷定的。每個測試用例都應有相應的預期結果。
(3)可再現性。對於一樣的測試用例,系統執行的結果應當相同的,而且相同的測試的執行過程能夠反覆操做。

 

四、測試用例模板

 

 

 

 

 

 

2.3 軟件測試環境

一、什麼是測試環境
軟件測試環境就是軟件測試運行的平臺。包括系統的硬件、軟件和網絡等。

能夠用一公式來表示:
測試環境=硬件+軟件+網絡+數據

 

二、測試環境的搭建和維護
(1)機房環境的創建
(2)硬件環境的創建
(3)軟件環境的創建
(4)網絡環境的創建
(5)安全措施的實施

 

2.4 軟件測試人員的要求

一、軟件測試人員的角色與職責
測試人員的角色主要有四類:
(1)測試經理:主要負責測試隊伍的內部管理以及與外部人員、客戶的交流工做,包括進度管理、風險管理、資金管理、人力資源管理、交流管理等。還有測試計劃書的編寫、測試總結報告的概括等。必須具備項目經理的知識和技能。
(2)測試設計師:主要根據軟件開發各階段產生的設計文檔來設計各階段的測試用例。
(3)測試文檔審覈師:主要負責前置測試,包括對各個階段的分析與設計文檔進行審覈,如:需求說明書、概要與詳細設計說明書等。
(4)測試工程師:對測試設計師設計的測試用例分階段完成測試工做。

 

二、軟件測試人員的基本素質要求
基本素質要求以下:
(1)具有計算機軟件測試的基本理論知識
(2)熟悉開發工具和平臺
(3)掌握測試工具的使用
(4)善於學習,理解與概括
(5)耐心、細緻、工做態度好

 

 

 

相關文章
相關標籤/搜索