|
軟件測(cè)試度量是一種通過(guò)檢測(cè)軟件測(cè)試過(guò)程的質(zhì)量和有效性來(lái)評(píng)估軟件開(kāi)發(fā)的量化方法。開(kāi)發(fā)團(tuán)隊(duì)使用測(cè)試指標(biāo)來(lái)跟蹤開(kāi)發(fā)過(guò)程各個(gè)階段的軟件質(zhì)量。測(cè)試指標(biāo)對(duì)于管理層也很有用,它可以讓公司股東評(píng)估軟件開(kāi)發(fā)團(tuán)隊(duì)的效率。 測(cè)試指標(biāo)應(yīng)該始終是有意義和可執(zhí)行的。問(wèn)題是有些測(cè)試指標(biāo)無(wú)法達(dá)到這一目標(biāo)。許多指標(biāo)都是誤導(dǎo),有些只是無(wú)價(jià)值的指標(biāo),而有些則毫無(wú)意義。 下面這些無(wú)用的測(cè)試指標(biāo)的例子可以幫助你更好地理解測(cè)試指標(biāo)是否提供了所需的洞察力。 這是一個(gè)糟糕的度量標(biāo)準(zhǔn),原因很簡(jiǎn)單,它沒(méi)有告訴你測(cè)試用例測(cè)試的是什么。 這個(gè)度量標(biāo)準(zhǔn)的最初想法是,我們開(kāi)發(fā)的測(cè)試用例越多,我們的測(cè)試就越全面。實(shí)際上,許多測(cè)試用例根本沒(méi)有對(duì)測(cè)試覆蓋率做出貢獻(xiàn)。許多測(cè)試套包含已棄用的測(cè)試,這些測(cè)試不再與軟件的新版本相關(guān)。測(cè)試用例的設(shè)計(jì)效率不高,因此它們會(huì)重疊,并且本質(zhì)上是測(cè)試相同的功能。 這是一個(gè)糟糕度量標(biāo)準(zhǔn)的原因之一在于,度量每一個(gè)測(cè)試人員的任何東西都不是一個(gè)好的實(shí)踐——它鼓勵(lì)過(guò)度的競(jìng)爭(zhēng),并且破壞協(xié)作的的團(tuán)隊(duì)工作,而團(tuán)隊(duì)合作在敏捷組織中得到了強(qiáng)烈的鼓勵(lì)。 有些公司甚至?xí)鶕?jù)每個(gè)軟件測(cè)試人員發(fā)現(xiàn)的缺陷來(lái)決定員工報(bào)酬,這對(duì)團(tuán)隊(duì)的目標(biāo)尤其不利,因?yàn)樗鶗?huì)抑制信息的共享,并促進(jìn)“每個(gè)人都只為自己”的態(tài)度。 此外,一個(gè)員工可能在測(cè)試一個(gè)穩(wěn)定的軟件特性,而另一個(gè)測(cè)試一個(gè)有缺陷的、不穩(wěn)定的特性。在這個(gè)度量標(biāo)準(zhǔn)下,后者會(huì)被認(rèn)為性能更好,因?yàn)樗l(fā)現(xiàn)了更多的bug,這是很愚蠢的的。 使用百分比通率作為度量指標(biāo)是一個(gè)壞主意,因?yàn)樵谀愕能浖_(kāi)發(fā)團(tuán)隊(duì)中不鼓勵(lì)的行為很容易操縱這種指標(biāo)。 例如,測(cè)試團(tuán)隊(duì)可能會(huì)專(zhuān)注于執(zhí)行更容易通過(guò)的測(cè)試,從而提高通過(guò)率?;蛘?,團(tuán)隊(duì)可以將一個(gè)長(zhǎng)時(shí)間的測(cè)試分解成許多小的測(cè)試,人為地提高百分比的通過(guò)率。換句話(huà)說(shuō),這個(gè)指標(biāo)變化無(wú)常,易于操縱。 代碼覆蓋是另一個(gè)常用的度量指標(biāo),常常被錯(cuò)誤地使用。代碼覆蓋率是由單元測(cè)試覆蓋的代碼行百分比。代碼覆蓋可以給你一個(gè)完全錯(cuò)誤的實(shí)際測(cè)試覆蓋圖,原因有兩個(gè): 首先,單元測(cè)試并不是對(duì)你軟件的全面測(cè)試。它們只是測(cè)試代碼中特定的微組件是否能夠正常工作。即使你的車(chē)?yán)锏乃胁考冀?jīng)過(guò)了測(cè)試和完美的工作,也不能保證汽車(chē)會(huì)啟動(dòng)。 其次,這個(gè)指標(biāo)對(duì)單元測(cè)試質(zhì)量沒(méi)有任何意義。一個(gè)單元測(cè)試可以包含優(yōu)雅設(shè)計(jì)的代碼,測(cè)試一個(gè)方法或函數(shù)的所有相關(guān)輸入和輸出?;蛘撸赡苁且粓F(tuán)亂麻,只測(cè)試其中的一些功能,或者其他無(wú)關(guān)的或已棄用的功能。用越來(lái)越多的草率的單元測(cè)試來(lái)覆蓋代碼對(duì)任何人都沒(méi)有好處。 在許多情況下,自動(dòng)執(zhí)行的測(cè)試用例百分比是一個(gè)無(wú)價(jià)值的度量標(biāo)準(zhǔn)。如果自動(dòng)化測(cè)試不像舊的手工測(cè)試那樣測(cè)試功能,那么越來(lái)越多的自動(dòng)化測(cè)試是沒(méi)有意義的?;蛘呷绻浖兓?,自動(dòng)化測(cè)試很快就會(huì)崩潰,需要完全重構(gòu)。 被這個(gè)指標(biāo)掩蓋的另一個(gè)方面是測(cè)試持續(xù)時(shí)間。添加越來(lái)越多的Selenium測(cè)試,進(jìn)行自動(dòng)化UI測(cè)試是一個(gè)好主意。但是運(yùn)行這些測(cè)試可以使構(gòu)建時(shí)間從幾分鐘增加到幾小時(shí)。在當(dāng)前頻繁發(fā)布版本的現(xiàn)實(shí)中,進(jìn)行這樣的測(cè)試需要非常謹(jǐn)慎,對(duì)于需要匆忙進(jìn)行交付的團(tuán)隊(duì)就只能跳過(guò)了。 這可能是軟件質(zhì)量的最古老的度量標(biāo)準(zhǔn),它早在上世紀(jì)60年代就在IBM內(nèi)部使用過(guò)。改度量指標(biāo)為一個(gè)bug貼上一個(gè)價(jià)格標(biāo)簽——識(shí)別一個(gè)bug、修復(fù)它、并驗(yàn)證它的成本。這個(gè)共識(shí)就是:在開(kāi)發(fā)周期的早期修復(fù)bug要便宜得多,而在測(cè)試后期,或者在生產(chǎn)過(guò)程中,修復(fù)它們是非常昂貴的。 在開(kāi)發(fā)周期的不同階段度量每個(gè)缺陷的成本是一個(gè)很好的想法。然而,一些團(tuán)隊(duì)度量每個(gè)缺陷的成本,以使軟件維護(hù)更有效。 主要問(wèn)題是:對(duì)于軟件的質(zhì)量和用戶(hù)的經(jīng)驗(yàn),缺陷有不同的含義。有些缺陷是“化妝品”,對(duì)于軟件的用戶(hù)幾乎沒(méi)什么影響。而其他的一些缺陷,如安全問(wèn)題,如果不解決的話(huà)可能會(huì)帶來(lái)災(zāi)難性后果。 缺陷密度是指軟件中檢測(cè)到的得到確認(rèn)的缺陷數(shù)量。通常認(rèn)為較低的缺陷密度等同于較低的軟件質(zhì)量,但這并不是真的。 缺陷密度的一個(gè)問(wèn)題是,缺陷的數(shù)量取決于測(cè)試是如何構(gòu)造和報(bào)告的,以及軟件測(cè)試人員的技能。某個(gè)軟件問(wèn)題可以被當(dāng)成一個(gè)bug、或者是該問(wèn)題不同方面的15個(gè)bug,或者根本沒(méi)有bug報(bào)告,因?yàn)闇y(cè)試人員沒(méi)有發(fā)現(xiàn)它。因此,對(duì)于相同的軟件,缺陷密度可能會(huì)有很大的變化。 在當(dāng)今的測(cè)試世界中,有三個(gè)挑戰(zhàn)與測(cè)試指標(biāo)密切相關(guān):
真正提供有用信息,并幫助你了解軟件質(zhì)量的真實(shí)度量標(biāo)準(zhǔn)是很難得到的。 新的平臺(tái),如SeaLights,一個(gè)在敏捷環(huán)境中測(cè)量真實(shí)測(cè)試覆蓋率的平臺(tái),通過(guò)提供更有用的測(cè)試指標(biāo)和更具有代表性的軟件質(zhì)量來(lái)改變測(cè)試場(chǎng)景。具體地說(shuō),一種跨越所有類(lèi)型自動(dòng)和手工測(cè)試的對(duì)于測(cè)試覆蓋的全面度量方法;一個(gè)“圣杯”度量,它揭示了每個(gè)敏捷版本中固有的風(fēng)險(xiǎn)。 轉(zhuǎn)自:趣IT |
|
|
來(lái)自: 逍遙302 > 《計(jì)算機(jī)》