fbpx
维基百科

軟體驗證

軟體驗證(software verification)是軟體工程中的一部份,目的在確認軟體滿足預期的需求。

較廣的定義及分類 编辑

廣義定義的軟體驗證類似软件测试。有二種驗證的方式:

  • 動態驗證,也稱為實驗動態測試英语dynamic testing或測試。會執行软體,動態驗證可以確認是否有程序错误
  • 靜態驗證,也稱為靜態程序分析或原始碼分析或分析。靜態驗證可以確認程式的正确性。不過有可能會出現軟體實際執行結果和靜態分析不一致的情形。

動態驗證(測試、實驗) 编辑

動態驗證是在執行軟體時進行,並且動態的確認其行為是否正確。一般會稱為軟體測試階段。驗證本身就是評審的過程。依照測試範圍的不同,可以區分出幾種不同的測試:

  • 小範圍測試:針對單一函式或是類別的測試(单元测试
  • 大範圍測試:針對一組類別進行的測試,例如
    • 模組測試(單一模組)
    • 集成测试(幾個模組)
    • 系統測試(整個系統)
  • 验收测试:針對軟體是否符合允收條件的正式測試
    • 機能性測試
    • 非機能性測試(性能、壓力測試

軟體動態驗證的目的透過一個活動(例如用醫療軟體來分析生醫資料)來找到軟體問題,也可以透過一個或是多個活動的重覆性性能(例如網頁伺服器的壓力測試、確認產品測試時的情形是否和一開始測試時相同)。

靜態驗證(分析) 编辑

靜態驗證是在軟體執行之前檢查原始碼,來檢查軟體是否符合需求。例如:

透過分析進行驗證,此方式可以用檢測、數學計算、邏輯推導、以及教科書上建議的方式或是其他廣為接受的方式來進行驗證。分析包括取樣、找到量測資料和觀察到測試結果之間的相關性,再配合計算軟體符合需求的期望值高低。

較窄的定義 编辑

若要作較精準的定義,軟體的驗證(verification)只包括靜態測試,是要應用在製品(artifacts)上。(整個軟體產品)的確認(validation)就等於動態測試,是要應用在運行的軟體產品上(除了需求外,不會針對製品進行確認)。不過需求確認(requirements validation)可以是動態的,也可以是靜態的。

和軟體確認的比較 编辑

軟體驗證常會和軟體確認(software validation)混淆。軟體驗證及確認之間的差異如下:

  • 軟體驗證會確保「以正確的方式製造產品」,例如房屋符合藍圖的中的設計。
  • 軟體確認會確保「製造正確的產品」,例如房屋符合客戶的期待及需求。

相關條目 编辑

參考資料 编辑

  • IEEE: SWEBOK: Guide to the Software Engineering Body of Knowledge
  • Carlo Ghezzi, Mehdi Jazayeri, Dino Mandrioli: Fundamentals of Software Engineering, Prentice Hall, ISBN 0-13-099183-X
  • Alan L. Breitler: A Verification Procedure for Software Derived from Artificial Neural Networks, Journal of the International Test and Evaluation Association, Jan 2004, Vol 25, No 4.
  • Vijay D'Silva, Daniel Kroening, Georg Weissenbacher: A Survey of Automated Techniques for Formal Software Verification (页面存档备份,存于互联网档案馆). IEEE Trans. on CAD of Integrated Circuits and Systems 27(7): 1165-1178 (2008)

軟體驗證, 此條目已列出參考文獻, 但因為沒有文內引註而使來源仍然不明, 2020年5月28日, 请加上合适的文內引註来改善这篇条目, software, verification, 是軟體工程中的一部份, 目的在確認軟體滿足預期的需求, 目录, 較廣的定義及分類, 動態驗證, 測試, 實驗, 靜態驗證, 分析, 較窄的定義, 和軟體確認的比較, 相關條目, 參考資料較廣的定義及分類, 编辑廣義定義的類似软件测试, 有二種驗證的方式, 動態驗證, 也稱為實驗, 動態測試, 英语, dynamic, testing,. 此條目已列出參考文獻 但因為沒有文內引註而使來源仍然不明 2020年5月28日 请加上合适的文內引註来改善这篇条目 軟體驗證 software verification 是軟體工程中的一部份 目的在確認軟體滿足預期的需求 目录 1 較廣的定義及分類 2 動態驗證 測試 實驗 3 靜態驗證 分析 4 較窄的定義 5 和軟體確認的比較 6 相關條目 7 參考資料較廣的定義及分類 编辑廣義定義的軟體驗證類似软件测试 有二種驗證的方式 動態驗證 也稱為實驗 動態測試 英语 dynamic testing 或測試 會執行软體 動態驗證可以確認是否有程序错误 靜態驗證 也稱為靜態程序分析或原始碼分析或分析 靜態驗證可以確認程式的正确性 不過有可能會出現軟體實際執行結果和靜態分析不一致的情形 動態驗證 測試 實驗 编辑動態驗證是在執行軟體時進行 並且動態的確認其行為是否正確 一般會稱為軟體測試階段 驗證本身就是評審的過程 依照測試範圍的不同 可以區分出幾種不同的測試 小範圍測試 針對單一函式或是類別的測試 单元测试 大範圍測試 針對一組類別進行的測試 例如 模組測試 單一模組 集成测试 幾個模組 系統測試 整個系統 验收测试 針對軟體是否符合允收條件的正式測試 機能性測試 非機能性測試 性能 壓力測試 軟體動態驗證的目的透過一個活動 例如用醫療軟體來分析生醫資料 來找到軟體問題 也可以透過一個或是多個活動的重覆性性能 例如網頁伺服器的壓力測試 確認產品測試時的情形是否和一開始測試時相同 靜態驗證 分析 编辑靜態驗證是在軟體執行之前檢查原始碼 來檢查軟體是否符合需求 例如 程式慣例 英语 Code conventions 驗證 負面實務 反面模式 檢測 計算軟體度量 形式验证透過分析進行驗證 此方式可以用檢測 數學計算 邏輯推導 以及教科書上建議的方式或是其他廣為接受的方式來進行驗證 分析包括取樣 找到量測資料和觀察到測試結果之間的相關性 再配合計算軟體符合需求的期望值高低 較窄的定義 编辑若要作較精準的定義 軟體的驗證 verification 只包括靜態測試 是要應用在製品 artifacts 上 整個軟體產品 的確認 validation 就等於動態測試 是要應用在運行的軟體產品上 除了需求外 不會針對製品進行確認 不過需求確認 requirements validation 可以是動態的 也可以是靜態的 和軟體確認的比較 编辑主条目 軟體驗證及確認 軟體驗證常會和軟體確認 software validation 混淆 軟體驗證及確認之間的差異如下 軟體驗證會確保 以正確的方式製造產品 例如房屋符合藍圖的中的設計 軟體確認會確保 製造正確的產品 例如房屋符合客戶的期待及需求 相關條目 编辑軟體驗證及確認 運行時驗證 英语 Runtime verification 電子設計自動化參考資料 编辑IEEE SWEBOK Guide to the Software Engineering Body of Knowledge Carlo Ghezzi Mehdi Jazayeri Dino Mandrioli Fundamentals of Software Engineering Prentice Hall ISBN 0 13 099183 X Alan L Breitler A Verification Procedure for Software Derived from Artificial Neural Networks Journal of the International Test and Evaluation Association Jan 2004 Vol 25 No 4 Vijay D Silva Daniel Kroening Georg Weissenbacher A Survey of Automated Techniques for Formal Software Verification 页面存档备份 存于互联网档案馆 IEEE Trans on CAD of Integrated Circuits and Systems 27 7 1165 1178 2008 取自 https zh wikipedia org w index php title 軟體驗證 amp oldid 68044805, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。