qileilove

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

          簡(jiǎn)單說(shuō)說(shuō)自動(dòng)化測(cè)試框架

           什么是框架framework?

            ● 整個(gè)或部分系統(tǒng)的可重用設(shè)計(jì),表現(xiàn)為一組抽象構(gòu)件以及構(gòu)件實(shí)例間交互的方法;

            ● 可被開發(fā)者定制的應(yīng)用骨架。

            前者是從應(yīng)用方面、而后者是從目的方面給出的定義。測(cè)試框架也是如此,測(cè)試框架出現(xiàn)的最終目的是花少量的資源來(lái)完成盡可能多的測(cè)試任務(wù),所以測(cè)試框架的建立以及框架的重用性方面是最值得測(cè)試人員深入探究的地方。

            什么是測(cè)試框架?

            測(cè)試框架是一組自動(dòng)化測(cè)試的規(guī)范、測(cè)試腳本的基礎(chǔ)代碼,以及測(cè)試思想、慣例的集合。

            測(cè)試框架的好處在于:

            ● 減少冗余代碼、提高代碼生產(chǎn)率、提高代碼重用性和可維護(hù)性。提高開發(fā)速度,提升測(cè)試代碼的執(zhí)行效率;

            ● 提高軟件代碼質(zhì)量,同時(shí)引入重構(gòu)概念,讓代碼更干凈和富有彈性;

            ● 提升系統(tǒng)的可信賴度,作為回歸測(cè)試的一種實(shí)現(xiàn)方法支持修復(fù)后“再測(cè)試”,確保代碼的正確性。

            自動(dòng)化測(cè)試框架介紹

            自動(dòng)化測(cè)試框架一般可以分為上下兩個(gè)層次,上層是管理整個(gè)自動(dòng)化測(cè)試的開發(fā),執(zhí)行以及維護(hù),在比較龐大的項(xiàng)目中,它體現(xiàn)重要的作用,它可以管理整個(gè)自動(dòng)測(cè)試,包括自動(dòng)化測(cè)試用例執(zhí)行的次序、測(cè)試腳本的維護(hù)、以及集中管理測(cè)試用例、測(cè)試報(bào)告和測(cè)試任務(wù)等。下層主要是測(cè)試腳本的開發(fā),充分的使用相關(guān)的測(cè)試工具,構(gòu)建測(cè)試驅(qū)動(dòng),并完成測(cè)試業(yè)務(wù)邏輯。

            測(cè)試驅(qū)動(dòng)_A

            測(cè)試驅(qū)動(dòng)是一個(gè)自動(dòng)化測(cè)試框架的核心,其決定整個(gè)自動(dòng)化腳本設(shè)計(jì)。當(dāng)前比較流行的測(cè)試驅(qū)動(dòng)有數(shù)據(jù)驅(qū)動(dòng)和關(guān)鍵字驅(qū)動(dòng)。

            ● 數(shù)據(jù)驅(qū)動(dòng)

            測(cè)試驅(qū)動(dòng)引擎從數(shù)據(jù)源獲取測(cè)試數(shù)據(jù),然后將數(shù)據(jù)以參數(shù)的形式傳遞給測(cè)試腳本,最后通過(guò)執(zhí)行測(cè)試腳本,驗(yàn)證測(cè)試結(jié)果,并將測(cè)試結(jié)果輸出。一般數(shù)據(jù)源與測(cè)試結(jié)果存儲(chǔ)在數(shù)據(jù)庫(kù)、Excel文件、CSV文件等。數(shù)據(jù)驅(qū)動(dòng)主要優(yōu)點(diǎn)是:測(cè)試腳本與測(cè)試數(shù)據(jù)的分離,當(dāng)應(yīng)用功能變更時(shí),只需要修改該功能部分的腳本;執(zhí)行測(cè)試用例的人員不需要了解測(cè)試腳本的實(shí)現(xiàn),只關(guān)注測(cè)試數(shù)據(jù)表與測(cè)試報(bào)告表。而且測(cè)試腳本的執(zhí)行是離散的,即非線性的,測(cè)試人員可以有選擇的執(zhí)行測(cè)試用例。

            測(cè)試驅(qū)動(dòng)_B

            ● 關(guān)鍵字驅(qū)動(dòng)

            關(guān)鍵字驅(qū)動(dòng)的自動(dòng)化測(cè)試框架是在數(shù)據(jù)驅(qū)動(dòng)的基礎(chǔ)上進(jìn)行改進(jìn),數(shù)據(jù)源里包含的不只是數(shù)據(jù),還有關(guān)鍵字,一個(gè)測(cè)試用例由一個(gè)或若干個(gè)關(guān)鍵字組成。每個(gè)關(guān)鍵字對(duì)應(yīng)個(gè)不同的業(yè)務(wù)邏輯,例如,登錄、注銷等。數(shù)據(jù)表通過(guò)關(guān)鍵字,查找映射表,執(zhí)行相關(guān)的腳本。

            驅(qū)動(dòng)引擎是對(duì)數(shù)據(jù)表的數(shù)據(jù)進(jìn)行分析,根據(jù)不同的測(cè)試數(shù)據(jù)或關(guān)鍵字調(diào)用相應(yīng)測(cè)試腳本。驅(qū)動(dòng)引擎還需完成一些測(cè)試環(huán)境初始化、全局參數(shù)設(shè)置、測(cè)試用例是否執(zhí)行的判斷,以及測(cè)試報(bào)告的處理等。

            測(cè)試腳本開發(fā)_A

            ● 腳本劃分

            為了方便以后腳本的維護(hù)問(wèn)題,必須對(duì)腳本進(jìn)行有效的分層,同時(shí),提高了腳本的復(fù)用率。

            → 公共類庫(kù)

            公共類庫(kù)包括所有模塊都可能用戶的操作方法,其抽象了不同模塊同性,比如操作excel表的方法、讀寫測(cè)試報(bào)告、驅(qū)動(dòng)引擎等。

            → 模塊特定類庫(kù)

            在模塊內(nèi)部將可以為該模塊共享使用的方法抽象出來(lái),作為一個(gè)公共類。它可以是一個(gè)單的邏輯操作,也比較獨(dú)立。比如客戶端登錄操作、控制臺(tái)登錄操作、控制臺(tái)更新操作等。

            → 測(cè)試用例腳本

            測(cè)試用例腳在最上層,它根據(jù)測(cè)試點(diǎn)進(jìn)行設(shè)計(jì),面向具體的應(yīng)用。它可直接調(diào)用公共類庫(kù)或模塊特定類庫(kù)的方法,即調(diào)單個(gè)邏輯操作。它是單個(gè)或多個(gè)邏輯操作的集合,即一個(gè)測(cè)試用戶腳本。

           測(cè)試腳本開發(fā)_B

            ● 腳本規(guī)范

            測(cè)試腳本的開發(fā)也要遵循編程的規(guī)則與標(biāo)準(zhǔn),應(yīng)該統(tǒng)一規(guī)劃,所有開發(fā)腳本的人員按照統(tǒng)一的規(guī)定進(jìn)行編碼。除了編程本身規(guī)范,還考慮測(cè)試用例與庫(kù)函數(shù)名的命名。

            例如,項(xiàng)目M4.1客戶端登錄測(cè)試用例可命名為:TC_M4.1_client_login;讀取excel表的函數(shù)可命名為:read_excel。

            測(cè)試用例

            ● 測(cè)試用例粒度

            測(cè)試用例的粒度決定了用例模型級(jí)的復(fù)雜度,也決定了每一個(gè)用例內(nèi)部的復(fù)雜度。應(yīng)該根據(jù)每個(gè)系統(tǒng)的具體情況來(lái)把握各個(gè)層次的復(fù)雜度,在盡可能保證整個(gè)用例模型的易理解性前提下決定用例的大小和數(shù)目。用例不能太大,這樣一旦出執(zhí)行測(cè)試用例出錯(cuò),不利于定位問(wèn)題;但也不能太細(xì)化,太小則不方便執(zhí)行。

            ● 測(cè)試用例與測(cè)試套件

            一個(gè)大型的項(xiàng)目有許功能模塊,必然會(huì)產(chǎn)生大量的測(cè)試用例,怎樣才能有效的管理這些測(cè)試用例呢?這就需要?jiǎng)?chuàng)建測(cè)試套件,通過(guò)測(cè)試套件將測(cè)試某一個(gè)模塊或功能點(diǎn)的測(cè)試用例集合起來(lái),方便運(yùn)行與管理。例如,只驗(yàn)證“用戶管理”模塊功能,則只需要執(zhí)行“用戶管理”模塊套件即可。

            選擇適合自動(dòng)化測(cè)試的用例

            通常適合自動(dòng)化測(cè)試的用例有:

            ● 產(chǎn)品型項(xiàng)目

            產(chǎn)品型的項(xiàng)目,新版本是在舊版本的基礎(chǔ)上進(jìn)行改進(jìn),功能變不大的項(xiàng)目,但項(xiàng)目的新老功能都必須重復(fù)的測(cè)試。

            ● 回歸測(cè)試

            回歸測(cè)試是自動(dòng)化測(cè)試的強(qiáng)項(xiàng),它能夠很好的驗(yàn)證你是否引入了新的缺陷,老的缺陷是否修改過(guò)來(lái)了。在某種程度上可以把自動(dòng)化測(cè)試工具叫做回歸測(cè)試工具。

            ● 機(jī)械并頻繁的測(cè)試

            每次需要輸入相同、大量的一些數(shù)據(jù),并且在一個(gè)項(xiàng)目中運(yùn)行的周期比較長(zhǎng)。

            有一些交互性比較強(qiáng),需要人工干預(yù)的操作,就不要指望通過(guò)自動(dòng)化測(cè)試來(lái)完成了。例如,用戶使用U-Key登錄。

            軟件自動(dòng)化框架的發(fā)展

            基于界面的軟件自動(dòng)化測(cè)試框架和工具的發(fā)展大致經(jīng)歷了三個(gè)階段

            1.簡(jiǎn)單的錄制/回放:由工具錄制并記錄操作的過(guò)程和數(shù)據(jù)形成腳本,通過(guò)回放來(lái)重復(fù)人工操作的過(guò)程。在這種模式下數(shù)據(jù)和腳本混在一起,幾乎一個(gè)測(cè)試用例對(duì)應(yīng)一個(gè)腳本,維護(hù)成本很高。而且即使界面的簡(jiǎn)單變化也需要重新錄制,腳本可重復(fù)使用的效率低。

            2.數(shù)據(jù)驅(qū)動(dòng) (data_driven)的自動(dòng)化測(cè)試:從數(shù)據(jù)文件讀取輸入數(shù)據(jù),通過(guò)變量的參數(shù)化,將測(cè)試數(shù)據(jù)傳入測(cè)試腳本,不同的數(shù)據(jù)文件對(duì)應(yīng)不同的測(cè)試用例。在這種模式下數(shù)據(jù)和腳本分離,腳本的利用率、可維護(hù)性大大提高,但受界面變化的影響仍然很大。

            3.關(guān)鍵字驅(qū)動(dòng)(keyword_driven)的自動(dòng)化測(cè)試:關(guān)鍵字驅(qū)動(dòng)測(cè)試是數(shù)據(jù)驅(qū)動(dòng)測(cè)試的一種改進(jìn)類型,它將測(cè)試邏輯按照關(guān)鍵字進(jìn)行分解,形成數(shù)據(jù)文件,關(guān)鍵字對(duì)應(yīng)封裝的業(yè)務(wù)邏輯。 主要關(guān)鍵字包括三類:被操作對(duì)象(Item),操作(Operation)和值(value),用面向?qū)ο笮问娇蓪⑵浔憩F(xiàn)為 Item.Operation(Value)。關(guān)鍵字驅(qū)動(dòng)的主要思想是:腳本與數(shù)據(jù)分離、界面元素名與測(cè)試內(nèi)部對(duì)象名分離、測(cè)試描述與具體實(shí)現(xiàn)細(xì)節(jié)分離。

            從上面可以看到,自動(dòng)化測(cè)試框架和腳本的發(fā)展是和軟件工程思想的發(fā)展一脈相承的。軟件開發(fā)的模式從面向機(jī)器、到面向過(guò)程、再到面向?qū)ο蟆⒚嫦蚍?wù),是一個(gè)從底層到高層、從具體到抽象、復(fù)用的粒度從細(xì)到粗的發(fā)展過(guò)程。而軟件開發(fā)中的模塊化、層次化、松耦合等思想對(duì)自動(dòng)化測(cè)試框架的設(shè)計(jì)都具有借鑒意義。



          posted on 2013-06-21 15:38 順其自然EVO 閱讀(575) 評(píng)論(0)  編輯  收藏


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          <2013年6月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 顺昌县| 澳门| 醴陵市| 耒阳市| 长顺县| 手游| 日照市| 涿州市| 福泉市| 泽库县| 钟祥市| 龙泉市| 江安县| 夏邑县| 临海市| 光山县| 通山县| 乐陵市| 团风县| 太湖县| 株洲市| 拜城县| 丰台区| 哈尔滨市| 塘沽区| 靖边县| 浠水县| 舒城县| 马边| 广宁县| 松原市| 社会| 柯坪县| 舒城县| 沐川县| 南京市| 西林县| 南江县| 托克逊县| 萍乡市| 栾川县|