川模型:一款新的軟件測試模型
隨著科技的不斷進(jìn)步,計(jì)算機(jī)應(yīng)用已經(jīng)完全深入到我們整個(gè)社會的體系中,人們現(xiàn)在已經(jīng)無法適應(yīng)沒有軟件的世界,您在讀這篇文章的時(shí)候,您的電腦正在工作、手機(jī)正在運(yùn)行。甚至路上的汽車、信號燈都被軟件全副武裝。人們對軟件的依賴越來越大,雖然質(zhì)量可靠的軟件給我們的工作和生活帶來了前所未有的便利,但是質(zhì)量不好的軟件也讓我們付出過慘痛的代價(jià),這讓我們充分認(rèn)識到軟件質(zhì)量正在牽動著社會的命脈。 為了提高軟件質(zhì)量,軟件開發(fā)人員進(jìn)行過大量的研究和實(shí)踐。從最初的技術(shù)革新,如編譯、調(diào)試工具等地研究到各種計(jì)算機(jī)輔助軟件環(huán)境,再到軟件開發(fā)模型的研究。但是這種以技術(shù)和方法為重心的研究沒有真正達(dá)到保證軟件質(zhì)量的目的(但是確實(shí)對軟件質(zhì)量的提高做出了貢獻(xiàn))。所以,人們開始認(rèn)識到只有對軟件開發(fā)過程的質(zhì)量加以控制,才有可能大幅度的提高軟件質(zhì)量。因此,軟件質(zhì)量保證也從最初的以技術(shù)和方法為重心的模式,轉(zhuǎn)移到以過程管理為重心的實(shí)踐。 軟件質(zhì)量保證的本質(zhì)是為了確保軟件開發(fā)過程和結(jié)果符合預(yù)期要求而建立的一系列活動及其結(jié)果評價(jià),其最終目的是缺陷預(yù)防,達(dá)到用戶的實(shí)際需求,避免安全風(fēng)險(xiǎn)。軟件測試活動是保證軟件質(zhì)量的有力武器,從最初的調(diào)試、驗(yàn)證,到現(xiàn)在形成的獨(dú)立測試體系,無一不體現(xiàn)質(zhì)量保證的重要性和測試工作的必要性。 本文討論的目的:在現(xiàn)今科技發(fā)展的大潮下,為了提高軟件質(zhì)量及工作效率,提出軟件測試的川模型。希望川模型找出一款適合中國國情的軟件測試思路和測試模型。 2 軟件開發(fā)、測試的現(xiàn)狀分析
目前主流的軟件開發(fā)模型有:螺旋模型、增量模型、漸進(jìn)模型、快速軟件開發(fā)(RAD)以及Rational統(tǒng)一過程(RUP)等,這些模型對于軟件開發(fā)過程具有很好的指導(dǎo)作用,但是這些模型并沒有充分強(qiáng)調(diào)測試的價(jià)值,也沒有給測試以足夠的重視,利用這些模型不能更好地指導(dǎo)測試實(shí)踐。因此,軟件測試模型應(yīng)運(yùn)而生,它能夠系統(tǒng)的有計(jì)劃的指導(dǎo)測試與研發(fā)的一系列活動,對軟件質(zhì)量的提高有著重要的作用。目前常見的軟件測試模型有V模型、W模型、H模型、X模型、前置測試模型等。 這些測試模型都在一定程度上完善和發(fā)展了軟件的測試體系,但是它們?nèi)匀淮嬖谥蚨嗷蛏俚膯栴},還沒有充分把測試對質(zhì)量保證的能力發(fā)揮出來。下面分析一下幾款主流測試模型的優(yōu)劣情況。 2.1 V模型的優(yōu)劣分析
V模型強(qiáng)調(diào)軟件開發(fā)的協(xié)作和速度,反映測試活動和分析設(shè)計(jì)關(guān)系,將軟件實(shí)現(xiàn)和驗(yàn)證有機(jī)結(jié)合起來;強(qiáng)調(diào)了在整個(gè)軟件項(xiàng)目開發(fā)中需要經(jīng)歷的若干測試級別,并與開發(fā)級別對應(yīng)。但是,沒有體現(xiàn)“盡早地、不斷地進(jìn)行軟件測試”的原則;把測試作為編碼之后的最后一個(gè)活動,項(xiàng)目前期產(chǎn)生的錯(cuò)誤直到后期才能測試發(fā)現(xiàn);沒有明確指出對需求、設(shè)計(jì)的測試。 2.2 W模型的優(yōu)劣分析
W模型強(qiáng)調(diào)了測試計(jì)劃等工作的先行和對系統(tǒng)需求和系統(tǒng)設(shè)計(jì)的測試;在整個(gè)軟件開發(fā)周期中,測試與開發(fā)并行進(jìn)行,有利于盡早發(fā)現(xiàn)問題;提出了測試的對象包括程序、需求、設(shè)計(jì)等內(nèi)容;及時(shí)了解項(xiàng)目的測試風(fēng)險(xiǎn),及早制定應(yīng)對方案,加快項(xiàng)目進(jìn)度。但是,它沒有對測試規(guī)程進(jìn)行說明,同時(shí)軟件開發(fā)和測試保持著線性的前后關(guān)系,無法支持迭代、自發(fā)性以及需求變更調(diào)整等經(jīng)常面臨的問題。 2.3 H模型的優(yōu)劣分析
在H模型中,軟件測試活動完全獨(dú)立,貫穿于整個(gè)軟件周期,與其他流程并發(fā)進(jìn)行,某個(gè)測試點(diǎn)準(zhǔn)備就緒時(shí),就可以從測試準(zhǔn)備階段進(jìn)行到測試執(zhí)行階段;提出了軟件測試不僅僅指測試的執(zhí)行,還包括很多其他的活動;測試是根據(jù)被測物的不同而分層次進(jìn)行,不同層次的測試活動可以是按照某個(gè)次序先后進(jìn)行的,但也可能是反復(fù)的。 2.4 X模型的優(yōu)劣分析
X模型要求對每一個(gè)程序片段都進(jìn)行單元測試,但沒能提供是否要跳過單元測試的判斷準(zhǔn)則;多根并行的曲線代表著變更可以在各個(gè)部分發(fā)生,提高了迭代效率;它還定義了探索性測試,這一方式能幫助有經(jīng)驗(yàn)的測試人員在測試計(jì)劃之外發(fā)現(xiàn)更多的軟件錯(cuò)誤,但對測試人員的能力要求比較高。 2.5 前置測試模型的優(yōu)劣分析
該模型將開發(fā)和測試的生命周期整合在一起,標(biāo)識了項(xiàng)目生命周期從開始到結(jié)束之間的關(guān)鍵行為;明確提出了每一個(gè)交付的開發(fā)結(jié)果都必須通過一定的方式進(jìn)行測試;它還定義了“開發(fā)基于需求的測試用例”以及“定義驗(yàn)收標(biāo)準(zhǔn)”,讓驗(yàn)收測試和技術(shù)測試保持相互獨(dú)立。 以上模型都有其優(yōu)劣,但總體來說,都沒有真正的把測試對質(zhì)量的保障意義或時(shí)機(jī)把控好,大部分模型中,測試只是軟件開發(fā)過程的一部分,沒有明確獨(dú)立成一個(gè)體系,雖然H等模型把測試對產(chǎn)品質(zhì)量保證的地位提升了不少,但是仍然缺少對測試規(guī)程、資料等重要性的體現(xiàn)。 3 川模型架構(gòu)
針對軟件開發(fā)、測試的現(xiàn)狀存在的問題(并且結(jié)合各已知模型的優(yōu)點(diǎn)),依據(jù)“以測試者引導(dǎo)開發(fā),以文檔化把控質(zhì)量”的測試實(shí)施理念,完善、發(fā)展了一個(gè)新的測試模型──川模型。 3.1 川模型
川模型由三條相對獨(dú)立的測試實(shí)施流程組成,因?yàn)轭愃浦形牡摹按ā弊侄妹F渲械娜龡l測試實(shí)施流程分別是驗(yàn)收測試實(shí)施流程、需求級測試實(shí)施流程、業(yè)務(wù)級測試實(shí)施流程。如圖1所示。
圖1 川模型工作組織規(guī)程簡圖 1)驗(yàn)收測試實(shí)施流程 該流程提出的目的與重點(diǎn)在于保護(hù)用戶的真實(shí)需求,因?yàn)樽罱K產(chǎn)品或項(xiàng)目能否成功交付,驗(yàn)收結(jié)果是重要的依據(jù),而驗(yàn)收的主導(dǎo)者一定是用戶(代表)。該流程的起始階段就是在投入真正的研發(fā)和測試之前,根據(jù)項(xiàng)目需求及測試需求設(shè)計(jì)出驗(yàn)收方案,以紙質(zhì)方案的形式與用戶(代表)進(jìn)行評審,以減少后期由于三方(用戶、研發(fā)、測試)需求不一致的原因?qū)е麻_發(fā)迭代增加。同時(shí),以此驗(yàn)收方案為標(biāo)尺,約束另兩個(gè)流程的實(shí)施。 2)需求級測試實(shí)施流程 該階段強(qiáng)調(diào)測試伴隨著整個(gè)軟件開發(fā)周期,測試與開發(fā)并行進(jìn)行,達(dá)到盡早發(fā)現(xiàn)問題的目的。把測試的對象擴(kuò)展成程序、設(shè)計(jì)(文檔資料)、數(shù)據(jù)等內(nèi)容,測試工作實(shí)時(shí)準(zhǔn)備,以達(dá)到在某個(gè)測試點(diǎn)準(zhǔn)備就緒時(shí),可迅速切入到測試執(zhí)行階段。在該流程中,把迭代測試的內(nèi)容進(jìn)行了細(xì)致的分析與說明,明確提出迭代過程中需要進(jìn)行單元/集成測試、功能測試、自動化測試、安全性測試以及專項(xiàng)測試。把自動化測試與安全性測試提高到測試指導(dǎo)階段,也是當(dāng)今科技發(fā)展的必然趨勢。 3)業(yè)務(wù)級測試實(shí)施流程
如果把測試人員按測試能力分為測試負(fù)責(zé)人、測試執(zhí)行人員,那么需求級測試實(shí)施階段的測試執(zhí)行可以讓測試執(zhí)行人員進(jìn)行,但是業(yè)務(wù)級測試實(shí)施流程的主要執(zhí)行人員就應(yīng)該定位成測試負(fù)責(zé)人,至少應(yīng)該是測試負(fù)責(zé)人主導(dǎo)測試。其根本原因在于該階段的意義是業(yè)務(wù)、風(fēng)險(xiǎn)等的把控,并且引入了探索性測試,是作為需求級測試階段的有利補(bǔ)充。 需求級測試實(shí)施流程與研發(fā)流程無縫有機(jī)結(jié)合。業(yè)務(wù)級測試實(shí)施流程存在的價(jià)值在于把控與掌握住了產(chǎn)品實(shí)際投入使用時(shí)的場景、風(fēng)險(xiǎn)等因素,對著重需求進(jìn)行針對性的設(shè)計(jì),滿足“八二法則”的經(jīng)典理論,該流程即把重點(diǎn)放在了“二”上(用戶使用的80%的場景可能就存在于20%的功能中)。驗(yàn)收測試實(shí)施流程依托于用戶的實(shí)際需求與前期的測試分析,它作為軟件生命周期的標(biāo)尺,運(yùn)行到產(chǎn)品或項(xiàng)目結(jié)項(xiàng),最大程度上滿足用戶需求。 3.2 川模型的工作組織規(guī)程
從圖1可以看出: 川模型突出體現(xiàn)了測試活動對質(zhì)量把控的重要性。從項(xiàng)目的可行性分析開始,測試人員就擔(dān)負(fù)著重要的角色。同時(shí),把測試需求說明書、驗(yàn)收方案、測試方案的重要性與提出時(shí)機(jī)進(jìn)行了說明。體現(xiàn): 1)需求分析需要產(chǎn)品/項(xiàng)目經(jīng)理、用戶、測試人員等全程參與; 2)測試需求說明書需要測試人員起草,由產(chǎn)品/項(xiàng)目經(jīng)理、用戶、研發(fā)等共同審核通過; 3)驗(yàn)收方案提前由測試人員編寫,由產(chǎn)品/項(xiàng)目經(jīng)理、用戶共同審核通過; 4)研發(fā)設(shè)計(jì)階段主要依據(jù)測試需求說明書編寫(其次可參考軟件需求說明書),在還沒有進(jìn)行完代碼開發(fā)之前,測試人員提前輸出依據(jù)測試需求說明書編寫的測試案例,由研發(fā)人員提前參考,提高研發(fā)依據(jù)測試案例開發(fā)代碼的測試通過率; 5)迭代階段大部分在需求級測試實(shí)施流程,測試工作實(shí)時(shí)準(zhǔn)備,以便迅速切入測試執(zhí)行; 6)業(yè)務(wù)級測試實(shí)施階段的執(zhí)行工作是需求級的補(bǔ)充,在軟件研發(fā)的中后期無縫切入; 7)驗(yàn)收執(zhí)行的觸發(fā)點(diǎn)是業(yè)務(wù)級測試通過,驗(yàn)收工作完成后,進(jìn)行項(xiàng)目資料歸檔工作; 8)研發(fā)過程中,如果有任何變更,需走變更控制程序,返回測試需求分析階段,并根據(jù)實(shí)際情況與要害人員輸出變更后的系列資料(驗(yàn)收方案、測試案例等)。 4 川模型的甘特圖
在圖1中的左半部分,做了時(shí)間軸與等時(shí)線的定義。并且說明了不同職能人員的參與時(shí)機(jī),已給大家在時(shí)序上的理解。 5 川模型的價(jià)值5.1 體現(xiàn)測試的使命與重要地位
在川模型上,可以很容易的看出測試工作對軟件質(zhì)量的保證意義與實(shí)施方法。區(qū)別于其他模型,該模型更加清晰、系統(tǒng)的說明了測試的使命,并且該模型真正站到了測試的角色,以測試保證最終用戶質(zhì)量的認(rèn)可下指導(dǎo)研發(fā)的工作,作為研發(fā)工作的標(biāo)尺。 5.2 體現(xiàn)測試先行的重要意義
從產(chǎn)品/項(xiàng)目的可行性分析開始,測試活動就一直伴隨整個(gè)生命周期,真正體現(xiàn)了“盡早地、不斷地進(jìn)行軟件測試”的原則。 5.3 文檔化的重要性與可追溯性的提出
在現(xiàn)今越來越快的產(chǎn)品/項(xiàng)目的交互進(jìn)程中,人們對文檔化的需求越來越迫切,文檔化不僅可以使研發(fā)、測試過程更加有理、有據(jù)、科學(xué),也為以后的可追溯性提供了基礎(chǔ)。同時(shí),產(chǎn)品/項(xiàng)目前期就對測試案例化的要求,對研發(fā)的指導(dǎo)意義更大,研發(fā)完全可以“依據(jù)測試案例設(shè)計(jì)軟件,案例通過即研發(fā)完成”的標(biāo)準(zhǔn)進(jìn)行開發(fā)活動,避免了由于需求不一致的情況下導(dǎo)致研發(fā)冗余或功能缺失,提高了工作效率。 5.4 提出三種測試技術(shù)相結(jié)合的規(guī)程
川模型第一次提出了三條執(zhí)行線的工作模式。驗(yàn)收實(shí)施流程作為整個(gè)產(chǎn)品/項(xiàng)目的指導(dǎo)流程執(zhí)行,它與用戶最緊密相關(guān),最能體現(xiàn)用戶的實(shí)際需求,同時(shí)避免、減少了在工作過程中的隨意變更;需求級實(shí)施流程則最有效的保證了測試覆蓋率,并且與研發(fā)的交互也更加順暢,提高了測試與研發(fā)迭代的敏捷度;業(yè)務(wù)級實(shí)施流程則通過有經(jīng)驗(yàn)的測試人員,把最重要需求做了風(fēng)險(xiǎn)、場景、探索等地設(shè)計(jì)驗(yàn)證,可以這樣說,經(jīng)過最后一條執(zhí)行線的梳理后,用戶的實(shí)際并且經(jīng)常使用的功能都被覆蓋到。 除了需求級實(shí)施流程與研發(fā)的交互緊密而充分外,另兩個(gè)流程相對獨(dú)立,降低了研發(fā)過程干擾,為保證軟件質(zhì)量提供了有利基礎(chǔ)。 5.5 等時(shí)線為質(zhì)量保證提供了基礎(chǔ)
該模型首次提出等時(shí)線的概念,在時(shí)序上,避免了工作重復(fù)甚至沒有必要的交叉。正如該模型的約束,我們必須先進(jìn)行測試需求分析,輸出測試需求說明書后,才可進(jìn)行驗(yàn)收測試設(shè)計(jì);在驗(yàn)收測試設(shè)計(jì)快完成時(shí),才可以進(jìn)行需求級測試設(shè)計(jì),保證了測試設(shè)計(jì)與驗(yàn)收標(biāo)準(zhǔn)的高度統(tǒng)一;業(yè)務(wù)級實(shí)施流程通過后,才可進(jìn)行驗(yàn)收執(zhí)行工作。從另一層面,也對測試提出了更高的要求,例如在研發(fā)提交代碼之前,測試的準(zhǔn)備工作必須完成,可隨時(shí)切入工作;有需求變更時(shí),測試人員需要先后更新測試需求說明書、驗(yàn)收方案、測試方案等內(nèi)容,審核通過后,實(shí)時(shí)共享給要害人員,確保項(xiàng)目的順利進(jìn)行。 6 結(jié)束語
川模型的提出時(shí)間尚短,只在一兩個(gè)公司進(jìn)行過相關(guān)實(shí)踐,看到了明顯效果;提高了測試人員的使命感與榮譽(yù)感;也減少了軟件開發(fā)過程中的冗余、遺漏問題。但是,該模型沒有經(jīng)過大量的軟件企業(yè)實(shí)踐,還會存在或多或少的問題,僅作一個(gè)初步研究,通過這初步的研究,想拋磚引玉,真正找出一款適合中國國情的軟件測試思路和測試模型,也歡迎大家一起探討。
本文轉(zhuǎn)載自異步社區(qū)。
軟件開發(fā) 架構(gòu)設(shè)計(jì)
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。