五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

白盒的測試方法

2023-04-21 10:36 作者:愛測軟件測試  | 我要投稿

白盒測試又稱為結(jié)構(gòu)測試、透明測試、邏輯驅(qū)動測試或基于代碼的測試。白盒測試是一種測試用例設(shè)計(jì)方法。盒子指的是被測試的軟件,白盒指的是盒子是可視的,即清楚盒子內(nèi)部的東西以及里面是如何運(yùn)作的。白盒法在全面了解程序內(nèi)部邏輯結(jié)構(gòu)的基礎(chǔ)上,對所有邏輯路徑進(jìn)行測試。白盒法是窮舉路徑測試。在使用這一方法時(shí),測試者必須檢查程序的內(nèi)部結(jié)構(gòu),從檢查程序的邏輯結(jié)構(gòu)著手,得出測試數(shù)據(jù)。

白盒測試是在程序不同地方設(shè)立檢查點(diǎn),用來檢查程序的狀態(tài),以確定實(shí)際運(yùn)行狀態(tài)與預(yù)期狀態(tài)是否一致。

1.白盒測試的度量

白盒測試是根據(jù)待測產(chǎn)品的內(nèi)部實(shí)現(xiàn)細(xì)節(jié)來設(shè)計(jì)測試用例。白盒測試涵蓋單元測試、集成測試。一般使用代碼覆蓋率作為白盒測試的主要度量標(biāo)準(zhǔn)。

2.代碼覆蓋率常見概念

(1)語句覆蓋:每行代碼都要覆蓋至少一次(覆蓋是測試人員之間常用的交流語言,也即測試到的地方成稱為覆蓋)。

(2)判定覆蓋:判定表達(dá)式的真假至少覆蓋一次。

(3)條件覆蓋:使每個(gè)判定表達(dá)式中的每個(gè)條件都取到各種可能的值。

(4)判定/條件覆蓋:判定覆蓋與條件覆蓋都需要覆蓋到。

(5)條件組合覆蓋:判定表達(dá)式中的所有條件組合都需要覆蓋。

(6)分支覆蓋:控制流中的每條邊都要被覆蓋一次。

(7)路徑覆蓋:所有的路徑都要盡量覆蓋。

(8)指令覆蓋:一行代碼會被編譯為多條指令,盡可能地覆蓋所有指令。

(9)方法覆蓋:每個(gè)方法至少要被覆蓋一次。

(10)類覆蓋:每個(gè)類至少被覆蓋一次。

3.覆蓋率統(tǒng)計(jì)的工作

(1)EMMA:是一個(gè)開源、面向 Java 程序的測試覆蓋率收集和報(bào)告工具。它通過對編譯后的 Java 字節(jié)碼文件進(jìn)行插裝,在測試執(zhí)行過程中收集覆蓋率信息,并通過支持多種報(bào)表格式對覆蓋率結(jié)果進(jìn)行展示。

(2)Cobertura:是一款優(yōu)秀的開源測試覆蓋率統(tǒng)計(jì)工具,它與單元測試代碼結(jié)合,標(biāo)記并分析在測試包運(yùn)行時(shí)執(zhí)行了哪些代碼和沒有執(zhí)行那些代碼,以及所經(jīng)過的條件分支,來測量測試覆蓋率。除了找出未測試到的代碼并發(fā)現(xiàn) Bug 外,Cobertura 還可以通過標(biāo)記無用的、執(zhí)行不到的代碼來優(yōu)化代碼,最終生成一份美觀、詳盡的 HTML 覆蓋率檢測報(bào)告。

(3)JaCoCo:是一個(gè)開源的覆蓋率統(tǒng)計(jì)工具,針對 Java 語言,是現(xiàn)在流行的覆蓋率統(tǒng)計(jì)工具。

4.流程覆蓋

流程覆蓋用路徑覆蓋率表達(dá),是利用代碼執(zhí)行流代表流程。執(zhí)行時(shí)需要對流程進(jìn)行裁剪獲得一個(gè)適合業(yè)務(wù)的小規(guī)模的業(yè)務(wù)子集。

流程覆蓋率 = 測試經(jīng)過的路徑 ?/ ?業(yè)務(wù)子集路徑

5.精準(zhǔn)化測試

精準(zhǔn)化測試是一套計(jì)算機(jī)輔助分析系統(tǒng)。精準(zhǔn)化測試的核心組件包含軟件測試示波器、用例和代碼的雙向追溯、智能回歸測試用例選取、覆蓋率分析、缺陷定位、測試用例聚類分析、測試用例自動生成系統(tǒng)。這些組件的功能完成地構(gòu)成了精準(zhǔn)化測試技術(shù)體系。

精準(zhǔn)化測試強(qiáng)調(diào)代碼調(diào)用鏈接與黑盒測試用例之間的關(guān)聯(lián)。可以根據(jù)代碼變更分析影響范圍。例如,研發(fā)人員修改了一行代碼,功能用例代碼有 1000 行,但實(shí)際上很多用例和這一行代碼是沒有關(guān)系的,精準(zhǔn)化測試可以判斷出有哪些測試用例和改動的這一行代碼有關(guān)系。例如,1000 個(gè)測試用例當(dāng)中,只有 20 個(gè)和修改的代碼有關(guān)系。那么測試的范圍可以大大縮減,測試效率就會提高。

精準(zhǔn)化測試還有一個(gè)很有價(jià)值的作用,就是在黑盒測試過程中,借助代碼流程覆蓋率指導(dǎo)測試活動。例如,在黑盒測試結(jié)束之后,觀察代碼的覆蓋情況,發(fā)現(xiàn)有一些路徑?jīng)]有被覆蓋到,這個(gè)時(shí)候就需要繼續(xù)補(bǔ)充測試用例,一直到代碼可以很全面地被覆蓋。這個(gè)系列測試與底層白盒測試相結(jié)合的一個(gè)方法。

精準(zhǔn)化測試還可以用線上數(shù)據(jù)推導(dǎo)有效的測試用例。例如測試一個(gè)系統(tǒng),這個(gè)系統(tǒng)有大量歷史數(shù)據(jù),這時(shí)就可以提供其中一段運(yùn)行時(shí)間的數(shù)據(jù),使用這些數(shù)據(jù)繼續(xù)測試這個(gè)系統(tǒng)。測試完成后統(tǒng)計(jì)這些測試數(shù)據(jù)中哪些數(shù)據(jù)對于測試覆蓋率的增加是有幫助的,可以使用大數(shù)據(jù)的方法,自動提取出對于測試覆蓋率有增益效果的數(shù)據(jù),這些測試數(shù)據(jù)實(shí)際上屬于同一個(gè)集合,在這種集合中,只取一小部分測試數(shù)據(jù)就可以。利用線上數(shù)據(jù)反推有效測試用例也是精準(zhǔn)化測試的重要作用。

由于精準(zhǔn)化測試需要測試人員對白盒測試相當(dāng)了解,對測試人員的技能要求比較高,所以實(shí)現(xiàn)起來有一定的難度。目前,行業(yè)中還沒有開源的精準(zhǔn)化測試工具。現(xiàn)階段只能通過 J 啊 CoCo 工具,自主地去實(shí)現(xiàn)精準(zhǔn)化測試。


白盒的測試方法的評論 (共 條)

分享到微博請遵守國家法律
综艺| 会同县| 隆安县| 崇仁县| 玉屏| 屏东市| 深圳市| 石泉县| 合川市| 宜良县| 德安县| 连平县| 武定县| 庄浪县| 五指山市| 祁东县| 和硕县| 南开区| 崇州市| 长宁县| 贵定县| 广南县| 昌都县| 达孜县| 达州市| 四子王旗| 五河县| 治县。| 池州市| 长顺县| 利辛县| 随州市| 绥棱县| 金塔县| 黄骅市| 凤阳县| 怀安县| 察雅县| 富蕴县| 凤山市| 通山县|