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

軟件可測性和測試用例效率的研究綜述

2023-08-11 07:16:08
現(xiàn)代計算機 2023年11期
關(guān)鍵詞:有效性質(zhì)量模型

王 東

(廣東白云學院大數(shù)據(jù)與計算機學院, 廣州 510450)

0 引言

在軟件工程領(lǐng)域中,軟件質(zhì)量實際上是一個多維的概念。其中,軟件可測試性是軟件質(zhì)量保證體系中的重要內(nèi)容,它可直接反映出軟件測試工作的復雜性和工作量。在軟件設(shè)計和開發(fā)過程中,增強可測性亦可增加軟件測試過程中發(fā)現(xiàn)缺陷的概率。ISO/IEC 9126-1 標準定義的可測性是指:對修改后的軟件進行測試的能力。ISO/IEC 25010:2011 系統(tǒng)和軟件工程標準定義的系統(tǒng)和軟件質(zhì)量需求和評估標準(SQuaRE)中的軟件系統(tǒng)質(zhì)量模型將可測性作為可維護性的一部分。

可測試性從另一方面也可反映出是對軟件進行測試工作的便利程度,其本身就是一種質(zhì)量屬性。測試是軟件開發(fā)過程中評估軟件質(zhì)量的活動,需要專業(yè)的方法和工具。測試工作包括方方面面,主要有:功能、性能、安全性、易用性等測試。目前,自動化測試雖能提高效率、降低成本,但在相當長的一段時間內(nèi)尚不能實現(xiàn)對人工手動測試的替代。

當一個軟件具有較高可測性時,在相同的測試強度下,軟件測試人員更容易發(fā)現(xiàn)軟件缺陷,也可以說發(fā)現(xiàn)更多軟件缺陷;而當軟件的可測性較低時,軟件系統(tǒng)中的缺陷將不易被發(fā)現(xiàn),測試工作量也將隨之上升。由此可見,軟件的可測性將影響軟件測試成本,進而影響軟件質(zhì)量。

影響可測性的五個主要因素有:可理解性、可觀察性、可控性、可追溯性和對測試的支持能力。本文所述的對軟件可測性和測試用例有效性的研究問題為:靜態(tài)代碼和測試度量對測試用例有效性和可測性的影響。

1 軟件可測性

可測試性是軟件質(zhì)量模型的重要內(nèi)容之一,對可測試性的度量工作因影響因素較多而具有較高難度。低可測試性的軟件系統(tǒng)具有較低的可靠度,這與測試工作的嚴密性無關(guān),而且低可測性的軟件系統(tǒng)往往在軟件開發(fā)后期的維護和更新成本更高,更難控制。軟件系統(tǒng)的可測試性關(guān)系到軟件的可靠性、測試效率、測試成本和工作量。對于軟件開發(fā)而言,測試的成本占整個軟件開發(fā)成本的50%甚至更高,因此改進可測試性對提高測試效率和降低整體開發(fā)成本有著重大影響。理想狀態(tài)下,測試人員在設(shè)計和執(zhí)行測試用例所花費的時間應(yīng)該占到全部開發(fā)時間的25%~50%之間。當前熱門道德軟件開發(fā)方法,如:敏捷方法、極限編程和Scrum迭代式增量軟件開發(fā)方法等,均體現(xiàn)出了測試工作的重要性。以測試驅(qū)動開發(fā)(TDD)為例,為確保軟件系統(tǒng)存諸單元的可靠性,TDD 在編寫代碼前已由開發(fā)人員或測試人員完成設(shè)計和開發(fā)測試的工作[1]。單元測試是提高軟件質(zhì)量的主要方式,可開發(fā)過程的早期階段發(fā)現(xiàn)和低成本修復bug。在實際生產(chǎn)環(huán)境中,測試代碼量與軟件開發(fā)代碼量的比例約為1∶1。

總之,提高軟件可測試性對提升軟件系統(tǒng)的質(zhì)量有著積極作用。但是,對軟件可測試性的度量和評估工作具有一定的復雜性。

1.1 可測試性的定義

IEEE 定義的軟件可測試性(software testability)是指一個軟件工件(軟件系統(tǒng)、模組、需求文件或設(shè)計文件等)在一個給定的測試環(huán)境下,可支援測試的程度。ISO標準將可測試性描述為“與驗證軟件產(chǎn)品所需工作有關(guān)的軟件屬性”。因此,ISO從測試軟件產(chǎn)品所需工作的角度出發(fā)定義了可測試性,而IEEE 從測試標準的角度定義了可測試性[2]。

McCall 質(zhì)量模型是第一個定義軟件質(zhì)量的質(zhì)量模型。McCall 模型的主要內(nèi)容包括:便捷性、儀器和模塊的可測試性,并將其定義為驗證需求的能力。Boehm 改進了McCall 模型,將可測試性定義為驗證需求是否滿足實現(xiàn)的軟件的便捷性。ISO9126質(zhì)量模型定義可測試性為驗證軟件產(chǎn)品所需的必要工作。

1.2 軟件度量和可測量性

在軟件工程領(lǐng)域,軟件測量的主要目標是幫助軟件工程師和項目管理者做出針對軟件開發(fā)過程的準確的預測和決策,通過監(jiān)控項目進展并適時介入質(zhì)量控制機制判斷軟件項目及其各組件的功能和性能是否符合需求。軟件度量是指量化和度量軟件特性的指標參數(shù),軟件指標是軟件質(zhì)量的重要組成部分,在分析和提高軟件質(zhì)量方面發(fā)揮了重要作用。此外,軟件指標可用于驗證軟件質(zhì)量的要求是否被滿足[3]。

軟件測試中的軟件度量包括:產(chǎn)品、過程和項目度量。而過程和產(chǎn)品度量與軟件質(zhì)量關(guān)系密切。過程度量標準反映了開發(fā)過程質(zhì)量,而最終產(chǎn)品度量標準反映了軟件產(chǎn)品的特征。根據(jù)產(chǎn)品度量系統(tǒng)的不同方面,產(chǎn)品度量可以進一步分為靜態(tài)度量和動態(tài)度量。靜態(tài)度量在軟件非運行狀態(tài)下進行度量,是對軟件的內(nèi)部質(zhì)量的描述,大多數(shù)現(xiàn)有的質(zhì)量度量以靜態(tài)形式出現(xiàn),如代碼行度量和開發(fā)復雜度度量。動態(tài)度量只能在運行時對軟件的屬性進行度量,是對軟件運行狀態(tài)的描述。

2 研究方法

本研究采用的可測試性數(shù)據(jù)集源自1186 個大大小小的、不同類別的Java 開源項目[3-6]。數(shù)據(jù)包含多個不同類的度量(繼承、大小、復雜性、內(nèi)聚性、封裝性和耦合性等)、6 個測試工作量度量和3 個測試質(zhì)量度量。在文獻[3-6]中提到了收集數(shù)據(jù)信息和分析計算指標的工具,本文采用了其中介紹的方法。表1 為本研究所涉及的軟件度量類別。

表1 軟件度量分類列表

本研究所選實驗數(shù)據(jù)集源自1186 個Java 開源項目的9861 個實例(類)[4]。考慮到本實驗的研究重點是測試有效性問題,本研究將突變分值一項作為研究重點。突變分值通過組合測試百分比計算被消除的突變體。除了通過突變分值來評估測試執(zhí)行中發(fā)現(xiàn)缺陷的能力外,這些分值還表示了不同測試活動發(fā)現(xiàn)缺陷的能力的差異。突變分值范圍為0~1。

本研究根據(jù)突變分值將數(shù)據(jù)結(jié)合的測試分為有效和無效兩類,利用突變分值四分位數(shù)將第1 個四分位數(shù)內(nèi)的測試分配到非四分位數(shù)集,而第4 個四分位數(shù)內(nèi)的測試被分配到有效集。任何落在這兩個四分位數(shù)之間的測試用例都將被丟棄。基于響應(yīng)離散化噪聲的背離分配給特定類的數(shù)據(jù)點。由于本研究重點在于探索有效測試特征和無效測試特征,因此,為了突出效果的差異,實驗去掉了具有平均有效值的測試類。

在計算該數(shù)據(jù)集的四分位數(shù)后,研究發(fā)現(xiàn)突變分數(shù)為1 的測試用例被認為是第4 個四分位數(shù)的一部分,0.4 及以下的測試用例被認為是第1 個四分位數(shù)的一部分。因為具有平均行,實驗刪除了其余四分位數(shù)中的所有實例。數(shù)據(jù)集中的其余實例為5022。本研究旨在評估Java面向?qū)ο箢惖臏y試有效性(可測試性)。

2.1 因變量和自變量

以突變得分作為因變量,即被消除的突變體除以產(chǎn)生的突變體數(shù)量的百分比,因變量也是開發(fā)人員使用的可測性關(guān)鍵指標之一。自變量除了兩個主要維度(測試工作量和代碼度量)外,還考慮了34 個因素(見表1)。這些度量為測試人員提供了驗證測試是否具有有效性以及是否與這些元素相關(guān)聯(lián)[5]。本研究目標之一是確定僅依賴于靜態(tài)代碼質(zhì)量特征的輕量級估計模型,這些特征可以很容易地計算到當前版本的測試類。由28個特性組成的代碼度量集,用于評估繼承、復雜性、耦合、大小、封裝和內(nèi)聚的效果。對測試類工作量的計算參考了測試用例的復雜性和數(shù)量的相關(guān)的測試工作量的度量[6]。

2.2 研究問題

本研究的主要目標之一是對影響測試用例有效性(突變分值)的因素進行分析,例如檢測缺陷的能力,以便在開發(fā)測試用例時將有效性指標更好地付諸實施。為此,本研究設(shè)計了三個研究問題。第一個研究問題針對所選的34 個自變量和測試用例有效性之間是否存在關(guān)聯(lián)的初步評估,其目的是揭示具有高或低突變分值的測試用例的自變量分布是否變化以及變化到何種程度;第二個研究問題關(guān)于在機器學習技術(shù)的基礎(chǔ)上制定自動化策略時,如何根據(jù)突變的分數(shù)來檢查測試的有效性;最后一個研究問題是找到最主要的可測性指標是什么。本研究將三個研究問題概括如下:

研究問題1:靜態(tài)度量和測試用例有效性之間有關(guān)系嗎?

研究問題2:靜態(tài)代碼和測試度量在多大程度上有助于預測測試用例的有效性?

研究問題3:最具影響力的可測試性指標是什么?

2.3 方法

針對研究問題1,本研究引入了Spearman的秩相關(guān)系數(shù)用于評估靜態(tài)度量和測試用例有效性兩個指標的統(tǒng)計依賴性,Spearman 方法準確度高而且不需要正態(tài)數(shù)據(jù)分布[7]。針對研究問題2,有不同的機器學習算法可供選擇,由于分類器使用的預測目的可能會對模型的性能產(chǎn)生較大影響,因此在選出最優(yōu)的估算模型的分類器之前,本研究將對多個分類器分別進行測試。因此,本研究將比較不同機器學習算法的效果來確定可測試性預測模型。

決策樹利用高度信息性的特性來劃分含有不同類的測試實例。本研究采用了C4.5 決策樹版本,它使用了基礎(chǔ)信息熵的概念為每個子樹選擇根節(jié)點,決策樹是一種易于理解和解釋的分類器[8]。

隨機森林其實是一種協(xié)作學習方法,其可在引導數(shù)據(jù)上創(chuàng)建決策樹的多元變量。隨機森林中的每棵樹都是基于真實數(shù)據(jù)的子集上構(gòu)建的,并在一個高魯棒性的分類器中展示特征結(jié)果,一個預測類的選出將取決于選票數(shù)量。隨機森林的開箱即用的便捷性能是一大特色[9]。

多層感知器是一種嵌入在深層架構(gòu)中的前饋神經(jīng)網(wǎng)絡(luò),該架構(gòu)包括在有向無環(huán)圖中相互連接的不同計算單元層,他們具有將輸入映射到輸出的特性,并且在回歸測試項目中采用較多[10]。

為區(qū)分不同的類標簽,本研究中的靜態(tài)指標排名根據(jù)它們的貢獻來判定,排名算法采用預分配的一個分數(shù)來評估單個特征,并根據(jù)該分數(shù)對它們進行排名。針對研究問題3,本研究采用了四種不同的算法來分析對可測性影響最大的指標,即增益比、信息增益、對稱不確定性和OneR算法[11]。

3 實驗結(jié)果

本研究采用了Spearman 等級相關(guān)系數(shù)并對實驗結(jié)果進行分析,出于驗證測試有效性的目的,本實驗結(jié)果只包含系數(shù)達到0.5以上的正相關(guān)或負相關(guān)的結(jié)果。表2 顯示的相關(guān)值反映出大小和耦合與突變分值呈高度負相關(guān)。針對研究問題1 的答案可以得出:有效測試用例與被測類的復雜性和大小度量之間存在明顯的負相關(guān)關(guān)系,也就是說,減少類的大小并降低類的復雜性將增加類的可測試性。

表2 帶有突變分數(shù)的靜態(tài)度量的Spearman相關(guān)系數(shù)

針對研究問題2,探究靜態(tài)代碼和測試度量在多大程度上能夠影響對測試用例有效性的預測精準度。表3 反映了所選分類器在五個評價標準下的性能。如上所述,使用測試指標和靜態(tài)代碼的模型不僅依賴于F測量(87%),并且在AUC 分析期間也表現(xiàn)出了較高性能。三個選定的分類器中,隨機森林機制在所有五個評價標準上得分最高。實驗結(jié)果表明,機器學習方法可有效評估測試用例的有效性。本實驗選擇了多個領(lǐng)域的測試項目,實驗結(jié)果證明本評估模型對于測試用例有效性的評估是有效的。

表3 預測模型的分類結(jié)果

針對研究問題3,未找到對可測試性影響最大的因素,本實驗比較了不同的排名算法。表4顯示了不同排名算法的重要度量,這些度量是針對度量類可測試性的易用指標。表4 反映出表內(nèi)所有算法都能找到排名靠前的指標。這些重要的指標包括:NBI、RFC、LOC、LOCCOM、WMC 和NMC。為深入研究這些指標,本研究通過對這些指標進行分類來設(shè)計屬性。字節(jié)碼指令 數(shù)(NBI)、代 碼 行 數(shù)(LOC)、注 釋 行 數(shù)(LOCCOM)和方法調(diào)用數(shù)(NMC)是代碼量大小的度量。而對一個類的響應(yīng)(RFC)和每個類的加權(quán)方法(WMC)被認為是復雜度度量。這表明,在軟件開發(fā)過程中,為確保系統(tǒng)可測試性,需要觀察和監(jiān)視這些度量值。

表4 使用不同排名算法的重要度量

4 論證

本研究通過實驗證明了源代碼質(zhì)量在解決測試用例有效性方面的作用,軟件測試人員參考本研究成果可有效避免無效測試的發(fā)生。軟件開發(fā)人員在軟件設(shè)計和開發(fā)過程中參看本研究提出的模型可從設(shè)計和編碼階段的源頭避免無效測試情況的出現(xiàn)。

本研究推薦的評估模型可檢查測試過程中的質(zhì)量。對于開發(fā)人員來說,通過突變測試方法來評估測試有效性問題能夠做到更精準和更高效,這種方法可幫助測試人員分析找出影響精準高效測試的負面原因。通過對測試代碼有效性的初步評估可幫助測試人員理解影響測試有效性的主要因素。

5 結(jié)語

本研究分析了測試指標和靜態(tài)代碼方面的28 個因素與測試用例有效性和可測試性之間的關(guān)系。通過建立預測模型,利用已知因素區(qū)分無效測試和有效測試。此外,還闡明了相關(guān)的基本代碼度量對面向?qū)ο箢惖目蓽y試性的影響。本研究還將在未來通過進一步的實驗,探索更多其它的度量因素對測試用例有效性的影響,例如:對面向過程類應(yīng)用的測試,并將研究成果應(yīng)用于測試過程中,如:測試用例的設(shè)計與選擇、優(yōu)先級劃分和自動化測試。

猜你喜歡
有效性質(zhì)量模型
一半模型
“質(zhì)量”知識鞏固
質(zhì)量守恒定律考什么
重要模型『一線三等角』
如何提高英語教學的有效性
甘肅教育(2020年6期)2020-09-11 07:45:28
制造業(yè)內(nèi)部控制有效性的實現(xiàn)
重尾非線性自回歸模型自加權(quán)M-估計的漸近分布
提高家庭作業(yè)有效性的理論思考
甘肅教育(2020年12期)2020-04-13 06:24:56
做夢導致睡眠質(zhì)量差嗎
3D打印中的模型分割與打包
主站蜘蛛池模板: 干中文字幕| 亚洲综合二区| 欧美a级在线| 久久大香伊蕉在人线观看热2| 欧美亚洲第一页| 99热这里只有精品在线播放| 亚洲午夜18| 为你提供最新久久精品久久综合| 国产精品一区在线麻豆| 欧美激情视频二区| 亚洲成综合人影院在院播放| 狠狠色香婷婷久久亚洲精品| 自拍偷拍欧美| 欧美亚洲国产精品第一页| 少妇精品网站| 18禁不卡免费网站| 午夜精品福利影院| 国产亚洲一区二区三区在线| 九九久久99精品| 久久鸭综合久久国产| 国产麻豆另类AV| 国产三级视频网站| 一本色道久久88| 国产91全国探花系列在线播放| 亚洲日韩久久综合中文字幕| 国产在线视频福利资源站| 女人18毛片一级毛片在线 | 亚洲男人的天堂在线观看| 在线看AV天堂| 免费国产好深啊好涨好硬视频| 成人福利免费在线观看| 国产在线观看一区精品| 久久国产av麻豆| 这里只有精品免费视频| 成人蜜桃网| 国产激情第一页| 亚洲无码精品在线播放| 97色伦色在线综合视频| 国产真实乱子伦精品视手机观看| 午夜福利免费视频| 国产拍在线| 国产精品一区二区在线播放| 久久夜色精品| 亚洲欧美不卡中文字幕| 亚洲人成亚洲精品| 国产精品毛片一区| 亚洲国产成人精品青青草原| 91成人免费观看在线观看| 人与鲁专区| 久久国语对白| 久久久精品国产SM调教网站| 特级欧美视频aaaaaa| 91小视频在线观看免费版高清| 免费无遮挡AV| 欧美成一级| 91免费国产高清观看| 亚洲乱码精品久久久久..| 一边摸一边做爽的视频17国产| 日本一区二区三区精品国产| 国产精品区视频中文字幕| 一级一级一片免费| 国产成人凹凸视频在线| 亚洲国产天堂在线观看| 91国内视频在线观看| 色综合久久久久8天国| 亚洲无码视频一区二区三区| 亚洲aaa视频| 国产手机在线小视频免费观看| 免费一级毛片在线观看| 波多野结衣中文字幕一区| 国产人前露出系列视频| 国产精品妖精视频| 丁香五月激情图片| 无码专区第一页| 久久久无码人妻精品无码| 日韩精品一区二区三区大桥未久 | 国产亚洲视频中文字幕视频| 高清不卡一区二区三区香蕉| 国产精品密蕾丝视频| 国产欧美精品一区aⅴ影院| 潮喷在线无码白浆| 欧美日韩午夜|