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

基于三層知識模型的軟件缺陷管理系統

2020-02-27 12:33:54柴海燕王凱風謝立鵬
計算機測量與控制 2020年1期
關鍵詞:規則策略

柴海燕,丁 霞,王凱風,謝立鵬

(京東方科技集團股份有限公司,北京 100176)

0 引言

通過在軟件上線前對軟件進行測試發現軟件缺陷并進行修正來提升軟件質量,軟件測試直接關系到軟件質量。軟件測試研究的熱點領域有測試用例自動生成、測試用例約簡、回歸測試、缺陷分析等[1-4]。測試用例的約簡是一個NP(non-deterministic polynomial)問題,各種算法基于各種均衡搜索最重要的測試用例,然后用減少測試用例數量的方法提升軟件測試效率。這在理論上有一定價值,但在實際工作中并不接受通過犧牲缺陷檢出率而換來的工作時間的減少,因為任何一個軟件缺陷都會對軟件所在的系統造成致命的影響。缺陷分析研究領域基于歷史缺陷數據進行分析并生成測試報告指導測試工作,比單純減少測試用例數量更有價值。但目前的缺陷分析還是基于數據層面分析與預測,對軟件測試工作的價值貢獻受到局限。通過把知識庫的結構引入到軟件缺陷管理中,把缺陷分析從數據管理層面提升為知識管理層面,通過機器學習人工智能的方式提取規則知識,并生成能指導軟件測試工作的策略報告,有助于從根本上提升軟件測試工作水平和效率。

1 軟件缺陷分析

在ISO 9000中對軟件缺陷進行了定義,軟件缺陷是指“未滿足與預期或者規定用途有關的要求”。無論開發人員經驗多么豐富都不能保證所設計的軟件中沒有缺陷。軟件缺陷伴隨著軟件的整個生命周期,當觸發條件滿足時就會觸發缺陷造成難以估量的損失。軟件測試工作就是在軟件上線之前發現軟件中缺陷。

軟件缺陷分析通過對軟件開發測試過程產生各種缺陷進行追蹤分析。借助電子化輔助的方法對軟件缺陷進行記錄、分類整理、統計分析,可以提升這個缺陷分析的效率[5-10]。但目前缺陷分析僅僅限于對缺陷進行統計度量。缺陷的分類方法有很多,IEEE組織提出了的軟件異常分類法,IBM公司提出了正交缺陷分類法,我國軍方相應標準中也對軟件缺陷進行了定義分類,例如《GJB 2786A 軍用軟件開發通用要求》中關于軟件錯誤的分類。

2 知識庫與機器學習

知識庫是知識型人工智能的核心。知識庫中的知識分為三層:事實知識層、中間層、策略層。其中中間層是基于事實知識的規則過程,策略層是基于中間層知識的規則。

人工智能不能只重視過程方法,說明性方法與經驗同樣重要。缺陷分析有很多相關研究,這些研究大多從算法優化角度優化缺陷分析工作,這種研究方向過于局限。把知識庫引入到軟件缺陷管理中,可以把缺陷分析管理從缺陷數據管理提升對軟件開發測試全流程知識管理。

機器學習是一門人工智能的科學,基于數據和算法學習經驗提升算法性能。機器學習采用的學習策略分為4種:機器學習、傳授學習、類比學習、通過示例學習。通過知識庫、機器學習算法把傳統的缺陷管理系統升級為軟件測試專家系統。

3 缺陷管理系統功能結構

在基于知識庫數據挖掘的軟件缺陷管理系統中通過知識庫架構對缺陷進行管理,用三層知識架構把缺陷管理從數據層面提升到知識層面。本文設計的缺陷管理系統從4個方面進行軟件測試缺陷管理,缺陷數據管理、缺陷規則知識挖掘、缺陷預測、缺陷策略知識配置。其中缺陷數據管理對應知識庫的事實知識層,缺陷規則知識挖掘對應知識庫的中間層,缺陷預測與策略配置對應知識庫的策略知識層。

事實知識層是知識庫的基礎層,事實知識層的知識來源于各周邊交互系統或相關人員。事實知識層所采集的數據貫穿軟件開發測試工作的全流程,事實知識層所采集的數據質量和數量決定這系統的可用性和有效性。

軟件開發是一項系統工程,造成軟件缺陷的因素很多,涉及軟件開發工程的每個環節。從軟件本身角度看,軟件功能復雜度、代碼量、軟件架構等因素與軟件缺陷都相關。從軟件開發過程來看,開發過程中的需求溝通、文檔質量、變更過程版本記錄都會影響軟件中缺陷的多少。從開發項目管理角度來看,項目時間計劃安排不合理、PM(project manager)人員過程管理不科學、軟件開發人員的經驗缺乏、開發人員流動大都可能引發軟件缺陷。從軟件開發方公司層面角度來看,軟件開發公司規模、公司資質、項目是夠外包等都與軟件質量相關。對于第三方測試公司來講,無法控制軟件開發過程,但盡可能多的獲取軟件開發相關信息數據了解軟件開發情況對軟件測試工作很有意義。可以通過客戶關系管理系統對相關數據進行收集管理。

同樣軟件測試也是一項系統工程,軟件開發工程決定了軟件缺陷的數量。軟件測試工作決定了檢測出的軟件缺陷數量。未檢測出的軟件缺陷會造成質量問題,帶來各種隱患。從軟件測試過程來看,測試人員、測試文檔、測試用例設計、缺陷歷史數據的利用等因素都會與檢測出的缺陷數量相關同樣直接關乎軟件質量。

軟件開發與軟件測試過程中積累了很多與軟件缺陷相關的數據,有效管理利用這些海量數據能提升軟件測試工作的效率。軟件缺陷管理要貫穿整個軟件開發與軟件測試過程,所以缺陷數據采集也需要貫穿軟件開發與測試全流程。

事實知識層面通過查詢接口已經能支撐測試人員分享獲取軟件測試相關知識。但事實知識層數據量很大,只適合查詢形式的場景。基于事實知識層通過機器學習算法進行數據挖掘形成規則知識層的規則知識庫。事實知識層面的知識只是在描述事實,而規則層知識則是對事實知識的智能抽取和提煉形成的經驗規則。

基于規則知識庫中的知識對軟件進行預測并配置相應的策略就是形成了對軟件測試工作有價值的策略層知識。

知識庫三層的知識對測試人員價值逐層遞增,事實知識層只能給相關人員提供事實知識的描述。規則知識層能提供通過機器學習算法在事實知識的基礎上總結出的規則經驗。而策略知識層可以對一個待測的軟件項目進行缺陷預測并提供相應的測試策略報告來給測試相關人員提出測試相關的工作建議。

例如,事實知識記錄了軟件開發公司、開發人員、模塊分支數、模塊代碼行數、缺陷信息等數據知識,通過機器學習算法在這些數據的基礎上進行抽取可以得到一個規則知識,“A公司張某某開發的代碼行數超過900行分支路徑大于10的程序模塊會大概率出現缺陷”。通過策略知識層可以對一個待測的軟件項目輸出缺陷預測報告以及測試用例設計指導報告。

基于知識庫數據挖掘的軟件缺陷管理系統核心功能實現包括8個模塊:事實知識數據庫、數據預處理模塊、機器學習算法模塊、規則抽取模塊、規則知識庫、缺陷預測模塊、策略知識庫、賬號權限管理與查詢交互子系統。

事實知識數據庫是缺陷預測管理的基礎,事實知識數據庫存儲著軟件測試工作中產生的與軟件缺陷相關的數據。事實知識數據倉庫中的數據來源于幾個方面:測試人員、業務人員、管理人員的輸入以及從相關系統進行采集。事實知識數據包括:缺陷歷史數據、項目管理數據、客戶關系管理數據等幾個方面的數據。缺陷歷史數據來源缺陷追蹤系統,項目管理數據來源于測試管理人員的錄入以及開發方輸入。客戶數據來源于客戶關系管理系統。在專業軟件測試公司會有很多客戶,相關客戶關系管理系統中記錄著客戶相關信息。

數據預處理模塊基于事實知識數據庫中的數據進行ETL(extract-transform-load)處理形成基礎事實數據表。基礎事實數據表有兩個類型的字段組成,缺陷標識字段以及測試屬性字段。缺陷標識字段標識缺陷類型,測試屬性數據是與測試用例、測試缺陷相關的維度屬性。

機器學習模塊把預處理模塊輸出的基礎事實數據表作為輸入,經過機器學習算法輸出規則樹。規則抽取模塊根據缺陷管理目標抽取缺陷規則,形成規則知識。規則知識庫存儲規則知識。軟件預測模塊基于規則知識庫中的規則對軟件進行預測,策略知識庫對預測結果配置相應的缺陷管理策略。

圖1 系統功能模塊圖

4 缺陷管理主要流程

4.1 基于知識共享的測試交互流程

缺陷管理系統基于知識庫進行設計,知識庫本質是進行知識的加工與分享。這種共享不僅是測試人員之間、測試人員與項目管理人員,而且是測試人員、測試項目管理人員與軟件開發方的知識共享。所以基于此系統進行缺陷管理其實是一個知識共享的過程。基于知識共享的測試流程涉及的實體包括:軟件開發方、缺陷管理系統、項目管理人員、測試人員。

圖2 基于知識共享的測試交互流程圖

開發方提供相關數據到缺陷管理系統。相關管理人員向缺陷管理系統輸入項目相關數據、配置相應策略。管理系統給測試人員提供知識查詢、知識報告服務。管理系統給開發方提供缺陷相關信息以及改進建議,將測試結果以及缺陷建議報告反饋給開發方。

4.2 規則知識挖掘流程

從事實知識到規則知識需要經過機器學習算法進行數據挖掘。數據挖掘的流程包括數據預處理、機器學習、規則抽取、規則評估、規則入庫等5個步驟。

圖3 規則知識挖掘流程

第一步:數據預處理就是把事實知識數據庫的數據進行加工處理成機器學習算法所要求的數據輸入格式。事實知識數據庫的數據包括測試歷史數據、缺陷歷史數據(Software Defect Manegement Data)、項目管理數據(project management data,PMD)、客戶關系管理數據(customer relationship management data,CRMD)。測試歷史數據主要包括測試用例、測試人員,缺陷歷史數據記錄著軟件測試工作測試出的缺陷相關信息,包括被測軟件項目信息、測試人員信息、測試用例數據、缺陷相關數據。項目管理數據包括項目描述數據、開發人員數據、開發過程數據、需求文檔、設計規范文檔、源代碼數據。客戶關系管理數據,軟件開發方公司相關數據。這些數據處理成由缺陷標識字段與屬性字段組成的數據表。

數據表按照8:2的比例把數據表記錄分為訓練數據集合和驗證數據集合。訓練數據集合用于訓練生成規則,驗證數據集合用于驗證規則的性能。

第二步:基于前面步驟生成的缺陷標識、屬性字段訓練數據表進行數據挖掘形成規則樹。數據挖掘的過程由機器學習算法完成。缺陷歷史數據中包括軟件缺陷情況以及缺陷類型,所以可以用有監督機器學習模型進行數據訓練,找到缺陷類別與屬性數據之間的規則。缺陷預測問題可以抽象成分類問題。這里采用決策樹算法對數據進行訓練學習生成規則樹。

第三步:在規則樹的基礎上進行規則抽取。規則樹每個根節點以及中間節點對應個屬性,葉子節點代表缺陷類別。每一條從規則樹根節點到葉子節點的路徑抽取成一條規則。遍歷每條從根節點到葉子節點的數據路徑就完成了規則抽取過程。

第四步:對抽取的規則在驗證數據集合上進行驗證,得到精準度、覆蓋度等指標。根據設定的指標閾值對指標進行取舍,保留符合指標要求的規則。

第五步:前面符合要求規則入到知識庫的規則庫,入庫后這些規則就形成了規則知識層中的知識。

4.3 缺陷預測與策略報告生成流程

事實規則知識經過規則知識挖掘流程的處理得到規則知識,基于這些規則知識可以進行缺陷的預測輸出缺陷預測報告。缺陷預測不是最終目的,對預測到缺陷采取相應的應對措施才能發揮出規則知識的價值。缺陷預測與策略生成由策略知識層控制。策略知識層的輸入為軟件項目資料數據,輸出為缺陷預測報告以及策略生成報告。

圖4 缺陷預測與策略報告生成流程圖

缺陷預測與策略報告生成流程主要包括項目數據關聯、

規則匹配、生成缺陷報告、調取策略規則、生成策略報告五個步驟。

第一步:一個軟件開發完后交付給測試公司或者部門進行測試,軟件項目相關資料數據存儲在缺陷管理系統中。首先要做的就是對項目數據進行數據關聯。所謂數據關聯就是 把待測項目數據與缺陷管理系統中事實知識庫中數據進行ID(identification)關聯。匹配項目對應的公司客戶信息、缺陷歷史信息、測試歷史信息等屬性數據。

第二步:對關聯后的項目屬性數據以及規則知識層的規則進行匹配,如果有匹配到規則那么就可以進行下一步。如果沒有匹配到規則提示這些數據作為訓練數據入庫用戶規則的訓練與提取。

第三步:根據規則知識層的規則知識對軟件項目進行缺陷預測并生成缺陷報告。缺陷報告的內容為對軟件中具體模塊缺陷概率以及缺陷類型進行預測分析。

第四步:缺陷報告只是對模塊的風險進行了預測,還需進一步生成對應每個模塊風險采取的措施,也就是策略報告。策略報告的生成基于策略規則。調取策略規則就是為每種缺陷類型匹配相應的策略規則。策略規則基于測試項目管理人員的配置。如果積累足夠的數據也可以通過機器學習生成策略規則。

第五步:基于匹配的策略規則生成策略報告。策略報告的內容為對應每個預測到缺陷采取的策略,指導測試用例生成密度以及測試用戶設計方案等測試動作。

5 結束語

基于知識庫的軟件缺陷管理系統用知識庫三層架構對軟件開發測試過程中與軟件缺陷相關的數據進行知識化管理,通過對事實知識進行挖掘形成規則知識,配置相關策略形成策略知識,提升缺陷管理的水平和效率。本文主要設計了系統部的功能架構與主要流程,后面工作還將對規則知識的挖掘算法進行研究,可以從指標設計、模型優化等方面對挖掘算法進行提升。

猜你喜歡
規則策略
撐竿跳規則的制定
數獨的規則和演變
基于“選—練—評”一體化的二輪復習策略
求初相φ的常見策略
例談未知角三角函數值的求解策略
我說你做講策略
規則的正確打開方式
幸福(2018年33期)2018-12-05 05:22:42
高中數學復習的具體策略
數學大世界(2018年1期)2018-04-12 05:39:14
讓規則不規則
Coco薇(2017年11期)2018-01-03 20:59:57
TPP反腐敗規則對我國的啟示
主站蜘蛛池模板: 欧美激情福利| 2022国产91精品久久久久久| 亚洲综合18p| 综合久久五月天| 91亚洲影院| 国产一区二区丝袜高跟鞋| 99久久亚洲精品影院| 99久久国产精品无码| 亚洲综合片| 国产小视频网站| 国产成年女人特黄特色毛片免 | 天天做天天爱天天爽综合区| 一本久道久综合久久鬼色| 欧美午夜小视频| 91无码人妻精品一区| 国产香蕉国产精品偷在线观看| 欧美成人精品在线| 亚洲国产亚洲综合在线尤物| 久久国产精品波多野结衣| 欧美亚洲日韩中文| 日韩国产综合精选| A级毛片高清免费视频就| 免费全部高H视频无码无遮掩| 精品超清无码视频在线观看| 国产97视频在线| 91亚洲国产视频| 日韩国产无码一区| 国产高颜值露脸在线观看| 国产AV无码专区亚洲A∨毛片| 国产精品v欧美| 黄色在线不卡| 国产一区在线视频观看| 国产成人无码久久久久毛片| 国产理论一区| 亚洲欧美人成人让影院| 99资源在线| 欧美成人一级| 99re在线观看视频| 999国内精品视频免费| 亚洲黄色视频在线观看一区| 欧美一级在线看| 精品国产一区91在线| 18禁高潮出水呻吟娇喘蜜芽| 日韩欧美国产综合| 国产一区二区人大臿蕉香蕉| 亚洲福利片无码最新在线播放 | 91国内在线视频| 亚洲美女一区二区三区| 亚洲无码91视频| 日韩精品一区二区三区中文无码| 亚洲一区无码在线| 免费一级无码在线网站| 国产亚洲日韩av在线| 国产视频 第一页| 国产精品永久久久久| 狠狠干综合| 国产成人亚洲欧美激情| 老司国产精品视频| 尤物国产在线| 久久国产乱子伦视频无卡顿| 免费在线色| 日韩123欧美字幕| 欧美无专区| 色综合天天综合| 国产精欧美一区二区三区| 国产va欧美va在线观看| 国产激情在线视频| AV不卡在线永久免费观看| 三级国产在线观看| 国产99视频免费精品是看6| 中文字幕 91| 伊人色综合久久天天| 亚洲精品在线影院| a天堂视频| 91极品美女高潮叫床在线观看| 国产精品亚洲日韩AⅤ在线观看| www.国产福利| 久久这里只有精品8| 亚洲色图在线观看| 一个色综合久久| 亚洲中文字幕国产av| 一本大道无码高清|