羅浩榕,朱衛(wèi)星,史涯晴,萬(wàn)進(jìn)勇
(陸軍工程大學(xué)指揮控制工程學(xué)院,江蘇南京 210001)
軟件測(cè)試對(duì)于保證軟件質(zhì)量至關(guān)重要。作為一項(xiàng)智力密集、知識(shí)密集型活動(dòng),軟件測(cè)試各階段都會(huì)產(chǎn)生大量測(cè)試文檔,這些文檔包含被測(cè)軟件特征、測(cè)試人員分析與決策等諸多信息,有效利用這些信息可幫助測(cè)試人員減少重復(fù)勞動(dòng),更加高效地確定測(cè)試需求、選擇測(cè)試方法、設(shè)計(jì)測(cè)試用例,避免重復(fù)錯(cuò)誤發(fā)生[1]。然而,目前仍存在以下3類(lèi)問(wèn)題制約軟件測(cè)試知識(shí)復(fù)用:①數(shù)據(jù)異構(gòu):測(cè)試文檔的存儲(chǔ)有多種形式,包括結(jié)構(gòu)化的關(guān)系數(shù)據(jù)庫(kù)、非結(jié)構(gòu)化的Word 文本、Excel 表格等,需要使用不同的獲取手段,具有一定挑戰(zhàn)性;②描述差異:現(xiàn)實(shí)世界中同一個(gè)對(duì)象可能存在多個(gè)描述術(shù)語(yǔ),知識(shí)融合存在困難,共指消解技術(shù)值得研究;③信息孤島:缺乏在機(jī)構(gòu)與人員之間進(jìn)行知識(shí)共享的機(jī)制和平臺(tái),未形成整體測(cè)試知識(shí),存在測(cè)試知識(shí)適配障礙、知識(shí)可共享環(huán)境差、低重用性問(wèn)題。
本體是知識(shí)管理中一種常用的使能技術(shù),包含共享性、概念化、明確性、形式化4 個(gè)方面含義[1-2]。利用本體建立軟件測(cè)試知識(shí)庫(kù),確定軟件測(cè)試領(lǐng)域的規(guī)范術(shù)語(yǔ)集,提取并存儲(chǔ)異構(gòu)測(cè)試文檔中的知識(shí),有利于測(cè)試人員和計(jì)算機(jī)理解、處理、共享測(cè)試知識(shí)。
要進(jìn)行軟件測(cè)試知識(shí)復(fù)用,首先應(yīng)確定哪些信息可以轉(zhuǎn)化為可以幫助測(cè)試人員開(kāi)展測(cè)試活動(dòng)的知識(shí)。測(cè)試復(fù)用即識(shí)別和利用滿足測(cè)試充分性條件的歷史測(cè)試文檔內(nèi)容,這也意味著應(yīng)當(dāng)對(duì)測(cè)試文檔內(nèi)容、充分性判定規(guī)則建模。本文對(duì)軟件測(cè)試知識(shí)的定義為:
定義1:測(cè)試需求(Test Requirement)。測(cè)試需求即確定測(cè)試目標(biāo)、測(cè)試內(nèi)容和質(zhì)量特性,確定測(cè)試充分性要求,提出測(cè)試活動(dòng)應(yīng)當(dāng)遵循的基本原則和要求,確定測(cè)試資源和技術(shù)需求。使用Target 表示測(cè)試目標(biāo),Description 表示被測(cè)件描述,Phase 表示測(cè)試階段,Type 表示測(cè)試類(lèi)型,Environment 表示測(cè)試環(huán)境,Method 表示測(cè)試方法,Evaluate 表示判斷軟件符合需求未發(fā)生失效的規(guī)則,那么測(cè)試需求可以表示為七元組,記為:
經(jīng)驗(yàn)表明,同一領(lǐng)域的測(cè)試項(xiàng)目往往遵循相同的行業(yè)規(guī)范、標(biāo)準(zhǔn)等,同一類(lèi)型軟件的使用場(chǎng)景、功能結(jié)構(gòu)、性能要求等存在很大相似性,因此具備了知識(shí)復(fù)用的基礎(chǔ)。
定義2:測(cè)試用例(Test Case)。測(cè)試用例是指測(cè)試人員根據(jù)軟件需求說(shuō)明和程序內(nèi)部結(jié)構(gòu),精心設(shè)計(jì)出的一組測(cè)試輸入、執(zhí)行條件以及預(yù)期結(jié)果,用于核實(shí)軟件是否滿足某個(gè)特定需求。采用RequiredTrace 表示測(cè)試用例對(duì)應(yīng)的軟件測(cè)試需求項(xiàng),Precondition 表示執(zhí)行測(cè)試用例的前提條件,InputData 表示輸入數(shù)據(jù)集合,OperationSequence 表示操作軟件的動(dòng)作序列,ExceptResult 表示預(yù)期輸出結(jié)果,那么測(cè)試用例可以記為五元組:
測(cè)試用例設(shè)計(jì)是軟件測(cè)試的核心工作,對(duì)測(cè)試用例的復(fù)用是目前研究最多的方向,除了查找相似的測(cè)試用例直接獲取歷史經(jīng)驗(yàn),還可以歸納形成測(cè)試設(shè)計(jì)模式。
定義3:?jiǎn)栴}報(bào)告(Bug Report)。問(wèn)題報(bào)告是對(duì)未通過(guò)的測(cè)試用例進(jìn)行記錄和總結(jié),提出復(fù)現(xiàn)軟件缺陷的最短路徑,分析定位錯(cuò)誤。采用CaseTrace 表示發(fā)現(xiàn)軟件缺陷的測(cè)試用例,ActualResult 表示實(shí)際輸出結(jié)果,BugCharacter 表示軟件缺陷的作用表征,BugLocation 表示造成缺陷的代碼或文檔,Influence 表示缺陷的影響范圍和程度,那么問(wèn)題報(bào)告可以記為五元組:
問(wèn)題報(bào)告中蘊(yùn)含了測(cè)試人員對(duì)軟件缺陷的總結(jié),可以幫助后續(xù)開(kāi)發(fā)人員定位缺陷,對(duì)于修復(fù)問(wèn)題具有重要意義。
測(cè)試文檔之間并不是孤立的,而是具有緊密聯(lián)系,單獨(dú)收集管理其中某一類(lèi)可能會(huì)造成測(cè)試知識(shí)缺失,難以為基于知識(shí)的測(cè)試復(fù)用提供支撐。從軟件測(cè)試工作規(guī)律的角度,至少可以提出以下規(guī)則聯(lián)系:
(1)isDesignBy 關(guān)系。測(cè)試用例的設(shè)計(jì)依賴(lài)于測(cè)試需求分析,測(cè)試需求中描述了一個(gè)被測(cè)需求項(xiàng),并指明了測(cè)試所需的軟件、硬件環(huán)境以及適宜使用的測(cè)試技術(shù)。因此,對(duì)于用例集TC 中的任一測(cè)試用例tc,存在一個(gè)測(cè)試需求項(xiàng)tr 屬于測(cè)試需求集TR,tc 與tr 具有isDesignBy 關(guān)系,可表達(dá)為:
(2)isFindBy 關(guān)系。軟件缺陷必然通過(guò)測(cè)試用例的執(zhí)行而發(fā)現(xiàn),即對(duì)于任一軟件缺陷項(xiàng)br,存在一個(gè)測(cè)試用例tc,該軟件缺陷br 由用例tc 的執(zhí)行而被發(fā)現(xiàn),可表達(dá)為:
(3)isDiffrent 關(guān)系、isNotSatisfy 關(guān)系。軟件缺陷的發(fā)現(xiàn)必然是由于實(shí)際結(jié)果與預(yù)期結(jié)果不同且不滿足判斷軟件正確的規(guī)則。因此,對(duì)于任一軟件缺陷br,存在一組測(cè)試執(zhí)行的實(shí)際結(jié)果ar、測(cè)試用例的預(yù)期結(jié)果er 和測(cè)試判定規(guī)則ev。由ar 與er 具有isDiffrent 關(guān)系得出缺陷br 不滿足測(cè)試判定規(guī)則ev,br 和ev 具有isNotSatisfy 關(guān)系,可表達(dá)為:
現(xiàn)有的軟件測(cè)試復(fù)用研究一般存在兩個(gè)假設(shè):①歷史項(xiàng)目中的測(cè)試需求、測(cè)試用例和問(wèn)題報(bào)告等均是準(zhǔn)確的,滿足測(cè)試正確性、充分性的要求;②當(dāng)兩個(gè)項(xiàng)目存在某種相似性時(shí),其測(cè)試需求、測(cè)試用例、潛在問(wèn)題等也應(yīng)當(dāng)存在較大相似性。
基于上述假設(shè),軟件測(cè)試復(fù)用意味著從歷史測(cè)試項(xiàng)目中獲取信息和知識(shí)支撐當(dāng)前測(cè)試工作中的決策,例如測(cè)試環(huán)境和測(cè)試方法選擇、測(cè)試數(shù)據(jù)設(shè)計(jì)等,這涉及到一個(gè)獲取、存儲(chǔ)、分類(lèi)、檢索、使用歷史知識(shí)的過(guò)程。按照相似性表達(dá)和計(jì)算方式的不同可將復(fù)用方法分為3 類(lèi),分別為基于主題詞檢索和特征的復(fù)用方法、基于需求模型匹配的復(fù)用方法、基于語(yǔ)義本體的復(fù)用方法。按照復(fù)用對(duì)象的不同可將其分為兩類(lèi),分別為對(duì)測(cè)試全過(guò)程文檔(如測(cè)試資產(chǎn))的復(fù)用和對(duì)單一測(cè)試文檔(如測(cè)試用例)的復(fù)用,具體如表1 所示。
可以看出,軟件測(cè)試資產(chǎn)復(fù)用中存在3 個(gè)問(wèn)題:①缺乏形式化歸納知識(shí)的有效機(jī)制,難以深入挖掘測(cè)試資產(chǎn)之間的復(fù)雜關(guān)系以及其中蘊(yùn)含的經(jīng)驗(yàn)知識(shí),從而形成抽象層次更高的測(cè)試模式、測(cè)試策略等;②難以集成和管理不同來(lái)源的信息,沒(méi)有解決測(cè)試文檔本身的模糊性和不精確性,相似性計(jì)算結(jié)果存在較大誤差,可能造成復(fù)用結(jié)果不準(zhǔn)確的問(wèn)題;③無(wú)法解決測(cè)試文檔的正確性驗(yàn)證問(wèn)題,由人編寫(xiě)的測(cè)試文檔不可避免地會(huì)存在問(wèn)題,復(fù)用錯(cuò)誤的經(jīng)驗(yàn)可能降低測(cè)試項(xiàng)目的可靠性和工作效率,從項(xiàng)目中獲取新知識(shí)后應(yīng)當(dāng)進(jìn)行推理驗(yàn)證。因此,有必要在軟件測(cè)試中引入知識(shí)管理的方法(例如本體),建立一個(gè)結(jié)構(gòu)良好的知識(shí)庫(kù),在測(cè)試人員之間傳遞測(cè)試知識(shí)和經(jīng)驗(yàn),利用知識(shí)支持測(cè)試設(shè)計(jì)、執(zhí)行和解釋?zhuān)⒋龠M(jìn)新知識(shí)的產(chǎn)生。為達(dá)到上述目的,目前亟需解決測(cè)試知識(shí)的表達(dá)方式、異構(gòu)知識(shí)來(lái)源的獲取與集成以及基于推理的測(cè)試知識(shí)驗(yàn)證問(wèn)題。
Table 1 Methods of software reuse表1 軟件測(cè)試復(fù)用方法
在知識(shí)庫(kù)系統(tǒng)中,產(chǎn)生式規(guī)則、語(yǔ)義網(wǎng)絡(luò)、框架、描述邏輯等均為使用知識(shí)表示的方式,其中描述邏輯由于其較強(qiáng)的表達(dá)能力和可判定性成為OWL、RDFS 等知識(shí)表示語(yǔ)言的理論基礎(chǔ)。描述邏輯表示的知識(shí)庫(kù)可分為T(mén)Box 與ABox 兩個(gè)部分,其中TBox 是有關(guān)概念和關(guān)系的蘊(yùn)涵斷言集合,通過(guò)描述概念和關(guān)系的一般屬性,定義了特定領(lǐng)域的知識(shí)結(jié)構(gòu)并包含一系列公理;ABox 是實(shí)例及實(shí)例斷言的集合,指明了領(lǐng)域中個(gè)體的屬性與關(guān)系[1]。從知識(shí)庫(kù)系統(tǒng)的組成結(jié)構(gòu)來(lái)看,軟件測(cè)試知識(shí)庫(kù)包含5 個(gè)層次,分別為本體層、存儲(chǔ)層、檢索層、推理層、知識(shí)共享層[1-2],其中本體層是整個(gè)知識(shí)庫(kù)的基礎(chǔ),其在測(cè)試文檔中識(shí)別概念、關(guān)系和公理,作為數(shù)據(jù)模型支持軟件測(cè)試領(lǐng)域的知識(shí)表示,對(duì)應(yīng)TBox;存儲(chǔ)層提供語(yǔ)義數(shù)據(jù)的存儲(chǔ)和維護(hù),存儲(chǔ)數(shù)據(jù)實(shí)例,可用的工具包括JenaTDB、Sesame 等,對(duì)應(yīng)ABox;檢索層可通過(guò)邏輯符號(hào)組合不同條件以檢索知識(shí),是知識(shí)庫(kù)發(fā)揮作用、提供更高級(jí)服務(wù)的基礎(chǔ);推理層可基于已有的事實(shí)和推理規(guī)則計(jì)算邏輯結(jié)果,形成新的知識(shí),作為補(bǔ)充或驗(yàn)證知識(shí)庫(kù)的依據(jù);知識(shí)共享層使軟件測(cè)試相關(guān)人員能在本體模型的支持下為軟件測(cè)試文檔添加語(yǔ)義標(biāo)注,將其轉(zhuǎn)化為計(jì)算機(jī)可理解的三元組語(yǔ)義數(shù)據(jù)。
基于領(lǐng)域本體的軟件測(cè)試知識(shí)庫(kù)定義了測(cè)試領(lǐng)域中的共享概念[13],促進(jìn)測(cè)試知識(shí)集成、存儲(chǔ)與共享,使測(cè)試人員能夠?qū)W習(xí)測(cè)試經(jīng)驗(yàn),復(fù)用測(cè)試技術(shù)和測(cè)試用例。為支撐軟件測(cè)試知識(shí)復(fù)用,軟件測(cè)試知識(shí)庫(kù)應(yīng)當(dāng)至少包含本體層、存儲(chǔ)層和檢索層,推理層和知識(shí)共享層可用于支持?jǐn)U展新的知識(shí)。在本體的支持下,軟件測(cè)試知識(shí)庫(kù)可以進(jìn)行系統(tǒng)化、形式化的軟件測(cè)試工作,與完全依靠經(jīng)驗(yàn)的傳統(tǒng)測(cè)試比較,其更有利于測(cè)試人員之間合作,更具有透明性和可重復(fù)性[14]。
構(gòu)建軟件測(cè)試本體和知識(shí)庫(kù)為測(cè)試組織與人員之間共享知識(shí)奠定了基礎(chǔ),是實(shí)現(xiàn)軟件測(cè)試復(fù)用等智能測(cè)試應(yīng)用的前提。將軟件領(lǐng)域知識(shí)應(yīng)用于軟件測(cè)試全生命周期中,可最大限度地利用軟件測(cè)試機(jī)構(gòu)積累的歷史知識(shí)。
與其他軟件過(guò)程文檔類(lèi)似,測(cè)試文檔用于支持測(cè)試過(guò)程的相關(guān)利益者對(duì)測(cè)試項(xiàng)目進(jìn)行交流和理解,這些文檔本身是為人類(lèi)開(kāi)發(fā)的,計(jì)算機(jī)難以理解和處理。由于測(cè)試文檔數(shù)據(jù)的稀疏性,相關(guān)聯(lián)的信息往往分布在多個(gè)文檔中,即使使用項(xiàng)目管理工具,訪問(wèn)和檢索文檔內(nèi)容依然需要大量人工干預(yù),這便造成了文檔分析的低效性。語(yǔ)義網(wǎng)通過(guò)本體對(duì)網(wǎng)頁(yè)內(nèi)容的元數(shù)據(jù)提供注釋?zhuān)鉀Q網(wǎng)絡(luò)中的語(yǔ)義檢索問(wèn)題。借鑒該思路,利用本體將文檔中的文本映射到概念、關(guān)系和實(shí)例,向文檔中添加注釋以提高對(duì)其中數(shù)據(jù)的可理解性和可訪問(wèn)性[15],使文檔內(nèi)容能夠被計(jì)算機(jī)理解和操作,進(jìn)而提供復(fù)雜搜索、文檔互操作等功能。
手動(dòng)進(jìn)行注釋消耗大量時(shí)間且容易出錯(cuò),因此一般使用注釋工具對(duì)軟件測(cè)試機(jī)構(gòu)維護(hù)的文檔模板進(jìn)行注釋?;谲浖y(cè)試領(lǐng)域本體,為文檔管理系統(tǒng)建立多層文檔模型[16],分為通用層和特定領(lǐng)域?qū)樱渲型ㄓ脤右蕾?lài)于軟件測(cè)試文檔標(biāo)準(zhǔn),如GJB438B、ISO29119、GB/T15532 等,用于表示軟件測(cè)試文檔共有的屬性、結(jié)構(gòu)等,為添加注釋提供指導(dǎo);特定領(lǐng)域?qū)踊诓煌瑢?zhuān)業(yè)領(lǐng)域,對(duì)不同應(yīng)用場(chǎng)景進(jìn)行編輯,進(jìn)而表示雷達(dá)系統(tǒng)、信息系統(tǒng)、通信系統(tǒng)等不同軟件應(yīng)用領(lǐng)域的專(zhuān)有概念、屬性、關(guān)系等,作為語(yǔ)義文檔的注釋標(biāo)簽。語(yǔ)義測(cè)試文檔的產(chǎn)生和使用分為3 個(gè)階段:①測(cè)試人員將被注釋的文檔模型實(shí)例化,產(chǎn)生語(yǔ)義標(biāo)注的測(cè)試文檔,存儲(chǔ)在語(yǔ)義文檔庫(kù)中;②從語(yǔ)義測(cè)試文檔中抽取語(yǔ)義內(nèi)容和版本信息,存儲(chǔ)于數(shù)據(jù)存儲(chǔ)庫(kù)中;③提供一個(gè)對(duì)外的應(yīng)用接口,支持測(cè)試人員、其他系統(tǒng)用戶進(jìn)行數(shù)據(jù)追蹤和基于本體的搜索。
語(yǔ)義測(cè)試文檔實(shí)際上就是基于測(cè)試領(lǐng)域的本體模型開(kāi)發(fā)帶有元數(shù)據(jù)標(biāo)簽的測(cè)試文檔模板,這些標(biāo)簽將文檔定義為一個(gè)操作單元進(jìn)行識(shí)別、結(jié)構(gòu)化、信息交互等操作,有效控制和管理軟件測(cè)試文檔的生命周期。
在測(cè)試用例設(shè)計(jì)和生成過(guò)程中,基于領(lǐng)域本體的測(cè)試知識(shí)庫(kù)可以有3 種應(yīng)用方式:①一種基本的測(cè)試用例復(fù)用[11,17]方式是建立基于本體的測(cè)試用例知識(shí)庫(kù),依據(jù)預(yù)定義的覆蓋選擇標(biāo)準(zhǔn)和軟件度量模型計(jì)算被測(cè)目標(biāo)的概念相似度,從知識(shí)庫(kù)中推薦測(cè)試用例。這些相似測(cè)試用例數(shù)據(jù)顯示在模板中,測(cè)試人員根據(jù)需要選擇其中一個(gè)或多個(gè)并修改部分?jǐn)?shù)據(jù),根據(jù)選擇和修正結(jié)果動(dòng)態(tài)更新推薦算法的參數(shù),新的測(cè)試用例在執(zhí)行后也加入測(cè)試用例知識(shí)庫(kù)中。②從軟件需求本體中提取測(cè)試數(shù)據(jù)形成測(cè)試用例[18]。軟件需求是軟件測(cè)試的基礎(chǔ),由于人類(lèi)交流的信息偏差和對(duì)現(xiàn)實(shí)世界的認(rèn)知偏差,復(fù)雜軟件需求存在一定模糊性?;诒倔w的需求建模技術(shù)通過(guò)描述系統(tǒng)在特定條件下的行為活動(dòng)、行為約束和行為標(biāo)準(zhǔn),能夠定義軟件功能需求、軟件特性和非功能需求,被廣泛用于減少理解需求的復(fù)雜性和模糊性。因此,將本體應(yīng)用于軟件測(cè)試領(lǐng)域,建立軟件需求與軟件測(cè)試的聯(lián)系,可以降低軟件測(cè)試的復(fù)雜性和模糊性。測(cè)試用例與軟件需求的前置條件、后置條件、輸出和約束類(lèi)相關(guān)聯(lián),通過(guò)約束求解可以為每個(gè)測(cè)試用例生成前置條件和后置條件。前置、后置條件用于求解所需的輸入?yún)?shù)和測(cè)試數(shù)據(jù),軟件輸出與測(cè)試用例執(zhí)行后的預(yù)期結(jié)果相關(guān)聯(lián),軟件需求約束指示了執(zhí)行測(cè)試用例所需的條件或動(dòng)作序列。③通過(guò)本體描述軟件系統(tǒng)環(huán)境模型,特別是系統(tǒng)與外界交互的場(chǎng)景,如車(chē)輛行駛場(chǎng)景、網(wǎng)絡(luò)攻擊環(huán)境、編譯器解析等系統(tǒng)行為。基于軟件系統(tǒng)環(huán)境的概念、關(guān)系以及系統(tǒng)與環(huán)境的交互行為提取潛在的測(cè)試輸入數(shù)據(jù)字段及其值域范圍,通過(guò)組合測(cè)試方法生成多組對(duì)應(yīng)不同環(huán)境條件的測(cè)試數(shù)據(jù)集,再根據(jù)本體中的約束消除多余組合。上述方法可以為運(yùn)行在復(fù)雜環(huán)境中的軟件系統(tǒng)生成測(cè)試用例,但不提供預(yù)期輸出[19-20],需要另外提供測(cè)試預(yù)言判斷測(cè)試執(zhí)行結(jié)果成功或失敗。
與大型通用知識(shí)庫(kù)DBpedia、Wikidata 等相比,軟件測(cè)試領(lǐng)域中涉及的知識(shí)類(lèi)型更復(fù)雜,不僅需要表示軟件對(duì)象、測(cè)試環(huán)境、測(cè)試產(chǎn)品等靜態(tài)知識(shí)對(duì)象,還需要表示過(guò)程性的動(dòng)態(tài)知識(shí),如測(cè)試對(duì)象的復(fù)雜度、邏輯過(guò)程和目標(biāo)質(zhì)量特性等指標(biāo)對(duì)測(cè)試方法產(chǎn)生的影響。靜態(tài)的知識(shí)可以使用框架對(duì)其基本概念和關(guān)系進(jìn)行較為全面的描述,而過(guò)程性知識(shí)適合使用產(chǎn)生式表達(dá)。基于描述邏輯的本體能夠表達(dá)的知識(shí)范圍相對(duì)較廣,但開(kāi)發(fā)本體比較困難。軟件測(cè)試知識(shí)庫(kù)并不能單獨(dú)在軟件測(cè)試過(guò)程中發(fā)揮作用,而是作為測(cè)試過(guò)程管理工具的一部分存在。通過(guò)一個(gè)得到公認(rèn)且表現(xiàn)力足夠強(qiáng)的本體描述測(cè)試知識(shí)的不同細(xì)節(jié),可使測(cè)試人員在產(chǎn)生、獲取和共享測(cè)試知識(shí)的過(guò)程中沒(méi)有額外負(fù)擔(dān)。目前的測(cè)試知識(shí)庫(kù)研究大多關(guān)注建立不同形式的本體,并以本體實(shí)例的形式存儲(chǔ)測(cè)試用例、軟件需求等相關(guān)文檔信息,現(xiàn)有的軟件測(cè)試參考本體還沒(méi)有達(dá)到解決這一需求的水平。缺少有效的知識(shí)表達(dá)方式對(duì)軟件測(cè)試知識(shí)的轉(zhuǎn)化造成了嚴(yán)重阻礙,使軟件測(cè)試組織獲得的知識(shí)和經(jīng)驗(yàn)難以被復(fù)用。
三元組形式的知識(shí)表示方法基于離散化的符號(hào)表達(dá)知識(shí),可有效將數(shù)據(jù)結(jié)構(gòu)化,應(yīng)用廣泛。然而,網(wǎng)絡(luò)狀離散化的符號(hào)不能進(jìn)行語(yǔ)義計(jì)算,基于圖網(wǎng)絡(luò)的知識(shí)推理算法存在計(jì)算復(fù)雜度高的問(wèn)題,對(duì)下游應(yīng)用并不友好。此外,當(dāng)出現(xiàn)數(shù)據(jù)長(zhǎng)尾分布時(shí),長(zhǎng)尾部分罕見(jiàn)實(shí)體的推理和計(jì)算往往準(zhǔn)確率極低。近年來(lái)快速發(fā)展的深度學(xué)習(xí)等表示學(xué)習(xí)技術(shù)可以將軟件測(cè)試實(shí)體中的語(yǔ)義信息表示為稠密低維的實(shí)數(shù)值向量,從而在低緯度空間中計(jì)算實(shí)體關(guān)系中的復(fù)雜語(yǔ)義關(guān)聯(lián),對(duì)于軟件測(cè)試知識(shí)庫(kù)的構(gòu)建有重要意義。
軟件測(cè)試知識(shí)庫(kù)的構(gòu)建需要從結(jié)構(gòu)化數(shù)據(jù)庫(kù)、非結(jié)構(gòu)化文本、半結(jié)構(gòu)化表格等中提取實(shí)體、關(guān)系、屬性等信息。軟件測(cè)試知識(shí)的存在形式多種多樣,數(shù)據(jù)異構(gòu)現(xiàn)象較為突出,數(shù)據(jù)質(zhì)量良莠不齊且對(duì)人工標(biāo)注的專(zhuān)業(yè)性要求高,缺少高質(zhì)量的標(biāo)注數(shù)據(jù)是構(gòu)建軟件測(cè)試知識(shí)庫(kù)的一大難題。在常用知識(shí)抽取方法中,基于規(guī)則和詞典的知識(shí)需要高質(zhì)量的軟件測(cè)試領(lǐng)域知識(shí)詞典,且主要針對(duì)單一場(chǎng)景和單一數(shù)據(jù)源。一種解決方案是在開(kāi)發(fā)軟件測(cè)試文檔的過(guò)程中引入樣板,使用元數(shù)據(jù)標(biāo)注的語(yǔ)義文檔開(kāi)發(fā)測(cè)試文檔并將其作為主要數(shù)據(jù)來(lái)源,以提高數(shù)據(jù)質(zhì)量;另一種解決方案是通過(guò)弱監(jiān)督學(xué)習(xí)減少對(duì)標(biāo)記數(shù)據(jù)的依賴(lài),使用大量未標(biāo)注數(shù)據(jù)提升模型性能,主要包括遠(yuǎn)程監(jiān)督和Bootstrapping兩種方法。遠(yuǎn)程監(jiān)督學(xué)習(xí)的基本假設(shè)是如果兩個(gè)實(shí)體在知識(shí)庫(kù)中存在某種關(guān)系,那么非結(jié)構(gòu)文本中包含這兩個(gè)實(shí)體的句子也應(yīng)當(dāng)表達(dá)了這種關(guān)系,可通過(guò)將知識(shí)庫(kù)與非結(jié)構(gòu)文本對(duì)齊的方式自動(dòng)構(gòu)建大量訓(xùn)練數(shù)據(jù)。遠(yuǎn)程監(jiān)督訓(xùn)練能有效減少人工標(biāo)注的工作量,但也會(huì)引入大量噪聲,導(dǎo)致語(yǔ)義漂移現(xiàn)象。Bootstrapping 方法利用少量實(shí)例作為初始種子集合,在種子集合上學(xué)習(xí)實(shí)體關(guān)系抽取的模板,再對(duì)模板抽取結(jié)果打分并擴(kuò)展種子集合,通過(guò)不斷迭代抽取大量實(shí)例。該方法構(gòu)建成本低且具備發(fā)現(xiàn)新關(guān)系的能力,但也存在對(duì)初始種子敏感、語(yǔ)義漂移、準(zhǔn)確率低等問(wèn)題。
軟件測(cè)試活動(dòng)中產(chǎn)生了大量知識(shí),獲取、表示、共享并復(fù)用這些知識(shí)是一種提高測(cè)試工作效率、減少測(cè)試人員工作量的有效方法。然而以往的軟件測(cè)試復(fù)用研究大多專(zhuān)注于對(duì)歷史數(shù)據(jù)的管理和檢索方面,對(duì)蘊(yùn)含于原始數(shù)據(jù)中的測(cè)試知識(shí)研究不足。此外,這些研究通?;谝粋€(gè)隱含的假設(shè),即能夠完整理解和表達(dá)被復(fù)用組件及其上下文,但由于軟件測(cè)試中的不確定性,這樣的假設(shè)往往是失效的,因此傳統(tǒng)的軟件測(cè)試復(fù)用具有一定局限性。隨著人工智能和開(kāi)放數(shù)據(jù)的快速發(fā)展,軟件測(cè)試復(fù)用出現(xiàn)了向更高語(yǔ)義抽象層次發(fā)展的趨勢(shì),為在概念維度處理歷史知識(shí)表示的模糊性以及開(kāi)發(fā)更智能的檢索技術(shù)提供了新思路。