申曉彥 郭佳旭 曹春芳 楊薇 姚素娟 王霞 邢璐 張曄
摘要:軟件測(cè)試過(guò)程在軟件開(kāi)發(fā)中發(fā)揮著重要作用,傳統(tǒng)的基于V模型的軟件測(cè)試過(guò)程比較滯后,在軟件代碼完成之后才開(kāi)始測(cè)試活動(dòng),當(dāng)發(fā)現(xiàn)軟件缺陷時(shí)需要付出較大的代價(jià)。該文提出了一種改進(jìn)的軟件測(cè)試過(guò)程,將測(cè)試過(guò)程中的確定測(cè)試需求、制定測(cè)試計(jì)劃、設(shè)計(jì)測(cè)試用例三個(gè)環(huán)節(jié),與軟件需求分析、軟件概要設(shè)計(jì)、軟件詳細(xì)設(shè)計(jì)活動(dòng)并行開(kāi)展,有助于在軟件開(kāi)發(fā)早期發(fā)現(xiàn)潛在的缺陷,能夠有效提升軟件質(zhì)量、縮短軟件開(kāi)發(fā)周期、降低軟件開(kāi)發(fā)成本。
關(guān)鍵詞:測(cè)試需求;測(cè)試計(jì)劃;測(cè)試設(shè)計(jì);分析與總結(jié)
中圖分類號(hào):TP311? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2021)09-0081-02
開(kāi)放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
隨著軟件規(guī)模的攀升、軟件功能的復(fù)雜化、軟件缺陷的影響加劇,軟件測(cè)試的重要性日益凸顯。為了保證軟件測(cè)試的效率及質(zhì)量,需要采用規(guī)范化的軟件測(cè)試過(guò)程。
軟件測(cè)試過(guò)程指一個(gè)定義好的、受控制的、由人來(lái)執(zhí)行的過(guò)程,集成了測(cè)試概念、測(cè)試策略、測(cè)試技術(shù)和測(cè)試度量。軟件測(cè)試過(guò)程支持測(cè)試活動(dòng),為測(cè)試小組提供從測(cè)試計(jì)劃到測(cè)試輸出評(píng)價(jià)的指導(dǎo)。
本文對(duì)軟件測(cè)試過(guò)程進(jìn)行了深入的研究和分析,在原有V模型軟件測(cè)試過(guò)程[1]的基礎(chǔ)上,提出一種改進(jìn)的軟件測(cè)試過(guò)程,使軟件測(cè)試的設(shè)計(jì)階段與軟件開(kāi)發(fā)過(guò)程并行開(kāi)展,可在軟件開(kāi)發(fā)早期發(fā)現(xiàn)潛在的缺陷,如:軟件需求的不可測(cè)試性、異常情況下軟件的缺陷等問(wèn)題,能夠有效提升軟件質(zhì)量、縮短軟件開(kāi)發(fā)周期。
1 概述
傳統(tǒng)的基于V模型的軟件測(cè)試過(guò)程如圖1所示,它將軟件測(cè)試與軟件設(shè)計(jì)階段分開(kāi),且軟件測(cè)試在軟件開(kāi)發(fā)過(guò)程中處于比較靠后的階段,由此使得軟件設(shè)計(jì)階段的缺陷,在軟件開(kāi)發(fā)后期才能被發(fā)現(xiàn),而此時(shí)修改軟件將要付出較大的代價(jià),容易導(dǎo)致軟件開(kāi)發(fā)周期延長(zhǎng)。
為使軟件測(cè)試盡早介入軟件開(kāi)發(fā)過(guò)程,本文中提出在軟件開(kāi)發(fā)過(guò)程的早期階段,開(kāi)展軟件測(cè)試設(shè)計(jì),與軟件需求分析、軟件概要設(shè)計(jì)、軟件詳細(xì)設(shè)計(jì)活動(dòng)并行開(kāi)展,改進(jìn)后的軟件測(cè)試過(guò)程如圖2所示。
由上圖可知,軟件開(kāi)發(fā)的每個(gè)階段都有與之對(duì)應(yīng)的測(cè)試活動(dòng),軟件測(cè)試與軟件開(kāi)發(fā)緊密相關(guān),且貫穿于整個(gè)軟件生命周期。
2 軟件測(cè)試過(guò)程
根據(jù)測(cè)試對(duì)象與軟件開(kāi)發(fā)過(guò)程,可將測(cè)試過(guò)程劃分四個(gè)階段,即單元測(cè)試、集成測(cè)試、配置項(xiàng)測(cè)試、系統(tǒng)測(cè)試。
每個(gè)階段的測(cè)試過(guò)程基本一致,可概括為:確定測(cè)試需求、制定測(cè)試計(jì)劃、設(shè)計(jì)測(cè)試用例、執(zhí)行測(cè)試、分析測(cè)試數(shù)據(jù)、總結(jié)測(cè)試活動(dòng)[2-4],如圖3所示。其中,確定測(cè)試需求、制定測(cè)試計(jì)劃、設(shè)計(jì)測(cè)試用例三個(gè)環(huán)節(jié),可在軟件開(kāi)發(fā)過(guò)程早期開(kāi)展。即確定系統(tǒng)測(cè)試需求、制定系統(tǒng)測(cè)試計(jì)劃、設(shè)計(jì)系統(tǒng)測(cè)試用例,可與系統(tǒng)需求分析并行開(kāi)展;確定軟件測(cè)試需求、制定軟件測(cè)試計(jì)劃、設(shè)計(jì)軟件測(cè)試用例,可與軟件需求分析并行開(kāi)展;確定集成部件測(cè)試需求、制定集成部件測(cè)試計(jì)劃、設(shè)計(jì)集成部件測(cè)試用例,可與概要設(shè)計(jì)并行開(kāi)展;確定單元測(cè)試需求、制定單元測(cè)試計(jì)劃、設(shè)計(jì)單元測(cè)試用例,可與詳細(xì)設(shè)計(jì)并行開(kāi)展。
2.1 確定測(cè)試需求
根據(jù)軟件任務(wù)書(shū)、軟件需求說(shuō)明、軟件設(shè)計(jì)說(shuō)明等相關(guān)內(nèi)容,從軟件功能、軟件性能、軟件外部接口、各軟件之間的接口、軟件模塊之間的接口、軟件可靠性、軟件安全性、語(yǔ)句或分支覆蓋率等方面,在軟件開(kāi)發(fā)階段早期,確定各項(xiàng)測(cè)試需求。
2.2 制定測(cè)試計(jì)劃
根據(jù)測(cè)試需求的內(nèi)容,按照如下步驟,規(guī)劃具體的測(cè)試活動(dòng),制定測(cè)試計(jì)劃:
1)確定參與測(cè)試的人員及分工;
2)提出測(cè)試所需的軟、硬件工具與設(shè)備;
3)規(guī)劃測(cè)試所需的環(huán)境,該環(huán)境可以是實(shí)際運(yùn)行環(huán)境,也可以是模擬的運(yùn)行環(huán)境。如果采用模擬環(huán)境,則應(yīng)將測(cè)試環(huán)境與真實(shí)環(huán)境進(jìn)行比較,對(duì)二者之間的差異性進(jìn)行分析說(shuō)明;
4)按照測(cè)試需求,確定測(cè)試范圍,策劃需要開(kāi)展測(cè)試內(nèi)容,以及測(cè)試進(jìn)展順序;
5)針對(duì)測(cè)試內(nèi)容,預(yù)計(jì)測(cè)試開(kāi)展時(shí)間及進(jìn)度安排;
6)制定測(cè)試評(píng)價(jià)準(zhǔn)則與測(cè)試終止條件。
根據(jù)上述內(nèi)容,制定軟件測(cè)試計(jì)劃,用于指導(dǎo)測(cè)試工作。
2.3 設(shè)計(jì)測(cè)試用例
根據(jù)軟件測(cè)試需求、測(cè)試范圍、及測(cè)試內(nèi)容,設(shè)計(jì)測(cè)試用例,測(cè)試用例的類型可從以下幾方面考慮[3,5]:
1)功能測(cè)試;2)性能測(cè)試;3)外部接口測(cè)試;4)內(nèi)部接口測(cè)試;5)可靠性、安全性測(cè)試;6)邊界測(cè)試;7)余量測(cè)試;8)強(qiáng)度測(cè)試;9)時(shí)序測(cè)試。
按照測(cè)試級(jí)別的不同要求設(shè)計(jì)測(cè)試用例,可采用等價(jià)類劃分、邊界值分析、錯(cuò)誤推測(cè)法[6]、因果圖等方法設(shè)計(jì)測(cè)試用例。測(cè)試用例應(yīng)兼顧測(cè)試的充分性和測(cè)試的效率,以及測(cè)試的可操作性和可復(fù)用性。設(shè)計(jì)測(cè)試用例時(shí),應(yīng)重點(diǎn)關(guān)注以下內(nèi)容:
1)測(cè)試輸入及條件,應(yīng)包含正常范圍、異常范圍的輸入,以及輸入的時(shí)間與順序;
2)測(cè)試步驟,即測(cè)試執(zhí)行的具體過(guò)程;
3)預(yù)期測(cè)試結(jié)果,對(duì)每一步產(chǎn)生的結(jié)果均應(yīng)給出預(yù)期結(jié)果;
4)評(píng)價(jià)結(jié)果的準(zhǔn)則,包括輸出可能的變化范圍、最大/最小測(cè)試持續(xù)時(shí)間等;
5)測(cè)試終止條件,即正?;虍惓=Y(jié)束測(cè)試的條件。
與此同時(shí),提出需求文檔、設(shè)計(jì)文檔中存在的各種缺陷,如:某項(xiàng)需求不具備可測(cè)試性、多個(gè)需求點(diǎn)之間存在邏輯矛盾、軟件對(duì)于異常情況的防御能力不足等,以便于軟件需求開(kāi)發(fā)人員、軟件設(shè)計(jì)人員盡早發(fā)現(xiàn)并修改相關(guān)缺陷。
2.4 執(zhí)行測(cè)試
當(dāng)軟件代碼滿足執(zhí)行測(cè)試條件時(shí),按以下順序執(zhí)行測(cè)試活動(dòng):
1)將測(cè)試所需的各項(xiàng)軟、硬件資源準(zhǔn)備到位,并搭建測(cè)試平臺(tái);
2)編寫(xiě)測(cè)試所需的驅(qū)動(dòng)程序、樁程序;
3)根據(jù)設(shè)計(jì)的測(cè)試用例,按步驟逐項(xiàng)執(zhí)行;
4)記錄每一步的測(cè)試結(jié)果,并將其與預(yù)期測(cè)試結(jié)果進(jìn)行比較,按照評(píng)價(jià)結(jié)果的準(zhǔn)則,對(duì)測(cè)試結(jié)果進(jìn)行判定;
5)如果測(cè)試結(jié)果正確,測(cè)試全部通過(guò),則可進(jìn)入下一環(huán)節(jié)“分析測(cè)試結(jié)果”;否則進(jìn)入第6步;
6)記錄并提交測(cè)試發(fā)現(xiàn)的Bug;
7)修正處理Bug,并記錄Bug的原因分析及解決措施;
8)針對(duì)修改的內(nèi)容進(jìn)行影響域分析,確定回歸測(cè)試用例,避免因更改引發(fā)新的缺陷。在確定回歸測(cè)試用例時(shí),應(yīng)根據(jù)測(cè)試充分性對(duì)已有的測(cè)試用例集進(jìn)行約簡(jiǎn),減少測(cè)試用例集的冗余度,提高軟件測(cè)試的效率[7];
9)執(zhí)行回歸測(cè)試用例,如果測(cè)試用例通過(guò),則可進(jìn)入下一環(huán)節(jié)“分析測(cè)試結(jié)果”;否則轉(zhuǎn)入第6步。
2.5 分析測(cè)試數(shù)據(jù)
每個(gè)階段測(cè)試結(jié)束后,采集測(cè)試相關(guān)數(shù)據(jù),如:測(cè)試用例通過(guò)情況、測(cè)試用例新增或修改情況、缺陷數(shù)、缺陷的分布、缺陷關(guān)閉情況、測(cè)試實(shí)際執(zhí)行時(shí)間等。
并對(duì)采集數(shù)據(jù)進(jìn)行綜合分析,得出相關(guān)的分析與統(tǒng)計(jì)結(jié)果,如:缺陷發(fā)現(xiàn)的效率、缺陷率、缺陷密度、缺陷關(guān)閉率等。必要時(shí),可對(duì)各個(gè)模塊(或功能、接口)進(jìn)行缺陷分析。測(cè)試經(jīng)驗(yàn)表明,測(cè)試缺陷越多的部分,其隱藏的缺陷也越多。
在采集與分析測(cè)試數(shù)據(jù)時(shí),可采用測(cè)試過(guò)程管理平臺(tái)自動(dòng)收集相關(guān)數(shù)據(jù)[8],有助于提升采集、分析數(shù)據(jù)的效率與準(zhǔn)確率。
通過(guò)上述分析,可以為開(kāi)發(fā)人員提供清晰的軟件分析結(jié)果,使其了解缺陷主要集中在哪些軟件功能、接口或模塊,以便于在后續(xù)開(kāi)發(fā)時(shí)予以關(guān)注,避免同類問(wèn)題重復(fù)發(fā)生。
2.6 總結(jié)測(cè)試活動(dòng)
對(duì)各階段的測(cè)試活動(dòng)進(jìn)行總結(jié),根據(jù)測(cè)試結(jié)果和通過(guò)準(zhǔn)則,從以下方面評(píng)價(jià)測(cè)試工作和被測(cè)軟件,并形成測(cè)試報(bào)告。
1)測(cè)試的充分性;2)測(cè)試執(zhí)行及通過(guò)情況;3)測(cè)試發(fā)現(xiàn)的缺陷、缺陷分析及缺陷關(guān)閉情況;4)測(cè)試遺留缺陷描述,及其對(duì)軟件的影響;5)測(cè)試環(huán)境與實(shí)際環(huán)境的差異,以及差異對(duì)測(cè)試結(jié)果的影響;6)提供測(cè)試結(jié)論,測(cè)試是否通過(guò);并可描述各項(xiàng)測(cè)試的測(cè)試結(jié)果、測(cè)試中出現(xiàn)的問(wèn)題及處理情況等;7)從被測(cè)軟件的設(shè)計(jì)、編碼等方面,提出改進(jìn)建議。
3 結(jié)論
軟件測(cè)試的目的就是發(fā)現(xiàn)軟件的缺陷、提高軟件的質(zhì)量。改進(jìn)后的軟件測(cè)試過(guò)程,在盡早發(fā)現(xiàn)軟件缺陷、提高軟件質(zhì)量、縮短軟件研制周期等方面,具有顯著的優(yōu)勢(shì)。
經(jīng)統(tǒng)計(jì),在軟件研制項(xiàng)目中采用上述軟件測(cè)試過(guò)程,可在軟件需求分析、軟件概要設(shè)計(jì)、軟件詳細(xì)設(shè)計(jì)階段,發(fā)現(xiàn)多項(xiàng)軟件缺陷,約占軟件缺陷總數(shù)的15%—20%;從而可以有效降低修改軟件缺陷而耗費(fèi)的人力、物力資源,并可使軟件研制周期縮短約10%—20%。
參考文獻(xiàn):
[1] 周童,方彥軍.一種新的軟件測(cè)試過(guò)程模型—“跑道”模型[J].計(jì)算機(jī)測(cè)量與控制,2015,23(10):3347-3349.
[2] 王樹(shù)義,南建國(guó),黃雷.航空軟件測(cè)試過(guò)程模型應(yīng)用研究[J].計(jì)算機(jī)測(cè)量與控制,2013,21(6):1443-1445.
[3] 王艷軍,王勇利,顧濱兵.基于GJB2725A的軍用軟件測(cè)試管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)測(cè)量與控制,2018,26(8):133-137
[4] 楊薇,曹春芳,姚素娟,等.柴油機(jī)電控系統(tǒng)軟件測(cè)試設(shè)計(jì)及用例復(fù)用方法研究[J].自動(dòng)化儀表,2018,39(9):79-82.
[5] 馬海云,張少剛.軟件質(zhì)量保證與軟件測(cè)試技術(shù)[M].北京:國(guó)防工業(yè)出版社,2011:122-124.
[6] 鄭煒,楊喜兵,胡圣佑,等.基于變異分析和覆蓋準(zhǔn)則的回歸測(cè)試用例集縮減[J].西北工業(yè)大學(xué)學(xué)報(bào),2017,35(3):494-499.
【通聯(lián)編輯:朱寶貴】