軟件測試中淺析軟件測試用例的優(yōu)先級
從未有足夠的時(shí)間做所有我們需要做的事情,這是在軟件項目,尤其在測試中的一個(gè)普通的話(huà)題。假使你在可用的有限時(shí)間內,你如何知道你的測試工作做的最好?你知道當應用程序發(fā)布時(shí),總會(huì )有些遺漏的缺陷沒(méi)有被發(fā)現。對于測試而言,目標是通過(guò)改進(jìn)產(chǎn)品質(zhì)量使風(fēng)險減到最小,并且這可以部分的通過(guò)建造一套具體的測試用例來(lái)將應用程序按照它的速度完成等方法實(shí)現。
測試用例的定義:
1、為一個(gè)為特定目標而開(kāi)發(fā)一組測試輸入,執行條件和期望結果,例如測試某個(gè)程序路徑或核實(shí)是否滿(mǎn)足某個(gè)特定的需求。
2、指定輸入,預期結果和一組測試項的執行條件的文檔 (IEEE Std 829-1983)。
當然,你將發(fā)現在項目的生命周期里的每一個(gè)應用程序的版本上執行你全部的測試用例是很困難的。但是你將如何知道哪個(gè)測試用例必須在每一個(gè)版本中執行,什么應該被執行,同時(shí)如果你有時(shí)間的話(huà),什么又可以被執行?
給你的測試用例劃分優(yōu)先級別
你的應用程序不需要十全十美,但它必須迎合你目標用戶(hù)的需求和期望。為了了解你項目的期望,你需要確定什么是應用程序中最重要的,目標和風(fēng)險又是什么。
Sue Bartlett在“How to Find the Level of Quality Your Sponsor Wants”一文中詳細的討論了這個(gè)問(wèn)題,她在文中注解到:“當我們在詳細的計劃,設計或編碼之前溝通質(zhì)量目標時(shí),我們有一個(gè)更好的機會(huì )來(lái)避免在最后時(shí)刻的質(zhì)量不匹配,那意味著(zhù)迎合計劃,彌補花費并且贏(yíng)利將有一個(gè)更好的成功的機會(huì )!
為了測試計劃的目的,在你項目版本的進(jìn)度下,測試執行的組織和安排你的測試用例將幫助達到這些目標。作為這種組織的一部分,我們要考慮每一個(gè)測試用例的優(yōu)先級別。根據優(yōu)先級別分組你的測試用例將幫助你決定不同類(lèi)型的版本需要什么樣的測試用例,因此計算需要的時(shí)間。如果你只有有限的時(shí)間,你可以查看什么是最合適。
Ross Collard在“Use Case Testing”一文中說(shuō):“測試用例的前10%到15%可以發(fā)現75%到90%的重要缺陷”。
測試用例的優(yōu)先級劃分將幫助確定找出了這前10%到15%的測試用例。
如何劃分測試用例的優(yōu)先級別
你曾查看過(guò)多少次你的測試用例并且能夠很容易的挑選出最重要的一個(gè)小的子集?這個(gè)答案可能是不經(jīng)常。停止思考“所有的測試用例都是同等重要”這個(gè)問(wèn)題是非常困難的。當設計測試用例時(shí),分配優(yōu)先級別是不容易,并且在項目期間里不一定是靜止的。然而,我們可以通過(guò)構造一個(gè)劃分優(yōu)先級別流程的例子來(lái)開(kāi)始處理劃分測試用例優(yōu)先級別的第一步。讓我們假設你剛剛根據功能說(shuō)明書(shū), 用例和其他一些關(guān)于你應用程序的目標行為和能力的信息源完成了建立測試用例,F在是時(shí)候來(lái)為每個(gè)測試用例分配一個(gè)優(yōu)先級別了。
測試用例的優(yōu)先級別
首先,你必須確定什么是你優(yōu)先級別的類(lèi)型和其暗示著(zhù)什么。就我們的目的來(lái)說(shuō), 我們將用一個(gè)假設開(kāi)始,那就是我們可能發(fā)現的缺陷的嚴重程度和那些相應測試用例的優(yōu)先級別之間是平行的。
1 –小版本確認測試(Build Verification Tests (BVTs):也叫做“冒煙測試”,一組你想先運行的以確定這個(gè)給出的小版本是否可以測試的測試用例。如果你不能訪(fǎng)問(wèn)每一個(gè)功能區域或執行其他測試用例依賴(lài)的基本操作,那么在執行這個(gè)優(yōu)先的測試用例之前,試圖做其他任何的測試都是沒(méi)有意義的,因為他們大多數肯定要失敗。
2 – 高(Highs):最常執行以保證功能性是穩定的,目標的行為和能力可以正常的工作,和重要的錯誤和邊界被測試的測試用例的集合。
3 – 中(Mediums):這是使給出的功能區域或功能變得更詳細,檢查功能的多數方面包括邊界,錯誤和配置測試的測試用例。
4 – 低(Lows):這是通常最少被執行的測試用例。但這并不意味著(zhù)這些測試都不重要,只是說(shuō)他們在項目的生命期間里不是常常被運行,例如GUI,錯誤信息,可用性,壓力和性能測試。
我們將測試用例分成4類(lèi):BVTs,高,中和低,F在的問(wèn)題是將測試用例分到不同的優(yōu)先級別里。畢竟,優(yōu)先級別將指出哪些測試用例被認為是需要更頻繁的執行的,哪些又不是。
怎樣著(zhù)手分配優(yōu)先級別
1)隨意地分配:
基于如果你沒(méi)有足夠的時(shí)間測試卻又至少要保證所有的產(chǎn)品需求已經(jīng)被確認可以在設想的良好狀況下像它們被期望的那樣工作的想法,前面這3 步將讓你任意的分組測試用例,如果你也停下來(lái)思考每個(gè)測試用例的測試的內容,它們都將變的很重要。因此只需要:
(a) 把你所有功能性驗證(或基本路徑(Happy Path))的測試標注為高優(yōu)先級別
(b) 把你所有錯誤和邊界值或確認測試標注為中優(yōu)先級別
(c) 把你所有非功能性的測試(例如性能和可用性)標注為低優(yōu)先級別
2)提升和降級:
并非所有的功能性測試都一樣的重要,并且和邊界和非功能性測試一樣的重要。思考一下測試的重要性及相對于其他同等優(yōu)先級別的測試,你想要檢查這個(gè)功能的頻率-考慮質(zhì)量目標和你項目的需求。
(a) 把功能性驗證測試分為兩組:重要和不是十分重要。
(b) 將“不是十分重要”的能性驗證測試降級為中優(yōu)先級別
(c) 把錯誤和邊界測試分成兩組:重要和不是十分重要
(d) 將“重要”的錯誤和邊界測試升級為高優(yōu)先級別
(e) 把非功能性測試分成兩組:重要和不是十分重要
(f) 把“重要”的非功能性測試升級為中優(yōu)先級別
(g) 針對每組高,中和低優(yōu)先級別的測試用例,重復劃分和升級/降級流程直到你達到一個(gè)點(diǎn),可以在不同優(yōu)先級別之間移動(dòng)的測試用例的數量到最小。
3)識別小版本驗證測試用例(Build Verification Tests):
現在,為了確保小版本是可以測試的并準備好給小組其他成員開(kāi)始測試,哪些測試用例是必須在每個(gè)小版本中都檢查呢?
(a) 將好優(yōu)先級別的測試用例分成兩組:嚴重和重要的
(b) 將“嚴重”的高優(yōu)先級的測試用例升級為BVT優(yōu)先級
注意:不要先識別BVT測試用例!BVT只是高優(yōu)先級別測試用例的精選,它們已經(jīng)被確定為對系統和測試是非常重要的。
在這個(gè)流程的最后,就是要檢查優(yōu)先級別的百分比分布情況是:BVT為10-15%,高為20-30%,,中為40-60%,低為10-15% 。
在升級和降級測試用例時(shí),需要考慮的方面是用戶(hù)將要求這個(gè)功能或功能性的頻率是怎樣。同樣的,對于用戶(hù)日常的或月尾的活動(dòng)而言,這種行為的嚴重性是如何。Robyn Brilliant在測試進(jìn)度報告中提供了一個(gè)清單,你可以在考慮降級或升級測試用例的時(shí)候使用
使用從一到五的一個(gè)刻度,從最嚴重到最少的嚴重程度,量化可靠性風(fēng)險如下:
(a) 這個(gè)功能的失敗將影響用戶(hù)
(b) 這個(gè)功能的失敗將給公司造成重大的影響
(c) 這個(gè)功能的失敗將引起一個(gè)潛在的延期給客戶(hù)
(d) 這個(gè)功能的失敗對公司將有較小的影響
(e) 這個(gè)功能的失敗沒(méi)有任何影響
這個(gè)和其相似的刻度可以幫助你達到你測試用例優(yōu)先級別劃分的最后一步。
總結
這是一個(gè)簡(jiǎn)化的劃分測試用例優(yōu)先級別過(guò)程的例子。然而,在快速組織測試用例和安排測試進(jìn)度和工作量,及制訂項目計劃時(shí)需要完成哪些測試用例等方面,它可以給你很多幫助。
記住,你怎樣給你的測試任務(wù)劃分優(yōu)先級和如何執行測試用例將取決于你在你的項目周期的位置。當你朝發(fā)布前進(jìn)并通過(guò)調查和觀(guān)察確定危險和缺陷出現的地方時(shí),你可能會(huì )重新給你的測試用例劃分優(yōu)先級別。向上為每個(gè)階段建立你的測試目標并保證他們在你的測試用例的優(yōu)先級別上被反映,當它在解釋并執行你的計劃時(shí),將使你的生活變得容易得多。
最后,擁有劃分了優(yōu)先級別的測試用例也為你潛在的,待定的自動(dòng)化項目給出了一個(gè)好的起點(diǎn)。比如,自動(dòng)化BVT中的測試用例,度量收益,改進(jìn)測試自動(dòng)化,自動(dòng)化高優(yōu)先級的測試用例等方面。
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/