淺談測(cè)試框架的設(shè)計(jì)與測(cè)試數(shù)據(jù)是否分離
現(xiàn)在基本每個(gè)項(xiàng)目都開(kāi)始或多或少的有自動(dòng)化測(cè)試用例了,當(dāng)然也就有了一些測(cè)試框架,還有一些比較有名的開(kāi)源框架比如,selenium staf等等,如果目前項(xiàng)目中你要負(fù)責(zé)開(kāi)發(fā)一款自動(dòng)化測(cè)試框架呢,前段時(shí)間負(fù)責(zé)一款接口測(cè)試自動(dòng)化測(cè)試框架的設(shè)計(jì)開(kāi)發(fā),它不同于以往我開(kāi)發(fā)的測(cè)試框,他是和數(shù)據(jù)庫(kù)打交道的,所以如何讓準(zhǔn)備數(shù)據(jù)更靈活更方便是我著重考慮的,目前開(kāi)發(fā)已完成并且很好用。哈哈
正好在著說(shuō)說(shuō)測(cè)試框架設(shè)計(jì)
測(cè)試框架,目前業(yè)內(nèi)來(lái)看就三種:
1、錄制回放的框架
2、數(shù)據(jù)驅(qū)動(dòng)的框架,這種框架又分為數(shù)據(jù)和用例分類和數(shù)據(jù)與用例為一體,當(dāng)然他們各有利弊
3、關(guān)鍵字驅(qū)動(dòng)的測(cè)試框架
總的來(lái)說(shuō),第一種最簡(jiǎn)單,但是缺點(diǎn)也很明顯,不以維護(hù),第二種和第三種不相伯仲,需要根據(jù)具體的問(wèn)題具體分析,但是第三其實(shí)有一些人工智能的影子,可以代碼生成代碼,BDD測(cè)試(Behavior. Driven Development)框架,比如jbehave easyb其實(shí)就可以看做關(guān)鍵字驅(qū)動(dòng)的測(cè)試框架
數(shù)據(jù)驅(qū)動(dòng)的測(cè)試框架,在上個(gè)我負(fù)責(zé)的項(xiàng)目中,實(shí)際我也是使用這個(gè)方案的,數(shù)據(jù)驅(qū)動(dòng)的框架中,數(shù)據(jù)時(shí)重點(diǎn),如何讓用戶更容易的造數(shù)和是用他是你框架成功與否!這里大家簡(jiǎn)單來(lái)看其實(shí)就是一個(gè)三層結(jié)構(gòu),數(shù)據(jù)準(zhǔn)備層,測(cè)試過(guò)程規(guī)范層,drive層,負(fù)責(zé)執(zhí)行等等
這里的數(shù)據(jù)是否分離呢,其實(shí)這個(gè)問(wèn)題是沒(méi)有更好答案的,要具體問(wèn)題具體分析,因?yàn)閿?shù)據(jù)如果分離,以后的case變化可能只需要維護(hù)數(shù)據(jù),case的代碼是不用動(dòng)的。當(dāng)時(shí)你能控制的是數(shù)據(jù)塊,可能是一個(gè)文件等等,不方便深入到數(shù)據(jù)的內(nèi)部。如果不分離好處是,你在case中一眼能看到你的數(shù)據(jù),你想測(cè)試的是什么,并且整個(gè)測(cè)試過(guò)程是你可見(jiàn),測(cè)試數(shù)據(jù)完全可控制的,比如一個(gè)log,已\001分割,你可以完全控制log中分割的每個(gè)字段。但是會(huì)增加維護(hù)的成本,目前我剛開(kāi)發(fā)完成的框架支持以上兩種數(shù)據(jù)提供,測(cè)試人員根據(jù)具體情況使用
關(guān)鍵字驅(qū)動(dòng)框架,如果需求是數(shù)據(jù)和業(yè)務(wù)case盡可能的分離,那第三種方式是比較適合的,它可以保證業(yè)務(wù)與實(shí)現(xiàn)分離,數(shù)據(jù)與業(yè)務(wù)分離,層次清晰,易于維護(hù)。
大家還可以嘗試一下代碼生成代碼,在上個(gè)我寫(xiě)的框架中,就運(yùn)用了這個(gè)方法,很多common的東西,有固定格式的項(xiàng)目的具體的代碼文件都可以考慮用代碼生成代碼,能很大限度的提高效率。
版權(quán)聲明:本文出自 shadowwalker 的51Testing軟件測(cè)試博客:http://www.51testing.com/?622454
原創(chuàng)作品,轉(zhuǎn)載時(shí)請(qǐng)務(wù)必以超鏈接形式標(biāo)明本文原始出處、作者信息和本聲明,否則將追究法律責(zé)任。
posted on 2013-04-26 14:13 順其自然EVO 閱讀(341) 評(píng)論(0) 編輯 收藏 所屬分類: selenium and watir webdrivers 自動(dòng)化測(cè)試學(xué)習(xí)