朱婷婷
摘要:概述軟件測試目前的研究現(xiàn)狀,根據(jù)測試工作常出現(xiàn)的問題,提出了基于自動化需求分析軟件的快速測試方法。通過使用自動化需求分析軟件,有效降低了需求分析階段所需的人力和時(shí)間。通過歷史類似項(xiàng)目軟件測試用例的復(fù)用和使用快速測試表格設(shè)計(jì)測試用例,使得測試用例的設(shè)計(jì)更快且更好維護(hù)。
關(guān)鍵詞:自動化需求分析;時(shí)間;快速測試表格
中圖分類號:TP311.56 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2020)03-0113-03
國內(nèi)軟件測試行業(yè)雖然起步晚,但擁有良好的發(fā)展勢頭,截至目前,已成立了若干個國家級的軟件測評中心。各個測評組織對軟件測試的流程、方法以及相關(guān)要求等已形成了非常全面的體系管理規(guī)定。通過各種體系標(biāo)準(zhǔn)為軟件的質(zhì)量把關(guān),軟件質(zhì)量相比以往,有了質(zhì)的提升。
目前,在實(shí)際工作中,軟件測試工作能按照相應(yīng)的質(zhì)量管理體系有效開展,進(jìn)行的測試類型分為靜態(tài)測試、動態(tài)測試等,其中,動態(tài)測試包含對功能、接口、軟件性能及軟件安全性方面的測試。測試需求規(guī)格說明的設(shè)計(jì)、測試用例的編寫、測試用例的執(zhí)行等,一般需覆蓋上述的各個測試類型。測試需求規(guī)格說明、測試用例的編寫部分,耗時(shí)較長。
通過工作經(jīng)驗(yàn)的積累發(fā)現(xiàn),提高軟件測試工作的效率可以從以下兩方面人手:1)利用軟件對軟件需求規(guī)格說明進(jìn)行自動化分析,生成測試項(xiàng),節(jié)省了一部分測試需求規(guī)格說明編寫的時(shí)間;2)大部分同類軟件的實(shí)現(xiàn)進(jìn)行了代碼復(fù)用,軟件測試也可以根據(jù)其特點(diǎn),進(jìn)行測試用例的復(fù)用,從而避免了一定程度上的時(shí)間、人力等方面的浪費(fèi)[2-5]。
此外,由于部分項(xiàng)目進(jìn)度時(shí)間緊迫,預(yù)留給軟件測試的時(shí)間比較短,很難按照標(biāo)準(zhǔn)規(guī)范開展測試工作。所以,對于時(shí)間緊任務(wù)重的測試任務(wù),如何按質(zhì)按量高效完成測試工作,是目前亟待解決的問題。全文所述的“基于自動化需求分析軟件的快速測試方法”就是為了解決上述問題而提出的。
1 軟件測試簡介
1.1 軟件測試的定義及目的
什么是軟件測試?如何定義?于是許多專家經(jīng)過多年的研究和總結(jié),對軟件測試這個行為給出了各式各樣的定義。在此,經(jīng)過歸納總結(jié),引用一個目前認(rèn)為比較全面的定義“軟件測試,首先是設(shè)計(jì)一個有限的測試用例集,然后軟件在這些測試用例集上,產(chǎn)生相應(yīng)結(jié)果,最后驗(yàn)證結(jié)果是否符合預(yù)期”[6]。眾所周知,不存在沒有問題的軟件,所以,高效的軟件測試過程就是短時(shí)間內(nèi)最大限度找出軟件中存在的問題和缺陷。
1.2 軟件測試的分類
由于軟件測試工作可以從各個不同的角度人手,測試種類也不唯一,本文暫且從一個角度將軟件測試劃分為以下幾類:
1)根據(jù)測試中只驗(yàn)證軟件功能是否正確或者對代碼進(jìn)行逐條分析,可將軟件測試種類劃分為黑盒測試和白盒測試。
2)按軟件集成的大小,軟件測試可從大到小劃分為系統(tǒng)集成測試、配置項(xiàng)級測試、單元性測試。
3)按專題的不同,軟件測試可分為功能測試、接口測試、性能測試等[2-3]。
1.3 測試需求分析的概念
所謂測試需求,主要是理清被測對象中哪些內(nèi)容需要測試[6]。配置項(xiàng)級的測試需求分析,一般是對軟件的需求規(guī)格說明里的各個細(xì)目進(jìn)行分析,分解提取出各個測試項(xiàng),即生成了待測試內(nèi)容。系統(tǒng)測試需求通常是以系統(tǒng)規(guī)格說明為基礎(chǔ)進(jìn)行分析,并結(jié)合研制總要求、研制任務(wù)書等頂層文件對系統(tǒng)需求進(jìn)行分解。測試需求是設(shè)計(jì)測試用例的重要依據(jù)。
1.4 測試用例設(shè)計(jì)方法
文獻(xiàn)[7-8]提到設(shè)計(jì)測試用例的常用方法有錯誤推測、等價(jià)類劃分、因果圖及邊界值分析等方法。
等價(jià)類劃分法。某個輸入域的子集稱為一個等價(jià)類。一個等價(jià)類中各個輸入數(shù)據(jù)產(chǎn)生的輸出是等效的,因此選取其中一個輸入即可代表其他輸入,無須窮舉所有的輸入
邊界值分析法。程序設(shè)計(jì)常犯的錯誤就是沒有考慮到輸入或輸出數(shù)據(jù)的上下邊界,因此在各類輸入的上下邊界處設(shè)計(jì)測試用例,得以有針對性地對常犯問題重點(diǎn)測試,從而快速找到缺陷。
因果圖法。在實(shí)際測試工作中,絕大多數(shù)軟件設(shè)計(jì)都使用了層層嵌套的條件判斷語句,多種條件相組合的測試就需要通過因果圖來理清輸入與輸出的對應(yīng)關(guān)系,從而在測試用例的設(shè)計(jì)過程中,能做到不遺漏地設(shè)計(jì)出較為全面的用例。
錯誤推測法。此方法就是列舉出軟件的常見錯誤,然后基于這些錯誤設(shè)計(jì)測試用例,從而高效定位常見錯誤。
2 基于自動化需求分析軟件的快速測試方法
基于自動化需求分析軟件的快速測試方法,首先利用自動化需求分析軟件,實(shí)現(xiàn)軟件需求規(guī)格說明到測試需求規(guī)格說明的自動轉(zhuǎn)化,分析出每個測試項(xiàng),再手動對描述不完備的測試項(xiàng)進(jìn)行補(bǔ)充;然后,依據(jù)測試項(xiàng),復(fù)用以往歷史項(xiàng)目的類似軟件的部分用例,對于無法直接復(fù)用的用例使用快速測試表格,進(jìn)行快速用例設(shè)計(jì)。最后逐條執(zhí)行測試用例、記錄測試結(jié)果、對測試結(jié)果進(jìn)行總結(jié)、針對發(fā)現(xiàn)的問題撰寫問題報(bào)告、根據(jù)測試綜合情況編寫測試報(bào)告等,完成測試任務(wù)。
該快速測試方法,通過使用自動化需求分析軟件、快速測試表格及復(fù)用測試用例,不僅節(jié)省了測試需求分析的時(shí)間,還大大縮短了軟件測試用例編寫的時(shí)間。
2.1 自動化需求分析軟件
自動化需求分析軟件,即利用軟件需求分析的標(biāo)準(zhǔn)規(guī)范對軟件需求規(guī)格說明進(jìn)行分析,生成測試需求的框架。該框架包含測試項(xiàng)標(biāo)識及名稱、優(yōu)先級、測試目的、測試內(nèi)容及要求、測試約束/終止條件及測試要求等內(nèi)容。該自動化需求分析軟件的工作過程如圖1所示。
下面對自動化軟件的工作步驟進(jìn)行詳細(xì)描述:
1)打開自動話分析軟件,新建項(xiàng)目,如圖2所示。
2)在軟件需求頁簽下,新建需求類型:功能需求、接口需求等,如圖3所示。
3)分別導(dǎo)人軟件需求word文檔后,根據(jù)軟件需求規(guī)格說明文檔,生成測試需求文檔。測試需求文檔中的測試項(xiàng)如圖4所示。
在該自動化需求分析軟件中,自動生成測試項(xiàng)的完整程度取決于軟件需求規(guī)格說明編寫的規(guī)范性,需求規(guī)格說明越規(guī)范越詳細(xì),測試項(xiàng)中能自動填寫的內(nèi)容越多,完整性越高。
此外,軟件需求規(guī)格說明中的部分潛在需求,例如內(nèi)存余量測試等需人工挖掘,手動錄入相應(yīng)測試項(xiàng),與自動化需求分析軟件生成的測試項(xiàng)手動合并,最后生成完整的測試需求文檔。
2.2 快速測試用例設(shè)計(jì)
測試用例的設(shè)計(jì)依賴于測試需求文檔中的測試項(xiàng),快速全面設(shè)計(jì)測試用例也是提高測試質(zhì)量及速度的方法之一??焖贉y試用例設(shè)計(jì),在使用快速測試表格提升用例編寫速度的同時(shí),復(fù)用相同或類似測試用例,從而達(dá)到節(jié)省人力、節(jié)省時(shí)間的目的。
快速測試表格,如圖5所示。采用表格的形式設(shè)計(jì)測試用例,方便用例維護(hù),且能直觀縱覽、判斷用例是否覆蓋全面.在測試執(zhí)行過程中,可直接在“實(shí)際結(jié)果”列記錄測試結(jié)果,無須再單獨(dú)新建測試記錄文件,省時(shí)省力的同時(shí),測試結(jié)果一目了然。
編寫測試用例,分別按照如下步驟順序進(jìn)行:
1)通過復(fù)制的方式,提取測試需求規(guī)格說明追溯表中列出的各個測試項(xiàng),粘貼在快速測試表格的測試項(xiàng)列
2)考慮歷史項(xiàng)目中是否存在可復(fù)用的測試用例,若存在,則將可復(fù)用的測試用例分別填寫在測試子項(xiàng)、測試標(biāo)題、測試前提條件、測試步驟、預(yù)期結(jié)果等列。復(fù)用完成后,填寫復(fù)用的用例編號。
3)針對尚未進(jìn)行用例設(shè)計(jì)的測試項(xiàng),使用等價(jià)類劃分、猜錯法、邊界值分析法等方法進(jìn)行測試用例的設(shè)計(jì)。
以上三步完成后,一個完整的測試用例文檔生成。在測試執(zhí)行階段,執(zhí)行每條測試用例,記錄測試原始數(shù)據(jù),填寫實(shí)際測試結(jié)果,通過對比預(yù)期結(jié)果和實(shí)際結(jié)果,確定用例是否通過,把不通過的用例分類匯總到問題報(bào)告中。
基于自動化需求分析軟件的快速測試方法:1)通過研發(fā)自動化需求分析軟件,減少了需求分析階段的工作量。2)設(shè)計(jì)測試用例時(shí),考慮用例的可維護(hù)性。把用例使用的數(shù)據(jù)和步驟分別管理,類似于編寫代碼時(shí)對各個庫的封裝,封裝完成后留出調(diào)用的接口,當(dāng)后期遇到類似項(xiàng)目,只是數(shù)據(jù)不同,而步驟相同時(shí),可把步驟直接取而用之。在類似軟件測試時(shí),相似的測試用例只需部分變更便可直接復(fù)用,縮減了測試用例設(shè)計(jì)的耗時(shí)。3)通過使用快速測試表格中實(shí)際測試結(jié)果列記錄測試時(shí)的原始數(shù)據(jù),無須新建測試記錄文檔,使得測試結(jié)果一目了然。
3 結(jié)束語
基于自動化需求分析軟件的快速測試方法,不僅能保證軟件產(chǎn)品的質(zhì)量,更重要的是能減少軟件測試所需的人力及時(shí)間,對軟件測試工作具有非常重要的實(shí)踐意義。但仍存在一定程度的不足,即在自動化需求分析階段,無法自動挖掘出軟件的潛在需求,需要人力手動補(bǔ)充。但是隨著技術(shù)的進(jìn)步,不斷優(yōu)化自動化需求分析軟件,將自動挖掘潛在測試需求并添加到工具集中,從而做到完全自動化,盡可能減少人力的投入。在未來的研究當(dāng)中,還可以繼續(xù)研究以快速測試用例表格作為輸入自動生成軟件問題報(bào)告,以及將軟件問題報(bào)告作為輸入自動生成問題處理報(bào)告的技術(shù)等。
參考文獻(xiàn):
[1] Perry W E.軟件測試的有效方法[M].高猛,馮飛,徐璐,譯,北京:清華大學(xué)出版社,2008.
[2]李龍,李向函,馮海寧,軟件測試實(shí)用技術(shù)與常用模板[M].北京:機(jī)械工業(yè)出版社,2010.
[3]丁志義.提高軟件測試效率的方法探討[EB/OL].http://www.5 ltesting.com/html/0 2/n-214402-2.html.
[4] Mosley D J,Posey B A.軟件自動化測試[M].鄧波,黃麗娟,曹青春,等,譯.機(jī)械工業(yè)出版社,2003:12-45.
[5]張向芳,李華,姜英偉.軟件測試自動化的實(shí)施方案[J]山西科技,2006,21(4):40-42.
[6]康一梅,張永革,李志軍,嵌入式軟件測試[M].北京:機(jī)械工業(yè)出版社,2008.
[7]李剛,姚紅,軟件測試用例設(shè)計(jì)的方法與實(shí)現(xiàn)[J].大眾科技,2012,14(1):14-15.
[8]王雷,張莉.編寫有效用例[M].,北京:機(jī)械工業(yè)出版社,2002:10-91.