《全面軟件質(zhì)量管理》核心觀點(diǎn)摘錄
軟件產(chǎn)品的質(zhì)量定義始終都是滿足要求和適合使用,高質(zhì)量和高等級(jí)是有區(qū)別的。軟件質(zhì)量目標(biāo)應(yīng)該來源于商業(yè)目標(biāo)驅(qū)動(dòng),商業(yè)目標(biāo)決定了軟件的價(jià)值。提高軟件質(zhì)量的目標(biāo)仍然是為了盈利和創(chuàng)造更大的效益,而不是創(chuàng)造完美無缺的產(chǎn)品。
軟件產(chǎn)品質(zhì)量不是靠測(cè)試和評(píng)審出來的,而是靠設(shè)計(jì)出來的。關(guān)注軟件項(xiàng)目中的好質(zhì)量成本和壞質(zhì)量成本可以宏觀的看到項(xiàng)目軟件質(zhì)量管理的水平。對(duì)于軟件項(xiàng)目COQ一般在35%-55%,而壞質(zhì)量成本一般在8-15%,這也說明我們要盡量減少返工,爭(zhēng)取第一次就把事情做對(duì)。
1.軟件的質(zhì)量屬性和質(zhì)量要素
PMBOK中質(zhì)量的定義是符合要求和適合使用。CMM對(duì)質(zhì)量的定義是一個(gè)系統(tǒng),組件或過程符合客戶或用戶的要求或期望的程度。因此可以講質(zhì)量更多不是研發(fā)者說的,而是用戶的最終感受。
通過類比,我們這樣理解軟件質(zhì)量:軟件質(zhì)量是許多質(zhì)量屬性的綜合體現(xiàn),各種質(zhì)量屬性反映了軟件質(zhì)量的方方面面。人們通過改善軟件的各種質(zhì)量屬性,從而提高軟件的整體質(zhì)量(否則無從下手)。
軟件的質(zhì)量屬性很多,如正確性、精確性,健壯性、可靠性、容錯(cuò)性、性能、易用性、安全性、可擴(kuò)展性、可復(fù)用性、兼容性、可移植性、可測(cè)試性、可維護(hù)性、靈活性等。這些質(zhì)量屬性又可以分為功能性和非功能性兩大類。
功能性質(zhì)量要素:正確性,健壯性,可靠性
非功能性質(zhì)量因素:性能,易用性,安全性,可擴(kuò)展性,兼容性,可移植性
a.正確性:第一重要,機(jī)器不會(huì)欺騙人,軟件運(yùn)行錯(cuò)誤都是人為造成的。
b.健壯性:包括容錯(cuò)能力和恢復(fù)能力,開發(fā)過程中應(yīng)該充分考慮各種異常和邊界。
c.可靠性:可靠性是指在一定的環(huán)境下,在給定的時(shí)間內(nèi),系統(tǒng)不發(fā)生故障的概率。
d.性能:性能通常是指軟件的“時(shí)間-空間”效率,而不僅是指軟件的運(yùn)行速度。(性能問題解決根本還是算法和程序的優(yōu)化,而不是期待硬件的更高配置)
e.易用性:易用性是指用戶使用軟件的容易程度。(界面友好僅僅是一方面,還包括人機(jī)工程很多內(nèi)容)
f.安全性:安全性是指防止系統(tǒng)被非法入侵的能力
g.擴(kuò)展性:反映了軟件應(yīng)對(duì)變化的能力
h.兼容性:對(duì)硬件的兼容,對(duì)軟件的兼容
非功能性需求是軟件質(zhì)量重要組成,是架構(gòu)設(shè)計(jì)和軟件產(chǎn)品化的重要考慮,但往往容易被忽視。特別是在開發(fā)通用性的產(chǎn)品的時(shí)候,非功能性質(zhì)量要素必須要考慮全面。
什么是質(zhì)量要素,應(yīng)該理解為能夠提高用戶滿意度和提高產(chǎn)品核心競(jìng)爭(zhēng)力和價(jià)值的質(zhì)量屬性。如果某些質(zhì)量屬性并不能產(chǎn)生顯著的經(jīng)濟(jì)效益,我們可以忽略它們,把精力用在對(duì)經(jīng)濟(jì)效益貢獻(xiàn)最大的質(zhì)量要素上。簡(jiǎn)而言之,只有質(zhì)量要素才值得開發(fā)人員下功夫去改善。
2.商業(yè)目標(biāo)決定質(zhì)量目標(biāo)
重視軟件質(zhì)量是應(yīng)該的,但是“質(zhì)量越高越好”并不是普適的真理。只有極少數(shù)軟件應(yīng)該追求“零缺陷”,對(duì)絕大多數(shù)軟件而言,商業(yè)目標(biāo)決定了質(zhì)量目標(biāo),而不該把質(zhì)量目標(biāo)凌駕于商業(yè)目標(biāo)之上。
企業(yè)的根本目標(biāo)是為了獲取盡可能多的利潤(rùn),而不是生產(chǎn)完美無缺的產(chǎn)品。如果企業(yè)銷售出去的軟件的質(zhì)量比較差,輕則挨罵,重則被退貨甚至被索賠,因此為了提高用戶對(duì)產(chǎn)品的滿意度,企業(yè)必須提高產(chǎn)品的質(zhì)量。但是企業(yè)不可能為了追求完美的質(zhì)量而不惜一切代價(jià),當(dāng)企業(yè)為提高質(zhì)量所付出的代價(jià)超過銷售收益時(shí),這個(gè)產(chǎn)品已經(jīng)沒有商業(yè)價(jià)值了,還不如不開發(fā)。
企業(yè)必須權(quán)衡質(zhì)量、效率和成本,產(chǎn)品質(zhì)量太低了或者太高了,都不利于企業(yè)獲取利潤(rùn)。企業(yè)理想的質(zhì)量目標(biāo)不是“零缺陷”,而是恰好讓廣大用戶滿意,并且將提高質(zhì)量所付出的代價(jià)控制在預(yù)算之內(nèi)。
3.質(zhì)量保證能夠保證質(zhì)量嗎
軟件質(zhì)量保證(Quality Assurance)的目的是為管理者提供有關(guān)軟件過程和產(chǎn)品的適當(dāng)?shù)目梢曅浴Kㄔu(píng)審和審核軟件產(chǎn)品及其活動(dòng),以驗(yàn)證其是否遵守既定的規(guī)程和標(biāo)準(zhǔn),并向有關(guān)負(fù)責(zé)人匯報(bào)評(píng)審和審核的結(jié)果。
簡(jiǎn)而言之,質(zhì)量保證活動(dòng)就是檢查軟件項(xiàng)目的“工作過程和工作成果”是否符合既定的規(guī)范。如此簡(jiǎn)單的活動(dòng)為什么被冠以“質(zhì)量保證”這等份量的術(shù)語呢?沒有歷史典故,經(jīng)我考究,猜想是源于一個(gè)天真的假設(shè):
過程質(zhì)量與產(chǎn)品質(zhì)量存在某種程度的因果關(guān)系,通常“好的過程”產(chǎn)生“好的產(chǎn)品”,而“差的過程”將產(chǎn)生“差的產(chǎn)品”。假設(shè)企業(yè)已經(jīng)制定了軟件過程規(guī)范,如果質(zhì)量保證人員發(fā)現(xiàn)某些項(xiàng)目的“工作過程以及工作成果”不符合既定的規(guī)范,那么馬上可以斷定產(chǎn)品存在缺陷。反之,如果質(zhì)量保證人員沒有發(fā)現(xiàn)不符合既定規(guī)范的東西,那么也可以斷定產(chǎn)品是合格的。
符合既定規(guī)范的東西并不意味著質(zhì)量一定合格,僅靠規(guī)范無法識(shí)別出產(chǎn)品中可能存在的大量缺陷.
4.全面軟件質(zhì)量管理模型
提高軟件質(zhì)量最好的辦法是:在開發(fā)過程中有效地防止工作成果產(chǎn)生缺陷,將高質(zhì)量?jī)?nèi)建于開發(fā)過程之中。主要措施是“不斷地提高技術(shù)水平,不斷地提高規(guī)范化水平”,其實(shí)就是練內(nèi)功,通稱為“軟件過程改進(jìn)”。
其次方法是當(dāng)工作成果剛剛產(chǎn)生時(shí)馬上進(jìn)行質(zhì)量檢查,及時(shí)找出并消除工作成果中的缺陷。這種方式效果比較好,人們一般都能學(xué)會(huì)。最常用的方法是技術(shù)評(píng)審、軟件測(cè)試和過程檢查,已經(jīng)被企業(yè)廣泛采用并取得了成效。
最差的是在軟件交付之前,沒有及時(shí)消除缺陷。當(dāng)軟件交付給用戶后,用著用著就出錯(cuò)了,趕緊請(qǐng)開發(fā)者來補(bǔ)救。可笑的是,當(dāng)軟件系統(tǒng)在用戶那里出故障了,那些現(xiàn)場(chǎng)補(bǔ)救成功的人倒成了英雄,好心用戶甚至還寄來感謝信。
誰對(duì)軟件質(zhì)量負(fù)責(zé)?是全員負(fù)責(zé)。任何與軟件開發(fā)、管理工作相關(guān)的人員都對(duì)質(zhì)量產(chǎn)生影響,都要對(duì)質(zhì)量負(fù)責(zé)。所以人們不要把質(zhì)量問題全部推出質(zhì)量人員或測(cè)試人員。
誰對(duì)軟件質(zhì)量負(fù)最大的責(zé)任?誰的權(quán)利越大,他所負(fù)的質(zhì)量責(zé)任就越大。質(zhì)量人員是成天與質(zhì)量打交道的人,但他個(gè)人并不對(duì)產(chǎn)品質(zhì)量產(chǎn)生最大的影響,所以也不負(fù)最大的責(zé)任。
質(zhì)量人員的主要職責(zé):
1.負(fù)責(zé)制定質(zhì)量計(jì)劃(很重要但是工作量比較少);
2.負(fù)責(zé)過程檢查(類似于CMM中的質(zhì)量保證),約占個(gè)人工作量的20%;
3.參與技術(shù)評(píng)審,約占個(gè)人工作量的30%;
4.參與軟件測(cè)試,約占個(gè)人工作量的30%;
5.參與軟件過程改進(jìn)(面向整個(gè)機(jī)構(gòu)),約占個(gè)人工作量的20%;
質(zhì)量管理計(jì)劃的主要內(nèi)容(模板見word文件):
1. 質(zhì)量要素分析
2. 質(zhì)量目標(biāo)
3. 人員與職責(zé)
4. 過程檢查計(jì)劃
5. 技術(shù)評(píng)審計(jì)劃
6. 軟件測(cè)試計(jì)劃
7. 缺陷跟蹤工具
8. 審批意見
5.技術(shù)評(píng)審
技術(shù)評(píng)審(Technical Review, TR)的目的是盡早地發(fā)現(xiàn)工作成果中的缺陷,并幫助開發(fā)人員及時(shí)消除缺陷,從而有效地提高產(chǎn)品的質(zhì)量。技術(shù)評(píng)審最初是由IBM公司為了提高軟件質(zhì)量和提高程序員生產(chǎn)率而倡導(dǎo)的。技術(shù)評(píng)審方法已經(jīng)被業(yè)界廣泛采用并收到了很好的效果,它被普遍認(rèn)為是軟件開發(fā)的最佳實(shí)踐之一。
技術(shù)評(píng)審的主要好處有:
1.通過消除工作成果的缺陷而提高產(chǎn)品的質(zhì)量;
2.技術(shù)評(píng)審可以在任何開發(fā)階段執(zhí)行,不必等到軟件可以運(yùn)行之際,越早消除缺陷就越能降低開發(fā)成本;
3.開發(fā)人員能夠及時(shí)地得到同行專家的幫助和指導(dǎo),無疑會(huì)加深對(duì)工作成果的理解,更好地預(yù)防缺陷,一定程度上提高了開發(fā)生產(chǎn)率。
技術(shù)評(píng)審有兩種基本類型:
1.正式技術(shù)評(píng)審FTR。FTR比較嚴(yán)格,需要舉行評(píng)審會(huì)議多。
2.非正式技術(shù)評(píng)審ITR。ITR的形式比較靈活,通常在同伴之間開展,不必舉行評(píng)審會(huì)
技術(shù)評(píng)審和軟件測(cè)試的目的都是為了消除軟件的缺陷,兩者的主要區(qū)別是:
1.前者無需運(yùn)行軟件,評(píng)審人員和作者把工作成果擺放在桌面上討論;
2.而后者一定要運(yùn)行軟件來查找缺陷。技術(shù)評(píng)審在軟件測(cè)試之前執(zhí)行,尤其是在需求開發(fā)和系統(tǒng)設(shè)計(jì)階段。
相比而言,軟件測(cè)試的工作量通常比技術(shù)評(píng)審的大,發(fā)現(xiàn)的缺陷也更多。在制定質(zhì)量計(jì)劃的時(shí)候,已經(jīng)確定了本項(xiàng)目的主要測(cè)試活動(dòng)、時(shí)間和負(fù)責(zé)人,之后再考慮軟件測(cè)試的詳細(xì)計(jì)劃和測(cè)試用例。
如果機(jī)構(gòu)沒有專職的軟件測(cè)試人員的話,那么開發(fā)人員可以兼職做測(cè)試工作。當(dāng)項(xiàng)目開發(fā)到后期,過程檢查和技術(shù)評(píng)審都已經(jīng)沒有多少意義了,開發(fā)小組急需有人幫助他們測(cè)試軟件,如果質(zhì)量人員參與軟件測(cè)試,對(duì)開發(fā)小組而言簡(jiǎn)直就是“雪中送炭”。
強(qiáng)調(diào):質(zhì)量人員一定要參與軟件測(cè)試(大約占其工作量的30%左右),只有這樣他才能深入地了解軟件的質(zhì)量問題,而且給予開發(fā)小組強(qiáng)有力地幫助。
CMM和ISO9001所述的軟件質(zhì)量保證,實(shí)質(zhì)就是過程檢查,即檢查軟件項(xiàng)目的“工作過程和工作成果”是否符合既定的規(guī)范。
“過程檢查”這個(gè)詞雖然沒有質(zhì)量保證那么動(dòng)聽,但是其含義直接明了,不會(huì)讓人誤解。為了避免人們誤以為“質(zhì)量保證”能夠“保證質(zhì)量”,我提議用“過程檢查”取代質(zhì)量保證這個(gè)術(shù)語。
雖然本章批判了“質(zhì)量保證”的浮夸,但是并沒有全盤否定質(zhì)量保證的好處。過程檢查對(duì)提高軟件質(zhì)量是有幫助的,只是它的好處沒有象質(zhì)量保證鼓吹的那么好而已。
符合規(guī)范的工作成果不見得就是高質(zhì)量的,但是明顯不符合規(guī)范的工作成果十有八九是質(zhì)量不合格的。例如版本控制檢查,再例如,機(jī)構(gòu)制定了重要工作成果的文檔模板(例如需求規(guī)格說明書、設(shè)計(jì)報(bào)告等),要求開發(fā)人員寫的文檔盡可能符合模板。如果質(zhì)量人員發(fā)現(xiàn)開發(fā)人員寫的文檔與機(jī)構(gòu)的模板差異非常大,那么就要搞清楚究竟是模板不合適?還是開發(fā)人員偷工減料?
過程檢查的要點(diǎn)是:找出明顯不符合規(guī)范的工作過程和工作成果,及時(shí)指導(dǎo)開發(fā)人員糾正問題,切勿吹毛求疵或者在無關(guān)痛癢的地方查來查去。
不少機(jī)構(gòu)的質(zhì)量人員并沒有真正理解過程檢查的意義,老是對(duì)照規(guī)范,查找錯(cuò)別字、標(biāo)點(diǎn)符號(hào)、排版格式等問題,迷失了方向,這樣只有疲勞沒有功勞,而且讓開發(fā)人員很厭煩。
對(duì)于中小型項(xiàng)目而言,過程檢查工作由質(zhì)量人員一個(gè)人負(fù)責(zé)就夠了,約占其20%的工作量,讓質(zhì)量人員抽出更多的時(shí)間從事技術(shù)評(píng)審和軟件測(cè)試工作。
posted on 2014-11-03 09:17 順其自然EVO 閱讀(230) 評(píng)論(0) 編輯 收藏 所屬分類: 測(cè)試學(xué)習(xí)專欄