上一篇咱們講了軟件工程的介紹,這一篇介紹軟件質量,你們都知道在軟件過程的不一樣階段修復軟件缺陷的代價是不一樣的,總的來講越早修復代價越低,所以咱們應該早早的開始關注軟件的質量問題。
1.軟件質量的IEEE定義:
系統、部件或者過程知足規定需求的程度。
系統、部件或者過程知足顧客或者用戶須要或指望的程度
ANSI定義:
軟件產品中能知足用戶給定需求的所有特性的集合
軟件具備所指望的各類屬性組合的程度
用戶主觀得出的軟件是否知足其綜合指望的程度
決定所用軟件在使用中將知足其綜合指望程度的軟件合成特性
軟件質量的方向:
(1)軟件結構方面
(2)功能與性能方面
(3)開發標準與文檔方面
2.SQA這個概念想必你們都不陌生,不少公司將軟件測試部門或者軟件測試人員稱爲SQA,雖然這個稱呼不太專業,但也包含了SQA的大部份內容。
SQA:軟件質量保證,全稱:Software Quality Assurance
IEEE定義:
(1)一種有計劃的,系統化的行動模式,它是爲項目或者產品符合已有技術需求提供充分信任所必需的。
(2)設計用來評價開發或者製造產品的過程的一組活動,與質量控制有關。
是一種應用於整個軟件過程的保護性活動,它包含以下方面:
(1)一種質量管理方法
(2)有效的軟件工程技術(方法和工具)
(3)在整個軟件過程當中採用的正式技術複審
(4)一種多層次的軟件測試策略
(5)對軟件文檔及其修改的控制
(6)保證軟件聽從軟件開發標準的規程
(7)度量和報告機制
3.千年蟲問題想必你們都據說過,正是由於程序員的疏忽,沒有人去了解程序的質量,致使出現這樣的問題。由於技術、文檔,分析和需求致使程序出問題的狀況比比皆是,所以誕生了軟件測試這個專門度量軟件質量的活動。
軟件測試IEEE定義:軟件測試是使用人工或自動手段來運行或測定某個系統的過程,檢驗它是否知足規定的需求或者弄清楚預期結果與實際結果之間的差異。
軟件測試的藝術中定義:
(1)測試是程序的執行過程,目的在於發現錯誤
(2)一個好的測試用例能夠發現至今還沒有發現的錯誤
(3)一個成功的測試能發現至今未發現的錯誤
4.軟件測試方法
(1)靜態測試和動態測試
(2)黑盒測試,白盒測試和灰盒測試
(3)基於開發階段的測試方法