使用NModel自動(dòng)生成測(cè)試用例 軟件測(cè)試
在前面的網(wǎng)站自動(dòng)化系統(tǒng)里面,大概聊了下如何結(jié)合Selenium生成的代碼和VSTT創(chuàng)建一個(gè)簡單的自動(dòng)化系統(tǒng)。雖然在文章網(wǎng)站測(cè)試自動(dòng)化系統(tǒng)—基于Selenium和VSTT、數(shù)據(jù)驅(qū)動(dòng)測(cè)試、在測(cè)試代碼中硬編碼測(cè)試數(shù)據(jù)里,我講了一些封裝代碼以及測(cè)試數(shù)據(jù)的技巧,規(guī)避后續(xù)開發(fā)過程中,程序員修改代碼時(shí),對(duì)測(cè)試程序帶來的影響。但是每次程序員做出大的改動(dòng)的時(shí)候,測(cè)試人員還是要修改大量的測(cè)試代碼,更糟糕的是,每次大的改動(dòng),又涉及到測(cè)試覆蓋是否足夠的問題。為了規(guī)避類似的風(fēng)險(xiǎn),以及幫助測(cè)試人員創(chuàng)建盡量多的測(cè)試用例,有些人提出了模型驅(qū)動(dòng)測(cè)試的概念。
模型驅(qū)動(dòng)測(cè)試的想法和飛機(jī)的風(fēng)洞測(cè)試差不多,即根據(jù)功能需求說明書,對(duì)要測(cè)試的程序先建立一個(gè)模型,然后有另外一個(gè)程序分析這個(gè)模型,產(chǎn)生測(cè)試用例。就好比為了驗(yàn)證新飛機(jī)的氣動(dòng)布局,不可能建一個(gè)全比例的飛機(jī),去測(cè)試它的布局是否合理;而是建立一個(gè)小的飛機(jī)模型,模型的氣動(dòng)布局和整機(jī)的布局是一致的。飛機(jī)模型建好以后,才放到風(fēng)洞里面測(cè)試一下。
市面上已經(jīng)有幾個(gè)做模型驅(qū)動(dòng)測(cè)試的工具了,這里我用的是NModel,本來想拿SpecExplorer嘗一下鮮的,但最后發(fā)現(xiàn)這個(gè)想法太貴了—需要安裝了Visual Studio 2010才能使用“免費(fèi)”的SpecExplorer。你可以在這個(gè)網(wǎng)頁里下載 NModel:
http://nmodel.codeplex.com/
在NModel中,測(cè)試人員使用C#創(chuàng)建程序的模型,模型創(chuàng)建的原理是:
1.程序是用來處理數(shù)據(jù)的,數(shù)據(jù)也可以稱作狀態(tài)(State);
2.用戶通過程序提供的操作界面來處理數(shù)據(jù),操作界面也可以稱作動(dòng)作(Action);
3.數(shù)據(jù)的更動(dòng) 又反過來影響一些動(dòng)作是否可以執(zhí)行。
比如說,使用Word的時(shí)候,剛啟動(dòng)程序時(shí)是沒有任何數(shù)據(jù)的,這個(gè)時(shí)候有些動(dòng)作,例如“保存”是禁用的。當(dāng)用戶通過“新建”這個(gè)動(dòng)作創(chuàng)建了一個(gè)新文件(數(shù)據(jù)),這個(gè)新文件反過來激活“保存”動(dòng)作。
因此當(dāng)測(cè)試人員建模時(shí),他要做的工作就是將程序的動(dòng)作和狀態(tài)抽象出來,并且描述動(dòng)作和狀態(tài)相互影響的過程。
來看一個(gè)例子,假如現(xiàn)在要測(cè)試一個(gè)用戶登錄程序,登錄界面就是一個(gè)輸入用戶名和密碼的文本框,而程序支持的用戶有兩種:管理員和授權(quán)用戶。
相關(guān)推薦:2011年上半年計(jì)算機(jī)軟考時(shí)間及科目安排
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |