第5章項目質(zhì)量管理案例
質(zhì)量是“使實體具備滿足明確或隱含需求能力的各項特征之總和”,明確或隱含的需求是指按項目需求制定的基礎(chǔ)性文件。在信息系統(tǒng)項目中,一般把《系統(tǒng)需求規(guī)格說明書》作為項目需求的基礎(chǔ)性文件。
質(zhì)量管理作為項目管理的一部分,具有非常重要的地位。質(zhì)量管理的目的是通過執(zhí)行項目質(zhì)量管理過程,使用一些基本項目管理工具和技術(shù)來保證信息系統(tǒng)的質(zhì)量。時間、成本、質(zhì)量是項目管理的三大目標(biāo),如果質(zhì)量不能滿足要求,即使進(jìn)度再快,成本再節(jié)省,項目也沒有意義。
5.1案例一:計劃及跟蹤
閱讀以下關(guān)于信息系統(tǒng)項目管理過程中質(zhì)量管理方面問題的敘述,回答問題1至問題3。
5.1.1案例場景
某銀行信息系統(tǒng)工程項目,包含省級廣域網(wǎng)工程、儲蓄所終端安裝工程、主機系統(tǒng)工程、存儲系統(tǒng)工程、備份系統(tǒng)工程、銀行業(yè)務(wù)軟件開發(fā)工程等若干子項目。此工程項目通過公開招標(biāo)方式確定承建單位,中培信息技術(shù)有限公司(Z公司)經(jīng)過激烈競標(biāo)爭奪,贏得工程合同。合同約定,工程項目的開發(fā)周期預(yù)算為36周。
由于銀行對于應(yīng)用軟件質(zhì)量要求很高,Z公司也非常重視工程質(zhì)量,安排有資深資歷的高級工程師老王全面負(fù)責(zé)項目實施。在工程正式開工之前,老王對工程項目進(jìn)行了分解,根據(jù)工程分析,老王認(rèn)為此工程項目質(zhì)量、進(jìn)度的關(guān)鍵在于銀行業(yè)務(wù)定制應(yīng)用軟件的開發(fā)。除工程整體的開發(fā)計劃外,老王還針對應(yīng)用軟件開發(fā)制定了詳細(xì)的開發(fā)計劃,定制應(yīng)用軟件的開發(fā)周期為36周。網(wǎng)絡(luò)工程、終端安裝工程、主機系統(tǒng)工程、存儲系統(tǒng)工程、備份系統(tǒng)工程等與應(yīng)用軟件開發(fā)并行實施。
老王對工程項目在需求分析、概要設(shè)計、詳細(xì)設(shè)計、編碼、單元測試、集成測試等各個環(huán)節(jié)要求均非常嚴(yán)格。根據(jù)老王安排,需求分析、概要設(shè)計均安排有多年工作經(jīng)驗的高級軟件工程師擔(dān)任,各個階段的階段成果均組織了嚴(yán)格的評審,以保證各個階段成果的質(zhì)量。
在軟件編碼及單元測試工作完成之后,老王安排軟件測試組的工程師編制了詳細(xì)軟件測試計劃、測試用例,包括集成測試、功能測試、性能測試、安全性測試,等等。
老王在安排軟件測試任務(wù)的時候,在動員軟件開發(fā)小組時宣講:“軟件測試環(huán)節(jié)是軟件系統(tǒng)質(zhì)量形成的主要環(huán)節(jié),各開發(fā)小組,特別是測試小組,應(yīng)重視軟件系統(tǒng)測試工作”。因此,老王安排給測試組進(jìn)行測試的時間非常充足,測試周期占整個軟件系統(tǒng)開發(fā)周期的40%,約14.5周。在軟件系統(tǒng)測試的過程中,老王安排了詳細(xì)的測試跟蹤計劃,統(tǒng)計每周所發(fā)現(xiàn)軟件系統(tǒng)故障數(shù)量,以及所解決的軟件故障。根據(jù)每周測試的結(jié)果分析,軟件系統(tǒng)故障隨時間的推移呈明顯的下降趨勢,第1周發(fā)現(xiàn)約100個故障,第2周發(fā)現(xiàn)約90個故障,第3周發(fā)現(xiàn)50個故障,……,第10周發(fā)現(xiàn)2個故障,第11周發(fā)現(xiàn)1個故障,第12周發(fā)現(xiàn)I個故障。于是張總工斷言軟件系統(tǒng)可以在完成第14周測試之后順利交付給用戶,并進(jìn)行項目驗收。
【問題1】 (7分)
請以300字內(nèi)回答,老王的軟件開發(fā)計劃中是否存在問題?為什么?
【問題2】(8分)
請以200字內(nèi)回答,老王根據(jù)對定制軟件系統(tǒng)測試的跟蹤統(tǒng)計分析結(jié)論,得出項目可于計劃的測試期限結(jié)束后達(dá)到驗收交付的要求,你認(rèn)為可行嗎,為什么?
【問題3】(10分)
請以300字內(nèi)回答,若你是本項目的總工,你將怎樣改進(jìn)工作,以提高軟件系統(tǒng)開發(fā)的質(zhì)量,保證工程項目按期驗收?
5.1.2案例分析
過去,很多IT集成公司所承建的定制軟件工程項目,當(dāng)進(jìn)入到驗收階段的時候,用戶常常拖延,或找這樣那樣的借口不給承建單位驗收,這是什么原因呢?針對這個問題,建設(shè)單位、承建單位都有一定責(zé)任。對于建設(shè)單位來講,由于建設(shè)單位對信息系統(tǒng)建設(shè)認(rèn)識上的局限性,對軟件系統(tǒng)質(zhì)量鑒定的困難性,建設(shè)單位存在著對定制軟件系統(tǒng)的質(zhì)量的擔(dān)心,因此,很難果斷地做出驗收項目的決定。
而對于承建單位來講,承建單位在項目質(zhì)量管理方面常常做得很不到位,比如:該提交工程實施計劃、工程實施計劃進(jìn)度跟蹤記錄、工程概要設(shè)計書、詳細(xì)設(shè)計書、應(yīng)用系統(tǒng)配置文件、用戶手冊、培訓(xùn)資料等若干文檔的時候沒有提交,而很多承建單位在項目驗收時,根本看不到這些文檔,或即使有文檔,但也極其不規(guī)范,文檔質(zhì)量很低。再比如:曾有個信息系統(tǒng)工程項目在提交用戶驗收的時候,有一臺防火墻散亂地擺放在機柜外面,再看機柜上面所布放的通信線纜,顯得雜亂無章,承建單位也沒有意識到這個問題,用戶雖看在眼里卻不提醒承建單位,那請問,用戶會給這樣的項目進(jìn)行驗收嗎?
通過硬件所表現(xiàn)出來的表面質(zhì)量是很容易發(fā)現(xiàn)的,但對于軟件系統(tǒng)的質(zhì)量的衡量卻是非常困難的,特別是對于那些對軟件系統(tǒng)認(rèn)識不夠深入的IT系統(tǒng)建設(shè)單位,他們面對IT項目的驗收,常常顯得很謹(jǐn)慎也是可以理解的。
信息應(yīng)用系統(tǒng)項目的質(zhì)量保證與承建單位的質(zhì)量保證體系是密切相關(guān)的,但并不等于承建單位有質(zhì)量保證體系,如通過了ISO9000認(rèn)證,或通過了CMM3, CMM4等認(rèn)證,就一定能夠保證IT項目的質(zhì)量。承建單位的質(zhì)量保證體系是一個大綱性質(zhì)的,但實施項目的是項目小組,項目小組不能很好融合到承建單位的質(zhì)量保證體系中是比較常見的現(xiàn)象,因此,為有效保證項目的質(zhì)量,項目小組應(yīng)當(dāng)向建設(shè)單位或監(jiān)理單位提交項目的質(zhì)量保證計劃。質(zhì)量保證計劃是在承建單位質(zhì)量保證體系下編制的,是針對項目特點的,涉及保證項目質(zhì)量的具體措施,更易于操作。當(dāng)然,一個項目的質(zhì)量保證計劃如果照搬到另外一個項目,卻不一定適用。而建設(shè)單位、監(jiān)理單位可以通過對承建單位質(zhì)量
保證計劃的執(zhí)行情況來判斷其軟件開發(fā)過程的質(zhì)量,從而協(xié)助對定制軟件產(chǎn)品質(zhì)量的鑒定。
【問題1】
軟件測試是保證軟件質(zhì)量的重要工作內(nèi)容之一,但軟件測試環(huán)節(jié)卻不是軟件質(zhì)量的形成環(huán)節(jié),測試只能檢查軟件中所存在的缺陷,發(fā)現(xiàn)問題。軟件質(zhì)量是在需求分析、設(shè)計、編碼、測試、文檔編制等軟件生產(chǎn)的全過程中形成的。因此,我們要了解定制軟件系統(tǒng)的質(zhì)量,就必須了解承建單位開發(fā)軟件系統(tǒng)的全部過程的質(zhì)量。
測試計劃和測試用例應(yīng)當(dāng)在軟件的設(shè)計階段制定。越晚進(jìn)行的測試,其測試計劃的編制時間就越早。如集成測試計劃在概要設(shè)計階段編制,功能確認(rèn)測試計劃在需求定義階段就應(yīng)當(dāng)制定,整體測試計劃也應(yīng)當(dāng)在需求分析階段制定。
雖然我們在實踐中有很多這樣的情況,很多軟件開發(fā)團隊并不是在軟件設(shè)計階段同步制定軟件測試計劃和測試用例,甚至有很多軟件開發(fā)中根本就沒有制定規(guī)范的測試計劃和測試用例。但這些并不是正統(tǒng)、規(guī)范的做法,這樣的軟件工程過程對于保證定制軟件系統(tǒng)的質(zhì)量來說是會打折扣的。若測試計劃的編制時機不能按照規(guī)范進(jìn)行,那說明軟件企業(yè)的過程能力成熟度還不夠,還是在采用手工作坊方式生產(chǎn)軟件,想到哪里做到哪里,沒有計劃或計劃不科學(xué),不能有效地控制軟件生產(chǎn)的質(zhì)量。
【問題2】
軟件系統(tǒng)的質(zhì)量,僅僅根據(jù)測試的結(jié)論來進(jìn)行斷言是不夠的。我們在進(jìn)行項目開發(fā)計劃安排的時候,應(yīng)當(dāng)將系統(tǒng)的試運行也安排在計劃之內(nèi)。系統(tǒng)的試運行牽涉到工程項目的建設(shè)方和承建方,除了技術(shù)方面的因素外,還涉及組織方面的因素,人文方面的因素等。承建方要安排足夠的時間與建設(shè)方協(xié)商系統(tǒng)的試運行問題,在雙方的配合下開展系統(tǒng)試運行工作,系統(tǒng)在試運行中,通常還會發(fā)現(xiàn)大量的故障,承建單位也必須配合解決這些系統(tǒng)故障。只有通過試運行的考驗,才能夠基本斷定系統(tǒng)的質(zhì)量是否符合要求;通過了試運行的考驗,再向用戶提出工程項目的驗收,一般來說,用戶的接受程度會比較高。
軟件系統(tǒng)的試運行為什么如此重要呢?這是根據(jù)不同的工程項目的特點,如公路建設(shè)就不需試運行,住宅建設(shè)也不需試入住,通過質(zhì)檢方式就可確定工程項目的質(zhì)量。而另外一些工程項目則是必須要進(jìn)行試運行的,比如鐵路系統(tǒng)
建設(shè)、水電站建設(shè)、化工廠建設(shè)等,這些類型的工程項目,不通過試運行,就不可能鑒定其質(zhì)量,信息應(yīng)用系統(tǒng)的建設(shè)也是一樣。
【問題3】
另外,在向用戶提出項目驗收前,還得整理并提交完整的工程技術(shù)文檔、系統(tǒng)維護(hù)文檔、軟件配置清單,給用戶舉辦系統(tǒng)操作培訓(xùn)、維護(hù)培訓(xùn),全面審核合同執(zhí)行情況,編制項目竣工報告,等等。如果項目小組不注意這些工作,用戶大多也不會來提醒你,用戶只卡住驗收關(guān)不讓通過就可以了,當(dāng)然也有部分用戶可能會提醒項目小組離驗收還差什么。畢竟項目的實施任務(wù)是屬于承建單位的工作,承建單位理應(yīng)完善自身的項目管理水平,不可能讓用戶來督促你、提示你,那不是用戶的職責(zé),更何況,很多用戶自身也不知道IT項目該怎樣管理,有哪些工作需要完成,但承建單位很多不規(guī)范的做法、存在的問題,讓用戶對質(zhì)量不放心,用戶卻是能夠覺察到的。特別要注意的是,項目經(jīng)理在計劃項目驗收時,應(yīng)當(dāng)與用戶的主要領(lǐng)導(dǎo)充分溝通,讓客戶領(lǐng)導(dǎo)了解項目的建設(shè)過程,了解項目的質(zhì)量實施情況,讓領(lǐng)導(dǎo)對項目的驗收充滿信心。
但請仔細(xì)分析本題,案例場景中通篇并沒有提到關(guān)于工程文檔、配置清單、培訓(xùn)等話題,這些內(nèi)容并不是本題的關(guān)鍵,未提及的內(nèi)容,老王可能沒做到,但也可能做到,不好斷言。我們只要能夠抓住場景所描述的老王的主要缺陷,一是制定測試計劃的時機不對,二是根據(jù)測試斷定軟件系統(tǒng)的質(zhì)量不對,只要能抓住這兩點就夠了。其他的內(nèi)容,也可以反映在答案中,但要注意語言要簡練,雖不會導(dǎo)致扣分,但也不是得分的要點。
5.1.3參考答案
【問題1】(7分)
老王安排測試計劃的編制時機不對。測試計劃和測試用例的編制應(yīng)當(dāng)與軟件系統(tǒng)的概要設(shè)計、詳細(xì)設(shè)計同步進(jìn)行。
測試計劃不夠全面,還應(yīng)當(dāng)包含系統(tǒng)整體測試、運行測試。運行測試是對應(yīng)用軟件系統(tǒng)整體功能的全面檢驗,也是最能夠說明軟件系統(tǒng)質(zhì)量的測試環(huán)節(jié)。
系統(tǒng)測試計劃、確認(rèn)測試計劃應(yīng)當(dāng)在需求分析階段制定,測試用例、測試說明應(yīng)當(dāng)在概要設(shè)計階段制定。
集成測試計劃應(yīng)當(dāng)在概要設(shè)計階段制定,測試用例、測試說明應(yīng)當(dāng)在詳細(xì)設(shè)計階段制定。
單元測試計劃應(yīng)當(dāng)在詳細(xì)設(shè)計階段制定,測試用例、測試說明應(yīng)當(dāng)在編碼階段制定。
【問題2】(8分)
在定制軟件開發(fā)項目中,根據(jù)測試結(jié)果判定軟件系統(tǒng)的質(zhì)量是不夠的,因為軟件系統(tǒng)中的缺陷可能由于多種原因而未在測試中被發(fā)現(xiàn),如測試環(huán)境與運行環(huán)境的區(qū)別、測試人員的能力問題、測試計劃和測試用例的局限及缺陷。
由于軟件系統(tǒng)質(zhì)量、功能、性能具有很強隱蔽性的特點,用戶往往不大可能根據(jù)項目開發(fā)小組的測試結(jié)論來進(jìn)行項目的驗收。最好讓用戶組織對項目進(jìn)行試運行,以試運行的結(jié)論來作為驗收的依據(jù)之一是比較有說服力的。
【問題3】(10分)
(1)在進(jìn)行需求分析的時候,同步制定功能確認(rèn)測試計劃和測試用例,同步制定系統(tǒng)整體測試計劃和測試用例。
(2)在進(jìn)行軟件系統(tǒng)概要設(shè)計的時候,制定集成測試計劃和測試用例。
(3)在進(jìn)行軟件系統(tǒng)詳細(xì)設(shè)計的時候,制定單元測試計劃和測試用例。
(4)在項目計劃驗收日期前,提前與用戶協(xié)商系統(tǒng)試運行計劃,并給用戶進(jìn)行充分的培訓(xùn),包括領(lǐng)導(dǎo)和一般操作人員,讓系統(tǒng)接受實際運行的考驗,在試運行過程中暴露出來的問題,及時進(jìn)行解決。以軟件系統(tǒng)實際運行所表現(xiàn)出來的功能、性能來說服用戶對項目進(jìn)行驗收,這通常是更可行的方法。