軟件驗證及確認
在軟件專案管理、軟件工程及軟件測試中,驗證及確認(verification and validation,簡稱V&V)是指檢查軟件是否符合規格及其預期目的的程式。驗證及確認也被視為一種軟件質素管理,是軟件開發過程的一部份,一般歸類在軟件測試中。
驗證及確認有時會由公正的第三方單位進行,此情形下的驗證及確認稱為獨立驗證及確認,簡稱IV&V。
定義
[編輯]確認(validation)的目的是檢查產品設計是否符合其預期的目的,軟件確認的目的是檢查軟件是否符合用戶的需求而言,可以由動態檢查或是其他方式的審查來達成。
依照能力成熟度模型(CMMI-SW v1.1)的定義:
- 確認(validation):是在特定開發階段中,評估軟件是否符合階段開始前所定義條件的程式(IEEE-STD-610)。
- 驗證(verification): 是在開發階段後,評估軟件是否符合規格需求的程式(IEEE-STD-610)。
換句話說,程式確保產品符合客戶需求,而驗證程式確保產品符合要求及設計規格。確認程式確保「製造出正確的產品」(you built the right thing),也就是符合客戶需求的產品,而驗證程式確保「以正確的方式製造產品」(you built it right)。
白話來說,對於抓老鼠為目的:
- Validation
- 黑貓白貓能抓老鼠的就是好貓。
- Verification
- 預先定義貓的健康標準,以此標準飼養符合條件的高質素成貓,期待其能抓老鼠。(期待而不保證)
- 確認是評估建模或模擬及其相關資料是否準確表達其預期機能的程式[1]
- 資格認可是認證建模與模擬可以用在特定用途的正式認證過程[1]。
- 驗證是評估電腦建模或模擬及其相關資料是否準確描述開發者概念描述及規格的程式[1]。
相關概念
[編輯]驗證及確認都是屬於軟件質素保證的一部份,但只靠驗證及確認無法確保軟件質素,需配合計劃、可追蹤性、組態管理及其他軟件工程的概念才能確保軟件質素。
分類
[編輯]對於要求完美效能的任務關鍵系統,會使用形式方法確認系統的正確性,不過形式方法的成本相當的高[2],若是非任務關鍵系統,一般會使用其他的驗證及確認方式,例如句法方法等。
測試用例
[編輯]測試用例是驗證及確認過程中使用的工具,測試用例一組條件或變數,測試者根據它來確定應用軟件或軟件系統是否正確工作。
測試用例是為了驗證而準備,其目的是評估後續建構產品的程式是否正確。
測試用例是為了確認而執行,是評估產品是否依照用戶的需求而設計及製造的程式,若在軟件開發生命週期的前面,會用其他方法(例如軟件評審)進行確認。
監管環境
[編輯]有一些產業的驗證及確認需符合相關法令的相容性要求,一般會由政府機構[3][4]或是產業主管部份進行指導。例如美國食品藥品監督管理局要求醫療裝置的軟件及補丁均需經過確認的程式。[5]
有關條目
[編輯]參考資料
[編輯]- ^ 1.0 1.1 1.2 Department of Defense Documentation of Verification, Validation & Accreditation (VV&A) for Models and Simulations. Missile Defense Agency. 2008.
- ^ M. Archer, C. Heitmeyer and E. Riccobene. Proving invariants of I/O automata with TAME. Automated Software Engineering, 9, 201-232 (2002).
- ^ General Principles of Software validation; Final Guidance for Industry and FDA Staff (PDF). Food and Drug Administration. 2002-01-11 [2009-07-12]. (原始內容存檔 (PDF)於2017-08-30).
- ^ Guidance for Industry: Part 11, Electronic Records; Electronic Signatures — Scope and Application (PDF). Food and Drug Administration. August 2003 [2009-07-12]. (原始內容存檔 (PDF)於2010-07-30).
- ^ Guidance for Industry: Cybersecurity for Networked Medical Devices Containing Off-the Shelf (OTS) Software (PDF). Food and Drug Administration. 2005-01-14 [2009-07-12]. (原始內容存檔 (PDF)於2018-12-30).