
軟體質量管理 - 簡介
高質量軟體是指一個基本上沒有錯誤或缺陷,按時並在指定預算內交付,滿足需求和/或期望,並且可維護的軟體。在軟體工程的背景下,軟體質量既反映了**功能質量**,也反映了**結構質量**。
**軟體功能質量** - 它反映了軟體根據功能需求或規範滿足給定設計的程度。
**軟體結構質量** - 它處理支援功能需求交付的非功能需求,例如健壯性或可維護性,以及軟體生產的正確程度。
**軟體質量保證** - 軟體質量保證 (SQA) 是一套活動,旨在確保軟體工程過程中的質量,最終產生高質量的軟體產品。這些活動建立和評估生產產品的過程。它涉及以過程為中心的行動。
**軟體質量控制** - 軟體質量控制 (SQC) 是一套活動,旨在確保軟體產品的質量。這些活動側重於確定實際生產產品的缺陷。它涉及以產品為中心的行動。
軟體質量的挑戰
在軟體行業,與其他工業產品製造商通常的做法不同,開發人員永遠不會宣告軟體沒有缺陷。這種差異是由於以下原因造成的。
產品複雜性
這是產品允許的操作模式的數量。通常,工業產品只允許少於幾千種操作模式,其機器設定組合不同。但是,軟體包允許數百萬種操作可能性。因此,確保所有這些操作可能性都正確無誤是軟體行業面臨的一項重大挑戰。
產品可見性
由於工業產品是可見的,因此大部分缺陷可以在製造過程中檢測到。工業產品中零件的缺失也可以很容易地在產品中檢測到。然而,儲存在磁碟或 CD 上的軟體產品的缺陷是不可見的。
產品開發和生產過程
在工業產品中,可以在以下階段檢測到缺陷:
**產品開發** - 在此階段,設計師和質量保證 (QA) 員工檢查和測試產品原型以檢測其缺陷。
**產品生產計劃** - 在此階段,設計和準備生產過程和工具。此階段還提供檢查產品的機會,以檢測在開發階段未被注意到的缺陷。
**製造** - 在此階段,應用 QA 程式來檢測產品本身的故障。在製造初期檢測到的產品缺陷通常可以透過更改產品的設計或材料或生產工具來糾正,從而消除未來製造的產品中的此類缺陷。
然而,對於軟體而言,唯一可以檢測到缺陷的階段是開發階段。對於軟體而言,不需要產品生產計劃和製造階段,因為軟體副本的製造和軟體手冊的印刷是自動進行的。
下表顯示了影響軟體產品與其他工業產品缺陷檢測的因素。
特徵 | 軟體產品 | 其他工業產品 |
---|---|---|
複雜性 | 數百萬種操作選項 | 數千種操作選項 |
產品可見性 | 不可見產品,難以目測檢測缺陷 | 可見產品,有效目測檢測缺陷 |
開發和生產過程的性質 | 只能在一個階段檢測缺陷 | 可以在所有以下階段檢測缺陷
|
軟體的這些特性,如複雜性和不可見性,使得開發軟體質量保證方法及其成功實施成為一項極具專業性的挑戰。