<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          測(cè)試人如何高效地設(shè)計(jì)自動(dòng)化測(cè)試框架?

          共 1707字,需瀏覽 4分鐘

           ·

          2021-06-11 11:21

          關(guān)于測(cè)試框架的好處,比如快速回歸提高測(cè)試效率,提高測(cè)試覆蓋率等這里就不討論了。這里主要討論自動(dòng)化框架包含哪些內(nèi)容,以及如何去設(shè)計(jì)一個(gè)測(cè)試框架。


          什么是自動(dòng)化測(cè)試框架?


          它是由一個(gè)或多個(gè)自動(dòng)化測(cè)試基礎(chǔ)模塊、自動(dòng)化測(cè)試管理模塊、自動(dòng)化測(cè)試統(tǒng)計(jì)模塊等組成的工具集合。

          以常見(jiàn)的前端UI測(cè)試為例,一個(gè)測(cè)試框架大概包括測(cè)試對(duì)象,測(cè)試組件,基礎(chǔ)類和函數(shù),工具類,測(cè)試數(shù)據(jù),異常處理,測(cè)試日志,斷言和測(cè)試報(bào)告等這些模塊。
          在設(shè)計(jì)測(cè)試框架的時(shí)候,我們要盡可能的將這些模塊有機(jī)的結(jié)合起來(lái),將腳本能夠有效的組織、連貫應(yīng)用起來(lái),提高測(cè)試腳本的可維護(hù)性和可讀性。


          好框架的定義


          由于應(yīng)用系統(tǒng)技術(shù)五花八門,幾乎沒(méi)有測(cè)試框架能應(yīng)用在多個(gè)項(xiàng)目上并體現(xiàn)出應(yīng)有的價(jià)值,所以一般情況都需要根據(jù)項(xiàng)目自身情況來(lái)定制化我們的測(cè)試框架,常用的有數(shù)據(jù)驅(qū)動(dòng),關(guān)鍵字驅(qū)動(dòng)和兩種方式的混合。

          a. 數(shù)據(jù)驅(qū)動(dòng) (DDT)- 如果被測(cè)系統(tǒng)業(yè)務(wù)邏輯固定不變或變動(dòng)較小,我們可以使用數(shù)據(jù)驅(qū)動(dòng),通過(guò)不同數(shù)據(jù)來(lái)保證測(cè)試覆蓋率,通常數(shù)據(jù)都是保存在外面文件或數(shù)據(jù)庫(kù)中,運(yùn)行時(shí)自動(dòng)獲取。特點(diǎn)是數(shù)據(jù)與測(cè)試腳本分離,基于模塊化的測(cè)試庫(kù),一個(gè)驅(qū)動(dòng)腳本可以執(zhí)行多個(gè)相似測(cè)試,這樣非常容易建立新測(cè)試。
          b.關(guān)鍵字驅(qū)動(dòng) - 將數(shù)據(jù)與關(guān)鍵字結(jié)合來(lái)描述如何使用數(shù)據(jù)執(zhí)行測(cè)試。這種方法具備數(shù)據(jù)驅(qū)動(dòng)的優(yōu)勢(shì),同時(shí)非編程人員也能建立新類型測(cè)試。


          設(shè)計(jì)框架的思路


          1
          高內(nèi)聚低耦合

          高內(nèi)聚就是每個(gè)模塊盡可能獨(dú)立完成自己的功能,不依賴于模塊外部的代碼;低耦合就是模塊與模塊之間接口的復(fù)雜程度,比如在類內(nèi)部盡可能減少方法之間的調(diào)用,否則一個(gè)方法的變動(dòng)會(huì)影響調(diào)用它的另一個(gè)方法。
          比如,你要做兩個(gè)功能:對(duì)文本文件的讀寫,對(duì) word 讀寫,同是IO你可以放在一個(gè)類里的不同方法,高內(nèi)聚。

          比如,寫了一個(gè)類,“人”類,“人”有自己的名字年齡等屬性,每個(gè)“人”又有一條狗做為自己的屬性,你可以把“人”類的屬性和“人”的狗的屬性都寫在“人”類里,這就成了高耦合。


          而把狗的屬性剝離出來(lái),寫成“狗”類,在“人”類里只放一個(gè)對(duì)“狗”的對(duì)象做引用,這個(gè)“狗”類,即可做為“人”的屬性,也可以做它用。即 低耦合


          2
          腳本分離

          對(duì)象、測(cè)試數(shù)據(jù)、業(yè)務(wù)邏輯相互剝離、靈活調(diào)用,在前端UI測(cè)試上可以得到明顯的效果,我們可以使用PageObject設(shè)計(jì)模式來(lái)實(shí)現(xiàn)對(duì)象和業(yè)務(wù)邏輯的剝離,使用DataProvider來(lái)實(shí)現(xiàn)數(shù)據(jù)業(yè)務(wù)邏輯分離。


          3
          模塊化設(shè)計(jì)用例

          如果時(shí)間充裕且項(xiàng)目提供支持,可以遵循以下順序進(jìn)行測(cè)試:頁(yè)面對(duì)象 - 功能點(diǎn) - 業(yè)務(wù)邏輯 - 業(yè)務(wù)流程。

          從實(shí)現(xiàn)來(lái)說(shuō)就是:先測(cè)試底層的頁(yè)面操作對(duì)象,通過(guò)調(diào)用操作對(duì)象、及業(yè)務(wù)邏輯實(shí)現(xiàn)對(duì)功能點(diǎn)的驗(yàn)證,再通過(guò)調(diào)用業(yè)務(wù)邏輯組合功能點(diǎn)實(shí)現(xiàn)對(duì)業(yè)務(wù)流程的驗(yàn)證。不同的業(yè)務(wù)流程,對(duì)于底層的操作組件、中間層的功能點(diǎn)函數(shù)是完全可以復(fù)用的,只是調(diào)用的業(yè)務(wù)邏輯的差異,或者是測(cè)試數(shù)據(jù)的差異性。這樣的好處是腳本相互獨(dú)立性,代碼復(fù)用,易維護(hù),如有新的業(yè)務(wù)流程可以調(diào)用已有代碼來(lái)組合。


          4
          封裝基礎(chǔ)方法

          對(duì)于一些較通用的方法,可以封裝,比如log,assert,異常處理,文件讀寫操作,數(shù)據(jù)庫(kù)讀寫操作,保存頁(yè)面截圖等等。在需要的時(shí)候直接在測(cè)試用例里調(diào)用即可。


          如何開(kāi)展自動(dòng)化測(cè)試


          住業(yè)務(wù)測(cè)試工作中的痛點(diǎn)和領(lǐng)導(dǎo)的痛點(diǎn),多溝通多交流,優(yōu)先解決基層的工作痛點(diǎn),我相信一個(gè)好的領(lǐng)導(dǎo)會(huì)看到你的責(zé)任心和付出;

          技術(shù)選型和方案可行性調(diào)研,多投入時(shí)間和精力,有的人性子急,前期做的很快,如果一開(kāi)始的方向錯(cuò)了,最終會(huì)得不償失;
          果是比較復(fù)雜的解決方案,盡量前后端分離、保證各模塊的獨(dú)立性、可融合性、解耦不解體,做到靈活可擴(kuò)展,要有下一盤大棋的準(zhǔn)備。

          原文鏈接https://www.cnblogs.com/clarke157/p/7323413.html



          -------- THE END --------

          ??

          瀏覽 71
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  黄色成人视频在线观看 | 精品国产免费无码久久噜噜噜AV | 香蕉国产视频2024 | 一级A片一毛片大全 | 18禁黄免费 |