軟件質量管理的目的是通過分析質量要素和質量目標,制定合適的質量計劃,整合技術評審、軟件測試、質量保證、缺陷(或問題)跟蹤等手段,保證軟件開發質量。
關鍵活動與流程
軟件質量管理的流程,關鍵活動是“制定質量計劃”、“技術評審”、“軟件測試”、“質量保證”、“缺陷跟蹤和問題跟蹤”。
在技術評審、軟件測試和質量保證活動中發現的缺陷和問題,都采用缺陷跟蹤工具和問題跟蹤工具來管理。
技術評審
技術評審的目的是通過同行專家對工作成果的評審進行討論,盡早地發現工作成果中的缺陷,并幫助開發人員及時消除缺陷,從而有效地提高產品的質量。
技術評審的主要好處有:
? 通過消除工作成果的缺陷而提高產品的質量。
? 技術評審可以在任何開發階段執行,不必等到軟件可以運行之際,越早消除缺陷就越能降低開發成本。
? 開發人員能夠及時地得到同行專家的幫助和指導,無疑會加深對工作成果的理解,更好地預防缺陷,一定程度上提高了開發生產率。
理論上講,為了確保產品的質量,產品的所有工作成果都應當接受技術評審。現實中,為了節約時間,允許人們有選擇地對工作成果進行技術評審。在制定質量計劃的時候,應該確定技術評審計劃。
技術評審是團體活動,一般地,機構沒有專職的技術評審人員,當需要技術評審的時候臨時組織人員就可以了。質量人員應當參與重要的技術評審會議,這樣既監督了技術評審,又加深對工作成果的了解。
軟件測試
技術評審和軟件測試的目的都是為了消除軟件的缺陷,兩者的主要區別是:(1)前者無需運行軟件,評審人員和作者把工作成果擺放在桌面上討論;(2)后者一定要運行軟件來查找缺陷。
技術評審在軟件測試之前執行,尤其是在需求開發和系統設計階段。相比而言,軟件測試的工作量通常比技術評審的大,發現的缺陷也更多。
軟件測試的主要工作有: ? 制定測試計劃 ? 設計測試用例 ? 執行測試 ? 缺陷跟蹤 ? 消除缺陷
質量保證
QA: Quality Assurance
質量保證的實質:檢查項目的“工作過程和工作成果”是否符合既定的規范。
符合規范的工作成果不見得就是高質量的,但是明顯不符合規范的工作成果十有八九是質量不合格的。
質量保證的要點:找出明顯不符合規范的工作過程和工作成果,及時指導開發人員糾正問題,切勿吹毛求疵或者在無關痛癢的地方查來查去。
質量人員在執行質量保證工作的時候,如果發現質量問題,應該立即記錄下來。最好使用問題跟蹤工具(或者缺陷跟蹤工具),有助于提高工作效率。
質量人員首先設法在項目內部解決已經發現的質量問題,與項目成員協商,給出解決措施。在項目內難以解決的質量問題,由上級領導給出解決措施。
開發QA/QC框架和測試內容:
? 工程單元測試框架
? 自動化的構建和發布結構
? QA/QC 白盒及黑盒測試,用戶驗收測試
? 系統級的端對端測試
? QA/QC 自動控制框架和腳本