国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于改進(jìn)V模型的軟件測試過程研究

2021-04-25 13:06申曉彥郭佳旭曹春芳楊薇姚素娟王霞邢璐張曄
電腦知識與技術(shù) 2021年9期
關(guān)鍵詞:測試計(jì)劃

申曉彥 郭佳旭 曹春芳 楊薇 姚素娟 王霞 邢璐 張曄

摘要:軟件測試過程在軟件開發(fā)中發(fā)揮著重要作用,傳統(tǒng)的基于V模型的軟件測試過程比較滯后,在軟件代碼完成之后才開始測試活動,當(dāng)發(fā)現(xiàn)軟件缺陷時(shí)需要付出較大的代價(jià)。該文提出了一種改進(jìn)的軟件測試過程,將測試過程中的確定測試需求、制定測試計(jì)劃、設(shè)計(jì)測試用例三個(gè)環(huán)節(jié),與軟件需求分析、軟件概要設(shè)計(jì)、軟件詳細(xì)設(shè)計(jì)活動并行開展,有助于在軟件開發(fā)早期發(fā)現(xiàn)潛在的缺陷,能夠有效提升軟件質(zhì)量、縮短軟件開發(fā)周期、降低軟件開發(fā)成本。

關(guān)鍵詞:測試需求;測試計(jì)劃;測試設(shè)計(jì);分析與總結(jié)

中圖分類號:TP311? ? ? ?文獻(xiàn)標(biāo)識碼:A

文章編號:1009-3044(2021)09-0081-02

開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):

隨著軟件規(guī)模的攀升、軟件功能的復(fù)雜化、軟件缺陷的影響加劇,軟件測試的重要性日益凸顯。為了保證軟件測試的效率及質(zhì)量,需要采用規(guī)范化的軟件測試過程。

軟件測試過程指一個(gè)定義好的、受控制的、由人來執(zhí)行的過程,集成了測試概念、測試策略、測試技術(shù)和測試度量。軟件測試過程支持測試活動,為測試小組提供從測試計(jì)劃到測試輸出評價(jià)的指導(dǎo)。

本文對軟件測試過程進(jìn)行了深入的研究和分析,在原有V模型軟件測試過程[1]的基礎(chǔ)上,提出一種改進(jìn)的軟件測試過程,使軟件測試的設(shè)計(jì)階段與軟件開發(fā)過程并行開展,可在軟件開發(fā)早期發(fā)現(xiàn)潛在的缺陷,如:軟件需求的不可測試性、異常情況下軟件的缺陷等問題,能夠有效提升軟件質(zhì)量、縮短軟件開發(fā)周期。

1 概述

傳統(tǒng)的基于V模型的軟件測試過程如圖1所示,它將軟件測試與軟件設(shè)計(jì)階段分開,且軟件測試在軟件開發(fā)過程中處于比較靠后的階段,由此使得軟件設(shè)計(jì)階段的缺陷,在軟件開發(fā)后期才能被發(fā)現(xiàn),而此時(shí)修改軟件將要付出較大的代價(jià),容易導(dǎo)致軟件開發(fā)周期延長。

為使軟件測試盡早介入軟件開發(fā)過程,本文中提出在軟件開發(fā)過程的早期階段,開展軟件測試設(shè)計(jì),與軟件需求分析、軟件概要設(shè)計(jì)、軟件詳細(xì)設(shè)計(jì)活動并行開展,改進(jìn)后的軟件測試過程如圖2所示。

由上圖可知,軟件開發(fā)的每個(gè)階段都有與之對應(yīng)的測試活動,軟件測試與軟件開發(fā)緊密相關(guān),且貫穿于整個(gè)軟件生命周期。

2 軟件測試過程

根據(jù)測試對象與軟件開發(fā)過程,可將測試過程劃分四個(gè)階段,即單元測試、集成測試、配置項(xiàng)測試、系統(tǒng)測試。

每個(gè)階段的測試過程基本一致,可概括為:確定測試需求、制定測試計(jì)劃、設(shè)計(jì)測試用例、執(zhí)行測試、分析測試數(shù)據(jù)、總結(jié)測試活動[2-4],如圖3所示。其中,確定測試需求、制定測試計(jì)劃、設(shè)計(jì)測試用例三個(gè)環(huán)節(jié),可在軟件開發(fā)過程早期開展。即確定系統(tǒng)測試需求、制定系統(tǒng)測試計(jì)劃、設(shè)計(jì)系統(tǒng)測試用例,可與系統(tǒng)需求分析并行開展;確定軟件測試需求、制定軟件測試計(jì)劃、設(shè)計(jì)軟件測試用例,可與軟件需求分析并行開展;確定集成部件測試需求、制定集成部件測試計(jì)劃、設(shè)計(jì)集成部件測試用例,可與概要設(shè)計(jì)并行開展;確定單元測試需求、制定單元測試計(jì)劃、設(shè)計(jì)單元測試用例,可與詳細(xì)設(shè)計(jì)并行開展。

2.1 確定測試需求

根據(jù)軟件任務(wù)書、軟件需求說明、軟件設(shè)計(jì)說明等相關(guān)內(nèi)容,從軟件功能、軟件性能、軟件外部接口、各軟件之間的接口、軟件模塊之間的接口、軟件可靠性、軟件安全性、語句或分支覆蓋率等方面,在軟件開發(fā)階段早期,確定各項(xiàng)測試需求。

2.2 制定測試計(jì)劃

根據(jù)測試需求的內(nèi)容,按照如下步驟,規(guī)劃具體的測試活動,制定測試計(jì)劃:

1)確定參與測試的人員及分工;

2)提出測試所需的軟、硬件工具與設(shè)備;

3)規(guī)劃測試所需的環(huán)境,該環(huán)境可以是實(shí)際運(yùn)行環(huán)境,也可以是模擬的運(yùn)行環(huán)境。如果采用模擬環(huán)境,則應(yīng)將測試環(huán)境與真實(shí)環(huán)境進(jìn)行比較,對二者之間的差異性進(jìn)行分析說明;

4)按照測試需求,確定測試范圍,策劃需要開展測試內(nèi)容,以及測試進(jìn)展順序;

5)針對測試內(nèi)容,預(yù)計(jì)測試開展時(shí)間及進(jìn)度安排;

6)制定測試評價(jià)準(zhǔn)則與測試終止條件。

根據(jù)上述內(nèi)容,制定軟件測試計(jì)劃,用于指導(dǎo)測試工作。

2.3 設(shè)計(jì)測試用例

根據(jù)軟件測試需求、測試范圍、及測試內(nèi)容,設(shè)計(jì)測試用例,測試用例的類型可從以下幾方面考慮[3,5]:

1)功能測試;2)性能測試;3)外部接口測試;4)內(nèi)部接口測試;5)可靠性、安全性測試;6)邊界測試;7)余量測試;8)強(qiáng)度測試;9)時(shí)序測試。

按照測試級別的不同要求設(shè)計(jì)測試用例,可采用等價(jià)類劃分、邊界值分析、錯(cuò)誤推測法[6]、因果圖等方法設(shè)計(jì)測試用例。測試用例應(yīng)兼顧測試的充分性和測試的效率,以及測試的可操作性和可復(fù)用性。設(shè)計(jì)測試用例時(shí),應(yīng)重點(diǎn)關(guān)注以下內(nèi)容:

1)測試輸入及條件,應(yīng)包含正常范圍、異常范圍的輸入,以及輸入的時(shí)間與順序;

2)測試步驟,即測試執(zhí)行的具體過程;

3)預(yù)期測試結(jié)果,對每一步產(chǎn)生的結(jié)果均應(yīng)給出預(yù)期結(jié)果;

4)評價(jià)結(jié)果的準(zhǔn)則,包括輸出可能的變化范圍、最大/最小測試持續(xù)時(shí)間等;

5)測試終止條件,即正常或異常結(jié)束測試的條件。

與此同時(shí),提出需求文檔、設(shè)計(jì)文檔中存在的各種缺陷,如:某項(xiàng)需求不具備可測試性、多個(gè)需求點(diǎn)之間存在邏輯矛盾、軟件對于異常情況的防御能力不足等,以便于軟件需求開發(fā)人員、軟件設(shè)計(jì)人員盡早發(fā)現(xiàn)并修改相關(guān)缺陷。

2.4 執(zhí)行測試

當(dāng)軟件代碼滿足執(zhí)行測試條件時(shí),按以下順序執(zhí)行測試活動:

1)將測試所需的各項(xiàng)軟、硬件資源準(zhǔn)備到位,并搭建測試平臺;

2)編寫測試所需的驅(qū)動程序、樁程序;

3)根據(jù)設(shè)計(jì)的測試用例,按步驟逐項(xiàng)執(zhí)行;

4)記錄每一步的測試結(jié)果,并將其與預(yù)期測試結(jié)果進(jìn)行比較,按照評價(jià)結(jié)果的準(zhǔn)則,對測試結(jié)果進(jìn)行判定;

5)如果測試結(jié)果正確,測試全部通過,則可進(jìn)入下一環(huán)節(jié)“分析測試結(jié)果”;否則進(jìn)入第6步;

6)記錄并提交測試發(fā)現(xiàn)的Bug;

7)修正處理Bug,并記錄Bug的原因分析及解決措施;

8)針對修改的內(nèi)容進(jìn)行影響域分析,確定回歸測試用例,避免因更改引發(fā)新的缺陷。在確定回歸測試用例時(shí),應(yīng)根據(jù)測試充分性對已有的測試用例集進(jìn)行約簡,減少測試用例集的冗余度,提高軟件測試的效率[7];

9)執(zhí)行回歸測試用例,如果測試用例通過,則可進(jìn)入下一環(huán)節(jié)“分析測試結(jié)果”;否則轉(zhuǎn)入第6步。

2.5 分析測試數(shù)據(jù)

每個(gè)階段測試結(jié)束后,采集測試相關(guān)數(shù)據(jù),如:測試用例通過情況、測試用例新增或修改情況、缺陷數(shù)、缺陷的分布、缺陷關(guān)閉情況、測試實(shí)際執(zhí)行時(shí)間等。

并對采集數(shù)據(jù)進(jìn)行綜合分析,得出相關(guān)的分析與統(tǒng)計(jì)結(jié)果,如:缺陷發(fā)現(xiàn)的效率、缺陷率、缺陷密度、缺陷關(guān)閉率等。必要時(shí),可對各個(gè)模塊(或功能、接口)進(jìn)行缺陷分析。測試經(jīng)驗(yàn)表明,測試缺陷越多的部分,其隱藏的缺陷也越多。

在采集與分析測試數(shù)據(jù)時(shí),可采用測試過程管理平臺自動收集相關(guān)數(shù)據(jù)[8],有助于提升采集、分析數(shù)據(jù)的效率與準(zhǔn)確率。

通過上述分析,可以為開發(fā)人員提供清晰的軟件分析結(jié)果,使其了解缺陷主要集中在哪些軟件功能、接口或模塊,以便于在后續(xù)開發(fā)時(shí)予以關(guān)注,避免同類問題重復(fù)發(fā)生。

2.6 總結(jié)測試活動

對各階段的測試活動進(jìn)行總結(jié),根據(jù)測試結(jié)果和通過準(zhǔn)則,從以下方面評價(jià)測試工作和被測軟件,并形成測試報(bào)告。

1)測試的充分性;2)測試執(zhí)行及通過情況;3)測試發(fā)現(xiàn)的缺陷、缺陷分析及缺陷關(guān)閉情況;4)測試遺留缺陷描述,及其對軟件的影響;5)測試環(huán)境與實(shí)際環(huán)境的差異,以及差異對測試結(jié)果的影響;6)提供測試結(jié)論,測試是否通過;并可描述各項(xiàng)測試的測試結(jié)果、測試中出現(xiàn)的問題及處理情況等;7)從被測軟件的設(shè)計(jì)、編碼等方面,提出改進(jìn)建議。

3 結(jié)論

軟件測試的目的就是發(fā)現(xiàn)軟件的缺陷、提高軟件的質(zhì)量。改進(jìn)后的軟件測試過程,在盡早發(fā)現(xiàn)軟件缺陷、提高軟件質(zhì)量、縮短軟件研制周期等方面,具有顯著的優(yōu)勢。

經(jīng)統(tǒng)計(jì),在軟件研制項(xiàng)目中采用上述軟件測試過程,可在軟件需求分析、軟件概要設(shè)計(jì)、軟件詳細(xì)設(shè)計(jì)階段,發(fā)現(xiàn)多項(xiàng)軟件缺陷,約占軟件缺陷總數(shù)的15%—20%;從而可以有效降低修改軟件缺陷而耗費(fèi)的人力、物力資源,并可使軟件研制周期縮短約10%—20%。

參考文獻(xiàn):

[1] 周童,方彥軍.一種新的軟件測試過程模型—“跑道”模型[J].計(jì)算機(jī)測量與控制,2015,23(10):3347-3349.

[2] 王樹義,南建國,黃雷.航空軟件測試過程模型應(yīng)用研究[J].計(jì)算機(jī)測量與控制,2013,21(6):1443-1445.

[3] 王艷軍,王勇利,顧濱兵.基于GJB2725A的軍用軟件測試管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)測量與控制,2018,26(8):133-137

[4] 楊薇,曹春芳,姚素娟,等.柴油機(jī)電控系統(tǒng)軟件測試設(shè)計(jì)及用例復(fù)用方法研究[J].自動化儀表,2018,39(9):79-82.

[5] 馬海云,張少剛.軟件質(zhì)量保證與軟件測試技術(shù)[M].北京:國防工業(yè)出版社,2011:122-124.

[6] 鄭煒,楊喜兵,胡圣佑,等.基于變異分析和覆蓋準(zhǔn)則的回歸測試用例集縮減[J].西北工業(yè)大學(xué)學(xué)報(bào),2017,35(3):494-499.

【通聯(lián)編輯:朱寶貴】

猜你喜歡
測試計(jì)劃
基于J2EE+Flex技術(shù)的JFTest系統(tǒng)分析與實(shí)現(xiàn)
基于ECU-TEST和Jenkins的自動化測試方法研究
法國增加EPR壓力容器測試內(nèi)容
大眾VAS5054診斷儀操作介紹(四)
R&S CMW PQA測試平臺實(shí)現(xiàn)PTCRB和GCF要求
基于TestLink的測試管理系統(tǒng)研究
軟件測試流程研究
葫芦岛市| 扶沟县| 惠来县| 普安县| 祁阳县| 孟州市| 印江| 永福县| 武定县| 广西| 蚌埠市| 肥城市| 洪雅县| 宜州市| 开江县| 百色市| 垫江县| 乐平市| 横峰县| 登封市| 林州市| 博兴县| 繁峙县| 商南县| 江都市| 石嘴山市| 涪陵区| 山阴县| 平武县| 塔河县| 鄯善县| 济阳县| 奎屯市| 绥中县| 景德镇市| 合山市| 固原市| 台中县| 修文县| 清镇市| 灌阳县|