軟件質量工程體系
軟件質量控制和軟件質量保證體系
1.軟件質量控制的基本方法:
- 目標問題度量法:規定目標,度量收集
- 風險管理法:識別風險,評估,風險排序,制定計划(避免,弱化,承擔,轉移)
- PDCA質量控制法:Plan,Do,Check,Action
(我國最常用模型:基於PDCA的全面服務質量管理)
2.軟件質量保證體系SQA:
評審審計驗證是否合乎標准;項目開始時制定計划、標准和過程;使軟件項目滿足機構方針的要求
CMM 2級的一個重要關鍵作用區域,CMM中重要角色
目的是向管理者提供對軟件全面監控的手段。
※軟件質量保證(SQA)實現的具體實現方法:
定義項目類型和生命周期
建立SQA計划,確定項目審計內容
生成SQA計划
審計SQA報告
獨立匯報
軟件質量保證(SQA)基本目標和任務:
目標:
- 軟件質量保證活動是有計划的
- 軟件產品和活動與適用的標准、規程和需求的符合性要得到客觀驗證
- 相關小組和個人要被告知軟件質量保證的活動和結果
- 高級管理者處理在軟件項目內部不能解決的不符合問題
任務:
- 提供成員與管理階層客觀洞察流程與相關工作產品
2.實施CMM必要性:
- 實施CMM是改進軟件質量的有效方法:控制軟件生產過程,提高軟件生產者組織性和軟件生產者個人能力的有效合理的方法。
- 主要涉及領域因素:需求工程,軟件復用等
CMM核心:把軟件開發視為一個過程,監控研究,科學化標准化……
CMM五個層次:
初始級:過程沒有定義,控制很差,反應式
可重復級:
已定義級:
已管理級:
優化級:
3.軟件質量度量:
使用軟件質量度量定義CMM:一個系統、組件或過程符合特定需求/客戶用戶要求或期望的程度。
(軟件質量:人、過程和技術的函數)。
4.影響軟件質量的因素:
- 正確性
- 可靠性
- 效率
- 完整性
- 可用性
- 可維護性
5.質量保證模型:
McCall模型
Boehm模型:着手於軟件總體功效
FURPS模型
ISO9126
6.軟件配置管理:
項目計划階段:
配置控制委員會(CCB)根據項目的開發計划確定各個里程碑和開發策略
配置管理員(CMO)根據配置控制委員會(CCB)的規划,指定配置管理計划交給配置控制委員會(CCB)審核
配置控制委員會(CCB)通過配置管理計划后交項目經理批准,發布實施。
項目開發維護階段:
主要由配置管理員(CMO)完成的管理和維護工作
系統集成員(SIO)和開發人員(DEV)具體執行軟件配置管理策略
變更流程
常用工具:VSS(可分為三個級別)
7.軟件可靠性度量和測試
軟件可靠性:規定條件和時間內,軟件不引起故障的能力
不但與軟件中存在的缺陷有關,也與系統輸入和系統使用有關。
軟件質量特性中重要的固有特性和關鍵因素。(反應了用戶的質量觀點)
軟件可靠性模型:Musa,Shooman,Coel-Okumoto,測試成功模型,威布爾模型。
提高軟件可靠性的方法和技術:
可靠性核心質量標准,指定標准,可分為產品質量,過程質量。
確定質量度量,選擇開發方法,軟件重用,使用開發管理工具,加強測試,容錯設計。
8.軟件質量標准:
五個級別:國際標准,國家標准,行業標准,企業標准,項目規范。
ISO9001和9000-3
CMM,CMMI
IEEE
軟件評審:
什么是軟件評審?
- 關於審查和批准項目計划,項目變更和工作進展評價的一個步驟。
為什么需要進行軟件評審?
- 提高項目的生產率:早期發現錯誤,減少返工和測試時間
- 改善軟件的質量
- 使開發團隊的其他成員更加熟悉產品開發過程
- 通過評審標志着軟件開發的一個階段完成
- 生產出更易維護的軟件。主因:評審者熟悉;生成了證明文檔;
軟件評審包括:
- 管理評審
- 技術評審
- 文檔評審
- 過程評審
軟件評審主要有哪些方法?異同點是什么?
- 特別檢察
- 輪查
- 走查
- 團隊評審
- 檢視
測試計划的目的是什么?測試計划文檔的內容包括什么?哪些是最重要的?
- 目標:定義每個測試階段的目標
- 結束准則:規定每個測試階段合適可以結束
- 進度:每個階段都要有時間表
- 責任:規定誰來設計
- 工具:確定使用的測試工具
- 計算機時間:每個測試階段所需的計算機時間
- 硬件配置:如果需要硬件設備的話
- 集成:測試計划的一部分如何組裝在一起的方法
- 跟蹤步驟:必須跟蹤測試中的方方面面
- 調試步驟:必須制定上報已發現錯誤跟蹤錯誤修改進程以及將修改部分加到系統中的機制
- 回歸測試:判斷軟件改進過程中是否引起了程序其他方面的退步
提高軟件可靠性的方法和技術:
- 建立以可靠性為核心的質量標准
- 選擇開發方法
- 軟件重用
- 使用開發管理工具
- 加強測試
- 容錯設計
影響軟件質量的因素:
- 正確性
- 可靠性
- 可用性
- 效率
- 可移植性
- 可維護性
簡述自動化測試的優點,並例舉兩種以上的自動化測試工具軟件
- 對程序的回歸測試更方面:由於回歸測試的動作和用例是完全設計好的,測試希望的值也是完全可以預料的,將回歸測試自動運行,極大提高測試效率
- 可以運行更繁瑣的測試:可以在較少的時間運行更多的測試
- 可以執行一些手工測試困難或者不可能進行的測試:例如大量用戶的測試
- 更好的利用資源:提高准確性和測試人員的積極性
- 測試具有一致性和重復性:測試是自動執行的,可以保障,從而達到可重復
- 測試端復用性。
- 增加軟件信任度。
C++ Test 和 Visual Unit
軟件過程度量的目標、對象、方法和結果
- 軟件過程度量的目標:對軟件過程的行為進行目標管理,在度量的基礎上對軟件過程進行控制,評價和改善軟件過程度量最終為項目管理和軟件過程管理服務。
- 對象:主要包括三個:工作產品、軟件項目和過程。
- 軟件過程度量的方法:對軟件過程度量的方法是過程性方法,軟件過程行為是事件行為,對過程的度量也具有過程性了,從制定度量目標到收集數據分析表示了典型的度量階段。
- 軟件度量的結果:軟件產品的復雜度模型和可靠性模型。