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