软件质量保证与测试(秦航第二版)第二章
第二章 軟件質量工程體系
- 2.1 軟件質量控制的基本方法
- 2.1.1 軟件質量控制的基本概念
- 2.1.2 軟件質量控制的基本方法
- 2.2 軟件質量控制模型和技術
- 2.2.1 軟件質量控制模型
- 2.2.2 軟件質量控制模型參數
- 2.2.3 軟件質量控制的實施過程
- 2.2.4 軟件 質量控制技術
- 2.3 軟件質量保證體系
- 2.3.1 能力成熟模型(CMM)
- 2.3.2 軟件質量保證SQA
- 2.4 小結
2.1 軟件質量控制的基本方法
2.1.1 軟件質量控制的基本概念
· 軟件質量控制是一組由開發組織和使用的程序和方法,使用他們可在規定的資金投入和實踐限制的條件下,提供滿足客戶質量要求的軟件產品并持續不斷地改善開發過程和開發組織本身,以提高將來生產高質量軟件產品的能力。
根據這個定義,我們可以看到:
軟件質量控制是開發組織執行的一系列過程。
軟件質量控制的目標是以最低的代價獲得客戶滿意的軟件產品。
對于開發組織本身來說,軟件質量控制的另一個目標是每一次開發過程中學習以便使軟件質量控制一次比一次好。
軟件質量因素
Functionality
Reliability
Usability
Portability
Efficiency
Maintainbility
軟件質量體系
質量保證
軟件質量控制和質量管理
軟件質量控制是軟件質量管理的指向器和原動力。而軟件質量管理,則是軟件質量控制的執行機構。
2.1.2 軟件質量控制的基本方法
目標問題度量法
· 對一個項目的各個方面(產品、過程和資源)規定具體的目標,這些目標的表達應非常明確。
· 對每一個目標,要引出一系列能反映出這個目標是否達到要求的問題,并要求對這些問題進行回答。這些問題的答案將有助于使目標定量化。
· 將回答這些問題的答案映射到對軟件質量等級的度量上,根據這種度量得出軟件目標是否達到的結論,或確認哪些做好了,哪些仍需改善。
· 收集數據。要為收集和分析數據做出計劃。
目標問題度量法示例圖
· 目標:改善現場使用中的軟件產品的質量。
可維護性
· 問題:可維護性開發過程在預防和組織缺陷發生方面有效嗎?正在發生哪些缺陷?產生缺陷的原因是什么?
· 度量:產品的缺陷密度;按缺陷類別劃分的產品缺陷的發生頻率;缺陷產生的頻率分布以及缺陷發生所在階段的頻率分布。
準備開發–>進行開發–>運行維護–><–進行可維護性開發
風險管理法
根據經驗識別相關目要素的有關風險;
評估風險發生的概率和發生的代價;
按發生概率和代價劃分風險等級并排序;
在項目限定條件下選擇控制風險的技術并制定計劃;
執行計劃并監視進程;
持續評估風險狀態并采取正確的措施。
SEI風險管理模型
風險識別、風險分析、風險計劃、風險控制和風險跟蹤。
軟件項目各階段的風險
| 計劃 | 目標不清 范圍不清 缺少溝通 | 業務不清 缺乏可行性分析 |
| 設計 | 缺乏經驗 沒有變更控制計劃 | 項目計劃倉促(進度風險) 設計疏漏 |
| 實施 | 缺乏環境 設計錯誤 開發能力 項目范圍變更 進度變更 | 人員變更 內部溝通不暢 備選方案無效 測試計劃不充分或缺少經驗 |
| 發布 | 質量差 客戶不滿意 | 設備未按時到貨 資金不能及時回收 |
風險嚴重程度等級
| 危險 | 嚴重影響項目,可能導致項目取消或者直接失敗 | 10-9 |
| 高 | 影響進度,導致延期,客戶抱怨嚴重 | 8-7 |
| 中 | 影響預算或軟件性能差,客戶不滿意 | 6-5 |
| 低 | 影響進程但很快解決,客戶有些不滿 | 4-3 |
| 小 | 影響較小,客戶未察覺或認可 | 2-0 |
風險控制方法
在控制階段主要用到的風險控制方法有風險避免、風險弱化、風險承擔和風險轉移等,分別敘述如下:
· 風險避免,通過變更計劃消除風險的觸發條件,如采用成熟技術、增加資源、減少軟件范圍等。
· 風險弱化,降低風險發生的概率,如簡化流程、更多測試、開發原型系統等。
· 風險承擔,制定應急方案,隨機應變。
· 風險轉移,將風險發生的結果連同應對
2.2 軟件質量控制模型和技術
2.2.1 軟件質量控制模型
前基于PDCA的全面統計質量控制(TSQC)模型,是我國實際采用的模型之一。
2.2.2 軟件質量控制模型參數
產品
過程
資源
2.2.3 軟件質量控制的實施過程
預開發階段
開發階段
維護階段
軟件質量控制技術的特征
| 因果分析 | 分析原因,提出改進建議,預防出錯 | |
| 配置管理 | 控制軟件配置,防止引入新的錯誤 | |
| 獨立的確認與驗證 | 及時發現和糾正需求、設計、編碼的錯誤 | |
| 檢查 | 在測試之前檢查并糾正設計和編碼的缺陷 | 檢查和糾正設計、編碼缺陷 |
| 管理度量 | 檢查早期問題并調整質量控制參數 | |
| 性能工程 | 提供某種方法避免潛在的性能問題 | 度量實際性能、確認是否滿足需求 |
| 初樣 | 對早期需求和問題的確認,用戶界面設計確認 | |
| 可靠性建模 | 度量軟件的可靠性、并預測附加測試 | |
| 軟件審計 | 識別關鍵風險并提出規避方法 | 檢測超時、超支和質量缺陷 |
| SEI軟件能力評估 | 評估組織的開發過程、確定成熟度等級 |
部分軟件質量控制技術對質量參數的影響
軟件質量控制問題與質量控制技術
最終產品的質量需求是什么?
選擇什么樣的開發組織?
為預防軟件質量缺陷應該做點兒什么?
怎樣檢查軟件質量?
在檢查點應該獲得哪些信息?
2.2.4 軟件 質量控制技術
選擇控制技術需要考慮的因素
~有些技術是任何時候都要考慮的,盡管它們的使用等級可以變化。
~要考慮所選技術的效益并使需求、風險和限制得到平衡。
~有些技術是冗余的或是矛盾的,只需或只能選擇其一。
~有些技術是互補的,同時使用可能提高效益。
~控制技術的選用不能與約定相矛盾。
~有些技術只能用于特定的開發階段或特定的開發活動中。
~檢測性技術宜盡早使用,以防早期缺陷的產生和傳播。
~對于高風險的設計和程序,質量控制活動和檢查點的安排時間上不要隔太久。
2.3 軟件質量保證體系
軟件質量保證是建立一套有計劃,有系統的方法,來向管理層保證擬定出的標準、步驟、實踐和方法能夠正確地被所有項目所采用。軟件質量保證的目的是使軟件過程對于管理人員來說是可見的。
· 它通過對軟件產品和活動進行評審和審計來檢驗軟件是合乎標準的。
· 軟件質量保證組在項目開始時就一起參與建立計劃、標準和過程。
· 這些將使軟件項目滿足機構方針的需求。
SQA(軟件質量保證)是CMM(軟件能力成熟度)2級中的一個重要關鍵過程區域,它是貫穿于整個軟件過程的第三方獨立審查活動,在CMM的過程中充當重要角色
SQA的目的是向管理者提供對軟件過程進行全面監控的手段,包括評審和審計軟件產品和活動,驗證它們是否符合相應的規程和標準,同時給項目管理者提供這些評審和審計的結果。
因此,滿足SQA是達到CMM2級要求的重要步驟之一。
2.3.1 能力成熟模型(CMM)
能力成熟度模型
能力成熟度模型的產生和發展:
1987年,美國卡內基·梅隆大學軟件研究所(Software Engineering Institute,SEI)受美國國防部的委托,率先在軟件行業從軟件過程能力的角度提出了軟件過程成熟度模型(Capability Maturity Model,CMM),隨后在全世界推廣實施的一種軟件評估標準,用于評價軟件承包能力并幫助其改善軟件質量的方法。
~主要用于軟件開發過程和軟件開發能力的評價和改進。
~側重于軟件開發過程的管理以及工程能力的提高于評估。
CMM自1987年開始實施認證,現已成為軟件業最權威的評估認證體系。
CMM包括5個等級,共計18個過程域,52個目標,300多個關鍵實踐。
**軟件質量保證(SQA)**是建立一套有計劃、有系統的方法,來向管理層保證擬定出的標準、步驟、實踐、方法能夠正確地被所有項目所采用。
能力成熟度模型(CCM)
是對于軟件組織在定義、實施、度量、控制和改善其軟件過程的時間中各個發展階段的描述。
在美國國防部的指導下。由軟件開發團體和軟件工程學院及Carneigie Mellon大學共同開發的
CMM的核心:是把軟件開發視為一個過程,并根據這一原則對軟件開發和維護進行過程監控和研究,以使其更加科學化、標準化、使企業能夠更好地實現商業目標。
CMM的基本思想
CMM的基本思想是基于已有60多年歷史的產品質量原理。休哈特(Walter Shewart)在30年代發表了統計質量控制原理,戴明(W. Edwards)和朱蘭(Joseph Juran)的關于質量的著作又進一步發展和論證了該原理。
實際上,將質量原理變為成熟度框架的思想是克勞斯比(Philip Crosby),他在著作《質量免費》(Quality is Free)中首先提出,他的質量管理成熟度網絡描繪了采用質量實踐時的5個進化階段,而該框架后來又由IBM的拉迪斯(Rom Radice)和他的同事們在漢弗萊(Watts Humphrey)指導下進一步改進以適應軟件過程的需要。
1986年,漢弗萊將此成熟框架帶到了SEI并增加了成熟度等級的概念,將這些原理應用于軟件開發,發展成為軟件過程成熟度框架,形成了當前軟件產業界正在使用的框架。
實施CMM的必要性
實施CMM是改進軟件質量的有效方法:控制軟件生產過程、提高軟件生產者組織性和軟件生產者個人能力的有效合理的方法軟件工程和很多研究領域及實際問題有關,主要相關領域和因素有:
需求工程(Requirements Engineering)。
理論上,需求工程是應用已被證明的原理、技術和工具,幫助系統分析人員理解問題或描述產品的外在行為。
軟件復用(Software Reuse),定義為利用工程知識或方法,由一已存在的系統,來建造一新系統。這種技術,可改進軟件產品質量和生產率。
還有軟件檢查、軟件計量、軟件可靠性、軟件可維修性、軟件工具評估和選擇等
2.3.2 軟件質量保證SQA
SQA背景
SQA目標
SQA任務
SQA在軟件開發不同階段的目標
SQA活動
SQA的實施
2.4 小結
軟件質量控制是一組由開發組織使用的程序和方法,使用它可在規定的資金投入和時間限制的條件下,提供滿足客戶質量要求的軟件產品并持續不斷地改善開發過程和開發組織本身,以提高將來生產高質量軟件產品的能力。
用于軟件控制的一般性方法:目標問題度量法;風險管理法;PCDA質量控制法。其中在我國最常用的是模型是基于PDCA的全面服務質量管理(TSQC)模型。
軟件質量保證(SQA)是建立一套有計劃,有系統的方法,來向管理層保證擬定出的標準、步驟、實踐和方法能夠正確地被所有項目所采用。
在提高軟件質量方面卓有成效。
注:經驗不足,請在評論區指正。會定期修改博客,謝謝大家。
總結
以上是生活随笔為你收集整理的软件质量保证与测试(秦航第二版)第二章的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何衡量两个词的相关度
- 下一篇: voip是利用计算机网络,VoIP在无线