目標
軟體質量保證的關注點集中在於一開始就避免缺陷的產生。質量保證主要目標是:
(1)事前預防工作,例如,著重於缺陷預防而不是缺陷檢查。
(2)儘量在剛剛引入缺陷時即將其捕獲,而不是讓缺陷擴散到下一個階段。
(3)作用於過程而不是最終產品,因此它有可能會帶來廣泛的影響與巨大的收益。
(4)貫穿於所有的活動之中,而不是只集中於一點。
任務
軟體質量保證的目標是以獨立審查的方式,從第三方的角度監控軟體開發任務的執行,就軟體項目是否正確遵循已制定的計畫、標準和規程給開發人員和管理層提供反映產品和過程質量的信息和數據,提高項目透明度,同時輔助軟體工程取得高質量的軟體產品。
軟體質量保證的主要作用是給管理者提供預定義的軟體過程的保證,因此SQA組織要保證如下內容的實現:選定的開發方法被採用、選定的標準和規程得到採用和遵循、進行獨立的審查、偏離標準和規程的問題得到及時的反映和處理、項目定義的每個軟體任務得到實際的執行。
軟體質量保證的主要任務是以下三個方面:
(1)SQA審計與評審。SQA審計包括對軟體工作產品、
軟體工具和設備的
審計,評價這幾項內容是否符合組織規定的標準。SQA評審的主要任務是保證軟體工作組的活動與預定的軟體過程一致,確保軟體過程在軟體產品的生產中得到遵循。
(2)SQA報告。SQA人員應記錄工作的結果,並寫入到報告之中,發布給相關的人員。
SQA報告的發布應遵循三條原則:SQA和高級管理者之間應有直接溝通的渠道;SQA報告必須發布給軟體工程組,但不必發布給項目管理人員;在可能的情況下向關心軟體質量的人發布SQA報告。
(3)處理不符合問題。這是SQA的一個重要的任務,SQA人員要對工作過程中發現的問題進行處理及時向有關人員及高級管理者反映。
措施
軟體質量保證是軟體工程管理的重要內容,軟體質量保證主要包括以下措施。
1)套用好的技術方法
質量控制活動要自始至終貫徹於開發過程中,軟體開發人員應該依靠適當的技術方法和工具,形成高質量的規格說明和高質量的設計,還要選擇合適的軟體開發環境來進行軟體開發。
2)測試軟體
軟體測試是質量保證的重要手段,通過測試可以發現軟體中大多數潛在的錯誤。應當採用多種測試策略,設計高效的檢測錯誤的測試用例進行軟體測試。但是軟體測試並不能保證發現所有的錯誤。
3進行正式的技術評審
在軟體開發的每個階段結束時,都要組織正式的
技術評審。由技術人員按照規格說明和設計,對軟體產品進行嚴格的評審、審查。多數情況下,審查能有效地發現軟體中的缺陷和錯誤。國家標準要求開發單位必須採用審查、文檔評審、設計評審、審計和測試等具體手段來控制質量。
4標準的實施
用戶可以根據需要,參照國家標準、國際標準或行業標準,制定軟體工程實施的規範。一旦形成軟體質量標準,就必須確保遵循它們。在進行技術審查時,應評估軟體是否與所制定的標準一致。
5)控制變更
在軟體開發或維護階段,對軟體的每次變動都有引入錯誤的危險。如修改代碼可能引入潛在的錯誤;修改數據結構可能使軟體設計與數據不相符;修改軟體時文檔沒有準確及時地反映出來等都是維護的副作用。因而必須嚴格控制軟體的修改和變更。控制變更是通過對變更的正式申請、評價變更的特徵和控制變更的影響等直接地提高軟體質量。
6)程式正確性證明
程式正確性證明的準則是證明程式能完成預定的功能。
7)記錄、保存和報告軟體過程信息
在軟體開發過程中,要跟蹤程式變動對軟體質量的影響程度。記錄、保存和報告軟體過程信息是指為軟體質量保證收集信息和傳播信息。評審、檢查、控制變更、測試和其他軟體質量保證活動的結果必須記錄、報告給開發人員,並保存為項目歷史記錄的一部分。
步驟
軟體質量保證實施的五個步驟:
(1)目標。以用戶需求和開發任務為依據,對質量需求準則、質量設計準則的質量特性設定質量目標進行評價。
(2)計畫。設定適合於待開發軟體的評測檢查項目,一般設定20-30個。
(3)執行。在開發標準和質量評價準則的指導下,製作高質量的規格說明書和程式。
(4)檢查。以計畫階段設定的質量評價準則進行評價,算出得分,以圖形的形式表示出來,比較評價結果的質量得分和質量目標,確定是否合格。
(5)改進。對評價發現的問題進行改進活動,重複計畫到改進的過程直到開發項目完成。