關(guān)昕 賈祺
(中國電子科技集團(tuán)公司第十五研究所 北京市 100083)
軟件質(zhì)量保證的目的是使軟件組織中的管理者和各個(gè)角色對軟件過程和相關(guān)的工作產(chǎn)品能有客觀深入的了解,它是質(zhì)量管理的重要活動之一,如圖1所示。軟件質(zhì)量保證的評價(jià)對象包括兩類:過程活動和工作產(chǎn)品或服務(wù)。軟件質(zhì)量保證過程的主要活動包括:質(zhì)量保證策劃;客觀地評價(jià)所實(shí)施的過程、工作產(chǎn)品和服務(wù)對適用的過程說明、標(biāo)準(zhǔn)和規(guī)程的遵循性;記錄并通報(bào)不符合項(xiàng),跟蹤不符合項(xiàng)直至解決[1]。
圖1:軟件質(zhì)量保證過程
(1)質(zhì)量保證策劃:軟件質(zhì)量保證人員根據(jù)項(xiàng)目的軟件開發(fā)計(jì)劃、顧客的質(zhì)量相關(guān)要求、項(xiàng)目執(zhí)行的標(biāo)準(zhǔn)、組織提供的相關(guān)準(zhǔn)則規(guī)范編制本項(xiàng)目的軟件質(zhì)量保證計(jì)劃、選取適宜的過程活動和工作產(chǎn)品評價(jià)的準(zhǔn)則規(guī)范。
(2)客觀地評價(jià)所實(shí)施的過程、工作產(chǎn)品和服務(wù)對適用的過程說明、標(biāo)準(zhǔn)和規(guī)程的遵循性:伴隨著軟件開發(fā)活動的進(jìn)行,軟件質(zhì)量保證人員按照軟件質(zhì)量保證計(jì)劃、之前選取的本項(xiàng)目的過程活動和相關(guān)工作產(chǎn)品的準(zhǔn)則規(guī)范對軟件開發(fā)的過程活動、工作產(chǎn)品進(jìn)行客觀評價(jià),判斷所實(shí)施的過程、完成的產(chǎn)品和服務(wù)與之前的過程說明、標(biāo)準(zhǔn)、規(guī)程是否符合。
(3)記錄并通報(bào)不符合項(xiàng),跟蹤不符合項(xiàng)直至解決:軟件質(zhì)量保證人員在評價(jià)過程中,及時(shí)記錄評價(jià)中發(fā)現(xiàn)的不符合項(xiàng),通報(bào)給相關(guān)人員,令其修正改進(jìn),并持續(xù)跟蹤至不符合項(xiàng)被解決關(guān)閉。
在軟件工程活動中,軟件質(zhì)量保證應(yīng)具備獨(dú)立性和客觀性,因此軟件質(zhì)量保證人員需要獨(dú)立于軟件項(xiàng)目組,對于不符合項(xiàng)應(yīng)該具有獨(dú)立的上報(bào)渠道和處理規(guī)程。同時(shí),軟件質(zhì)量保證人員必須依據(jù)軟件項(xiàng)目的準(zhǔn)則規(guī)范對過程活動和產(chǎn)品進(jìn)行客觀地評價(jià)。
軟件質(zhì)量保證的評價(jià)需要覆蓋到軟件項(xiàng)目的全部過程活動、產(chǎn)品和服務(wù)。但是與測試、評審等質(zhì)量控制活動不同,軟件質(zhì)量保證評價(jià)的檢查并不需要覆蓋產(chǎn)品的所有內(nèi)容和每個(gè)從事軟件過程的人員。軟件質(zhì)量保證的評價(jià)可以是有針對性的抽查。因此,軟件質(zhì)量保證人員在軟件過程和產(chǎn)品評價(jià)中選取使用的準(zhǔn)則規(guī)范;被抽查產(chǎn)品的范圍、內(nèi)容;被抽查的人員能力等與軟件質(zhì)量保證的有效性有直接緊密的相關(guān)性。
在實(shí)際軟件工程活動中,為了滿足顧客的要求持續(xù)交付,越來越多的軟件項(xiàng)目采用了快速迭代的開發(fā)模式,存在項(xiàng)目進(jìn)度緊張、軟件需求不斷變更、軟件工作產(chǎn)品版本眾多等現(xiàn)狀?;谶@樣的情形,使用有限的時(shí)間和人手快速完成軟件質(zhì)量保證的檢查,就很難實(shí)現(xiàn)覆蓋產(chǎn)品全部的內(nèi)容和全部人員。抽查內(nèi)容的判斷和選擇成為軟件質(zhì)量管理人員面臨的一道難題。為了使軟件質(zhì)量保證的有效性和效率得到保障,本文主要研究了需要基于分析風(fēng)險(xiǎn)開展軟件質(zhì)量保證活動。基于風(fēng)險(xiǎn)分析的軟件質(zhì)量保證過程如圖2所示。基于風(fēng)險(xiǎn)分析的質(zhì)量保證過程與傳統(tǒng)軟件質(zhì)量保證過程的最大區(qū)別在于質(zhì)量保證策劃和客觀地評價(jià)所實(shí)施的過程、工作產(chǎn)品和服務(wù)對適用的過程說明、標(biāo)準(zhǔn)和規(guī)程的遵循性兩個(gè)活動,這兩個(gè)活動都需要使用歷史項(xiàng)目數(shù)據(jù)結(jié)合項(xiàng)目特征進(jìn)行相關(guān)風(fēng)險(xiǎn)分析后開展。
圖2:基于風(fēng)險(xiǎn)分析的軟件質(zhì)量保證過程
基于風(fēng)險(xiǎn)分析的質(zhì)量保證策劃依然需要完成軟件質(zhì)量保證計(jì)劃的制定和準(zhǔn)則規(guī)范的選取。但軟件質(zhì)量保證人員需要根據(jù)項(xiàng)目特征(如:軟件產(chǎn)品的可靠性、安全性等方面的質(zhì)量要求)、歷史數(shù)據(jù)庫中與當(dāng)前項(xiàng)目特征匹配的項(xiàng)目測試、評審、質(zhì)量保證人員進(jìn)行評價(jià)時(shí)發(fā)現(xiàn)的過程與產(chǎn)品的不符合項(xiàng)、不符合項(xiàng)的嚴(yán)重程度(如:對最終軟件質(zhì)量的影響、對顧客滿意度的影響),以及這些不符合對應(yīng)的準(zhǔn)則規(guī)范,識別軟件產(chǎn)品質(zhì)量特性要求和對質(zhì)量特性影響相關(guān)的風(fēng)險(xiǎn),識別項(xiàng)目軟件過程活動對產(chǎn)品質(zhì)量的相關(guān)風(fēng)險(xiǎn),進(jìn)行風(fēng)險(xiǎn)分析,找到對產(chǎn)品質(zhì)量影響最大、最廣泛的準(zhǔn)則規(guī)范,將這些準(zhǔn)則規(guī)范作為該項(xiàng)目軟件質(zhì)量保證的準(zhǔn)則規(guī)范。如圖3所示。
圖3:基于風(fēng)險(xiǎn)分析的質(zhì)量保證策劃活動流程
基于風(fēng)險(xiǎn)分析客觀地評價(jià)所實(shí)施的過程、工作產(chǎn)品和服務(wù)對適用的過程說明、標(biāo)準(zhǔn)和規(guī)程的遵循性需要根據(jù)開展過程活動、開發(fā)軟件工作產(chǎn)品人員的特征(如:人員的技術(shù)能力、對業(yè)務(wù)的了解程度等),以及工作產(chǎn)品內(nèi)容對軟件質(zhì)量影響的重要程度進(jìn)行風(fēng)險(xiǎn)分析,確定需要重點(diǎn)檢查的人和工作產(chǎn)品的具體內(nèi)容,然后軟件質(zhì)量保證人員依據(jù)軟件質(zhì)量保證計(jì)劃、選取的準(zhǔn)則規(guī)范、確定的重點(diǎn)檢查的人和工作產(chǎn)品具體內(nèi)容,開展對過程活動、工作產(chǎn)品和服務(wù)進(jìn)行評價(jià),記錄評價(jià)的結(jié)果。如圖4所示。
圖4:基于風(fēng)險(xiǎn)分析進(jìn)行客觀評價(jià)活動流程
為了有利于今后的項(xiàng)目使用歷史數(shù)據(jù)基于風(fēng)險(xiǎn)分析開展更精細(xì)的質(zhì)量保證工作,軟件質(zhì)量保證人員在記錄評價(jià)結(jié)果的同時(shí),需要記錄發(fā)現(xiàn)的不符合項(xiàng)。不符合項(xiàng)記錄的內(nèi)容不僅包括發(fā)現(xiàn)的不符合項(xiàng)、造成不符合的人員,還必須記錄不符合項(xiàng)與準(zhǔn)則規(guī)范的對應(yīng)關(guān)系、不符合項(xiàng)與工作產(chǎn)品內(nèi)容類型的對應(yīng)關(guān)系。同時(shí),軟件質(zhì)量保證軟件應(yīng)將發(fā)現(xiàn)的不符合向相關(guān)人員通報(bào),并跟蹤問題直至關(guān)閉。
本文從對歷史數(shù)據(jù)的依賴、質(zhì)量保證過程的能力水平、質(zhì)量保證過程的有效性、質(zhì)量保證評價(jià)記錄的要求、不符合項(xiàng)的記錄要求、質(zhì)量保證資源投入情況等幾個(gè)方面分析了基于風(fēng)險(xiǎn)的軟件質(zhì)量保證過程與傳統(tǒng)軟件質(zhì)量保證過程的差異,如表1所示?;陲L(fēng)險(xiǎn)分析的軟件質(zhì)量保證過程與傳統(tǒng)的軟件質(zhì)量保證過程相比,更加依賴于組織的歷史數(shù)據(jù),能夠做到定性與定量的方法相結(jié)合,可以提高軟件質(zhì)量保證過程的有效性和精細(xì)化水平。因此,基于風(fēng)險(xiǎn)的軟件質(zhì)量保證過程更加適應(yīng)目前普遍使用的快速迭代開發(fā)模式。
表1:基于風(fēng)險(xiǎn)分析的軟件質(zhì)量保證過程與傳統(tǒng)軟件質(zhì)量保證過程的差異
某項(xiàng)目進(jìn)度非常緊張,顧客對軟件可靠性、安全性等非功能性需求的要求較高,在不額外增加軟件質(zhì)量保證人員的基礎(chǔ)上同時(shí)要求保障軟件質(zhì)量保證的有效性,項(xiàng)目采用了基于風(fēng)險(xiǎn)分析的軟件質(zhì)量保證過程。本文以對“軟件需求規(guī)格說明”(SRS)的產(chǎn)品質(zhì)量保證評價(jià)策劃為例,對基于風(fēng)險(xiǎn)分析的軟件質(zhì)量保證過程進(jìn)行說明。
首先,軟件質(zhì)量保證人員在該組織歷史數(shù)據(jù)庫中整理歸納了同類項(xiàng)目軟件需求規(guī)格說明不符合項(xiàng)發(fā)生頻率的歷史數(shù)據(jù),分析了對產(chǎn)品質(zhì)量產(chǎn)生的影響,如表2所示。
表2:軟件需求規(guī)格說明不符合項(xiàng)發(fā)生頻率
在同類型項(xiàng)目的歷史數(shù)據(jù)中,該組織對于軟件需求規(guī)格說明(SRS)的完整性的檢查中不符合項(xiàng)發(fā)生頻率最高。
其次,基于以上的分析,軟件質(zhì)量保證人員分析歸納對完整性進(jìn)行評價(jià)的準(zhǔn)則規(guī)范對應(yīng)評價(jià)對象不符合項(xiàng)的發(fā)生頻率。如表3所示。在該組織同類型項(xiàng)目的歷史數(shù)據(jù)中,功能需求、接口需求和非功能性需求發(fā)生不符合項(xiàng)的頻率最高。
表3:完整性不符合項(xiàng)發(fā)生頻率
再次,軟件質(zhì)量保證人員參照該項(xiàng)目的風(fēng)險(xiǎn)管理計(jì)劃,對與軟件需求規(guī)格說明相關(guān)的風(fēng)險(xiǎn)進(jìn)行分析整理,如表4所示。軟件質(zhì)量保證人員分析了風(fēng)險(xiǎn)的發(fā)生概率、影響程度、處理方式,提出對軟件需求規(guī)格說明產(chǎn)品進(jìn)行質(zhì)量保證評價(jià)中具體的實(shí)施措施。
表4:某項(xiàng)目與軟件需求規(guī)格說明的風(fēng)險(xiǎn)列表
最后,軟件質(zhì)量保證人員結(jié)合同類項(xiàng)目的歷史數(shù)據(jù)和本項(xiàng)目的風(fēng)險(xiǎn)分析,進(jìn)行軟件需求規(guī)格說明的評價(jià)策劃。按照慣例,對軟件需求規(guī)格說明(SRS)的評價(jià)是在其完成后進(jìn)行的?;趯Ρ卷?xiàng)目的風(fēng)險(xiǎn)分析,軟件質(zhì)量保證人員對本項(xiàng)目的軟件需求規(guī)格說明(SRS)評價(jià)計(jì)劃分成兩次進(jìn)行。第一次為功能需求、接口需求和非功能性需求部分完成后。第二次為軟件需求規(guī)格說明(SRS)完成后?;陧?xiàng)目風(fēng)險(xiǎn)和歷史數(shù)據(jù)的分析,軟件需求規(guī)格說明(SRS)兩次評價(jià)的重點(diǎn)不同。軟件質(zhì)量人員對每次評價(jià)的準(zhǔn)則規(guī)范進(jìn)行了選擇和調(diào)整,如表5所示。
表5:某項(xiàng)目軟件需求規(guī)格說明(SRS)的風(fēng)險(xiǎn)列表
隨著信息技術(shù)飛速發(fā)展,軟件以用戶為中心,為了實(shí)現(xiàn)快速、高質(zhì)量地交付軟件,多種開發(fā)模式應(yīng)運(yùn)而生,給傳統(tǒng)的軟件質(zhì)量管理帶來了挑戰(zhàn)。軟件質(zhì)量保證是質(zhì)量管理的重要活動之一。本文利用風(fēng)險(xiǎn)分析的思想,基于定性和定量相結(jié)合的方法,構(gòu)建了基于風(fēng)險(xiǎn)分析的軟件質(zhì)量保證過程,分析了基于風(fēng)險(xiǎn)分析的軟件質(zhì)量保證過程與傳統(tǒng)軟件質(zhì)量保證過程的差異,給出了基于歷史數(shù)據(jù)和項(xiàng)目風(fēng)險(xiǎn)如何進(jìn)行質(zhì)量保證策劃的一個(gè)示例。希望能夠?yàn)橹芷诰o、人員有限、質(zhì)量要求高的軟件項(xiàng)目,提供一種精準(zhǔn)地投入軟件質(zhì)量保證資源、快速有效開展軟件質(zhì)量保證的解決思路。