柳 溪
(南京電子技術(shù)研究所, 南京 210039)
?
·測(cè)試技術(shù)·
探索式測(cè)試在雷達(dá)軟件中的應(yīng)用研究
柳溪
(南京電子技術(shù)研究所,南京 210039)
雷達(dá)軟件測(cè)試中常會(huì)遇到測(cè)試周期短、軟件文檔滯后甚至缺失等問(wèn)題。在這種情況下,由于探索式測(cè)試方法強(qiáng)調(diào)了測(cè)試設(shè)計(jì)和執(zhí)行的同時(shí)性,并弱化了對(duì)軟件文檔的要求,因而能夠發(fā)揮靈活、快速的優(yōu)勢(shì)。文中針對(duì)探索式測(cè)試和傳統(tǒng)腳本測(cè)試的優(yōu)缺點(diǎn),將會(huì)話機(jī)制和漫游方法等探索式測(cè)試成功實(shí)踐與經(jīng)典的腳本式測(cè)試流程結(jié)合,提出了腳本會(huì)話測(cè)試模型。通過(guò)復(fù)用對(duì)應(yīng)類型雷達(dá)軟件測(cè)試歷史項(xiàng)目的測(cè)試設(shè)計(jì),在經(jīng)典軟件測(cè)試流程中引入會(huì)話機(jī)制和漫游方法,并充分利用資深測(cè)試人員的經(jīng)驗(yàn)和組織資產(chǎn),降低軟件需求、設(shè)計(jì)文檔以及測(cè)試人員經(jīng)驗(yàn)和能力對(duì)測(cè)試的影響,增強(qiáng)測(cè)試的適應(yīng)性,提高測(cè)試的效率和質(zhì)量。
軟件測(cè)試;雷達(dá);探索式測(cè)試;基于會(huì)話的測(cè)試管理;測(cè)試復(fù)用
隨著用戶對(duì)軟件質(zhì)量要求的提升,軟件測(cè)試已成為雷達(dá)軟件交付前的必要環(huán)節(jié)。軟件測(cè)試的質(zhì)量也是影響雷達(dá)軟件的重要因素。由于雷達(dá)軟件開(kāi)發(fā)周期受限,軟件需求和設(shè)計(jì)規(guī)約很可能在測(cè)試開(kāi)展之前不能完善提供,且軟件測(cè)試的資源充分性也不能保證。在這種情況下,傳統(tǒng)的軟件測(cè)試方法不能發(fā)揮出最好的效果,需要研究如何借助探索式測(cè)試的方法以提高雷達(dá)軟件測(cè)試的效率和質(zhì)量。
經(jīng)典的測(cè)試方法要求依據(jù)軟件需求和設(shè)計(jì)文檔,遵循測(cè)試需求分析、測(cè)試策劃、測(cè)試設(shè)計(jì)、測(cè)試執(zhí)行和測(cè)試總結(jié)的流程,嚴(yán)格按照預(yù)先設(shè)計(jì)的測(cè)試“腳本”開(kāi)展。因此,經(jīng)典測(cè)試方法也稱為腳本測(cè)試(script testing)。腳本測(cè)試具有測(cè)試文檔全面、測(cè)試覆蓋率易度量、測(cè)試流程管理規(guī)范等優(yōu)勢(shì)。然而,隨著軟件迭代的加速,給軟件測(cè)試留出時(shí)間逐漸減少。雷達(dá)軟件測(cè)試呈現(xiàn)出一些新特點(diǎn),包括軟件需求變化快、軟件文檔缺乏、軟件測(cè)試周期短、測(cè)試時(shí)間不足等,在這些情況下采用傳統(tǒng)腳本測(cè)試方法的軟件測(cè)試往往無(wú)法有效開(kāi)展。
與腳本測(cè)試不同的探索式測(cè)試(exploratory testing)作為一種敏捷測(cè)試方法,不區(qū)分測(cè)試階段,測(cè)試設(shè)計(jì)、執(zhí)行和總結(jié)同時(shí)進(jìn)行,依靠測(cè)試人員的經(jīng)驗(yàn)和主動(dòng)性對(duì)被測(cè)軟件進(jìn)行分析測(cè)試。探索式測(cè)試具有在時(shí)間短和文檔不完善的情況下,充分發(fā)揮測(cè)試人員的經(jīng)驗(yàn)和能力,快速、高質(zhì)量完成軟件測(cè)試等優(yōu)點(diǎn)。目前,已有基于會(huì)話的測(cè)試管理模型,以及漫游法等探索式測(cè)試管理方法[1-2]。雷達(dá)產(chǎn)品的軟件測(cè)試往往需要完整的測(cè)試文檔,并要求能夠有效控制測(cè)試流程和測(cè)試結(jié)果以保證測(cè)試質(zhì)量,探索式測(cè)試由于弱化了對(duì)文檔、測(cè)試階段劃分和測(cè)試充分性度量的要求,使之不宜直接用于雷達(dá)軟件測(cè)試。
在測(cè)試時(shí)間短、文檔不充分的情況下,如何結(jié)合經(jīng)典腳本測(cè)試流程與探索式測(cè)試方法,是一個(gè)值得研究的問(wèn)題。本文針對(duì)這一問(wèn)題,我們提出了腳本會(huì)話測(cè)試模型,將會(huì)話和漫游等探索式測(cè)試方法融合到經(jīng)典腳本測(cè)試流程中,以提升雷達(dá)軟件測(cè)試的效率和質(zhì)量。
1.1經(jīng)典的腳本測(cè)試模型
腳本測(cè)試按照測(cè)試需求分析、測(cè)試策劃、測(cè)試設(shè)計(jì)、測(cè)試執(zhí)行和測(cè)試總結(jié)的流程進(jìn)行,如圖1所示[3-4]。測(cè)試需求分析以軟件需求規(guī)格說(shuō)明或設(shè)計(jì)文檔為輸入,提取測(cè)試需求,構(gòu)造測(cè)試項(xiàng)(每個(gè)測(cè)試項(xiàng)對(duì)應(yīng)一個(gè)測(cè)試需求),并形成測(cè)試需求說(shuō)明文檔;測(cè)試策劃以測(cè)試需求分析為基礎(chǔ),對(duì)測(cè)試活動(dòng)進(jìn)行計(jì)劃,形成測(cè)試計(jì)劃文檔;測(cè)試設(shè)計(jì)則根據(jù)軟件需求和設(shè)計(jì)文檔,為每個(gè)測(cè)試項(xiàng)設(shè)計(jì)測(cè)試用例,形成測(cè)試說(shuō)明文檔。測(cè)試執(zhí)行人員按照測(cè)試用例的測(cè)試步驟,測(cè)試被測(cè)軟件,記錄其結(jié)果以發(fā)現(xiàn)缺陷。最后,所有用例執(zhí)行完畢后開(kāi)展測(cè)試總結(jié),對(duì)測(cè)試執(zhí)行結(jié)果以及缺陷進(jìn)行匯總,形成測(cè)試報(bào)告文檔。
圖1 經(jīng)典腳本測(cè)試流程
腳本測(cè)試能夠保障測(cè)試過(guò)程對(duì)待測(cè)軟件各項(xiàng)屬性的覆蓋。上一階段制品可以指導(dǎo)下一階段測(cè)試活動(dòng)。測(cè)試成本易于分析,測(cè)試過(guò)程嚴(yán)格、可控。腳本測(cè)試對(duì)軟件需求、設(shè)計(jì)和編碼要求較高,例如:要求軟件需求和設(shè)計(jì)文檔能夠詳細(xì)、準(zhǔn)確描述待測(cè)軟件的各項(xiàng)指標(biāo)和操作。同時(shí),腳本測(cè)試中測(cè)試需求分析和設(shè)計(jì)階段用時(shí)較長(zhǎng)。此外,若軟件設(shè)計(jì)和編碼發(fā)生較大變動(dòng)時(shí),腳本測(cè)試無(wú)法快速適應(yīng)變化,需重新進(jìn)行測(cè)試策劃、設(shè)計(jì)等工作。
1.2探索式測(cè)試原理
探索式測(cè)試是一種敏捷測(cè)試方法,強(qiáng)調(diào)經(jīng)驗(yàn)的重要性,以及在測(cè)試中同時(shí)開(kāi)展測(cè)試需求分析、測(cè)試設(shè)計(jì)、測(cè)試執(zhí)行和測(cè)試結(jié)果評(píng)估等活動(dòng),持續(xù)優(yōu)化測(cè)試工作。其主要特點(diǎn)是:(1)強(qiáng)調(diào)測(cè)試設(shè)計(jì)和執(zhí)行的同時(shí)性;(2)適用于在短時(shí)間內(nèi)發(fā)現(xiàn)被測(cè)軟件一些重要缺陷或事先沒(méi)有能夠進(jìn)行詳細(xì)測(cè)試設(shè)計(jì)的情況;(3)通過(guò)測(cè)試來(lái)不斷學(xué)習(xí)被測(cè)系統(tǒng);(4)快速實(shí)驗(yàn)、隨時(shí)調(diào)整。作為一種敏捷軟件測(cè)試方法,探索式測(cè)試相應(yīng)弱化了對(duì)軟件文檔的要求,并更關(guān)注測(cè)試本身,在保證軟件測(cè)試質(zhì)量的同時(shí)縮短軟件測(cè)試周期,尤其是測(cè)試設(shè)計(jì)階段占用的時(shí)間。一般更適用于人工測(cè)試或需要大量人工分析的自動(dòng)化測(cè)試。
探索式測(cè)試的主要優(yōu)點(diǎn)在于:(1)充分利用測(cè)試人員經(jīng)驗(yàn);(2)適用于需要學(xué)習(xí)的系統(tǒng)、有時(shí)間約束、補(bǔ)充測(cè)試等情況;(3)適應(yīng)性強(qiáng),尤其是需求變化、規(guī)約不明確情況;(4)測(cè)試對(duì)開(kāi)發(fā)的反饋較快;(5)能夠發(fā)揮創(chuàng)造性,降低“殺蟲(chóng)劑”效應(yīng)[5-7]。同時(shí),探索式測(cè)試也體現(xiàn)出測(cè)試文檔不完善和測(cè)試覆蓋率不易直接度量等不足[8]。
雖然“探索式測(cè)試”一詞在1983年提出[8],但其軟件測(cè)試方法一直在熟練的軟件測(cè)試人員中使用。 Whittaker[2]還進(jìn)一步擴(kuò)展了探索式測(cè)試的概念和方法,總結(jié)了微軟開(kāi)展探索式軟件測(cè)試的經(jīng)驗(yàn),并提出了漫游方法。Itkonen[9]等人的研究表明,探索式測(cè)試比傳統(tǒng)方法的缺陷誤報(bào)率更低,發(fā)現(xiàn)缺陷數(shù)量更多,如在用戶界面測(cè)試中多發(fā)現(xiàn)了43%的缺陷。在微軟Windows 2000兼容性認(rèn)證中也采用了探索式測(cè)試方法。Nassar[5]等人還統(tǒng)計(jì)了探索式測(cè)試方法在瑞典軟件公司測(cè)試活動(dòng)中的使用情況。探索式測(cè)試在互聯(lián)網(wǎng)、醫(yī)療、信息系統(tǒng)等各類型軟件測(cè)試中也都有運(yùn)用[10-11]。
目前,探索式測(cè)試的開(kāi)展方法有:“漫游法”“捕獲-重放”等方法[2,12]。對(duì)探索式測(cè)試的管理方法已形成以“基于會(huì)話的測(cè)試管理”為代表的管理模式[1]。漫游法是對(duì)微軟在進(jìn)行探索式測(cè)試實(shí)踐的經(jīng)驗(yàn)總結(jié),這個(gè)方法描述了如何開(kāi)展“探索”,從而盡可能充分的探索被測(cè)軟件、發(fā)現(xiàn)隱藏缺陷[2]。捕獲-重放的方法主要用來(lái)記錄探索式測(cè)試的過(guò)程,從而提高探索式測(cè)試的可重復(fù)性,并為確認(rèn)缺陷保存依據(jù),同時(shí)縮短回歸測(cè)試時(shí)間[12]。在管理模式方面,基于會(huì)話的測(cè)試管理(SBTM)是探索式測(cè)試管理模型中最常見(jiàn)的一種,其中的測(cè)試活動(dòng)通過(guò)基于時(shí)間片段限定的測(cè)試會(huì)話來(lái)計(jì)劃和控制,以迭代的方式推進(jìn)[1]?;诰€索的測(cè)試管理(TBTM)是對(duì)SBTM的發(fā)展,是以問(wèn)題和目標(biāo)為中心的更為松散的方式管理測(cè)試過(guò)程。Lyndsay[13]等人還進(jìn)一步提出了測(cè)試點(diǎn)的概念,并在會(huì)話上增加了風(fēng)險(xiǎn)等級(jí)的概念。
本文提出的腳本會(huì)話測(cè)試模型對(duì)會(huì)話進(jìn)行了擴(kuò)充,并將會(huì)話、漫游方法與經(jīng)典的腳本測(cè)試方法相結(jié)合,以使得腳本測(cè)試流程與探索式測(cè)試的優(yōu)勢(shì)互補(bǔ),從而發(fā)揮更好的效果。
由于雷達(dá)軟件開(kāi)發(fā)周期受限,軟件需求和設(shè)計(jì)規(guī)約很可能在測(cè)試開(kāi)展之前不能完善提供,且軟件測(cè)試的資源充分性也不能保證。雷達(dá)軟件的系統(tǒng)和配置項(xiàng)級(jí)測(cè)試仍以人工測(cè)試為主。應(yīng)用探索式測(cè)試方法是提高雷達(dá)軟件測(cè)試效率,充分發(fā)揮測(cè)試人員的經(jīng)驗(yàn)和能力,在測(cè)試文檔不全的情況下開(kāi)展軟件測(cè)試的必要選擇。然而,雷達(dá)產(chǎn)品軟件測(cè)試通常需要滿足特定的標(biāo)準(zhǔn)和規(guī)范的約束,以有效控制測(cè)試流程和測(cè)試充分性度量,同時(shí)還要提供完整的測(cè)試文檔,并保證測(cè)試質(zhì)量。利用探索式測(cè)試策略可以縮短測(cè)試周期,但探索式測(cè)試不易直接度量測(cè)試充分性,且弱化了測(cè)試文檔。而文檔、測(cè)試流程管理和充分性度量則正是經(jīng)典腳本測(cè)試的優(yōu)勢(shì)。因此,腳本會(huì)話測(cè)試模型將探索式測(cè)試與經(jīng)典腳本測(cè)試結(jié)合,以借助經(jīng)典腳本測(cè)試成熟的管理流程和探索式測(cè)試的高效、適應(yīng)性強(qiáng)等優(yōu)勢(shì)。
3.1腳本會(huì)話模型整體流程
腳本會(huì)話模型整體流程,如圖2所示。其遵循經(jīng)典的腳本測(cè)試流程,將測(cè)試過(guò)程劃分為測(cè)試需求分析策劃和設(shè)計(jì)、測(cè)試執(zhí)行以及測(cè)試總結(jié)的步驟開(kāi)展。但在測(cè)試需求分析策劃和設(shè)計(jì)階段,利用同譜系雷達(dá)軟件相似性較大的特點(diǎn),根據(jù)當(dāng)前產(chǎn)品需求,將測(cè)試項(xiàng)和測(cè)試用例大量的從歷史典型數(shù)據(jù)中復(fù)用。同時(shí),在測(cè)試執(zhí)行過(guò)程中采用擴(kuò)展的探索式測(cè)試方法,通過(guò)基于會(huì)話方式開(kāi)展,會(huì)話執(zhí)行時(shí)借助漫游測(cè)試法[2]探索軟件特性,并根據(jù)實(shí)際情況補(bǔ)充調(diào)整測(cè)試用例。測(cè)試總結(jié)報(bào)告借助會(huì)話記錄單進(jìn)行整理,并將本產(chǎn)品測(cè)試數(shù)據(jù)重新整理后納入復(fù)用庫(kù)。具體包含以下步驟:
圖2 腳本會(huì)話測(cè)試模型流程框架
1) 測(cè)試需求分析、策劃和設(shè)計(jì)階段:借助測(cè)試設(shè)計(jì)輔助工具從雷達(dá)軟件測(cè)試典型數(shù)據(jù)復(fù)用庫(kù)復(fù)用測(cè)試項(xiàng)和用例,降低對(duì)軟件需求和設(shè)計(jì)文檔的依賴,初步完成測(cè)試需求的提取和測(cè)試用例的設(shè)計(jì),產(chǎn)生第一版測(cè)試需求規(guī)格說(shuō)明、測(cè)試計(jì)劃和測(cè)試說(shuō)明文檔。
2) 測(cè)試執(zhí)行階段:測(cè)試執(zhí)行以基于會(huì)話的方式開(kāi)展,并對(duì)一般會(huì)話進(jìn)行擴(kuò)展。根據(jù)測(cè)試設(shè)計(jì)和計(jì)劃,確定每個(gè)會(huì)話的主旨、用例和測(cè)試方法。測(cè)試人員在每一次會(huì)話中,根據(jù)設(shè)計(jì)階段確定的漫游策略,針對(duì)一個(gè)測(cè)試項(xiàng)進(jìn)行“探索”,補(bǔ)充測(cè)試用例。測(cè)試人員在會(huì)話結(jié)束后整理會(huì)話記錄單。根據(jù)本輪會(huì)話執(zhí)行情況,記錄缺陷、改善測(cè)試設(shè)計(jì),并準(zhǔn)備下一輪會(huì)話。如此迭代直到測(cè)試結(jié)束條件滿足,測(cè)試執(zhí)行結(jié)束。隨后更新測(cè)試需求規(guī)格說(shuō)明、測(cè)試計(jì)劃和測(cè)試說(shuō)明文檔。
3) 測(cè)試總結(jié)階段:借助測(cè)試執(zhí)行中各個(gè)會(huì)話報(bào)告單,總結(jié)缺陷,產(chǎn)生測(cè)試報(bào)告;并對(duì)本產(chǎn)品測(cè)試數(shù)據(jù)進(jìn)行抽象和優(yōu)化,納入雷達(dá)軟件測(cè)試典型數(shù)據(jù)復(fù)用庫(kù)中。
需要注意的是,由于雷達(dá)基本原理相同,并且同譜系不同雷達(dá)相似度較高,在測(cè)試需求分析、策劃和設(shè)計(jì)階段,即使軟件文檔不充分,雷達(dá)軟件測(cè)試人員依然可以根據(jù)經(jīng)驗(yàn)及測(cè)試典型數(shù)據(jù)復(fù)用庫(kù),完成初步的測(cè)試設(shè)計(jì)。在測(cè)試執(zhí)行階段,對(duì)于軟件文檔中未詳細(xì)說(shuō)明的產(chǎn)品新特性,可以借助漫游測(cè)試法[2]探索軟件特性,并結(jié)合用戶溝通和測(cè)試人員對(duì)各譜系雷達(dá)功能的經(jīng)驗(yàn),在測(cè)試中學(xué)習(xí)被測(cè)軟件、補(bǔ)充和優(yōu)化測(cè)試設(shè)計(jì)。
3.2測(cè)試經(jīng)驗(yàn)的固化和利用
探索式測(cè)試方法強(qiáng)調(diào)測(cè)試人員的經(jīng)驗(yàn)。由于歷史測(cè)試項(xiàng)目中的測(cè)試信息經(jīng)過(guò)了實(shí)際項(xiàng)目的檢驗(yàn),是重要的組織資產(chǎn),也是資深測(cè)試人員經(jīng)驗(yàn)的外在表現(xiàn)。測(cè)試復(fù)用是利用測(cè)試人員經(jīng)驗(yàn)的有效手段。
不同雷達(dá)產(chǎn)品其基本工作原理都是相同的,雷達(dá)操控手操作方式接近,從而使得各個(gè)雷達(dá)系統(tǒng)軟件測(cè)試需求結(jié)構(gòu)相似,構(gòu)成了雷達(dá)軟件測(cè)試復(fù)用的基礎(chǔ)。通過(guò)分析,三年內(nèi)同譜系雷達(dá)各產(chǎn)品功能需求差異一般不超過(guò)25%;同時(shí),為保障技術(shù)穩(wěn)定性,各譜系內(nèi)部軟件繼承性較大,同譜系雷達(dá)軟件代碼復(fù)用率可達(dá)70%以上,部分較為成熟的產(chǎn)品其代碼復(fù)用率甚至可達(dá)到80%。因此,同譜系不同產(chǎn)品測(cè)試用例有較多可以復(fù)用。
我們按照雷達(dá)產(chǎn)品類型,將歷史測(cè)試數(shù)據(jù)按照產(chǎn)品類型進(jìn)行歸納和整理,形成雷達(dá)軟件測(cè)試典型數(shù)據(jù)復(fù)用庫(kù),從而降低軟件需求和設(shè)計(jì)文檔質(zhì)量以及測(cè)試人員的經(jīng)驗(yàn)和能力對(duì)雷達(dá)軟件測(cè)試設(shè)計(jì)質(zhì)量的影響。復(fù)用庫(kù)的整理遵照如圖3的流程:首先,對(duì)各產(chǎn)品測(cè)試項(xiàng)目進(jìn)行抽象,取出產(chǎn)品具體指標(biāo)和操作特征;其次,提取同類產(chǎn)品測(cè)試數(shù)據(jù)的相似性,合并各產(chǎn)品測(cè)試需求和測(cè)試用例;然后,補(bǔ)充各產(chǎn)品特性測(cè)試數(shù)據(jù);最后,去除冗余并規(guī)范文字描述。當(dāng)新產(chǎn)品測(cè)試結(jié)束后,新產(chǎn)品的測(cè)試數(shù)據(jù)再次進(jìn)行抽象,并按照上述相似的過(guò)程,納入復(fù)用庫(kù)中,為下次復(fù)用做準(zhǔn)備。在從測(cè)試復(fù)用庫(kù)中復(fù)用測(cè)試數(shù)據(jù)時(shí),需要根據(jù)產(chǎn)品特性補(bǔ)充產(chǎn)品具體信息。由于雷達(dá)對(duì)外數(shù)據(jù)交互依據(jù)通用軍/民用標(biāo)準(zhǔn),數(shù)據(jù)報(bào)文格式已經(jīng)標(biāo)準(zhǔn)化。因此,復(fù)用庫(kù)在整理時(shí)只需對(duì)具體數(shù)值進(jìn)行“參數(shù)化”,并在復(fù)用時(shí)根據(jù)具體產(chǎn)品坐標(biāo)、范圍、頻段等信息,對(duì)復(fù)用庫(kù)測(cè)試用例中的“參數(shù)”進(jìn)行實(shí)例化。
圖3 測(cè)試典型數(shù)據(jù)復(fù)用庫(kù)整理流程
由于各類型雷達(dá)軟件測(cè)試典型數(shù)據(jù)復(fù)用庫(kù)信息量大,從復(fù)用庫(kù)中提取必要的測(cè)試數(shù)據(jù)需要借助計(jì)算機(jī)工具輔助。我們開(kāi)發(fā)了基于復(fù)用的測(cè)試設(shè)計(jì)輔助工具,以幫助測(cè)試人員從復(fù)用庫(kù)中查詢和復(fù)用相關(guān)測(cè)試項(xiàng)和測(cè)試用例。測(cè)試人員可根據(jù)具體產(chǎn)品特性,復(fù)用的測(cè)試用例進(jìn)行修改和編輯,添加和補(bǔ)充具體數(shù)值和信息,完成對(duì)復(fù)用測(cè)試用例的實(shí)例化。
3.3基于會(huì)話的測(cè)試執(zhí)行
探索式測(cè)試需要在良好管理下才能發(fā)揮效果?;跁?huì)話的測(cè)試管理(SBTM),是探索式測(cè)試領(lǐng)域中最常用的管理實(shí)踐[1]。腳本會(huì)話測(cè)試模型中,針對(duì)雷達(dá)軟件測(cè)試的特性,參考TBTM和文獻(xiàn)[13],對(duì)會(huì)話進(jìn)行了擴(kuò)展,包含以下六點(diǎn):
1)主旨(charter):測(cè)試項(xiàng)(對(duì)應(yīng)一個(gè)測(cè)試需求)。
2)人員:一個(gè)會(huì)話指定一個(gè)測(cè)試人員。
3)優(yōu)先級(jí):根據(jù)會(huì)話主旨對(duì)應(yīng)的軟件特性的重要性級(jí)別確定。
4)先決條件:對(duì)測(cè)試環(huán)境和待測(cè)軟件的要求。
5)測(cè)試方法:測(cè)試用例集和漫游測(cè)試方法。
6)會(huì)話記錄單(session sheet)。
其中,會(huì)話記錄單記錄了會(huì)話的執(zhí)行信息:主旨、測(cè)試人、優(yōu)先級(jí)、實(shí)際用時(shí)(包括會(huì)話準(zhǔn)備時(shí)間、會(huì)話執(zhí)行時(shí)間、缺陷發(fā)現(xiàn)和報(bào)告時(shí)間)、測(cè)試用例集的實(shí)際執(zhí)行情況(包括測(cè)試用例是否通過(guò)、實(shí)際執(zhí)行截圖等信息)、發(fā)現(xiàn)的缺陷(包括缺陷嚴(yán)重程度、缺陷關(guān)聯(lián)用例)、遇到的問(wèn)題(包括可能解決方法)、對(duì)其他會(huì)話和后續(xù)測(cè)試的影響和注釋等。
傳統(tǒng)會(huì)話機(jī)制中,每個(gè)會(huì)話關(guān)注一個(gè)軟件功能點(diǎn)[1];而我們提出的擴(kuò)展會(huì)話中一個(gè)會(huì)話則關(guān)注軟件功能點(diǎn)分解出的測(cè)試項(xiàng),會(huì)話粒度更細(xì),執(zhí)行時(shí)間更短,對(duì)測(cè)試資源需求更少。同時(shí),擴(kuò)展會(huì)話引入了測(cè)試優(yōu)先級(jí)和先決條件等信息,測(cè)試負(fù)責(zé)人和測(cè)試工程師可根據(jù)實(shí)際情況快速調(diào)整測(cè)試資源的分配,并將傳統(tǒng)會(huì)話關(guān)注時(shí)間因素轉(zhuǎn)移為關(guān)注待測(cè)試的具體問(wèn)題。
測(cè)試執(zhí)行管理模型,如圖4所示。測(cè)試負(fù)責(zé)人在測(cè)試開(kāi)始時(shí)初始化各個(gè)會(huì)話,并分配測(cè)試任務(wù)。測(cè)試執(zhí)行過(guò)程分為若干輪進(jìn)行,每輪為一天。每輪執(zhí)行中,測(cè)試負(fù)責(zé)人選定本輪要進(jìn)行的會(huì)話,并跟蹤測(cè)試人員的會(huì)話執(zhí)行。測(cè)試人員在每個(gè)會(huì)話中按照預(yù)先指定的測(cè)試方法探索被測(cè)軟件,并將執(zhí)行過(guò)程記錄在會(huì)話記錄單中;同時(shí)分析當(dāng)前會(huì)話是否對(duì)后續(xù)的其他會(huì)話的影響,例如,是否需要修正后續(xù)某會(huì)話的主旨或會(huì)話劃分應(yīng)重新制定。在本輪會(huì)話執(zhí)行結(jié)束后,測(cè)試負(fù)責(zé)人召集會(huì)話總結(jié)會(huì),測(cè)試人員匯報(bào)測(cè)試執(zhí)行情況并記錄缺陷,測(cè)試負(fù)責(zé)人評(píng)審會(huì)話記錄單和測(cè)試結(jié)果。根據(jù)測(cè)試情況反饋判定測(cè)試是否達(dá)到預(yù)定結(jié)束條件:若是,則進(jìn)入測(cè)試總結(jié)階段;否則,修改完善測(cè)試設(shè)計(jì)和會(huì)話,開(kāi)始下一輪測(cè)試。
圖4 基于會(huì)話的測(cè)試流程
探索式測(cè)試對(duì)測(cè)試人員創(chuàng)造性的發(fā)揮主要體現(xiàn)在腳本會(huì)話測(cè)試模型中的測(cè)試執(zhí)行階段。測(cè)試人員借助對(duì)被測(cè)雷達(dá)產(chǎn)品軟件的經(jīng)驗(yàn),充分發(fā)揮其創(chuàng)造性,分析被測(cè)軟件特性,借助啟發(fā)式方法,根據(jù)被測(cè)軟件實(shí)際實(shí)例化測(cè)試用例,同時(shí)補(bǔ)充測(cè)試用例,對(duì)軟件進(jìn)行深度測(cè)試。為了有效管理測(cè)試執(zhí)行過(guò)程,提高會(huì)話效率,每輪會(huì)話開(kāi)始之前,測(cè)試團(tuán)隊(duì)針對(duì)各會(huì)話對(duì)應(yīng)測(cè)試項(xiàng)的特性,為各會(huì)話選定若干漫游方法。
漫游探索法是對(duì)測(cè)試人員在進(jìn)行整體測(cè)試時(shí)最常使用的啟發(fā)式方法的總結(jié),包括以下六類:
1)商業(yè)區(qū)漫游。關(guān)注測(cè)試用戶使用軟件主要特性,包括指南測(cè)試、賣(mài)點(diǎn)測(cè)試、地標(biāo)測(cè)試、極限測(cè)試、快遞測(cè)試、深夜測(cè)試和垃圾車(chē)測(cè)試等方法。
2)歷史區(qū)漫游。關(guān)注測(cè)試遺留組件,包括近鄰測(cè)試、博物館測(cè)試、上一版測(cè)試等方法。
3)娛樂(lè)區(qū)漫游。關(guān)注測(cè)試輔助功能,包括配角測(cè)試、深巷測(cè)試、通宵測(cè)試等方法。
4)旅游區(qū)漫游。通過(guò)遍歷軟件各項(xiàng)功能進(jìn)行測(cè)試,包括收藏家測(cè)試、長(zhǎng)路徑測(cè)試、超模測(cè)試、多拷貝測(cè)試、偏遠(yuǎn)酒吧測(cè)試等方法。
5)旅館區(qū)漫游。關(guān)注常被忽視或次要的功能測(cè)試,包括取消測(cè)試、懶漢測(cè)試等方法。
6)破舊區(qū)漫游。嘗試惡意甚至有害操作進(jìn)行測(cè)試,包括破壞測(cè)試、反叛測(cè)試、強(qiáng)迫癥測(cè)試等方法,詳見(jiàn)文獻(xiàn)[2]。
測(cè)試人員在會(huì)話執(zhí)行中,依據(jù)測(cè)試用例和指定漫游方法,測(cè)試被測(cè)軟件,并根據(jù)實(shí)際測(cè)試情況反饋補(bǔ)充測(cè)試用例。
根據(jù)我們的調(diào)研和試驗(yàn),建議雷達(dá)軟件測(cè)試時(shí)優(yōu)先選擇指南測(cè)試、極限測(cè)試、取消測(cè)試、懶漢測(cè)試、破壞測(cè)試和強(qiáng)迫癥測(cè)試。在具有用戶手冊(cè)等文檔時(shí),選用賣(mài)點(diǎn)測(cè)試、地標(biāo)測(cè)試;在已知某模塊問(wèn)題較多時(shí),使用近鄰測(cè)試;在需要涉及系統(tǒng)啟動(dòng)關(guān)閉、長(zhǎng)時(shí)間運(yùn)行的情況下,采用通宵測(cè)試、深夜測(cè)試等方法。
3.4實(shí)驗(yàn)結(jié)果
為了驗(yàn)證腳本會(huì)話模型,我們將腳本會(huì)話測(cè)試模型在測(cè)控類雷達(dá)軟件測(cè)試項(xiàng)目中進(jìn)行實(shí)驗(yàn)。測(cè)控類雷達(dá)軟件研制過(guò)程較為穩(wěn)定,適合在實(shí)驗(yàn)中開(kāi)展對(duì)照。此外,測(cè)控類雷達(dá)產(chǎn)品研制任務(wù)增長(zhǎng)多(2013~2015年該譜系新增產(chǎn)品數(shù)占新增產(chǎn)品總數(shù)的33%),測(cè)試資源較為緊張,需要運(yùn)用腳本會(huì)話模型。目前測(cè)控類雷達(dá)軟件測(cè)試典型數(shù)據(jù)復(fù)用庫(kù)已完成整理。從近3年5個(gè)項(xiàng)目全部1 062個(gè)測(cè)試項(xiàng)和6 432個(gè)測(cè)試用例中,經(jīng)過(guò)篩選、合并和抽象化,共收錄了828個(gè)測(cè)試項(xiàng)和3 413個(gè)測(cè)試用例。經(jīng)驗(yàn)和積累適合于應(yīng)用腳本會(huì)話模型。
實(shí)驗(yàn)在近期開(kāi)展的測(cè)控類雷達(dá)軟件測(cè)試項(xiàng)目中隨機(jī)選擇了三個(gè)項(xiàng)目的軟件系統(tǒng)測(cè)試上開(kāi)展。在測(cè)試之前對(duì)這3個(gè)項(xiàng)目的軟件文檔編寫(xiě)、研發(fā)和第三方測(cè)試過(guò)程中均未做新的要求或進(jìn)行干預(yù),程序及文檔的質(zhì)量與歷史項(xiàng)目水平相近。實(shí)驗(yàn)中,測(cè)試人員在設(shè)計(jì)階段通過(guò)從復(fù)用庫(kù)中復(fù)用測(cè)試用例,執(zhí)行階段運(yùn)用漫游探索法開(kāi)展探索式測(cè)試執(zhí)行并記錄會(huì)話記錄單輔助測(cè)試總結(jié)。實(shí)驗(yàn)統(tǒng)計(jì)了運(yùn)用本文提出的腳本會(huì)話測(cè)試模型時(shí)測(cè)試時(shí)間和缺陷數(shù)量,包括遺留到第三方測(cè)試時(shí)才發(fā)現(xiàn)的缺陷數(shù)量。
試點(diǎn)結(jié)果統(tǒng)計(jì)數(shù)據(jù),如表1所示(項(xiàng)目名稱和代號(hào)未顯示)。這三個(gè)項(xiàng)目的測(cè)試用例平均復(fù)用率約為72%。結(jié)果顯示,借助雷達(dá)軟件測(cè)試典型數(shù)據(jù)復(fù)用以實(shí)現(xiàn)將測(cè)試人員經(jīng)驗(yàn)運(yùn)用于軟件測(cè)試設(shè)計(jì)中,相比采用傳統(tǒng)腳本測(cè)試方法的平均用時(shí),整個(gè)測(cè)試流程總共節(jié)省時(shí)間約30%;尤其是對(duì)于雷達(dá)產(chǎn)品測(cè)試設(shè)計(jì),平均每個(gè)用例的設(shè)計(jì)時(shí)間可以節(jié)省約45%左右。通過(guò)測(cè)試復(fù)用,還可以減少用于溝通和軟件文檔更新的時(shí)間。此外,借助會(huì)話記錄和各輪會(huì)話對(duì)測(cè)試活動(dòng)的反饋,測(cè)試執(zhí)行階段測(cè)試過(guò)程記錄更為詳細(xì)、測(cè)試人員對(duì)軟件及缺陷的理解更為清晰,測(cè)試總結(jié)中與用戶/開(kāi)發(fā)方的缺陷交流時(shí)間和測(cè)試報(bào)告編寫(xiě)時(shí)間下降,按照缺陷數(shù)量平均,測(cè)試總結(jié)階段節(jié)省時(shí)間14%左右。同時(shí),遺留到第三方測(cè)試才發(fā)現(xiàn)的缺陷個(gè)數(shù)比歷史平均下降,遺留缺陷率由19%左右下降到8%(三項(xiàng)目平均),驗(yàn)證了軟件測(cè)試質(zhì)量的提升。但需要注意,由于腳本會(huì)話模型中測(cè)試執(zhí)行需要增加會(huì)話總結(jié)會(huì)和討論,平均每個(gè)用例的測(cè)試執(zhí)行時(shí)間增加了約9%(項(xiàng)目A和項(xiàng)目B平均)。
表1腳本會(huì)話測(cè)試模型試點(diǎn)統(tǒng)計(jì)h
項(xiàng)目測(cè)試用例個(gè)數(shù)測(cè)試設(shè)計(jì)耗時(shí)測(cè)試執(zhí)行耗時(shí)測(cè)試總結(jié)耗時(shí)發(fā)現(xiàn)的缺陷數(shù)遺留缺陷數(shù)歷史平均128777225713013025項(xiàng)目A114529025611013812項(xiàng)目B13793193171231459項(xiàng)目C12042882651081358
鑒于不同類型的產(chǎn)品歷史數(shù)據(jù)積累充分程度不同,并考慮產(chǎn)品的發(fā)展和我們預(yù)期,在保證測(cè)試質(zhì)量的同時(shí),應(yīng)用腳本會(huì)話測(cè)試模型,能夠節(jié)省雷達(dá)軟件測(cè)試整個(gè)流程20%~30%的時(shí)間開(kāi)銷(xiāo),其中測(cè)試需求分析、策劃和測(cè)試設(shè)計(jì)階段節(jié)省用時(shí)可達(dá)40%~50%。但同時(shí)需要注意控制會(huì)話總結(jié)和討論對(duì)測(cè)試時(shí)間開(kāi)銷(xiāo)的影響。
腳本會(huì)話模型將探索式測(cè)試方法與傳統(tǒng)的腳本測(cè)試流程結(jié)合。在雷達(dá)軟件測(cè)試時(shí)間短、任務(wù)重以及軟件需求和設(shè)計(jì)文檔往往滯后或不完備的情況下,在保證測(cè)試質(zhì)量的同時(shí),能夠縮短測(cè)試時(shí)間,產(chǎn)生齊備的軟件測(cè)試文檔,并確保測(cè)試流程可控。
在今后的工作中,我們會(huì)將腳本會(huì)話測(cè)試應(yīng)用在更多雷達(dá)產(chǎn)品軟件測(cè)試中,并繼續(xù)整理其它類型雷達(dá)軟件測(cè)試典型數(shù)據(jù)復(fù)用庫(kù)。同時(shí)也將通過(guò)實(shí)際工程試用,不斷改進(jìn)相關(guān)的測(cè)試管理方法和測(cè)試技術(shù)。
[1]BACH J. Session-based test management[J]. Software Testing and Quality Engineering, 2000, 2(6): 1-10.
[2]WHITTAKER J A. 探索式軟件測(cè)試[M]. 北京: 清華大學(xué)出版社, 2010.
WHITTAKER J A. Exploratory testing[M]. Beijing: Tsinghua University Press, 2010.
[3]孫俊若, 席曉強(qiáng), 葉波, 等. 記載雷達(dá)軟件開(kāi)發(fā)全周期測(cè)試技術(shù)研究[J]. 現(xiàn)代雷達(dá), 2010, 32(1): 85-89.
SUN Junruo, XI Xiaoqiang, YE Bo, et al. A study on whole cycle test technology in airborne radar sofware development[J]. Modern Radar, 2010, 32(1): 85-89.
[4]李昊. 雷達(dá)軟件測(cè)試用例復(fù)用技術(shù)研究[J]. 現(xiàn)代雷達(dá), 2012, 34(3): 78-82.
LI Hao. A study on the resuse of radar software testing cases[J]. Modern Radar, 2012, 34(3): 78-82.
[5]NASEER A, ZULFIQAR M. Investigating exploratory testing in industrial practice[D]. Ronneby: Blekinge Institute of Technology, 2010.
[6]ITKONEN J, RAUTIAINEN K. Exploratory testing: a multiple case study[C]// 2005 International Symposium on Empirical Software Engineering. Los Alamitos: IEEE Press, 2005: 82-91.
[7]ITKONEN J, MANTYLA M V, LASSENIUS C. How do testers do it? An exploratory study on manual testing practices[C]// 2009 3rd International Symposium on Empirical Software Engineering and Measurement. Washington DC: IEEE Press, 2009: 494-497.
[8]KANER C, FALK J, NGUYEN H Q. Testing computer software second edition[M]. [S.l.]: Dreamtech Press, 2000.
[9]ITKONEN J, MANTYLA M V, LASSENIUS C. Defect detection efficiency: test case based vs. exploratory testing[C]// Proceedings of International Symposium on Empirical Software Engineering and Measurement. Madrid: IEEE Press, 61-70.
[10]柳溪. 探索性軟件測(cè)試方法及其在嵌入式系統(tǒng)中的應(yīng)用[J]. 現(xiàn)代電子技術(shù), 2014, 37(20): 74-79.
LIU Xi. Exploratory software testing approaches and their application in embedded systems[J]. Modern Electronics Technique, 2014,37(20): 74-79.
[11]柳溪, 馬康, 劉智. 融合探索性與腳本方法的第三方軟件測(cè)試模型及其應(yīng)用[J]. 信息化研究, 2013,39(6): 43-48.
LIU Xi, MA Kang, LIU Zhi. Research and application of the third-party software testing model combining exploratory and script testing techiques[J]. Information Research, 2013,39(6): 43-48.
[12]HELLMANN T D, MAURER F. Rule-based exploratory testing of graphical user interfaces[C]// Proceedings of Agile Conference.[S.l.] : IEEE Press, 2011:107-116.
[13]LYNDSAY J V, EEDEN N. Adventures in session-based testing[J]. Workroom Productions Ltd., 2003,27(5): 1-17.
柳溪男,1984年生,工程師,工學(xué)博士。研究方向?yàn)檐浖こ?、嵌入式和信息系統(tǒng)軟件的測(cè)試自動(dòng)化、基于模型的測(cè)試和驗(yàn)證、安全性和可靠性測(cè)試和驗(yàn)證等。
Application of Exploratory Testing on Radar Software
LIU Xi
(Nanjing Research Institute of Electronics Technology, Nanjing 210039, China)
Radar software testing suffers from insufficient time allocation and incomplete or out-of-date software specifications. In such case, exploratory testing can help to achieve more adaptive and efficient testing, because it emphasizes parallel testing design and execution, and lowers the requirement on software specifications. It is an interesting question how to incorporate exploratory testing techniques into radar software testing. According to the pros and cons of exploratory testing and classical script software testing approach, the session-script testing model is proposed which combines sessions and test tours with classical script testing process. By reusing from past radar software testing design, and incorporating sessions and test tours in classic software testing process, current testing project may take advantage of expert radar software testers' experience and organization assets, and there is less affect from software specifications to software testing quality. As a result, high quality radar software testing becomes more adaptive and efficient.
software testing; radar; exploratory testing; session-based testing management; test reuse
10.16592/ j.cnki.1004-7859.2016.09.018
柳溪Email:williamxliu@qq.com
2016-04-26
2016-06-28
TP311.5
A
1004-7859(2016)09-0086-06