999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

知識庫系統在軟件測試復用中的應用研究

2021-10-28 07:51:36羅浩榕朱衛星史涯晴萬進勇
軟件導刊 2021年10期
關鍵詞:語義

羅浩榕,朱衛星,史涯晴,萬進勇

(陸軍工程大學指揮控制工程學院,江蘇南京 210001)

0 引言

軟件測試對于保證軟件質量至關重要。作為一項智力密集、知識密集型活動,軟件測試各階段都會產生大量測試文檔,這些文檔包含被測軟件特征、測試人員分析與決策等諸多信息,有效利用這些信息可幫助測試人員減少重復勞動,更加高效地確定測試需求、選擇測試方法、設計測試用例,避免重復錯誤發生[1]。然而,目前仍存在以下3類問題制約軟件測試知識復用:①數據異構:測試文檔的存儲有多種形式,包括結構化的關系數據庫、非結構化的Word 文本、Excel 表格等,需要使用不同的獲取手段,具有一定挑戰性;②描述差異:現實世界中同一個對象可能存在多個描述術語,知識融合存在困難,共指消解技術值得研究;③信息孤島:缺乏在機構與人員之間進行知識共享的機制和平臺,未形成整體測試知識,存在測試知識適配障礙、知識可共享環境差、低重用性問題。

本體是知識管理中一種常用的使能技術,包含共享性、概念化、明確性、形式化4 個方面含義[1-2]。利用本體建立軟件測試知識庫,確定軟件測試領域的規范術語集,提取并存儲異構測試文檔中的知識,有利于測試人員和計算機理解、處理、共享測試知識。

1 軟件測試知識復用

1.1 軟件測試知識

要進行軟件測試知識復用,首先應確定哪些信息可以轉化為可以幫助測試人員開展測試活動的知識。測試復用即識別和利用滿足測試充分性條件的歷史測試文檔內容,這也意味著應當對測試文檔內容、充分性判定規則建模。本文對軟件測試知識的定義為:

定義1:測試需求(Test Requirement)。測試需求即確定測試目標、測試內容和質量特性,確定測試充分性要求,提出測試活動應當遵循的基本原則和要求,確定測試資源和技術需求。使用Target 表示測試目標,Description 表示被測件描述,Phase 表示測試階段,Type 表示測試類型,Environment 表示測試環境,Method 表示測試方法,Evaluate 表示判斷軟件符合需求未發生失效的規則,那么測試需求可以表示為七元組,記為:

經驗表明,同一領域的測試項目往往遵循相同的行業規范、標準等,同一類型軟件的使用場景、功能結構、性能要求等存在很大相似性,因此具備了知識復用的基礎。

定義2:測試用例(Test Case)。測試用例是指測試人員根據軟件需求說明和程序內部結構,精心設計出的一組測試輸入、執行條件以及預期結果,用于核實軟件是否滿足某個特定需求。采用RequiredTrace 表示測試用例對應的軟件測試需求項,Precondition 表示執行測試用例的前提條件,InputData 表示輸入數據集合,OperationSequence 表示操作軟件的動作序列,ExceptResult 表示預期輸出結果,那么測試用例可以記為五元組:

測試用例設計是軟件測試的核心工作,對測試用例的復用是目前研究最多的方向,除了查找相似的測試用例直接獲取歷史經驗,還可以歸納形成測試設計模式。

定義3:問題報告(Bug Report)。問題報告是對未通過的測試用例進行記錄和總結,提出復現軟件缺陷的最短路徑,分析定位錯誤。采用CaseTrace 表示發現軟件缺陷的測試用例,ActualResult 表示實際輸出結果,BugCharacter 表示軟件缺陷的作用表征,BugLocation 表示造成缺陷的代碼或文檔,Influence 表示缺陷的影響范圍和程度,那么問題報告可以記為五元組:

問題報告中蘊含了測試人員對軟件缺陷的總結,可以幫助后續開發人員定位缺陷,對于修復問題具有重要意義。

測試文檔之間并不是孤立的,而是具有緊密聯系,單獨收集管理其中某一類可能會造成測試知識缺失,難以為基于知識的測試復用提供支撐。從軟件測試工作規律的角度,至少可以提出以下規則聯系:

(1)isDesignBy 關系。測試用例的設計依賴于測試需求分析,測試需求中描述了一個被測需求項,并指明了測試所需的軟件、硬件環境以及適宜使用的測試技術。因此,對于用例集TC 中的任一測試用例tc,存在一個測試需求項tr 屬于測試需求集TR,tc 與tr 具有isDesignBy 關系,可表達為:

(2)isFindBy 關系。軟件缺陷必然通過測試用例的執行而發現,即對于任一軟件缺陷項br,存在一個測試用例tc,該軟件缺陷br 由用例tc 的執行而被發現,可表達為:

(3)isDiffrent 關系、isNotSatisfy 關系。軟件缺陷的發現必然是由于實際結果與預期結果不同且不滿足判斷軟件正確的規則。因此,對于任一軟件缺陷br,存在一組測試執行的實際結果ar、測試用例的預期結果er 和測試判定規則ev。由ar 與er 具有isDiffrent 關系得出缺陷br 不滿足測試判定規則ev,br 和ev 具有isNotSatisfy 關系,可表達為:

1.2 軟件測試復用方法

現有的軟件測試復用研究一般存在兩個假設:①歷史項目中的測試需求、測試用例和問題報告等均是準確的,滿足測試正確性、充分性的要求;②當兩個項目存在某種相似性時,其測試需求、測試用例、潛在問題等也應當存在較大相似性。

基于上述假設,軟件測試復用意味著從歷史測試項目中獲取信息和知識支撐當前測試工作中的決策,例如測試環境和測試方法選擇、測試數據設計等,這涉及到一個獲取、存儲、分類、檢索、使用歷史知識的過程。按照相似性表達和計算方式的不同可將復用方法分為3 類,分別為基于主題詞檢索和特征的復用方法、基于需求模型匹配的復用方法、基于語義本體的復用方法。按照復用對象的不同可將其分為兩類,分別為對測試全過程文檔(如測試資產)的復用和對單一測試文檔(如測試用例)的復用,具體如表1 所示。

可以看出,軟件測試資產復用中存在3 個問題:①缺乏形式化歸納知識的有效機制,難以深入挖掘測試資產之間的復雜關系以及其中蘊含的經驗知識,從而形成抽象層次更高的測試模式、測試策略等;②難以集成和管理不同來源的信息,沒有解決測試文檔本身的模糊性和不精確性,相似性計算結果存在較大誤差,可能造成復用結果不準確的問題;③無法解決測試文檔的正確性驗證問題,由人編寫的測試文檔不可避免地會存在問題,復用錯誤的經驗可能降低測試項目的可靠性和工作效率,從項目中獲取新知識后應當進行推理驗證。因此,有必要在軟件測試中引入知識管理的方法(例如本體),建立一個結構良好的知識庫,在測試人員之間傳遞測試知識和經驗,利用知識支持測試設計、執行和解釋,并促進新知識的產生。為達到上述目的,目前亟需解決測試知識的表達方式、異構知識來源的獲取與集成以及基于推理的測試知識驗證問題。

Table 1 Methods of software reuse表1 軟件測試復用方法

1.3 知識庫系統

在知識庫系統中,產生式規則、語義網絡、框架、描述邏輯等均為使用知識表示的方式,其中描述邏輯由于其較強的表達能力和可判定性成為OWL、RDFS 等知識表示語言的理論基礎。描述邏輯表示的知識庫可分為TBox 與ABox 兩個部分,其中TBox 是有關概念和關系的蘊涵斷言集合,通過描述概念和關系的一般屬性,定義了特定領域的知識結構并包含一系列公理;ABox 是實例及實例斷言的集合,指明了領域中個體的屬性與關系[1]。從知識庫系統的組成結構來看,軟件測試知識庫包含5 個層次,分別為本體層、存儲層、檢索層、推理層、知識共享層[1-2],其中本體層是整個知識庫的基礎,其在測試文檔中識別概念、關系和公理,作為數據模型支持軟件測試領域的知識表示,對應TBox;存儲層提供語義數據的存儲和維護,存儲數據實例,可用的工具包括JenaTDB、Sesame 等,對應ABox;檢索層可通過邏輯符號組合不同條件以檢索知識,是知識庫發揮作用、提供更高級服務的基礎;推理層可基于已有的事實和推理規則計算邏輯結果,形成新的知識,作為補充或驗證知識庫的依據;知識共享層使軟件測試相關人員能在本體模型的支持下為軟件測試文檔添加語義標注,將其轉化為計算機可理解的三元組語義數據。

基于領域本體的軟件測試知識庫定義了測試領域中的共享概念[13],促進測試知識集成、存儲與共享,使測試人員能夠學習測試經驗,復用測試技術和測試用例。為支撐軟件測試知識復用,軟件測試知識庫應當至少包含本體層、存儲層和檢索層,推理層和知識共享層可用于支持擴展新的知識。在本體的支持下,軟件測試知識庫可以進行系統化、形式化的軟件測試工作,與完全依靠經驗的傳統測試比較,其更有利于測試人員之間合作,更具有透明性和可重復性[14]。

2 軟件測試知識庫應用

構建軟件測試本體和知識庫為測試組織與人員之間共享知識奠定了基礎,是實現軟件測試復用等智能測試應用的前提。將軟件領域知識應用于軟件測試全生命周期中,可最大限度地利用軟件測試機構積累的歷史知識。

2.1 基于語義的測試文檔管理

與其他軟件過程文檔類似,測試文檔用于支持測試過程的相關利益者對測試項目進行交流和理解,這些文檔本身是為人類開發的,計算機難以理解和處理。由于測試文檔數據的稀疏性,相關聯的信息往往分布在多個文檔中,即使使用項目管理工具,訪問和檢索文檔內容依然需要大量人工干預,這便造成了文檔分析的低效性。語義網通過本體對網頁內容的元數據提供注釋,解決網絡中的語義檢索問題。借鑒該思路,利用本體將文檔中的文本映射到概念、關系和實例,向文檔中添加注釋以提高對其中數據的可理解性和可訪問性[15],使文檔內容能夠被計算機理解和操作,進而提供復雜搜索、文檔互操作等功能。

手動進行注釋消耗大量時間且容易出錯,因此一般使用注釋工具對軟件測試機構維護的文檔模板進行注釋。基于軟件測試領域本體,為文檔管理系統建立多層文檔模型[16],分為通用層和特定領域層,其中通用層依賴于軟件測試文檔標準,如GJB438B、ISO29119、GB/T15532 等,用于表示軟件測試文檔共有的屬性、結構等,為添加注釋提供指導;特定領域層基于不同專業領域,對不同應用場景進行編輯,進而表示雷達系統、信息系統、通信系統等不同軟件應用領域的專有概念、屬性、關系等,作為語義文檔的注釋標簽。語義測試文檔的產生和使用分為3 個階段:①測試人員將被注釋的文檔模型實例化,產生語義標注的測試文檔,存儲在語義文檔庫中;②從語義測試文檔中抽取語義內容和版本信息,存儲于數據存儲庫中;③提供一個對外的應用接口,支持測試人員、其他系統用戶進行數據追蹤和基于本體的搜索。

語義測試文檔實際上就是基于測試領域的本體模型開發帶有元數據標簽的測試文檔模板,這些標簽將文檔定義為一個操作單元進行識別、結構化、信息交互等操作,有效控制和管理軟件測試文檔的生命周期。

2.2 基于知識的測試用例復用

在測試用例設計和生成過程中,基于領域本體的測試知識庫可以有3 種應用方式:①一種基本的測試用例復用[11,17]方式是建立基于本體的測試用例知識庫,依據預定義的覆蓋選擇標準和軟件度量模型計算被測目標的概念相似度,從知識庫中推薦測試用例。這些相似測試用例數據顯示在模板中,測試人員根據需要選擇其中一個或多個并修改部分數據,根據選擇和修正結果動態更新推薦算法的參數,新的測試用例在執行后也加入測試用例知識庫中。②從軟件需求本體中提取測試數據形成測試用例[18]。軟件需求是軟件測試的基礎,由于人類交流的信息偏差和對現實世界的認知偏差,復雜軟件需求存在一定模糊性。基于本體的需求建模技術通過描述系統在特定條件下的行為活動、行為約束和行為標準,能夠定義軟件功能需求、軟件特性和非功能需求,被廣泛用于減少理解需求的復雜性和模糊性。因此,將本體應用于軟件測試領域,建立軟件需求與軟件測試的聯系,可以降低軟件測試的復雜性和模糊性。測試用例與軟件需求的前置條件、后置條件、輸出和約束類相關聯,通過約束求解可以為每個測試用例生成前置條件和后置條件。前置、后置條件用于求解所需的輸入參數和測試數據,軟件輸出與測試用例執行后的預期結果相關聯,軟件需求約束指示了執行測試用例所需的條件或動作序列。③通過本體描述軟件系統環境模型,特別是系統與外界交互的場景,如車輛行駛場景、網絡攻擊環境、編譯器解析等系統行為。基于軟件系統環境的概念、關系以及系統與環境的交互行為提取潛在的測試輸入數據字段及其值域范圍,通過組合測試方法生成多組對應不同環境條件的測試數據集,再根據本體中的約束消除多余組合。上述方法可以為運行在復雜環境中的軟件系統生成測試用例,但不提供預期輸出[19-20],需要另外提供測試預言判斷測試執行結果成功或失敗。

3 挑戰與展望

3.1 復雜知識表示

與大型通用知識庫DBpedia、Wikidata 等相比,軟件測試領域中涉及的知識類型更復雜,不僅需要表示軟件對象、測試環境、測試產品等靜態知識對象,還需要表示過程性的動態知識,如測試對象的復雜度、邏輯過程和目標質量特性等指標對測試方法產生的影響。靜態的知識可以使用框架對其基本概念和關系進行較為全面的描述,而過程性知識適合使用產生式表達。基于描述邏輯的本體能夠表達的知識范圍相對較廣,但開發本體比較困難。軟件測試知識庫并不能單獨在軟件測試過程中發揮作用,而是作為測試過程管理工具的一部分存在。通過一個得到公認且表現力足夠強的本體描述測試知識的不同細節,可使測試人員在產生、獲取和共享測試知識的過程中沒有額外負擔。目前的測試知識庫研究大多關注建立不同形式的本體,并以本體實例的形式存儲測試用例、軟件需求等相關文檔信息,現有的軟件測試參考本體還沒有達到解決這一需求的水平。缺少有效的知識表達方式對軟件測試知識的轉化造成了嚴重阻礙,使軟件測試組織獲得的知識和經驗難以被復用。

三元組形式的知識表示方法基于離散化的符號表達知識,可有效將數據結構化,應用廣泛。然而,網絡狀離散化的符號不能進行語義計算,基于圖網絡的知識推理算法存在計算復雜度高的問題,對下游應用并不友好。此外,當出現數據長尾分布時,長尾部分罕見實體的推理和計算往往準確率極低。近年來快速發展的深度學習等表示學習技術可以將軟件測試實體中的語義信息表示為稠密低維的實數值向量,從而在低緯度空間中計算實體關系中的復雜語義關聯,對于軟件測試知識庫的構建有重要意義。

3.2 開放域中的知識抽取

軟件測試知識庫的構建需要從結構化數據庫、非結構化文本、半結構化表格等中提取實體、關系、屬性等信息。軟件測試知識的存在形式多種多樣,數據異構現象較為突出,數據質量良莠不齊且對人工標注的專業性要求高,缺少高質量的標注數據是構建軟件測試知識庫的一大難題。在常用知識抽取方法中,基于規則和詞典的知識需要高質量的軟件測試領域知識詞典,且主要針對單一場景和單一數據源。一種解決方案是在開發軟件測試文檔的過程中引入樣板,使用元數據標注的語義文檔開發測試文檔并將其作為主要數據來源,以提高數據質量;另一種解決方案是通過弱監督學習減少對標記數據的依賴,使用大量未標注數據提升模型性能,主要包括遠程監督和Bootstrapping兩種方法。遠程監督學習的基本假設是如果兩個實體在知識庫中存在某種關系,那么非結構文本中包含這兩個實體的句子也應當表達了這種關系,可通過將知識庫與非結構文本對齊的方式自動構建大量訓練數據。遠程監督訓練能有效減少人工標注的工作量,但也會引入大量噪聲,導致語義漂移現象。Bootstrapping 方法利用少量實例作為初始種子集合,在種子集合上學習實體關系抽取的模板,再對模板抽取結果打分并擴展種子集合,通過不斷迭代抽取大量實例。該方法構建成本低且具備發現新關系的能力,但也存在對初始種子敏感、語義漂移、準確率低等問題。

4 結語

軟件測試活動中產生了大量知識,獲取、表示、共享并復用這些知識是一種提高測試工作效率、減少測試人員工作量的有效方法。然而以往的軟件測試復用研究大多專注于對歷史數據的管理和檢索方面,對蘊含于原始數據中的測試知識研究不足。此外,這些研究通常基于一個隱含的假設,即能夠完整理解和表達被復用組件及其上下文,但由于軟件測試中的不確定性,這樣的假設往往是失效的,因此傳統的軟件測試復用具有一定局限性。隨著人工智能和開放數據的快速發展,軟件測試復用出現了向更高語義抽象層次發展的趨勢,為在概念維度處理歷史知識表示的模糊性以及開發更智能的檢索技術提供了新思路。

猜你喜歡
語義
為什么字看久了就不認識了
語言與語義
“社會”一詞的語義流動與新陳代謝
“上”與“下”語義的不對稱性及其認知闡釋
現代語文(2016年21期)2016-05-25 13:13:44
“吃+NP”的語義生成機制研究
長江學術(2016年4期)2016-03-11 15:11:31
“V+了+NP1+NP2”中V的語義指向簡談
認知范疇模糊與語義模糊
“V+X+算+X”構式的語義功能及語義網絡——兼及與“V+X+是+X”構式的轉換
語言與翻譯(2014年2期)2014-07-12 15:49:25
“熊孩子”語義新探
語文知識(2014年2期)2014-02-28 21:59:18
“深+N季”組配的認知語義分析
當代修辭學(2011年6期)2011-01-29 02:49:50
主站蜘蛛池模板: 国产成a人片在线播放| 成人福利一区二区视频在线| 色噜噜在线观看| 国产三级a| 日韩精品欧美国产在线| 精品伊人久久久香线蕉| 久久亚洲中文字幕精品一区| 亚洲欧美日韩中文字幕在线| 国产精品欧美亚洲韩国日本不卡| 国产精品久久精品| v天堂中文在线| 无码电影在线观看| 露脸真实国语乱在线观看| 亚洲精品无码日韩国产不卡| 日本高清成本人视频一区| 成人综合久久综合| 国产一区二区三区夜色| 欧美精品色视频| 最新加勒比隔壁人妻| 精品国产美女福到在线直播| 亚洲男人天堂网址| 毛片免费试看| 亚洲国产天堂久久综合| 久久香蕉国产线| 国产在线拍偷自揄拍精品| 99在线观看精品视频| 国产精品亚洲а∨天堂免下载| 亚洲综合天堂网| 一本一道波多野结衣一区二区 | 久久久噜噜噜| 国产成人精品优优av| 午夜日b视频| 欧美成人精品高清在线下载| 色九九视频| 亚洲成人播放| 久久精品aⅴ无码中文字幕| 久久国产黑丝袜视频| 欧美无遮挡国产欧美另类| 国产午夜福利亚洲第一| 中文字幕无码中文字幕有码在线| 亚洲人成日本在线观看| 成人免费网站久久久| 四虎影视无码永久免费观看| 2020国产精品视频| 亚洲欧洲日本在线| 日本国产精品一区久久久| 国产成年无码AⅤ片在线| 欧类av怡春院| 五月婷婷激情四射| 高清无码不卡视频| 国产va在线观看免费| 国产白浆在线| 国内精品自在欧美一区| 91成人免费观看在线观看| 亚洲乱亚洲乱妇24p| 毛片在线播放网址| 天天综合网色中文字幕| 巨熟乳波霸若妻中文观看免费| 日本一区二区三区精品视频| 九色视频线上播放| 精品一区二区三区水蜜桃| a免费毛片在线播放| 亚洲成人在线网| 青青青视频91在线 | 91年精品国产福利线观看久久| 亚瑟天堂久久一区二区影院| 亚洲中文字幕97久久精品少妇| 成人午夜久久| 伊人成人在线| 亚洲日韩精品综合在线一区二区 | www.99精品视频在线播放| 久久这里只有精品66| 四虎成人精品| 欧美一区二区三区不卡免费| 成人va亚洲va欧美天堂| 国产成人无码综合亚洲日韩不卡| 精品一区二区三区中文字幕| 久久国产黑丝袜视频| 亚洲成人动漫在线观看| 99re这里只有国产中文精品国产精品 | 午夜啪啪网| 国产91导航|