張倩倩 趙星漢 高湘飛
摘要 眾所周知,軟件測(cè)試過(guò)程中,測(cè)試用例的設(shè)計(jì)是最復(fù)雜的,也是最關(guān)鍵、最耗時(shí)的。黑盒測(cè)試在軟件研制的驗(yàn)證和確認(rèn)階段中,占有重要的比重。測(cè)試用例設(shè)計(jì)所處的階段占據(jù)了整個(gè)測(cè)試過(guò)程的50%以上工作量。測(cè)試用例的正確性、有效性和覆蓋充分性,作為測(cè)試用例的重要特性直接反映了測(cè)試用例的質(zhì)量。本文結(jié)合作者實(shí)際工作和理論研究,從提高這三個(gè)方面的特性進(jìn)行了討論。
[關(guān)鍵詞]軟件測(cè)試 測(cè)試用例 正確性 有效性覆蓋充分性
1 引言
軟件測(cè)試在軟件的整個(gè)生命周期的重要組成部分,與軟件的研制、軟件的質(zhì)量密切相關(guān),是驗(yàn)證軟件質(zhì)量特性的重要手段。軟件測(cè)試在整個(gè)軟件開發(fā)中占據(jù)了一半或一半以上的工作量,而且具有很高的組織管理和技術(shù)難度。搞好軟件測(cè)試,是保證軟件質(zhì)量的關(guān)鍵步驟。在GJB/Z 141-2004《軍用軟件測(cè)試指南》中明確指出,軟件測(cè)試過(guò)程包括四項(xiàng)活動(dòng),按順序分別是:測(cè)試策劃、測(cè)試設(shè)計(jì)和實(shí)現(xiàn)、測(cè)試執(zhí)行、測(cè)試總結(jié)。而測(cè)試用例作為其中一個(gè)關(guān)鍵角色的其生命周期跨越后3個(gè)過(guò)程,測(cè)試用例的設(shè)計(jì)、編寫、執(zhí)行及對(duì)其的分析總結(jié)占據(jù)了整個(gè)測(cè)試過(guò)程的50%以上工作量,可見測(cè)試用例的三性即正確性、有效性和覆蓋充分性直接影響軟件測(cè)試的質(zhì)量,其中有效性還涵蓋了可復(fù)用程度的高低。
2 設(shè)計(jì)測(cè)試用例的目的
進(jìn)行軟件測(cè)試的窮舉往往是不可能的,局限于測(cè)試時(shí)間和所需的資源。為了提高測(cè)試效率,在實(shí)際工作中,可行的做法是從龐大的可用測(cè)試數(shù)據(jù)中用科學(xué)的手段篩選出有普遍性和特異性的測(cè)試數(shù)據(jù)來(lái)實(shí)施測(cè)試。
使用測(cè)試用例的好處主要體現(xiàn)在以下幾個(gè)方面。
(1)在開始實(shí)施測(cè)試之前設(shè)計(jì)好測(cè)試用例,可就避免盲目測(cè)試并提高測(cè)試效率。
(2)在測(cè)試用例的使用令軟件測(cè)試的實(shí)施重點(diǎn)突出、目的明確。
(3)在軟件版本更新后中只需修正少部分的測(cè)試用例便可展開測(cè)試工作,降低工作強(qiáng)度,縮短項(xiàng)目周期。
(4)功能模塊的通用化和復(fù)用化使軟件易于開發(fā),而測(cè)試用例的通用化和復(fù)用化則會(huì)使軟件測(cè)試易于開展,并隨著測(cè)試的不斷精化其效率出不斷攀升。
3 測(cè)試用例的設(shè)計(jì)方法
測(cè)試用例即設(shè)計(jì)一個(gè)情況,軟件程序在情況下,必須能夠正常運(yùn)行并且達(dá)到程序所設(shè)計(jì)的執(zhí)行結(jié)果。測(cè)試用例是測(cè)試方案、方法、技術(shù)和策略的最終載體,內(nèi)容包括測(cè)試目標(biāo)及意義、測(cè)試的軟硬件環(huán)境、輸入數(shù)據(jù)、操作步驟、預(yù)期結(jié)果與期望值、測(cè)試腳本等。
測(cè)試用例的設(shè)計(jì)包含測(cè)試方法、設(shè)計(jì)原則、要素識(shí)別三個(gè)方面。對(duì)于黑盒測(cè)試來(lái)說(shuō)測(cè)試方法的選取,一般可采用邊界值分析法、等價(jià)類劃分法、錯(cuò)誤推測(cè)法、因果法、正交試驗(yàn)法、判定表驅(qū)動(dòng)法等。選擇適用的測(cè)試用例設(shè)計(jì)方法,可以達(dá)到不同的測(cè)試充分性要求。測(cè)試用例設(shè)計(jì)一定要基于測(cè)試需求,不局限于測(cè)試的級(jí)別,如單元測(cè)試、部件測(cè)試、配置項(xiàng)測(cè)試抑或是系統(tǒng)測(cè)試。而測(cè)試需求又來(lái)源于不同的依據(jù)文件如(設(shè)計(jì)文件、需求規(guī)格說(shuō)明、軟件研制任務(wù)書等)。作為測(cè)試用例設(shè)計(jì)的首要原則,基于測(cè)試需求可以在很大程度保證測(cè)試用例的正確性。測(cè)試用例要素如(名稱和標(biāo)識(shí)、追蹤關(guān)系、用例說(shuō)明、測(cè)試的初始化要求、測(cè)試的輸入、期望測(cè)試結(jié)果、操作過(guò)程、評(píng)估標(biāo)準(zhǔn)等)的識(shí)別,則可以保證的測(cè)試結(jié)果的唯一性和可重復(fù)性。對(duì)于測(cè)試需求的正確理解,選取合適的測(cè)試方法,對(duì)測(cè)試用例進(jìn)行完整的描述是提高測(cè)試用例三性的重要途徑。
4 測(cè)試用例設(shè)計(jì)存在的問(wèn)題
4.1 對(duì)測(cè)試需求的不到位提取
部分依據(jù)文件存在功能描述不清晰,功能簡(jiǎn)化現(xiàn)象,在此情況下,測(cè)試人員與客戶溝通不充分,未能進(jìn)行需求的有效提取,導(dǎo)致測(cè)試用例劃分粒度不夠細(xì)致,執(zhí)行效率低,不能有效發(fā)現(xiàn)軟件潛在的問(wèn)題。
測(cè)試人員在進(jìn)行測(cè)試用例的設(shè)計(jì)時(shí),對(duì)關(guān)鍵功能的未做到有效識(shí)別,設(shè)計(jì)時(shí)一刀切,在不重要的功能上設(shè)計(jì)了大量用例,針對(duì)關(guān)鍵功能的用例又少之以少,在時(shí)間、人力成本有限的情況下,測(cè)試用例的執(zhí)行有效性有待進(jìn)一步提高。
4.2 測(cè)試人員技術(shù)能力存在欠缺
在設(shè)計(jì)測(cè)試用例時(shí),測(cè)試人員由于缺乏軟件研發(fā)或測(cè)試經(jīng)驗(yàn),對(duì)于軟件潛在的問(wèn)題識(shí)別不到位,對(duì)于測(cè)試用例的無(wú)效或異常條件考慮不完整或不充分,造成對(duì)缺陷的檢出效率不高。
4.3 對(duì)測(cè)試方法不適宜的選取
在實(shí)際的測(cè)試項(xiàng)目中,需要根據(jù)被測(cè)項(xiàng)的功能特性、輸入輸出數(shù)據(jù)、應(yīng)用場(chǎng)景等確定適用的方法,具體到每個(gè)測(cè)試項(xiàng)目里會(huì)綜合運(yùn)用到多種方法,部分測(cè)試人員設(shè)計(jì)測(cè)試用例時(shí),嚴(yán)重依賴于某一種方法(如錯(cuò)誤猜測(cè)法),不能做到根據(jù)軟件的特點(diǎn)靈活使用各種測(cè)試用例設(shè)計(jì)方法。
4.4 對(duì)測(cè)試用例要素的不完整描述
部分測(cè)試人員認(rèn)為設(shè)計(jì)測(cè)試用例只關(guān)注把測(cè)試的輸入、操作過(guò)程、期望測(cè)試結(jié)果及評(píng)估標(biāo)準(zhǔn),對(duì)測(cè)試用例的初始化,前提和約束等要素簡(jiǎn)化甚至忽略,導(dǎo)致測(cè)試用例在執(zhí)行過(guò)程,由于執(zhí)行的場(chǎng)景不一致,導(dǎo)致測(cè)試結(jié)果不確定,漏檢或者錯(cuò)檢。
4.5 測(cè)試用例可復(fù)用程度低
項(xiàng)目中或者跨項(xiàng)目中很多的公用業(yè)務(wù),固化模塊,這些功能基本上是趨于穩(wěn)定不變的,所以測(cè)試用例之間也存在著某種相似性。其中一部分測(cè)試用例在的執(zhí)行過(guò)度依賴于的環(huán)境變化或測(cè)試輸入,可復(fù)用程度低,造成測(cè)試部門內(nèi)耗嚴(yán)重。
5 完善測(cè)試用例的設(shè)計(jì)
5.1 測(cè)試需求分析要深挖細(xì)做
(1)了解需求的實(shí)現(xiàn)背景;
(2)分析需求的合理性;
(3)明確需求的范圍,挖掘需求文檔中隱藏的需求;
(4)列出需求的框架,包括測(cè)試范圍取各個(gè)功能點(diǎn),測(cè)試的場(chǎng)景等;
(5)及時(shí)確認(rèn)需求漏掉的或者存在問(wèn)題的地方;
(6)識(shí)別需求中關(guān)鍵部分,并劃分優(yōu)先級(jí)。5.2提升測(cè)試用例編寫能力
(1)熟悉業(yè)務(wù),了解系統(tǒng);
(2)用客觀的思考方式站在用戶角度分析;
(3)勤于思考,突破慣性思維,不局限于經(jīng)驗(yàn):
(4)規(guī)范軟件測(cè)試作業(yè)。
5.3 對(duì)測(cè)試設(shè)計(jì)充分說(shuō)明
測(cè)試用例的設(shè)計(jì)方法不是單獨(dú)存在的,具體到每個(gè)測(cè)試項(xiàng)目里會(huì)用到多種方法,往往是綜合使用各種方法以才能有效提高測(cè)試效率和測(cè)試覆蓋度。
(1)首先進(jìn)行等價(jià)類劃分,將無(wú)限測(cè)試變成有限測(cè)試;
(2)任何情況下都必須使用邊界值分析方法;
(3)對(duì)照程序邏輯,檢查補(bǔ)充測(cè)試用例以提高邏輯覆蓋程度;
(4)針對(duì)輸入條件組合的,選用因果法和判定表驅(qū)動(dòng)法;
(5)對(duì)于參數(shù)配置類的軟件,選用正交試驗(yàn)選擇較少的組合方式;
(6)對(duì)于業(yè)務(wù)流清晰的系統(tǒng),用場(chǎng)景法較為適宜;
(7)以錯(cuò)誤猜測(cè)法補(bǔ)充測(cè)試用例。
5.4 測(cè)試用例描述規(guī)范
為了更好地測(cè)試,我們需求為單個(gè)軟件特性定義具體的測(cè)試方法。ANSI/IEEE 829標(biāo)準(zhǔn)稱測(cè)試用例說(shuō)明為編寫用于輸入輸出的實(shí)際數(shù)值和預(yù)期結(jié)果,及使用具體測(cè)試用例產(chǎn)生的測(cè)試程序的限制。測(cè)試用例設(shè)計(jì)說(shuō)明的目的是組織和描述針對(duì)具體特性需要進(jìn)行的測(cè)試。測(cè)試設(shè)計(jì)說(shuō)明就是在測(cè)試計(jì)劃中提煉測(cè)試方法,明確指出設(shè)計(jì)包含的特性及相關(guān)的測(cè)試用例和測(cè)試程序,并指定判斷特性通過(guò)/失敗的規(guī)則。
5.4.1 提高測(cè)試用例復(fù)用度
測(cè)試用例能否成功被復(fù)用很大程度上取決于測(cè)試用例的獨(dú)立性,即能否獨(dú)立地應(yīng)用于不同的應(yīng)用場(chǎng)合和應(yīng)用環(huán)境。軟件測(cè)試的復(fù)用分別適用于手動(dòng)測(cè)試和自動(dòng)測(cè)試。手動(dòng)測(cè)試中測(cè)試用例的復(fù)用,可分為業(yè)務(wù)復(fù)用、數(shù)據(jù)復(fù)用、結(jié)構(gòu)復(fù)用、適用性復(fù)用、用例復(fù)用管理幾種途徑相結(jié)合。
5.4.2 測(cè)試用例評(píng)審
測(cè)試用例完成后,需在測(cè)試提交前評(píng)審?fù)瓿?,用例評(píng)審人一般為項(xiàng)目經(jīng)理、產(chǎn)品經(jīng)費(fèi)、主要的開發(fā)人員、測(cè)試人員。在評(píng)審過(guò)程中盡量避免測(cè)試人員評(píng)審自己編寫的用例,可以采用交叉評(píng)審的方式。用例評(píng)審的主要內(nèi)容為:
(1)是否覆蓋產(chǎn)品需求上的所有功能點(diǎn);
(2)測(cè)試用例本身的描述是否清晰,是否存在二義性;
(3)用例的前提條件、執(zhí)行步驟、輸入數(shù)據(jù)和期待結(jié)果是否清晰、正確;
(4)期待結(jié)果是否有明顯的驗(yàn)證方法;
(5)優(yōu)先級(jí)安排是否合理,是否存在冗余的用例或驗(yàn)證點(diǎn);
(6)是否從用戶層面來(lái)設(shè)計(jì)用戶使用場(chǎng)景和使用流程的測(cè)試用例;
(7)是否包含充分的負(fù)面測(cè)試用例。充分考慮產(chǎn)品的異常流程,并編寫測(cè)試用例進(jìn)行覆蓋;
(8)針對(duì)用例評(píng)審人提出的問(wèn)題,在一定時(shí)間范圍內(nèi)進(jìn)行修正及驗(yàn)證。
6 結(jié)語(yǔ)
本文僅以黑盒測(cè)試為例,論述了提高測(cè)試用例的正確性、有效性和覆蓋充分性的幾種途徑。根據(jù)測(cè)試需求分析得到需求框架,梳理細(xì)化測(cè)試點(diǎn),采用適當(dāng)?shù)挠美O(shè)計(jì)方法,按照標(biāo)準(zhǔn)規(guī)范定義的格式,設(shè)計(jì)出粒度精細(xì)適宜的測(cè)試用例。此外在實(shí)際測(cè)試過(guò)程中,對(duì)測(cè)試人員的培訓(xùn)和質(zhì)量監(jiān)督考核,制定軟件作業(yè)指導(dǎo)書,包括測(cè)試方法、測(cè)試過(guò)程等的規(guī)定及各階段的測(cè)試文檔模板,測(cè)試用例庫(kù)及測(cè)試過(guò)程的管理等,也是提高測(cè)試質(zhì)量的必要手段,本文對(duì)此不作討論。
參考文獻(xiàn)
[1]柳純錄.軟件測(cè)評(píng)師教程[J],清華大學(xué)出版社,2012.
[2] GJB/Z 141-2004軍用軟件測(cè)試指南[z].中國(guó)人民解放軍總裝備部,2004.