如何高效能的設計一個測試用例?

前言:若是問一個問題,如何設計測試用例,恐怕會貽笑大方,由於剛入測試這一行的同窗也都能噼裏啪啦說上十分鐘不歇氣。可是若是追問下去,好比項目快速迭代時怎樣讓測試用例保持有效新鮮?什麼是更高效的設計方式?恐怕能回答上來的人很少了。
在現在的軟件迭代過程當中,​在測試用例上投入的大量時間和亟需提高的研發效率正在成爲日益凸顯的巨大矛盾。如何在二者之間取得平衡,筆者總結了敏捷化設計測試用例的十條建議,認爲測試用例應該具有如下特色:數據庫

1、獨立性微信

所謂獨立性是指每組(個)測試用例能夠單獨維護、執行,不影響其餘的測試用例組,若是測試用例之間是強耦合的,考慮對它們進行合併。這樣設計的好處是當迭代出現變動時,能夠對測試用例組進行增刪改的操做而不相互影響。例如一些操做是針對登陸用戶的,那麼登陸相關的用例和這些操做用例就是強耦合的。或者在一個場景中,存在上下文數據的傳遞關係,必須組合使用,可是單獨任何一個步驟拿出去都是不可執行的,那麼這種場景就須要設計成一個完整的測試用例,由於每一個步驟都是不可分割的。工具

2、易用性測試

易用性顧名思義就是測試用例應該是儘可能簡潔,同時又要易於理解的。這樣描述聽起來有些簡單,可是實際操做起來並不容易把握尺度。舉例來講,按傳統方法設計的一個測試用例,具有如下幾個要素,title(新註冊用戶進首頁領取首次獎勵)、priorityp1)、pre-step(新註冊用戶)、step1、用戶打開App2、用戶進入首頁;3、點擊蒙層;4、點擊領取新人獎勵按鈕;5、領取成功並展現成功圖片)、result(領取成功且展現成功圖片)、description(新人首次進入頁面纔會展現蒙層圖片)等,這還不包括一些「非必要」(注1)元素例如ownerid,這樣一個測試用例從構思到完成大概須要十分鐘,因此每小時大約可以完成六個用例設計,按天天八小時工做制計算天天能夠設計四十八個測試用例。這樣的效率在現在的研發迭代是難以接受的高成本,所以許多公司引入了思惟導圖(注2)設計測試用例的方法,這種方法再也不強調格式,而是強調自由發散,所以大部分測試用例相似於check list,例如上文的測試用例能夠用以下的一句話測試用例來代替:「新註冊用戶首次進入主頁則展現引導蒙層,手指點擊屏幕任何地方便可領取獎勵,且彈窗展現成功圖片」,這樣的用例就大大提升了用例的設計速度,大概完成一個須要兩分鐘,因此每小時可以完成三十個用例設計,天天就能完成二百四十個用例。較傳統方法提升了四倍效率。優化

3、有效性spa

測試用例的有效性是有幾個要點能夠闡述的。首先測試用例不是空想得來,必須來源於真實的產品需求,不然就是無效的測試用例;其次測試用例應該是對產品內核的充分理解,不該該是對產品文檔的複述,不然就是無效的測試用例,不少初級的測試人員就是辛苦的搬運工,把產品經理的文檔拆解成一條條再搬運到測試用例的系統,你不能說它是錯誤的(wrong),可是其實它就是無效的(no use);而後每組測試用例對應一個獨立產品模塊,產品模塊變動觸發用例變動(新增、修改、刪除),若是不能跟隨變化,就是無效的測試用例,這一點尤其常見,大多數國內公司的測試人員天天都疲於設計新的測試用例,可是數據庫中堆積了數萬數十萬的廢棄測試用例無人問津。設計

4、進化性圖片

建議測試人員儘可能早的交付一個測試用例版本,並隨着客戶需求的變化而層層遞進,這個最先的版本必定是較爲粗獷和簡約的,可是它爲未來的細化設定了「錨點」(注3),後續的設計工做都將由這些錨點展開。測試人員應該按期反思和回顧測試用例的設計,時間週期上能夠跟隨迭代,不斷的對譬如顆粒度、數據流向、場景,進而調整設計策略。同理,因爲測試用例的設計是基於需求的,因此測試用例設計絕對不是一次性工做,所以須要「欣然面對需求變化」,跟隨迭代不斷優化。ip

 

最後,根據以上內容,我提煉出測試用例的十條設計建議,做爲設計測試用例的建議原則,供你們參考:開發

  1. 每組測試用例 能夠單獨維護、執行,不影響其餘的測試用例組;

  2. 若是測試用例之間是強耦合的,考慮對它們進行合併;

  3. 每組測試用例之間能夠傳遞數據、狀態;

  4. 測試用例應該是儘可能簡潔,易於理解的;

  5. 好的測試用例應該是對產品內核的充分理解,不該該是對產品文檔的複述;

  6. 每組測試用例對應一個獨立產品模塊,產品模塊變動觸發用例變動(新增、修改、刪除);

  7. 儘可能早的交付一個測試用例版本,並隨着客戶需求的變化而層層遞進;

  8. 測試用例的設計應該是基於需求的,因此不是一次性工做,所以須要「欣然面對需求變化」,跟隨迭代不斷優化;

  9. 應該按期反思和回顧測試用例的設計,譬如顆粒度、數據流向、場景,進而調整設計策略;

  10. 邀請開發、產品和其餘團隊的測試參加測試用例評審,避免我的盲區;

 

最後的最後,在此感謝您的閱讀,指望對您有些許的幫助。

 

1:非必要,是指不影響閱讀理解的必要因素。

2:思惟導圖,the mind map,也俗稱爲腦圖,是一種圖形化的發散式思惟工具。

3:錨點,anchor又叫作錨記,能夠幫助人們迅速定位,找到須要訪問的位置。

 

更多原創測試技術文章請訪問微信公衆號 :三國測,敬請掃碼關注我的的微信號,感謝!

相關文章
相關標籤/搜索