概括地說,軟件質量就是“軟件與明確地和隱含地定義的需求相一致的程度”。更具體地說,軟件質量是軟件與明確地敘述的功能和性能需求、文檔中明確描述的開發標準以及任何專業開發的軟件產品都應該具有的隱含特征相一致的程度。從管理角度對軟件質量進行度量,可將影響軟件質量的主要因素劃分為六個部分特性(根據GB/T16260.1)功能性,可靠性,易用性,效率,維護性與可移植性。其中功能性包括適合性,準確性,互用性,依從性,安全性;可靠性包括故障容許度,易恢復性,成熟性;易用性包括易學性,易理解性,易操作性;效率包括資源特性和時間特性;維護性包括可測試性,可修改性,穩定性和易分析性;可移植性包括適應性,易安裝性,一致性和可替換性的六個特征及若干子特征。
定義
1.正確性(Correctness):系統滿足規格說明和用戶目標的程度,即在預定環境下能正確地完成預期功能的程度;
2.健壯性(Robustness):在硬件發生故障、輸入的數據無效或操作錯誤等意外環境下,系統能做出適當響應的程度;
3.效率(Efficiency):為了完成預定的功能,系統需要的計算資源的多少;
4.完整性(Efficiency)或安全性(Security):對未經授權的人使用軟件或數據的企圖,系統能夠控制(禁止)的程度;
5.可用性(Usability):系統在完成預定應該完成的功能時令人滿意的程度;
6.風險(Risk):按預定的成本和進度把系統開發出來,并且為用戶所滿意的概率;
7.可理解性(Comprehensibility):理解和使用該系統的容易程度;
8.可維修性(Maintainability):診斷和改正在運行現場發現的錯誤所需要的工作量的大小;
9.靈活性(Maintainability)或適應性(Adaptability):修改或改進正在運行的系統需要的工作量的多少;
10.可測試性(Adaptability):軟件容易測試的程度;
11.可移植性(Portability):把程序從一種硬件配置和(或)軟件系統環境轉移到另一種配置和環境時,需要的工作量多少。有一種定量度量的方法是:用原來程序設計和調試的成本除移植時需用的費用;
12.可再用性(Reusability):在其他應用中該程序可以被再次使用的程度(或范圍);
13.互運行性(Interoperability):把該系統和另一個系統結合起來需要的工作量的多少。
標準
(1)軟件需求是度量軟件質量的基礎,與需求不一致就是質量不高。
(2)指定的標準定義了一組指導軟件開發的準則,如果沒有遵守這些準則,幾乎肯定會導致質量不高。
(3)通常,有一組沒有顯式描述的隱含需求(如期望軟件是容易維護的)。如果軟件滿足明確描述的需求,但卻不滿足隱含的需求,那么軟件的質量仍然是值得懷疑的。
QA和QC
QA即英文Quality Assurance的簡稱,中文意思是質量保證;
QC即英文Quality ctrl的簡稱,中文意義是質量控制。
QA和QC的主要區別前者是保證產品質量符合規定,后者是建立體系并確保體系按要求運作,以提供內外部的信任。同時QC和QA又有相同點:即QC和QA都要進行驗證,如QC按標準檢測產品就是驗證產品是否符合規定要求,QA進行內審就是驗證體系運作是否符合標準要求,又如QA進行出貨稽核和可靠性檢測,就是驗證產品是否已按規定進行各項活動,是否能滿足規定要求,以確保工廠交付的產品都是合格和符合相關規定的。
軟件開發
需求分析
確保客戶所要求的系統是可行的。
確保客戶指定的需求確實能夠滿足他的真正 要求。
避免開發者和客戶之間的誤解。
向用戶提供為滿足他所提出的需求而實際構建的適當軟件系統。
軟件規格說明
通過建立需求跟蹤文檔,確保規格說明書與系統需求保持一致。
確保規格說明書能適當地改進系統的靈活性、可維護性以及性能。
確保已建立了測試策略。
確保已建立了現實的開發進度表,包括 預定的評審。
確保已為系統設計了正式的變更規程。
設計
確保已建立用于描述設計的標準,并且確保遵循這些標準。
確保適當地控制并用文檔記錄對設計進行的變更。
確保在系統設計組件已按照商定的準則得到批準之后才開始編碼。
確保對設計的評審按照進度進行。
確保代碼遵循已建立的風格、結構和文檔標準。
確保代碼經過適當測試和集成,同時對編碼模塊的修改得到適當的標識。
查看代碼編寫是否遵循既定的進度。
確保代碼評審按照進度進行。
測試
確保測試計劃的建立和遵循。
確保創建的測試計劃能夠滿足所有系統規格說明書的要求。
確保經過測試和返工后軟件與規格說明書保持一致。
維護
確保代碼和文檔的一致性。
確保對已建立的變更控制過程進行監測,包括將變更集成到軟件的產品版本中的過程。
確保對代碼的修改遵循編碼標準,并且要對其進行評審,不要破壞整個代碼結構。
參考資料 >