測試框架原理,構建成功的基石
本文開始逐步的降低公眾號更文頻率,提升文章質量,幫忙多點點文章末右下角的“ 好看 ”支援下,也可以將本文分享到朋友圈或你身邊的朋友,謝謝
構建測試框架是軟體測試從業者最具挑戰性的工作之一,這是一個既費時又複雜的過程。但一旦構建了正確的測試框架就可以幫助團隊更有效的測試、減少測試設計和維護工作,並可以獲取更好的ROI(回報投資率),能夠幫助團隊改進和優化流程。
使用良好的測試框架,可以提升測試的效率,使得測試覆蓋率得到進一步的提升,但我們清晰的知道,開始是一個痛苦的過程,通過本文你可以得到測試框架的基本原理。
在深入研究如何構建測試框架和技巧之前,讓我們想回顧下軟體開發生命週期的基本塊:需求、測試、缺陷和釋出。
在開發生命週期中的需求描述了應用程式應該是什麼,能做什麼事,需求是開展一切的起點。在進行工作前,要列出需求,你應該問一問以下幾個問題:
- 你想做什麼?
- 需要什麼來實現?
- 該怎麼做呢?
下面我們來看一張簡單的圖:
不管做什麼業務,需求是成功的至關重要的起點,這是我們開展工作的起點,在上圖中,我們把測試分成了三個部分:定義、集合、環境。
一旦我們確定了需求,那就可以通過測試來確保應用程式的行為符合需求預期,對於每個測試,可以由一個測試 定義 來概括。
而這些測試可以是單個的,也可以是一系列的,從而形成所謂的測試集合。
而對於這些單個的測試或測試集合,我們必然要明確其最後在哪裡執行,即規定其執行環境,從作業系統到瀏覽器、解析度等等。
一旦定義了測試並執行它們,那麼也就會得到系列的缺陷,根據缺陷我們可以溯源到對應的需求。
上述整個的過程對於我們建立測試框架是非常重要的。
那麼問題來了,什麼是測試框架呢?
優秀的測試框架是我們測試的一個起點,是我們構建測試計劃的基石,可以將需求與測試連結起來,可以確保程式行為符合預期,可以在發現缺陷時溯源需求,從根源提供問題的解決方案。
測試框架定義
測試框架是一組用於建立和指導構建測試用例的原則,它幫助我們將實踐與工具結合從而更有效的進行測試設計,包括但不限於編碼標準、測試資料管理和設計、測試報告結構等等。
構建這樣一個標準化流程的測試框架可以使團隊更快高效的建立測試和提升測試覆蓋率。程式碼的開發也將能夠從更高的維度進行分離,從而做到高度的複用。這種做法對於構建一個成功的企業級測試框架至關重要。
接下來會分節說明如何進行分離,做到高複用。
1. 定義
構建測試框架的第一步是確定需求,在構建測試框架時,首先要做的是標識並詳細說明貫穿整個過程的基礎流,怎麼標識?通過下面的問題來進行
- 使用者群體是?
- 使用者為什麼要用?
- 在哪些場景下使用者在用?
2. 分解
構建測試框架的下一步就是將工作流程分解成原子顆粒,與每個步驟相關聯的單獨操作,請注意不是指單元或單元測試,在這個階段我們要始終從使用者視角出發考慮,我們可以通過以下問題來梳理分解:
- 原子行為動作是什麼,其輸入引數是什麼?
- 這些原子行為動作是結果會是怎麼樣的?
- 工作流邏輯是什麼?
- 如何退出整個工作流?
3. 決策
構建測試框架的第三階段就是決策,這可能是最棘手的階段了,因為還有幾個至關重要的步驟需要做:
- 在什麼樣的環境下使用?
- 哪些是可以複用的?
- 哪些應該自動化,哪些應該手動實施?
下面我們一一進行說明。
3.1 環境
在前文我提過環境,大體需要從以下幾個方面考慮:
- 作業系統
- 瀏覽器
- 裝置(移動&平板)
- 使用者角色
- 衝突軟體
3.2 高複用
在決定了使用哪個環境來執行測試後,必須確定哪些任務、場景、流程等的複用,測試框架支援高度的的可複用行基本能力。
3.3 自動化
確定自動化場景、流程等是一個複雜的工作,因為受諸多因素的影響,例如團隊、技術、工具、經驗、人力、系統等等。
通常情況下,對於主業務流、典型場景、一些可能乏味、耗時的,例如資料錄入、環境設定、資料清理等,以及一些手工無法完成的任務,例如螢幕響應能力,自動化則顯得至關重要了。
既要利用自動化提升效率,又要最大限度的降低成本,所以如何合理的引入自動化就成了一個挑戰了。
3.4 什麼時候不用自動化
儘管自動化可以加速測試周期和提升覆蓋率,但不是所有的事情都可以自動化的。
為什麼不自動化呢?答案是有些事是必須交給人去做的,這個答案聽起來怪怪的是吧?
畢竟自動化有時是很難理解終端使用者的視角的。
上面大體說明了什麼是測試框架,下面我們開始說說構建一個框架所需的步驟,讓我們深入的瞭解下框架本身的各個關鍵部分。
構建測試框架
通過下面一張圖,我們來看下一個測試框架需要具備哪些關鍵能力。
掃一掃加我微信,入群一起討論交流各種開源測試技術、工具、經驗和解決方案。
掃一掃,加入 答疑專用知識星球:66¥/年
順手點點點右下角的 " 好看 "