最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

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

軟件測試 | 關(guān)于測試內(nèi)容的基于覆蓋率的測試手段

2023-05-16 11:27 作者:愛測軟件測試  | 我要投稿

可以根據(jù)在使用這些手段時已經(jīng)掌握知識的不同,把這些手段按所關(guān)注的問題進(jìn)行多種不同的分類。例如,如果把功能集成測試用于檢查每個功能與所有其他功能組合在一起時是否能夠正常運行,則這種測試及時面向覆蓋率的測試。如果有針對功能相互交互的錯誤理論,并想進(jìn)行跟蹤,則這種測試就是面向問題的測試。(例如,如果意圖是想發(fā)現(xiàn)功能在相互傳遞數(shù)據(jù)時出錯,就是面向問題的測試)。

功能測試(function testing)。逐個測試每個功能。徹底測試功能,直到可以確信該功能沒有問題。白盒功能測試通常叫做單元測試,集中測試可以看到代碼的功能。黑盒功能測試關(guān)注命令和特性,以及用戶可以做或選擇的事情。在做涉及多個功能的更復(fù)雜的測試之前,最好先做功能測試。在復(fù)合測試中,第一個出現(xiàn)問題的功能可能會使測試停下來,阻止通過這個測試發(fā)現(xiàn)多個其他功能也出現(xiàn)問題。如果依靠復(fù)合測試而不是單個測試功能,肯呢個要很晚才會知道有一個功能出現(xiàn)問題,可能要花費大量工作在復(fù)合測試中定位,最后卻發(fā)現(xiàn)問題出現(xiàn)在一個簡單功能上。

特性或功能集成測試(feature or function integration testing)。一起測試多個功能,以檢查功能在一起執(zhí)行的情況。

菜單瀏覽(menu tour)。遍歷GUI產(chǎn)品中的所有菜單和對話框,使用每個可用的選項。

域測試(domain testing)。域是一個(數(shù)字)集合,包含所有可能的函數(shù)變量取值。在域測試中,要標(biāo)識函數(shù)和變量。變量可以是輸入或輸出變量。(輸入域和值域之間的數(shù)字區(qū)別在這里無關(guān),因為這兩種域的測試分析都是一樣的。)對于每個變量,都要把其他取值集合劃分為等價類,并從每個類中選擇少量代表(一般是邊界值)。這種方法假設(shè)如果用類中的少量好的代表值進(jìn)行測試,就可以發(fā)現(xiàn)用類中所有成員測試所能夠找出的大多數(shù)或全部問題。請注意,與功能測試形成對比的是,感興趣的要素是變量而不是功能。很多變量被多個功能使用。進(jìn)行域測試時必須分析變量,然后再根據(jù)分析,以這個變量作為輸入或輸出,測試設(shè)計這個變量的每個功能。

等價類分析(equivalence class analysis)。等價類是測試員認(rèn)為是等價的一組變量取值。如果相信一組測試用例:(a)測試的都是相同的東西:(b)如果其中一個捕獲到一個程序錯誤,其他測試用例可能也不能捕獲到,則這些測試用例是等價的。一旦找出一個等價類,可只測試其一兩個成員。

邊界測試(boundary testing)。等價類是一組取值。如果可以把成員映射到一列數(shù)字上,則邊界值就是類的最小和最大值。在邊界測試中,要測試這些值,還要測試相鄰類的邊界值,這些值要比測試的類的最小值略小,比要測試的類的最大值略大。例如,請考慮一個接受10~50整數(shù)值的輸入字段。感興趣的邊界值是10(最小整數(shù))、9(小于10的最大整數(shù))、50(最大整數(shù))、51(大于50的最小整數(shù))。

最佳代表測試(best representative testing)。等價類的最佳代表是在暴露軟件中的錯誤的可能性方面至少與類中其他值一樣的值。在邊界測試中,邊界值幾戶總是最佳代表。但是有時不能將等價類映射得到一組數(shù)字上。例如,兼容惠普PCL-5的打印機(jī)是(或應(yīng)該是)一個等價類,因為這些打印機(jī)的工作方式相同。假設(shè)對于一個具體任務(wù),其中一種打印機(jī)與其他打印機(jī)相比,略微更可能出現(xiàn)問題。那么這種打印機(jī)可以作為這個類的最佳代表。如果對它測試沒有發(fā)現(xiàn)問題,那么可以比較可靠地認(rèn)為其他打印機(jī)也沒有問題。

輸入字段測試大綱或矩陣(input field test catalogs or matrices)。對于每種輸入字段,可以開發(fā)一組相當(dāng)標(biāo)準(zhǔn)的測試用例,在這個產(chǎn)品和后續(xù)產(chǎn)品中的類似字段中重用。

用各種方式映射和測試編輯字段(map and test all the ways to edit a field)。常??梢砸远喾N方式改變某個字段中的值。例如可以把數(shù)據(jù)輸入到該字段,直接在字段中輸入數(shù)據(jù),通過程序?qū)⒂嬎愫玫慕Y(jié)果復(fù)制到字段中,通過程序?qū)⒃俅斡嬎愫玫慕Y(jié)果復(fù)制到字段中,等等。字段是有限制的(限制字段可以取哪些值)。有些限制是不變的,有些限制要依賴于其他字段的取值。例如,如果J和K是無符號整數(shù),其限制就是0一直到MaxInt。這些都是不變限制,依賴于程序設(shè)計語言對無符號整數(shù)的定義。但是,如果N也是無符號整數(shù),N=J+K,N=5。在這種情況下J=5-K,J不能大于5(N的值)。這是可變限制,其所允許的取值范圍取決于N的值。為了檢查J是否在所允許的取值范圍內(nèi)(5-K),可以使用各種能夠把數(shù)據(jù)輸入到J中的方法改變J的取值。

邏輯測試(logic testing)。變量在程序中有關(guān)系。例如,程序可能有這樣一個決策規(guī)則:如果PERSON-AGE大于50,并且如果SMOKER是YES,則OFFER-INSURANCE必須是NO。這總決策規(guī)則表達(dá)了一個邏輯關(guān)系,邏輯測試試圖檢查程序中的所有邏輯關(guān)系。因果圖(cause-effect graphing)是一種用于設(shè)計大量基于邏輯測試的手段。

基于狀態(tài)的測試(state-based testing)。程序的狀態(tài)要發(fā)生轉(zhuǎn)換。在給定狀態(tài)中,有些輸入是有效的,其他輸入被忽略或拒絕。對于有效輸入,被測程序要完成它可以做的事,并且不嘗試做它不能做的事。在基于狀態(tài)的測試中,每次都要通過經(jīng)過大量狀態(tài)遷移(狀態(tài)改變)并仔細(xì)檢查結(jié)果來檢驗程序。

路徑測試(path testing)。一條路徑包含測試員所執(zhí)行的所有步驟,或程序為了得到正確狀態(tài)所通過的所有語句。路徑測試包括測試通過程序的很多路勁。通過非平凡程序的路徑是不可能的。因此,有些測試員進(jìn)行子路徑測試(subpath testing),測試很多部分路徑。例如,基于路徑測試(basis-path testing)包括測試一定類型(基本路徑)的大多數(shù)或全部假設(shè),這里采用的假設(shè)是如果測試了所有基本路徑,那么幾戶沒有更長的路徑會找出這些測試所遺漏的問題。

語句與分支覆蓋率(statement and branch coverage)。如果測試執(zhí)行了程序中的所有語句(或代碼行),則達(dá)到100%的語句覆蓋率。如果執(zhí)行了所有語句和一個語句到另一個語句之間的所有分支,則達(dá)到100%的魚護(hù)和分支覆蓋率。設(shè)計自己的測試,達(dá)到高的語句與分支覆蓋率,有時叫做“基于覆蓋率的測試(coverage-based testing)”。(達(dá)到覆蓋率目標(biāo)后,可以停止測試,或停止設(shè)計更多的測試)。把它叫做語句與分支覆蓋率,是為了與關(guān)注其他類型覆蓋率的測試相區(qū)別。配置覆蓋率就是一個很好例子,這種手段執(zhí)行同一條語句很多次,但是潛在產(chǎn)生非常不同的結(jié)果。其他例子還有很多很多(Kaner 1995a)。關(guān)注達(dá)到高語句與分支覆蓋率的測試往往遺漏很多類型的問題,例如(但不限于)與以下因素有關(guān)的程序錯誤:遺漏代碼、邊界值處理不正確、時序問題、硬件和軟件配置兼容性問題,諸如指針越界、內(nèi)存泄露或棧破壞等最終導(dǎo)致棧溢出的滯后暴露問題、可使用性問題,以及其他方面沒有滿足客戶需求的問題。這種手段在標(biāo)識不完備測試方面(哪些代碼還沒有測試過)要跟有價值得多,而不是在所需測試量的最低標(biāo)準(zhǔn)方面。的確,讓測試員停止測試只是因為達(dá)到了X%的覆蓋率,這樣做很危險(Marick 1999)。

配置覆蓋率(configuration coverage)。如果必須測試100臺打印機(jī)的兼容性,并且已經(jīng)測試了10臺,就達(dá)到10%的打印機(jī)覆蓋率。更一般地,配置覆蓋率度量測試員已經(jīng)運行(并且程序已經(jīng)通過)的配置測試占計劃運行的配置測試總數(shù)的百分比。為什么要把它叫做測試手段?一般我們只是將它看做是已經(jīng)完成了多少一定類型測試的度量。但是,有些測試員完成的一系列特殊測試,可以更快、更容易地完成大量配置測試。對于他們來說,優(yōu)化工作以達(dá)到高的覆蓋率,是一種測試手段。

基于規(guī)格說明的測試(specification-based testing)。這種測試關(guān)注驗證在規(guī)格說。明中所做的有關(guān)產(chǎn)品的每個事實聲明。(事實聲明是可以用真或假表示的任何語句。)常常包括手冊、市場開發(fā)文檔或廣告、技術(shù)支持人員寄給客戶的印刷品中的所有聲明。

基于需求的測試(requirements-based testing)。測試關(guān)注證明程序滿足需求文檔中的所有需求(或關(guān)注逐個需求地證明某個需求沒有被滿足。)

組合測試(combination testing)相互組合測試兩個或更多變量。組合測試很重要,但是很多測試員對這種測試研究得還很不夠。通過程序得到的大部門好處都基于很多變量的交互。如果不在測試中一起改變這些變量,就會遺漏由不同的組合(而不是不同的單個取值)觸發(fā)的錯誤。


軟件測試 | 關(guān)于測試內(nèi)容的基于覆蓋率的測試手段的評論 (共 條)

分享到微博請遵守國家法律
桐乡市| 辽宁省| 蒙阴县| 郴州市| 金阳县| 阿拉尔市| 银川市| 历史| 东明县| 龙海市| 石渠县| 全州县| 白玉县| 卓资县| 应城市| 永吉县| 乌兰浩特市| 朝阳区| 黄浦区| 称多县| 介休市| 罗田县| 唐海县| 庄河市| 临海市| 波密县| 马鞍山市| 平利县| 瑞昌市| 唐海县| 民县| 张家界市| 忻城县| 赤城县| 鸡西市| 安庆市| 房产| 自治县| 漳平市| 会同县| 嘉黎县|