成功的自動化測試實施

成功的自動化測試實施

  摘要:

  談到什麼能組成一次自動化測試的"恰當實施",經常會關注你需要用的工具,但是那僅僅是一部分。巴斯迪傑斯特拉詳細說明了你需要考慮的其他四件事,它們如何有助於你的自動化測試的成功,以及未關注它們任一件事會存在適當的風險。

  對組織機構來講,指望快速交付質量,執行自動化測試是軟體開發周期中一個重要組成部分。測試自動化,無論如何,當恰當實施時只能成功。論及什麼組成測試自動化的"恰當實施"經常關注於任務必須使用的什麼工具,或者最好(假如甚至有這樣一個事物)或者最高效的為給予的任務使用特定工具的方法。

  依我看來,雖然,使用的工具只是整體自動化測試的一個部分。任何成功的自動化測試的實施是有五個獨特的部分組成的。

  在這篇文章,我們看一看這些部分的每一個,它們如何致力於你的測試自動化實施的成功,以及關聯到不能適當關注它們中任一件的風險。

  一、測試自動化工具

  雖然不是在成功的測試自動化實施中充當角色的唯一因素,工具顯然在你的自動化努力整體結果中起了影響。選擇一款工具與你測試的應用程序不兼容的工具,或者一個不適合你的自動化團隊的技能的工具,將導致不太理想的結果。

  然而甚至比選擇工具更重要的是,自問什麼正是你的自動化測試想要覆蓋的,然後再決定更高效的獲取那個結果的方法。一個要被問到的問題的典型例子是在什麼級別上一個特定的功能模塊或者業務邏輯需要被確認。

  你想要確認你的用戶能打開你的網店,搜索一個特定的產品,隨後加入購物車並支付一個訂單嗎?你可能將想要使用端到端的用戶介面驅動測試去檢查這個。假如你正要確認一塊邏輯的正確性以決定是否一個用戶被允許去購買一個特定的物品(比如由於國家或國家層面的規定),然後你將可能在較低的級別上編寫測試,將其連接到你的應用程序中,比如一個應用程序介面或者甚至簡單的代碼分類。這構成了一個不同的測試範圍和方法,因此需要一個不同的工具。

  簡而言之,確保你首先知道花時間在如何達到預期結果之前你的自動化測試需要驗證什麼。記住在使你的工具做它並不被設計的事上有一個重大風險。

  二、測試數據

  任何嚴肅的測試自動化解決方案的另一個重要的因素是管理測試數據的方法。測試範圍越廣,越重要,而且也要求更高的,測試數據管理來了。

  當在單元測試里你能遠離模擬所有你的測試依賴的數據,當你開始在集成上工作時或者端到端測試,你將需要在測試下呈現你應用程序里特定的數據。並且,為了使事情更加複雜,你將經常在處於試驗階段同時在某一個特定的國家裡要其他系統里的數據以與你的連通的應用程序交互。

  有一些在這些測試類型中處理測試數據的方法:

  ·在測試開始階段創造要求的測試數據

  ·在開始測試前為了存在的測試數據去查詢系統

  ·開始測試執行前在測試階段初始化你的應用程序資料庫

  這些方法每一個都有它的潛在危險:

  ·在測試的開始階段創建測試數據增加測試執行時間,在測試本身甚至開始啟動前增加失敗的風險,並且導致很多無用的測試數據假如沒有合適的數據清理程序。

  ·當你在開始測試前為存在的測試數據去查詢系統時,你啟動了偶然使用非法測試數據的風險,或者沒有有著合適的優先順序出現在系統里的測試數據。

  ·在測試執行前初始化資料庫讓你能夠管理和保持最新的資料庫快照--那就是,如果允許你首先執行一個資料庫恢復過程。

  注意沒有合適的為集成和端到端測試的測試數據處理方法。無論如何,選擇錯誤的程序,或者根本未能定位測試數據問題,將可能導致自動化測試解決方案變得不可重複利用,不可維護,或者不可測量。

  三、測試環境

  莫諾利斯正在快速地重蹈恐龍的覆轍。現代信息技術系統由許多相互連通的組件,服務,和為傳遞業務價值而工作一起的應用程序組成。對測試目的,無論如何,這通常不是好消息:必須管理和依賴相關項的可用性,尤其是那些在你的控制循環外的那些,對於你的集成和端到端測試,可能會導致大量開銷,挫敗,和測試時間的延遲。當你想要創造和使用自動測試作為你的測試方法的一部分時可靠性和易管理的測試環境仍然是關鍵。

減少失敗或者不存在測試環境風險的一個辦法是使用模擬技術比如樁,模擬,和服務虛擬化以複製在你的測試環境下關鍵性的而難獲取的獨立性的行為。做模擬真實的獨立性行為的模擬足夠完成你想要執行的測試用例,還能大大提升你的自動化測試速度--因此也提升你的開發工作力度。

 如果有任何疑問,歡迎添加qq群測試入門到大神 755431660 共同學習~

?????


推薦閱讀:

零基礎,2018軟體測試面試題
0基礎軟體測試培訓
Bug它只會讓你更強大!
軟體測試工程師人手必備的一隻:TOM貓,可以帶你裝逼帶你飛!
想學軟體測試?想找軟體測試培訓?

TAG:軟體測試培訓 |