文/李勇華 張楠
根據(jù)ISO/IEC17025及相關(guān)規(guī)范要求,第三方軟件測(cè)試服務(wù)都需要有序地開展項(xiàng)目需求分析與策劃、測(cè)試設(shè)計(jì)、測(cè)試執(zhí)行、測(cè)試總結(jié)等各項(xiàng)工作,輸出相應(yīng)的測(cè)評(píng)工作產(chǎn)品。其中測(cè)試設(shè)計(jì)形成測(cè)試說明的過程是整個(gè)測(cè)試項(xiàng)目主要工作,測(cè)試用例設(shè)計(jì)應(yīng)符合唯一性、可追溯性、可重現(xiàn)性等要求。由于第三方測(cè)評(píng)服務(wù)的性質(zhì),被測(cè)對(duì)象通常是全新軟件系統(tǒng),對(duì)測(cè)試人員的技術(shù)把握能力要求很高,且測(cè)試用例難以重用,帶來很多的文檔處理工作。而目前市售的測(cè)試管理系統(tǒng),測(cè)試用例的生成必須由使用者自行設(shè)計(jì)和錄入各類信息,不能實(shí)質(zhì)提升測(cè)試設(shè)計(jì)有效性。為此,本文對(duì)測(cè)試項(xiàng)目開展過程和測(cè)試用例設(shè)計(jì)開展研究,提出了一種基于模型知識(shí)庫(kù)的程序化測(cè)試用例設(shè)計(jì)方法,項(xiàng)目實(shí)踐中取得良好效果。
測(cè)試用例一般包括以下要素:名稱、標(biāo)識(shí)、需求追蹤、前提與約束、測(cè)試步驟、預(yù)期結(jié)果、通過準(zhǔn)則、終止條件、用例說明、備注等。每個(gè)第三方測(cè)評(píng)服務(wù)方對(duì)測(cè)試用例都有對(duì)應(yīng)的格式要求,通行方式是采用表格,每一個(gè)測(cè)試用例表現(xiàn)為一個(gè)表格。
測(cè)試用例的名稱、標(biāo)識(shí)、需求追蹤、終止條件等內(nèi)容一般固定或按簡(jiǎn)單方式變化,測(cè)試設(shè)計(jì)的有效內(nèi)容可以簡(jiǎn)化為測(cè)試步驟、測(cè)試數(shù)據(jù)、限制條件。在項(xiàng)目測(cè)試需求分析時(shí),按照某種約定的編寫規(guī)則分析測(cè)試項(xiàng),明確測(cè)試步驟的過程分支方式、測(cè)試用例數(shù)據(jù)產(chǎn)生方式和覆蓋方式,則可以由一種程序化的方式,對(duì)應(yīng)檢索測(cè)試用例知識(shí)庫(kù)中已經(jīng)存在的條目,產(chǎn)生基礎(chǔ)的測(cè)試用例,從而大幅減少測(cè)試設(shè)計(jì)的工作量和技術(shù)難度。過程如下:
(1)根據(jù)測(cè)試方案的測(cè)試策略,由項(xiàng)目負(fù)責(zé)人對(duì)照整個(gè)項(xiàng)目的等級(jí)、時(shí)間限制等策略要求,設(shè)定測(cè)試用例生成策略。
(2)逐項(xiàng)解析測(cè)試方案中測(cè)試項(xiàng),獲取測(cè)試項(xiàng)中測(cè)試步驟、充分性、限制條件等內(nèi)容的關(guān)鍵字,及其中設(shè)定的測(cè)試用例知識(shí)庫(kù)模型相關(guān)信息。
(3)根據(jù)獲取的測(cè)試項(xiàng)名稱、內(nèi)容等關(guān)鍵字,匹配現(xiàn)有知識(shí)庫(kù)中的測(cè)試用例模型,找到最合適的條目,將其作為測(cè)試用例生成的起始模板,提供最初版用例建議。
(4)對(duì)照測(cè)試用例初始模板,在測(cè)試人員干預(yù)后,匹配測(cè)試用例輸入數(shù)據(jù)、輸出數(shù)據(jù),生成測(cè)試用例表格。
應(yīng)用的關(guān)鍵在于測(cè)試用例模型知識(shí)庫(kù),主要技術(shù)有測(cè)試用例數(shù)據(jù)組織方式、產(chǎn)生模型。
測(cè)試用例數(shù)據(jù)的組織方式?jīng)Q定測(cè)試用例的適用性,應(yīng)該按照領(lǐng)域采用的指導(dǎo)標(biāo)準(zhǔn)來執(zhí)行。對(duì)于普通上架銷售軟件,參考相關(guān)標(biāo)準(zhǔn),軟件質(zhì)量要求包括功能性、可靠性、易用性、效率、維護(hù)性、可移植性、安全性、兼容性等特性,測(cè)試用例數(shù)據(jù)的第一級(jí)可以按照這8個(gè)質(zhì)量特性來組織。對(duì)以上質(zhì)量特性分析可以發(fā)現(xiàn),其中針對(duì)執(zhí)行環(huán)境基本相同的軟件產(chǎn)品,差異最大的就是功能性。目前根據(jù)實(shí)驗(yàn)室工作需要,在第一級(jí)劃分和提取增刪改查類、條件組合類、狀態(tài)轉(zhuǎn)換類、業(yè)務(wù)流程類、錄入檢查類、業(yè)務(wù)操作類等主要類型操作模塊,并在此基礎(chǔ)上進(jìn)一步細(xì)分2~3級(jí)直至具體的用例操作級(jí)別。
測(cè)試數(shù)據(jù)需要覆蓋輸入數(shù)據(jù)和輸出數(shù)據(jù),一般更關(guān)注的是輸入數(shù)據(jù)。測(cè)試用例生成時(shí),在用戶和設(shè)計(jì)者提供的原始數(shù)據(jù)之外,還應(yīng)由已積累的知識(shí)庫(kù)針對(duì)關(guān)鍵字生成合適的典型數(shù)據(jù)。典型數(shù)據(jù)常用的如時(shí)間、經(jīng)緯度、角度等,而在一些行業(yè)或特定領(lǐng)域常用的數(shù)據(jù)和內(nèi)在邊界,如初始配置數(shù)據(jù)、外部環(huán)境狀態(tài)、被測(cè)對(duì)象的狀態(tài)、特殊的用戶數(shù)據(jù)序列、敏感數(shù)據(jù)信息等,則需要通過實(shí)驗(yàn)室運(yùn)作逐步積累。一種測(cè)試輸入數(shù)據(jù)產(chǎn)生參考模型如圖1所示。
我們基于以上設(shè)計(jì)方法實(shí)現(xiàn)了一種實(shí)用測(cè)試方法,對(duì)應(yīng)主要工作有三個(gè)方面:
為便于程序化生成測(cè)試說明,測(cè)試說明文檔的主體內(nèi)容在結(jié)構(gòu)上拆分為測(cè)試用例設(shè)計(jì)方法說明和測(cè)試用例表格兩個(gè)部分。每個(gè)測(cè)試用例表格則由輔助工具自動(dòng)生成。用例表格操作過程部分由測(cè)試步驟構(gòu)成,測(cè)試點(diǎn)部分則由每個(gè)測(cè)試數(shù)據(jù)和預(yù)期結(jié)果對(duì)應(yīng)一個(gè)測(cè)試點(diǎn)。測(cè)試用例設(shè)計(jì)方法說明部分,描述測(cè)試用例設(shè)計(jì)的分解策略、測(cè)試用例的數(shù)據(jù)產(chǎn)生策略,在測(cè)試用例表格生成后,綜合測(cè)試方案中內(nèi)容和測(cè)試用例表格的標(biāo)題內(nèi)容,通過輔助工具自動(dòng)產(chǎn)生這部分內(nèi)容,人工進(jìn)行必要調(diào)整補(bǔ)充即可。
輔助工具采用Python開發(fā),由4個(gè)模塊組成:
圖1:一種測(cè)試輸入數(shù)據(jù)產(chǎn)生參考模型
(1)測(cè)試用例生成模塊:掃描測(cè)試方案文檔,提取對(duì)應(yīng)的測(cè)試項(xiàng)和關(guān)鍵內(nèi)容;針對(duì)每個(gè)測(cè)試項(xiàng),查找和匹配測(cè)試用例庫(kù)模型,形成初始的測(cè)試用例記錄列表;提供人工編輯測(cè)試數(shù)據(jù)界面,對(duì)確認(rèn)后的測(cè)試用例內(nèi)容寫入到指定的Excel文件中。
(2)文檔生成模塊:提取excel文件內(nèi)容,生成測(cè)試用例表格;隨后按照測(cè)試說明模板,生成測(cè)試用例設(shè)計(jì)方法說明及測(cè)試用例追蹤表
(3)測(cè)試用例庫(kù)管理功能:支持測(cè)試用例庫(kù)模型和測(cè)試數(shù)據(jù)數(shù)值的編輯、導(dǎo)入導(dǎo)出、靈活配置
(4)系統(tǒng)設(shè)置模塊:提供設(shè)置文件路徑、模板名稱、保存條件、簡(jiǎn)單日志等系統(tǒng)運(yùn)行相關(guān)的內(nèi)容。
目前應(yīng)用中,測(cè)試用例庫(kù)對(duì)照標(biāo)準(zhǔn)按照質(zhì)量特性組織,對(duì)應(yīng)提供了基本測(cè)試用例和匹配,每個(gè)系列的測(cè)試用例逐級(jí)確定級(jí)別編號(hào)和代號(hào)。以實(shí)現(xiàn)難度最大的功能部分為例,在目前輔助工具中,第一級(jí)實(shí)現(xiàn)了增刪改查類、條件組合類、狀態(tài)轉(zhuǎn)換類、業(yè)務(wù)流程類、錄入檢查類、業(yè)務(wù)操作類等6種類型。每種類型再進(jìn)一步細(xì)分出不同應(yīng)用場(chǎng)景,例如增刪改查類中,代號(hào)GN01010101,代表增加操作-通過界面錄入增加數(shù)據(jù)記錄-未限制輸入集-輸入數(shù)據(jù)典型值,在輔助工具進(jìn)行設(shè)計(jì)時(shí),每個(gè)測(cè)試項(xiàng)的設(shè)計(jì)人員確定第一級(jí)類別后,按照策略確定需要進(jìn)一步細(xì)化的級(jí)別(至少到第二級(jí)),然后在列表中選擇需要納入的測(cè)試點(diǎn),輔助工具會(huì)自動(dòng)根據(jù)測(cè)試方案和數(shù)據(jù)類型邊界產(chǎn)生一些默認(rèn)典型測(cè)試數(shù)據(jù),設(shè)計(jì)人員更改確認(rèn)后,即可產(chǎn)生測(cè)試項(xiàng)的測(cè)試用例內(nèi)容,寫入到指定的excel文件中。
在廣東省電子政務(wù)暢通工程中某數(shù)據(jù)共享目錄體系建設(shè)的驗(yàn)收測(cè)試中,測(cè)試項(xiàng)目組6人通過采用以上測(cè)試用例設(shè)計(jì)方法,僅僅4天時(shí)間完成了原來需要10天的測(cè)試用例設(shè)計(jì)工作,工作效率大大提升。在時(shí)間緊、任務(wù)重的情況下,由于采用程序化的設(shè)計(jì)模式,有效規(guī)避了一些低級(jí)錯(cuò)誤,在審核階段測(cè)試說明問題報(bào)告率同比下降30%,保證測(cè)試設(shè)計(jì)的質(zhì)量控制在水平線之上。
本文提出的測(cè)試用例設(shè)計(jì)方法,其應(yīng)用成功的關(guān)鍵在于測(cè)試用例模型的組織方式和豐富程度,及相關(guān)的測(cè)試用例生成策略的劃分粒度。推廣應(yīng)用該設(shè)計(jì)方法,將大幅降低第三方測(cè)試的用例設(shè)計(jì)工作強(qiáng)度和技術(shù)難度,同時(shí)可有力推動(dòng)測(cè)試用例設(shè)計(jì)規(guī)范化和行業(yè)應(yīng)用評(píng)測(cè)的深入。