本篇用到的英文:
【correctness】正確度
【completeness】完全度
【quality】質量
【sqa】software quality assurance
軟體質量保證
【verification】驗證
【validation】確認
軟體測試定義是:為了發現程式中的錯誤而執行程式的過程
它是幫助識別開發完成(中間或最終的版本)的計算機軟體(整體或部分)的正確度(correctness)、完全度(completeness)和質量(quality)的軟體過程;是sqa(softwarequality assurance)的重要子域。
軟體測試的目標:
(1)測試是為了發現程式中的錯誤而執行程式的過程;
(2)好的測試方案是極可能發現迄今為止尚未發現的錯誤的測試方案;
(3)成功的測試是發現了至今為止尚未發現的錯誤的測試。
軟體測試的內容:
軟體測試主要工作內容是驗證(verification)和確認( validation),下面分別給出其概念:
驗證(verification)是保證軟體正確地實現了一些特定功能的一系列活動,即保證軟體做了你所期望的事情。(dothe right thing)
1.確定軟體生存週期中的乙個給定階段的產品是否達到前階段確立的需求的過程;
2.程式正確性的形式證明,即採用形式理論證明程式符號設一計規約規定的過程;
3.評市、審查、測試、檢查、審計等各類活動,或對某些項處理、服務或檔案等是否和規定的需求相一致進行判斷和提出報告。
確認(validation)是一系列的活動和過程,目的是想證實在乙個給定的外部環境中軟體的邏輯正確性。即保證軟體以正確的方式來做了這個事件(doit right)
1.靜態確認,不在計算機上實際執行程式,通過人工或程式分析來證明軟體的正確性;
2.動態確認,通過執行程式做分析,測試程式的動態行為,以證實軟體是否存在問題。
軟體測試的物件不僅僅是程式測試,軟體測試應該包括整個軟體開發期問各個階段所產生的文件,如需求規格說明、概要設計文件、詳細設計文件,當然軟體測試的主要物件還是源程式。
從不同的角度出發,軟體測試可以劃分為不同的分類:
從是否關心軟體內部結構和具體實現的角度劃分
a.白盒測試
b.黑盒測試
c.灰盒測試
從是否執行程式的角度
a.靜態測試
b.動態測試。
從軟體開發的過程按階段劃分有
a.單元測試
b.整合測試
c.確認測試
d.驗收測試
e.系統測試
什麼是軟體測試?
1983,ieee提出的軟體工程標準術語,定義為 使用人工和自動手段執行或測試某個系統的過程,其目的在於檢測它是否滿足規定的需求或是弄清楚預期結果與實際結果之間的差別。g.j.myers認為 測試時為了發現錯誤而執行程式的過程。好的測試方案是發現迄今為止尚未發現的錯誤的測試方案。成功的測試是發現了迄...
軟體測試 1 什麼是軟體測試?
軟體測試 qa 的定義無比簡單 所謂軟體測試,就是乙個或者一系列過程,確保軟體可以完成了該完成的功能,不執行不該有的操作。身為開發,恐怕沒有幾個人會樂於常常和測試打交道。原因很簡單,無非就是測試會站在乙個第三者的角度上將一些你寫的 中一些 他認為的 漏洞揪出來,而且像討債一樣催著你趕快fix。而很多...
軟體測試(1) 什麼是軟體測試?
本篇博文主要討論以下幾個問題 1 為什麼要開展軟體檢測活動?2 什麼是軟體測試?3 如何理解軟體測試?4 軟體測試和開發的關係?5 軟體測試和質量保證的關係?首先舉兩個例子,2002年7月,首都機場由於軟體缺陷影響通訊傳輸,造成航班無法起飛,大批遊客滯留機場。還有,2008年北京奧運會官方 第二階段...