徐 彬,李 華,張 榮,侯慶慶
(中國(guó)電子科技集團(tuán)公司第 58 研究所,江蘇 無(wú)錫 214072)
探索式軟件測(cè)試融于傳統(tǒng)測(cè)試模型的研究
徐 彬,李 華,張 榮,侯慶慶
(中國(guó)電子科技集團(tuán)公司第 58 研究所,江蘇 無(wú)錫 214072)
自軟件測(cè)試成為單獨(dú)的研究領(lǐng)域起,測(cè)試模型開(kāi)始從無(wú)到有,且一直不斷地優(yōu)化?,F(xiàn)在廣泛使用的傳統(tǒng)測(cè)試模型通過(guò)多年的實(shí)踐檢驗(yàn),基本能夠滿足各類測(cè)試的需求。探索式軟件測(cè)試是一種新的測(cè)試?yán)砟睿w現(xiàn)為一種靈活、自由的方式,與傳統(tǒng)測(cè)試有很大的不同。將探索式軟件測(cè)試融于傳統(tǒng)軟件測(cè)試模型中,既是對(duì)傳統(tǒng)模型的創(chuàng)新,又是更好地指導(dǎo)測(cè)試的需要。
軟件測(cè)試;探索式測(cè)試;模型
軟件測(cè)試模型即在測(cè)試實(shí)踐基礎(chǔ)上,有機(jī)結(jié)合相應(yīng)的軟件開(kāi)發(fā)活動(dòng)所總結(jié)和抽象出的一系列測(cè)試活動(dòng)規(guī)律[4]。自 1972 年軟件測(cè)試成為一個(gè)獨(dú)立的研究方向開(kāi)始,對(duì)軟件測(cè)試模型的研究就一直沒(méi)有停止過(guò),本文旨在提供一套能夠與開(kāi)發(fā)各階段緊密協(xié)作且有效指導(dǎo)測(cè)試的模型。
探索式軟件測(cè)試方法為軟件測(cè)試的前沿技術(shù),它擅長(zhǎng)于在短時(shí)間內(nèi)發(fā)現(xiàn)軟件的一些重要問(wèn)題或提前沒(méi)有進(jìn)行測(cè)試設(shè)計(jì)的情況。探索式軟件測(cè)試融于傳統(tǒng)測(cè)試模型中,二者優(yōu)勢(shì)結(jié)合,將有效提高軟件的質(zhì)量。
2.1 定義
探索式軟件測(cè)試沒(méi)有明確的定義,從多種方法中提取一個(gè)相同點(diǎn)就是了解被測(cè)軟件、設(shè)計(jì)測(cè)試用例、執(zhí)行測(cè)試三部分同時(shí)進(jìn)行[3]。它完全拋開(kāi)了傳統(tǒng)測(cè)試中的流程和前期準(zhǔn)備工作,測(cè)試人員在測(cè)試時(shí)可以天馬行空,利用被測(cè)軟件提供的信息自由發(fā)揮。但探索式測(cè)試亂中有序,且對(duì)測(cè)試人員有很高的要求。執(zhí)行探索式測(cè)試的人員需要豐富的經(jīng)驗(yàn),對(duì)測(cè)試對(duì)象有足夠的判斷力,哪些功能區(qū)域有可能存在問(wèn)題,哪些關(guān)聯(lián)的設(shè)置有可能導(dǎo)致失敗。在測(cè)試某個(gè)特性或某個(gè)范圍中的特性時(shí),思路必須清晰,明確使用的測(cè)試方法。
探索式測(cè)試并不是完全沒(méi)有測(cè)試文檔,與傳統(tǒng)測(cè)試在測(cè)試計(jì)劃里先預(yù)先編好測(cè)試文檔不同,它的測(cè)試結(jié)果、測(cè)試用例和測(cè)試文檔都會(huì)在運(yùn)行測(cè)試時(shí)創(chuàng)建,這也是跟蹤問(wèn)題所需要的,最后給出測(cè)試報(bào)告。
2.2 方法簡(jiǎn)介
探索式測(cè)試不是具體測(cè)試技術(shù),而是關(guān)注如何去測(cè)試[6]。根據(jù)關(guān)注區(qū)域來(lái)分,分為局部探索式測(cè)試法和全局探索式測(cè)試法。
局部探索式測(cè)試主要從五個(gè)方面考慮:輸入、狀態(tài)、代碼路徑、用戶數(shù)據(jù)、執(zhí)行環(huán)境[5],如圖1 所示 ,這五部分在傳統(tǒng)測(cè)試中也是必須要關(guān)注的信息。
圖1 局部探索式測(cè)試
全局探索式測(cè)試又稱為漫游測(cè)試,它將測(cè)試人員比作游客,被測(cè)軟件比作旅游地。旅游地可被劃分為各種區(qū)域,例如商業(yè)區(qū)、娛樂(lè)區(qū)等。同樣的,被測(cè)軟件也劃分為多個(gè)重疊的“區(qū)域”[5],如圖2 所示。對(duì)于軟件測(cè)試人員來(lái)說(shuō),這種分割只是從邏輯上劃分了被測(cè)程序的特性,測(cè)試人員探索被測(cè)程序的運(yùn)行路徑,根據(jù)不同的測(cè)試意圖按順序執(zhí)行這些特性。
圖2 全局探索式測(cè)試
2.3 優(yōu)勢(shì)分析
局部探索式測(cè)試輔助測(cè)試人員在測(cè)試過(guò)程中即時(shí)做出決定,全局探索式測(cè)試幫助測(cè)試人員思考整體測(cè)試計(jì)劃和測(cè)試策略。全局與局部結(jié)合,即覆蓋了面,又關(guān)注了點(diǎn)[1,2]。探索式測(cè)試較傳統(tǒng)測(cè)試最大的優(yōu)點(diǎn)是靈活、高效。傳統(tǒng)測(cè)試是依據(jù)測(cè)試計(jì)劃進(jìn)行,自由發(fā)揮程度較小,探索式測(cè)試計(jì)劃與測(cè)試同時(shí)進(jìn)行,需要時(shí)及時(shí)調(diào)整思路或方法,在發(fā)現(xiàn)重大問(wèn)題方面表現(xiàn)極佳。
傳統(tǒng)軟件測(cè)試模型中V模型和W模型最具有代表性,其中 V 模型為“線性”執(zhí)行,需要在編碼完全結(jié)束后才可進(jìn)行測(cè)試,無(wú)法體現(xiàn)“盡早地和不斷地進(jìn)行軟件測(cè)試”的原則。它僅僅把測(cè)試過(guò)程作為需求分析、系統(tǒng)設(shè)計(jì)及編碼之后的一個(gè)階段,而對(duì)需求分析和系統(tǒng)設(shè)計(jì)的驗(yàn)證放到后期,不能及時(shí)發(fā)現(xiàn)問(wèn)題,V 模型的缺點(diǎn)導(dǎo)致其不如W模型應(yīng)用廣泛。
W模型是V模型的發(fā)展。如圖3所示,它的一個(gè)特點(diǎn)是強(qiáng)調(diào)測(cè)試是伴隨著整個(gè)軟件開(kāi)發(fā)周期,而且不僅程序代碼需要測(cè)試,需求、功能說(shuō)明、設(shè)計(jì)思路也需要測(cè)試。另外一個(gè)特點(diǎn)是提前做好測(cè)試設(shè)計(jì),寫(xiě)好測(cè)試用例,每一階段的測(cè)試都是依據(jù)測(cè)試設(shè)計(jì)和用例進(jìn)行的。
圖3 傳統(tǒng)W型軟件測(cè)試模型
傳統(tǒng)測(cè)試工作有明顯的階段性,后期測(cè)試執(zhí)行以前期測(cè)試設(shè)計(jì)為基礎(chǔ)。測(cè)試思路、使用方法的確定絕大部分在測(cè)試計(jì)劃階段完成,執(zhí)行測(cè)試時(shí)只需參照測(cè)試計(jì)劃完成即可。這種模型存在一個(gè)弊端,當(dāng)前期測(cè)試設(shè)計(jì)考慮不夠全面時(shí),有些路徑?jīng)]有涉及到,若后期只是單純地按計(jì)劃執(zhí)行,會(huì)導(dǎo)致部分特性沒(méi)有覆蓋到,風(fēng)險(xiǎn)就會(huì)隱藏在被測(cè)軟件中。探索式測(cè)試靈活,沒(méi)有階段性限制,可邊測(cè)試邊調(diào)整,恰好彌補(bǔ)了傳統(tǒng)測(cè)試模型中的缺陷。
將探索式測(cè)試融于傳統(tǒng)測(cè)試模型中,以W模型為例,對(duì)測(cè)試部分單獨(dú)分析,如圖4 所示。
該模型著眼于實(shí)際測(cè)試項(xiàng)目,將結(jié)構(gòu)化的思想與自由的探索結(jié)合,在保證了測(cè)試模型完整的情況下,提高特性測(cè)試的覆蓋率,存在如下幾個(gè)特點(diǎn):
圖4 探索式測(cè)試融于傳統(tǒng)測(cè)試W模型(測(cè)試部分)
(1)完全保留 W 模型的特點(diǎn),軟件測(cè)試與開(kāi)發(fā)并行線性執(zhí)行,完全符合及早介入、及早測(cè)試的原則。
(2)每個(gè)階段測(cè)試執(zhí)行完成,進(jìn)行探索式測(cè)試。跳出前期測(cè)試設(shè)計(jì)思路,以更加靈活的方式增加測(cè)試點(diǎn),來(lái)補(bǔ)充前期測(cè)試的疏漏,提高了測(cè)試覆蓋率。
(3) 探索式測(cè)試可以作為回歸測(cè)試。傳統(tǒng)回歸測(cè)試,在單個(gè)測(cè)試階段內(nèi),使用同一個(gè)測(cè)試計(jì)劃來(lái)重復(fù)測(cè)試,這種同一個(gè)思路的重復(fù)測(cè)試容易使某類問(wèn)題產(chǎn)生“抗測(cè)試”性,不易被發(fā)現(xiàn)。更換測(cè)試思路,沒(méi)有前期的計(jì)劃,無(wú)疑是探索式測(cè)試最擅長(zhǎng)的。
(4)依據(jù)更改及時(shí)響應(yīng)、快速測(cè)試。當(dāng)在執(zhí)行測(cè)試的過(guò)程中,需求或是設(shè)計(jì)突然發(fā)生更改,在沒(méi)有任何計(jì)劃的前提下,探索式測(cè)試能夠最有效地應(yīng)對(duì)這種突發(fā)情況。
(5)W 模型齊全的文檔,為探索式測(cè)試提供了文檔基礎(chǔ)。在測(cè)試過(guò)程中,直接將測(cè)試記錄和結(jié)果添加到已有的文檔中,無(wú)需重新編寫(xiě)新文檔。
5.1 首輪測(cè)試結(jié)果對(duì)比
將傳統(tǒng)測(cè)試模型和增加探索式的測(cè)試模型分別應(yīng)用于 JSxxx 板級(jí)驗(yàn)證系統(tǒng),該系統(tǒng)是基于 PowerPC內(nèi)核的處理器,具有高速的 AD、DA 數(shù)據(jù)處理模塊、通用外設(shè)接口、屏幕設(shè)置與顯示三大部分。截取確認(rèn)測(cè)試階段的數(shù)據(jù)進(jìn)行分析,測(cè)試人員對(duì)于測(cè)試用例數(shù)量、發(fā)現(xiàn)問(wèn)題數(shù)量以及所花費(fèi)的時(shí)間進(jìn)行整理。將兩個(gè)模型的測(cè)試結(jié)果進(jìn)行對(duì)比,其中所有測(cè)試結(jié)果均為首輪測(cè)試時(shí)的數(shù)據(jù),如表1所示。
表1 基于兩種測(cè)試模型首輪測(cè)試結(jié)果對(duì)比
從測(cè)試結(jié)果中可以看出,雖然探索式測(cè)試融于傳統(tǒng)測(cè)試模型,實(shí)際測(cè)試時(shí)間比傳統(tǒng)模型時(shí)間增加 10%~15%,但是發(fā)現(xiàn)的問(wèn)題數(shù)量遠(yuǎn)遠(yuǎn)高于傳統(tǒng)模型,在軟件設(shè)計(jì)路徑比較復(fù)雜的情況下,探索式測(cè)試融于傳統(tǒng)測(cè)試模型表現(xiàn)尤其出眾。從上述測(cè)試結(jié)果可以看出,屏幕設(shè)置與顯示部分發(fā)現(xiàn)問(wèn)題數(shù)量竟比傳統(tǒng)模型多出66.7%,正是由于屏幕部分操作靈活,才能夠更好地體現(xiàn)探索式測(cè)試的優(yōu)勢(shì)。
5.2 回歸測(cè)試結(jié)果對(duì)比
將兩種模型分別應(yīng)用于 SJAxxxx 項(xiàng)目中的 CAN協(xié)議的回歸測(cè)試,首輪測(cè)試發(fā)現(xiàn)的問(wèn)題經(jīng)過(guò)回歸測(cè)試再次驗(yàn)證,并測(cè)試修改問(wèn)題的過(guò)程中是否引入新問(wèn)題。其中,所有測(cè)試結(jié)果為首次回歸測(cè)試時(shí)的數(shù)據(jù),如表2所示。
表2 基于兩種測(cè)試模型回歸測(cè)試結(jié)果對(duì)比
加入探索式的測(cè)試模型,不但正確地驗(yàn)證了前一輪發(fā)現(xiàn)的問(wèn)題,更重要的是發(fā)現(xiàn)了 2 個(gè)新問(wèn)題,這兩個(gè)新問(wèn)題是在前一輪修改程序后引入的。從回歸測(cè)試的方式可知,傳統(tǒng)模型在做回歸測(cè)試時(shí),將發(fā)現(xiàn)的問(wèn)題按照前一輪的思路重新測(cè)試,它的關(guān)注點(diǎn)是問(wèn)題本身是否解決。探索式測(cè)試進(jìn)行回歸時(shí)分兩步,第一步是利用前一輪測(cè)試思路,測(cè)試問(wèn)題是否解決,確保已發(fā)現(xiàn)的問(wèn)題得到驗(yàn)證;第二步,擴(kuò)大測(cè)試范圍,分析出與問(wèn)題相關(guān)的邏輯功能,增加相應(yīng)測(cè)試點(diǎn),測(cè)試已修改的程序相關(guān)功能是否因修改而出錯(cuò)。
從上述兩個(gè)實(shí)踐中不難發(fā)現(xiàn),不論是首輪測(cè)試還是回歸測(cè)試,探索式測(cè)試因其思路的靈活而效果顯著,若是將其應(yīng)用于“中規(guī)中矩”的傳統(tǒng)測(cè)試模型中,必將大大提升測(cè)試效率和測(cè)試質(zhì)量。
探索式軟件測(cè)試是一種思維方式,融于傳統(tǒng)測(cè)試模型,為傳統(tǒng)測(cè)試注入新的元素。由于探索式軟件測(cè)試沒(méi)有固定模式,靈活,形式不一,對(duì)測(cè)試人員來(lái)說(shuō)是一個(gè)很大的挑戰(zhàn),需要測(cè)試人員不斷提高自身素質(zhì),積累經(jīng)驗(yàn),將測(cè)試設(shè)計(jì)、測(cè)試執(zhí)行和測(cè)試結(jié)果分析作為相互支持的活動(dòng),在整個(gè)項(xiàng)目中并行地執(zhí)行。
[1]Juha Itkonen,Kristian Rautiainen.Exploratory testing:A multiple case study[C].Noosa Heads,Queensland,Australia: Proceedings of the 4thInternationalSymposium on Empirical Software Engineering(ISESE 2005).IEEE.2005:84-93.
[2]Juha Itkonen,Mike V M?ntyl?,Casper Lassenius.How do testers do it?An exploratory study on manual testing practices[C].Lake Buena Vista,Florida,USA:Proceedings ofthe Third InternationalSymposium on EmpiricalSoftware Engineering and Measurement(ESEM 2009),IEEE.2009: 494-497.
[3]James Bach.Exploratory testing explained[EB/OL].2003.4 V.1.3.http://www.satisfice.com/articles/et-article.pdf
[4]余久久,張佑生.軟件測(cè)試改進(jìn)模型研究進(jìn)展[J].計(jì)算機(jī)應(yīng)用與軟件,2012,(29)11:201-207.
[5]James A Whittaker.探索式軟件測(cè)試[M].方敏,張勝,鐘頌東,郭艷春,譯.北京:清華大學(xué)出版社,2010:23-72.
[6]李軍鋒,欒靜.探索性軟件測(cè)試解析[J].計(jì)算機(jī)與數(shù)字工程,2011,(39)8:39-42.
Research on Integration of Traditional Test Model and Exploratory Test
XU Bin,LIHua,ZHANG Rong,HOU Qingqing
(China Electronics Technology Group Corporation No.58 Research Institute,Wuxi 214072,China)
Eversince the software testing has become an independentresearch field,the software testmodelhas been evolving.The traditionaltestmodelhasbeen used formany yearsand isstillbasically capable.Exploratory software testing is a new testconceptshowing a flexible and free feature.Atpresent,the exploratory software testing is integrated into the traditionalsoftware testmodel,which is both an innovation and an attemptforbetter testresults.
software testing;exploratory testing;model
TN407
A
1681-1070 (2017)06-0016-03
徐 彬(1982—),女,山東文登人,碩士研究生,助理工程師,研究方向?yàn)檐浖y(cè)試。
2017-2-24