自動(dòng)化測試用例設(shè)計(jì)的原則

原文

忙的話直接看粗體字道盏。

1 自動(dòng)化測試用例的范圍往往是核心業(yè)務(wù)流程或者重復(fù)執(zhí)行率較高的芍锦。

在選取自動(dòng)化測試用例范圍時(shí)节芥,很多測試工程師或者上級(jí)領(lǐng)導(dǎo)可能心里會(huì)過分依賴自動(dòng)化測試显晶,會(huì)認(rèn)為自動(dòng)化測試就應(yīng)該覆蓋所有的手工測試用例有滑,自動(dòng)化測試的覆蓋率就應(yīng)該達(dá)到百分之百跃闹。其實(shí)恰好相反,這樣的想法往往會(huì)導(dǎo)致自動(dòng)化測試最終失敗毛好。在一些大型項(xiàng)目中望艺,往往測試用例的數(shù)量會(huì)很龐大,而且如果遇到一些繁雜的被測程序(特別是C/S架構(gòu))肌访,腳本開發(fā)工作往往會(huì)相當(dāng)耗時(shí)間找默,并且很多測試用例甚至根本就不能通過自動(dòng)化來實(shí)現(xiàn)。舉些例子场靴,現(xiàn)在很多公司自動(dòng)化測試都是剛起步啡莉,對(duì)自動(dòng)化測試的了解程度只是停留在字面上,在公司對(duì)測試也不是非常重視的情況下旨剥,當(dāng)然不太愿意去花精力招一個(gè)具有自動(dòng)化測試開發(fā)經(jīng)驗(yàn)的工程師咧欣,很多還是停留在使用工具的錄制回放功能來完成自動(dòng)化測試。正是存在這樣的技術(shù)限制情況下轨帜,往往在實(shí)施中魄咕,會(huì)出現(xiàn)很多錄制回放不能解決的問題,測試工具完全無法識(shí)別測試對(duì)象蚌父,無法識(shí)別一些特殊的加密測試控件哮兰。還有,如果項(xiàng)目的變更頻率苟弛,測試用例數(shù)量大的話喝滞,增加了后期的維護(hù)工作量等,都是造成最終失敗的一些隱患膏秫。投入越大右遭,損失越大。因此缤削,往往我們會(huì)選取最核心的一些業(yè)務(wù)路徑或者是重復(fù)執(zhí)行率較高的一些手工測試用例進(jìn)行自動(dòng)化測試窘哈,這樣能夠充分發(fā)揮出自動(dòng)化測試的優(yōu)勢。

2 自動(dòng)化測試用例的選擇一般以“正向”為主亭敢。

手工測試用例分正常情況和異常情況滚婉,在設(shè)計(jì)的時(shí)候,可能往往會(huì)去設(shè)計(jì)很多異常情況來驗(yàn)證程序是否有Bug帅刀,并且一個(gè)正常情況的測試用例往往會(huì)對(duì)應(yīng)幾十個(gè)非正常情況的測試用例让腹,而每種異常情況的測試用例都會(huì)有各種各樣的預(yù)期結(jié)果远剩。在自動(dòng)化測試中,很多人喜歡將正常情況稱為“正向”哨鸭;反之民宿,異常情況則稱為“反向”。下面像鸡,我們?cè)囅胍韵禄钣ィ绻麑⑦@些異常情況全部轉(zhuǎn)化、反應(yīng)到自動(dòng)化測試腳本中只估,那肯定需要非常繁瑣的判斷才能做到志群。這個(gè)對(duì)于自動(dòng)化測試工程師來說,其現(xiàn)有的工作量還是今后的腳本維護(hù)量都是不可小視的蛔钙。對(duì)于整個(gè)自動(dòng)化測試項(xiàng)目來說锌云,如果每個(gè)異常情況都要寫進(jìn)腳本中,那真的是花了大價(jià)錢買一堆小東西吁脱,小東西真正能發(fā)揮大作用的畢竟很少桑涎。因此,真正在自動(dòng)化測試項(xiàng)目實(shí)施中兼贡,往往會(huì)舍棄反向用例攻冷,個(gè)別比較重要的除外。使每個(gè)東西都能發(fā)揮其最大的作用才是企業(yè)最想看到的遍希。功能自動(dòng)化測試主要還是用于回歸測試等曼,回歸測試的目的就是保證新增功能后老功能是否能夠正常繼續(xù)運(yùn)作。而自動(dòng)化測試則是讓測試人員從繁瑣又枯燥的重復(fù)手工測試中解放出來凿蒜,這就是目的和目標(biāo)禁谦。

3 不是所有手工測試用例都可以使用自動(dòng)化測試來實(shí)現(xiàn)的。

這里糾正許多測試從業(yè)人員的一個(gè)錯(cuò)誤觀念废封,剛接觸測試自動(dòng)化的普遍都會(huì)認(rèn)為手工測試用例全部要轉(zhuǎn)化為自動(dòng)化測試用例州泊,但是在真正實(shí)施的時(shí)候,卻發(fā)現(xiàn)很多測試用例是自動(dòng)化無法實(shí)現(xiàn)的漂洋,或者有些測試用例根本就沒有必要去自動(dòng)化的遥皂。例如,有些用例會(huì)牽涉到硬件設(shè)備輔助的氮发,最簡單的例子就是用例執(zhí)行過程中需要使用刷卡機(jī)才能獲取卡號(hào)信息(如果有技術(shù)能力,當(dāng)然不排除自行開發(fā)接口供測試工具調(diào)用冗懦,但畢竟能有技術(shù)實(shí)力做到這一步的不多爽冕,能有這樣的重視程度的更不多);再比如披蕉,有些測試用例是需要與合作機(jī)構(gòu)進(jìn)行互動(dòng)聯(lián)調(diào)颈畸,聯(lián)調(diào)時(shí)是需要和對(duì)方實(shí)時(shí)溝通乌奇,以及根據(jù)具體情況給予響應(yīng)的,這些情況多數(shù)還是只能使用手工人為地來完成眯娱。當(dāng)然礁苗,決定是否轉(zhuǎn)化為自動(dòng)化測試,必須事先有一個(gè)規(guī)范文檔來定義哪些是需要轉(zhuǎn)化為自動(dòng)化測試哪些是不需要的徙缴,否則測試工程師就會(huì)不知所措试伙,沒有一個(gè)標(biāo)準(zhǔn)。一旦有了這個(gè)標(biāo)準(zhǔn)于样,自動(dòng)化測試工程師就可以嚴(yán)格按照文檔里的流程去完成需要轉(zhuǎn)化部分的自動(dòng)化測試用例的腳本開發(fā)工作了疏叨。

4 手工測試用例可以不用回歸原點(diǎn)做院,而自動(dòng)化用例往往是必須的巩掺。

很多有經(jīng)驗(yàn)的自動(dòng)化測試從業(yè)人員一定有這樣的經(jīng)歷,很多時(shí)候腳本寫完后民逼,第一次執(zhí)行沒有任何問題糊余,而第二次執(zhí)行時(shí)立刻就會(huì)報(bào)錯(cuò)秀又,原因就是沒有回歸原點(diǎn)。所謂回歸原點(diǎn)就是執(zhí)行的測試用例最終需要恢復(fù)其在執(zhí)行前的初始狀態(tài)贬芥,如果沒有回歸原點(diǎn)吐辙,就會(huì)把此腳本稱之為死腳本。舉個(gè)最簡單的例子誓军,比如添加用戶功能袱讹,我們都知道每個(gè)用戶名都是唯一的,當(dāng)寫完一個(gè)添加用戶的腳本之后昵时,執(zhí)行第一次沒有問題捷雕,因?yàn)閳?zhí)行前此用戶還不存在,但是當(dāng)執(zhí)行第二次時(shí)壹甥,程序就會(huì)出現(xiàn)用戶重復(fù)而報(bào)錯(cuò)救巷,此時(shí)這個(gè)添加用戶的腳本就失去了它的價(jià)值,在這種情況下句柠,我們就需要在自動(dòng)化測試用例的最后加上刪除這個(gè)用戶的步驟浦译,這樣在下次執(zhí)行用例時(shí)就不會(huì)出現(xiàn)用戶重復(fù)的情況了。當(dāng)然溯职,除了回歸原點(diǎn)精盅,還可以使用另一種方式進(jìn)行,那就是初始化數(shù)據(jù)谜酒,比如ATM機(jī)取款叹俏,假設(shè)需要執(zhí)行取款100元的操作,而銀行卡余額是120元僻族,當(dāng)測試腳本第一次執(zhí)行時(shí)可能沒有任何問題粘驰,但是第二次系統(tǒng)就會(huì)報(bào)余額不足屡谐,這樣就成為了死腳本,解決方案有兩種:一種是直接進(jìn)行初始化數(shù)據(jù)蝌数,每次執(zhí)行用例之前都重置下余額(只需大于100即可)愕掏;第二種方法可以在用例執(zhí)行前,先查詢下余額是否大于100顶伞,若大于等于則繼續(xù)饵撑,若小于則做一筆充值100的操作,這樣即可解決枝哄。兩種方式可以看具體情況使用肄梨,數(shù)據(jù)初始化方便,但有時(shí)候初始化之后可能會(huì)影響到其他自動(dòng)化測試用例的執(zhí)行挠锥,而第二種方式相對(duì)在腳本上需要稍微花點(diǎn)功夫众羡。究竟使用哪種方式還需要具體情況具體分析”妥猓總之粱侣,在執(zhí)行自動(dòng)化測試用例之前做好數(shù)據(jù)準(zhǔn)備,這也是自動(dòng)化測試的關(guān)鍵步驟蓖宦。

5 自動(dòng)化測試用例和手工測試用例不同齐婴,不需要每個(gè)步驟都寫預(yù)期結(jié)果。

在手工測試用例的設(shè)計(jì)過程中稠茂,幾乎每一個(gè)測試步驟都有一個(gè)預(yù)期結(jié)果柠偶。但是,在自動(dòng)化測試用例的設(shè)計(jì)中并不采用睬关,在自動(dòng)化測試用例中诱担,只有準(zhǔn)備在測試腳本中設(shè)置成檢查點(diǎn)的步驟才有預(yù)期結(jié)果,其他所有的步驟只將它看作一個(gè)步驟电爹,這樣做的好處是一目了然蔫仙、目的明顯、層次分明丐箩,以后寫測試腳本直接跟著自動(dòng)化測試用例就行了摇邦。因?yàn)榻?jīng)過前面的探討應(yīng)該已經(jīng)知道,自動(dòng)化測試中并不是所有的東西都需要驗(yàn)證的屎勘。所以施籍,作者在前面的章節(jié)中也提到過,基本上手工測試用例多多少少都要進(jìn)行一些轉(zhuǎn)換的概漱,就是因?yàn)樗鼈冎g的格式是不一致的丑慎。舉一個(gè)簡單的例子,假設(shè)需要設(shè)計(jì)一個(gè)注冊(cè)頁面的自動(dòng)化測試用例,有10幾個(gè)表單需要填寫立哑,在手工測試用例中,每個(gè)表單的填寫都一定會(huì)有預(yù)期結(jié)果姻灶,因?yàn)樗拇_在檢查每一項(xiàng)是對(duì)了還是錯(cuò)了铛绰,只是用的是你的眼睛在檢查而已,所以速度非常的快产喉,甚至你自己潛意識(shí)都忽略了其實(shí)你已經(jīng)檢查了捂掰。但是,在自動(dòng)化測試中曾沈,我們知道如果你要檢查这嚣,那一定需要寫代碼,如果每項(xiàng)都檢查塞俱,那代碼量有多大是可想而知的姐帚,不是說做不到,只是這樣做根本不符合自動(dòng)化測試的特點(diǎn)障涯。所以罐旗,絕大部分時(shí)候,這些在自動(dòng)化測試中可有可無的檢查唯蝶,我們?nèi)俊安粰z查”九秀,只當(dāng)做一個(gè)業(yè)務(wù)流程和步驟,是不需要設(shè)立預(yù)期結(jié)果的粘我。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末鼓蜒,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子征字,更是在濱河造成了極大的恐慌都弹,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,907評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件柔纵,死亡現(xiàn)場離奇詭異缔杉,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)搁料,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門或详,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人郭计,你說我怎么就攤上這事霸琴。” “怎么了昭伸?”我有些...
    開封第一講書人閱讀 164,298評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵梧乘,是天一觀的道長。 經(jīng)常有香客問我,道長选调,這世上最難降的妖魔是什么夹供? 我笑而不...
    開封第一講書人閱讀 58,586評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮仁堪,結(jié)果婚禮上哮洽,老公的妹妹穿的比我還像新娘。我一直安慰自己弦聂,他們只是感情好鸟辅,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著莺葫,像睡著了一般匪凉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上捺檬,一...
    開封第一講書人閱讀 51,488評(píng)論 1 302
  • 那天再层,我揣著相機(jī)與錄音,去河邊找鬼堡纬。 笑死树绩,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的隐轩。 我是一名探鬼主播饺饭,決...
    沈念sama閱讀 40,275評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼职车!你這毒婦竟也來了瘫俊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,176評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤悴灵,失蹤者是張志新(化名)和其女友劉穎扛芽,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體积瞒,經(jīng)...
    沈念sama閱讀 45,619評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡川尖,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了茫孔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片叮喳。...
    茶點(diǎn)故事閱讀 39,932評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡缰贝,死狀恐怖馍悟,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情剩晴,我是刑警寧澤侵状,帶...
    沈念sama閱讀 35,655評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站毅整,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏悼嫉。R本人自食惡果不足惜诽俯,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望承粤。 院中可真熱鬧,春花似錦闯团、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽候味。三九已至刃唤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間白群,已是汗流浹背尚胞。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留帜慢,地道東北人笼裳。 一個(gè)月前我還...
    沈念sama閱讀 48,095評(píng)論 3 370
  • 正文 我出身青樓粱玲,卻偏偏與公主長得像躬柬,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子允青,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 摘自51testing軟件測試網(wǎng),原文鏈接自動(dòng)化測試用例設(shè)計(jì)原則卵沉。 很多公司在實(shí)施自動(dòng)化測試的過程中,往往會(huì)把所有...
    Leo_0626閱讀 4,196評(píng)論 0 11
  • 1.測試與軟件模型 軟件開發(fā)生命周期模型指的是軟件開發(fā)全過程史汗、活動(dòng)和任務(wù)的結(jié)構(gòu)性框架木柬。軟件項(xiàng)目的開發(fā)包括:需求淹办、設(shè)...
    宇文臭臭閱讀 6,725評(píng)論 5 100
  • 1.測試與軟件模型 軟件開發(fā)生命周期模型指的是軟件開發(fā)全過程眉枕、活動(dòng)和任務(wù)的結(jié)構(gòu)性框架。軟件項(xiàng)目的開發(fā)包括:需求速挑、設(shè)...
    Mr希靈閱讀 21,957評(píng)論 7 278
  • 一谤牡、了解自動(dòng)化測試的目的和作用 自動(dòng)化測試是為了讓測試人員從繁瑣重復(fù)的機(jī)械式測試過程中解脫出來,把時(shí)間和精力投入到...
    小布丁DIng閱讀 2,943評(píng)論 1 13
  • 目錄:一個(gè)主角 目錄 上一章節(jié):一個(gè)主角(一) 下一章節(jié):一個(gè)主角(三) 4. 我已經(jīng)是主角了翅萤? 看著滿地晃瞎眼睛...
    大故事家閱讀 661評(píng)論 0 0