qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問(wèn) http://qaseven.github.io/

          自動(dòng)化測(cè)試的數(shù)據(jù)依賴和獨(dú)立

          自動(dòng)化測(cè)試剛 開(kāi)始的時(shí)候,基于錄制回放,輸入的都是頁(yè)面上你實(shí)際輸入的數(shù)據(jù)。如果我希望測(cè)試一個(gè)合法的登錄和一個(gè)非法的登錄,同樣的腳本不一樣的數(shù)據(jù)而已,我不想有兩 個(gè)腳本,那么就需要對(duì)數(shù)據(jù)進(jìn)行參數(shù)化。最好,數(shù)據(jù)與腳本分離,以便更加清晰和容易維護(hù)。因此,自動(dòng)化測(cè)試中引入了“數(shù)據(jù)驅(qū)動(dòng)”的概念,即用獨(dú)立于腳本的測(cè) 試數(shù)據(jù)來(lái)驅(qū)動(dòng)腳本的運(yùn)行。

          單個(gè)腳本的數(shù)據(jù)問(wèn)題可以這樣處理,那么多個(gè)腳本之間的數(shù)據(jù)共享和傳遞呢?比如,一個(gè)系統(tǒng)有兩個(gè)模塊:上游模塊A,下游模塊BB的輸入是A的輸出。這里有一個(gè)問(wèn)題:B的數(shù)據(jù)怎么創(chuàng)建?有人會(huì)馬上想到數(shù)據(jù)傳遞啊,把A模塊的輸出寫到一個(gè)公共變量或者數(shù)據(jù)表中,B模塊從這里拿數(shù)據(jù)開(kāi)始自己的執(zhí)行。是的,這是自動(dòng)化測(cè)試工具提供的功能。可是,如果某次運(yùn)行,模塊A有新的缺陷,造不出B預(yù)期的輸入數(shù)據(jù),會(huì)導(dǎo)致B的自動(dòng)化腳本失敗。當(dāng)我們看到失敗后,是否費(fèi)力排查下來(lái)才發(fā)現(xiàn)A才是B失敗的罪魁禍?zhǔn)祝慷绻?/span>A是成功的(A是否失敗要看是否有關(guān)于這個(gè)缺陷的相關(guān)驗(yàn)證),則更具有蒙蔽性,很難快速想到問(wèn)題可能出在A。這里舉的例子還相對(duì)簡(jiǎn)單,若系統(tǒng)中模塊間的交互更多、更復(fù)雜,數(shù)據(jù)的問(wèn)題、腳本的問(wèn)題、程序本身的缺陷就象幾個(gè)毛線團(tuán)纏繞在一起,排查問(wèn)題的根本原因?qū)⒑馁M(fèi)大量的人力,并讓人沮喪。更有甚者,上游一失效,下游所有相關(guān)功能測(cè)試全部失敗,即使他們本來(lái)是沒(méi)有缺陷的。這樣的自動(dòng)化也太脆弱了,簡(jiǎn)直和天氣預(yù)報(bào)一樣經(jīng)常誤報(bào)啊!

          如 此看來(lái),測(cè)試數(shù)據(jù)的依賴確實(shí)給我們添了不少亂子。那我們是否可以這樣做?即使本來(lái)兩個(gè)功能之間有數(shù)據(jù)的傳遞,也為每個(gè)單獨(dú)的功能預(yù)埋其輸入數(shù)據(jù)(而非依賴 上游在執(zhí)行過(guò)程中產(chǎn)生這樣的數(shù)據(jù))。這樣當(dāng)一個(gè)功能失效后我們能夠迅速定位到它。當(dāng)然,這樣做的一個(gè)風(fēng)險(xiǎn)就是可能隱藏某模塊不能正確產(chǎn)生其它模塊希望的正確輸出,而這種問(wèn)題對(duì)于用戶的端到端的操作是嚴(yán)重的問(wèn)題。

          因此,我建議在多個(gè)腳本的測(cè)試數(shù)據(jù)上綜合使用以上兩種方法。“數(shù)據(jù)獨(dú)立”適用于測(cè)試不穩(wěn)定的功能(如新功能),或者容易出錯(cuò)的功能(如老功能中復(fù)雜的邏輯),方便查找原因。“數(shù)據(jù)依賴”適用于測(cè)試穩(wěn)定的功能/接 口或者基本業(yè)務(wù)流程,有了它的保障,我們對(duì)端到端的正確性更有信心。當(dāng)“數(shù)據(jù)獨(dú)立”和“數(shù)據(jù)依賴”在一次運(yùn)行中都有時(shí),如果“數(shù)據(jù)獨(dú)立”的腳本失敗,我們 從“數(shù)據(jù)獨(dú)立”的單個(gè)腳本開(kāi)始排查問(wèn)題;如果“數(shù)據(jù)依賴”的腳本失敗,同時(shí)“數(shù)據(jù)獨(dú)立”的腳本也在相關(guān)處失敗,則從“數(shù)據(jù)獨(dú)立”的單個(gè)腳本開(kāi)始排查問(wèn)題, 否則從“數(shù)據(jù)依賴”的腳本處排查問(wèn)題。

          posted on 2011-10-25 14:41 順其自然EVO 閱讀(244) 評(píng)論(0)  編輯  收藏 所屬分類: 測(cè)試學(xué)習(xí)專欄

          <2011年10月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 泾川县| 申扎县| 井冈山市| 江油市| 大足县| 门头沟区| 边坝县| 平泉县| 松江区| 潮安县| 大足县| 马尔康县| 河北省| 阳高县| 松阳县| 巴彦淖尔市| 双江| 昌图县| 射阳县| 句容市| 绥化市| 波密县| 龙南县| 海淀区| 潼南县| 灵寿县| 民县| 广河县| 滕州市| 九寨沟县| 嘉荫县| 吉安县| 天柱县| 隆德县| 石家庄市| 新巴尔虎左旗| 鲁甸县| 洛隆县| 南溪县| 青海省| 泽库县|