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