<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

    blog已經(jīng)轉(zhuǎn)移至github,大家請訪問 http://qaseven.github.io/

    如何創(chuàng)建自動化功能測試的基本原則

     介紹
      每個實行持續(xù)交付的項目,都有生產(chǎn)流水線的元素,如持續(xù)集成和自動化測試。這些測試是在不同層面進行的,從單元測試到冒煙測試再到功能測試。自動化功能測試的優(yōu)點之一是可重復(fù)性和可預(yù)測的執(zhí)行時間。出于這個原因,它應(yīng)該作為軟件質(zhì)量的每一個構(gòu)建之后的指標。功能測試自動化往往會成為一個瓶頸,所以你應(yīng)該熟悉一下如何創(chuàng)建這樣的測試的基本原則。
      首先設(shè)計你的測試
      測試集合可以比作盆景樹。
      最初的時候,我們照顧樹根和樹干。我們選擇會成長的主要分支,我們每天都細心照料這棵樹并等待它長出健康的葉子。
      我們可以以類似的方式繼續(xù)測試。
      我們建一個將負責(zé)應(yīng)用程序主要功能(例如:開啟)的基類。
      根據(jù)說明,我們先明確將被測試覆蓋的應(yīng)用程序的主要功能,然后每天我們在執(zhí)行測試的時候都添加更多平行測試。
      每一個支持測試(例如創(chuàng)建一個新的用戶)的方法都需要與測試分離——讓我們在單獨的類里面來實現(xiàn)。
      你應(yīng)該在包括了應(yīng)用程序主要功能的目錄里保持類。
      去建一個規(guī)定很多功能共有方法的抽象類是很好的做法。
      如果你正在測試Web應(yīng)用程序,就用頁面對象設(shè)計模式。該模式里,一個類及其方法對應(yīng)了單個頁面的功能或一個大型網(wǎng)頁里單個頁面上的一個元素。
      無需事事自動化
      自動化花費很多,所以你應(yīng)該主要測試應(yīng)用程序的主要功能。
      某些測試可以快速輕松地手動完成,且潛在腳本可能難以實現(xiàn)。
      值得用到自動化的是那些繁瑣的需要被重復(fù)很多次的,和那些需要大量數(shù)據(jù)驗證的測試工作。
      寫短測試
      在一個或多個測試失敗的情況下,開發(fā)團隊的任何成員都應(yīng)該能夠輕松地找到錯誤的原因。
      出于這個原因,每個測試方法里應(yīng)該最多有5個斷言,并且每個方法都必須提供的測試操作的完整記錄。
      明智的做法是使用BDD(行為驅(qū)動開發(fā))技術(shù),但是當(dāng)你沒有用一個特定的測試框架時,你應(yīng)該把接下來的測試步驟放在comments //given //when //then下。
      創(chuàng)建獨立測試
      在測試類中的每個方法應(yīng)該是一個獨立的實體,而不是依賴于其他測試。我們應(yīng)該能夠在任何時間運行單個測試。否則,這樣的測試用例集將來維護起來就會很貴——必須定期跟蹤和更新測試之間的聯(lián)系。
      很多時候,測試需要一定的前提條件來滿足。這些條件不應(yīng)該用外部方法,應(yīng)該在試驗開始時運行。如果這些條件和測試類的所有方法一樣,它們就可以被放在一開始進行的方法里(例如:在JUnit中被標記為@ BeforeClass)。
      關(guān)注可讀性
      源代碼應(yīng)該是自我記錄的,而寫下以下幾行代碼的每個利益相關(guān)者應(yīng)該明白測試在做什么,為什么它被這么寫。盡量避免在源代碼注釋,因為它也必須被更新。這值得花比平常多一點的時間來命名方法,從而使你的代碼更易讀。
      再看看行為驅(qū)動開發(fā)技術(shù),每個測試方法都應(yīng)以單詞“應(yīng)該”開始,而不是“測試”。
      根據(jù)這一慣例,我們馬上就可以明白一個特定的方法測試什么內(nèi)容了,它在分析測試報告時特別有用。

    測試必須要快
      正如在本文開頭所提到的,自動化功能測試應(yīng)該是應(yīng)用程序質(zhì)量的一個指標。連續(xù)傳遞過程中的每一步都應(yīng)指明最長持續(xù)時間;并且根據(jù)這個概念,開發(fā)團隊應(yīng)該盡快獲得有關(guān)軟件質(zhì)量的反饋。自動化功能測試的持續(xù)時間應(yīng)不超過幾分鐘。
      對一個非常全面的測試集來說,有必要并行運行測試(經(jīng)常在不同的機器上)。虛擬化在這里可能是非常有幫助的。
      創(chuàng)建抗變測
      最常提及自動化功能測試的缺點是其對應(yīng)用程序中變化的低抵抗性,尤其是在GUI中。
      在Web應(yīng)用程序中,測試應(yīng)該能抵抗網(wǎng)站的內(nèi)容的變化。測試應(yīng)該只驗證功能,這就使得它可以在不同的位置運行測試。這并不意味著我們不應(yīng)該編寫自動化測試來檢查網(wǎng)頁的內(nèi)容。
      如果你已經(jīng)想創(chuàng)建這樣的測試,你應(yīng)該遵循DDT(數(shù)據(jù)驅(qū)動測試)技術(shù)。這意味著,檢查內(nèi)容是與源代碼分離開的。
      Web應(yīng)用程序的頁面布局變化非常頻繁,這已經(jīng)影響到了用戶界面。
      當(dāng)你設(shè)計一個界面時,每個區(qū)段和每個頁面你都應(yīng)該有一個你可以用來測試的唯一標識符,即使一個網(wǎng)站的層次結(jié)構(gòu)發(fā)生了變化。
      自動化測試無法取代人類
      功能自動化測試可以是項目中的主要測試技術(shù),但絕不是唯一的一個。
      自動化測試是可重復(fù)再生的,他們的覆蓋范圍總是相同的。
      另一方面,雖然探索性測試是低再生的,但是它們能夠覆蓋自動化測試未觸及的區(qū)域。
      你還應(yīng)該記住,自動化測試的“綠色”狀態(tài)并不意味著你的應(yīng)用程序是沒有錯誤的。
      這種情況往往會讓測試員分心,而且有可能會影響測試的準確性。

    posted on 2014-04-11 10:54 順其自然EVO 閱讀(194) 評論(0)  編輯  收藏 所屬分類: 測試學(xué)習(xí)專欄

    <2014年4月>
    303112345
    6789101112
    13141516171819
    20212223242526
    27282930123
    45678910

    導(dǎo)航

    統(tǒng)計

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 97av免费视频| 欧洲精品99毛片免费高清观看| 国产三级在线观看免费| 亚洲国产美女精品久久久久| 无码人妻丰满熟妇区免费| 亚洲精品国产精品乱码视色| 成人免费777777被爆出| 亚洲av永久无码精品表情包| 久9久9精品免费观看| 亚洲成年轻人电影网站www | 亚洲一级片免费看| 一级午夜a毛片免费视频| 国产综合亚洲专区在线| 国产精品视频白浆免费视频| 亚洲综合久久1区2区3区| 久久久久久国产a免费观看黄色大片| 亚洲一区二区三区四区视频 | eeuss草民免费| 久久国产精品亚洲综合| 免费在线观看h片| 亚洲国产精品无码久久九九大片 | 亚洲一区欧洲一区| 国产免费观看青青草原网站| 国产特黄一级一片免费| 久久国产亚洲高清观看| 国产精品无码免费播放| 亚洲免费日韩无码系列| 亚洲一区中文字幕久久| 国产精品99久久免费| 13小箩利洗澡无码视频网站免费| 亚洲国产精品成人精品软件| 国产色爽免费视频| 四虎影视在线影院在线观看免费视频| 亚洲天堂一区二区三区四区| 夜色阁亚洲一区二区三区| 久久精品免费观看国产| 国产成人不卡亚洲精品91| 五月天网站亚洲小说| 国产大片免费观看中文字幕| 免费黄网站在线观看| 亚洲AV无码一区二区三区电影 |