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


前言:如果問一個問題,如何設計測試用例,恐怕會貽笑大方,因為剛入測試這一行的同學也都能噼里啪啦說上十分鍾不歇氣。但是如果追問下去,比如項目快速迭代時怎樣讓測試用例保持有效新鮮?什么是更高效的設計方式?恐怕能回答上來的人不多了。
在如今的軟件迭代過程中,​在測試用例上投入的大量時間和亟需提升的研發效率正在成為日益凸顯的巨大矛盾。如何在兩者之間取得平衡,筆者總結了敏捷化設計測試用例的十條建議,認為測試用例應該具備以下特點:

一、獨立性

所謂獨立性是指每組(個)測試用例可以單獨維護、執行,不影響其他的測試用例組,如果測試用例之間是強耦合的,考慮對它們進行合並。這樣設計的好處是當迭代出現變更時,可以對測試用例組進行增刪改的操作而不相互影響。例如一些操作是針對登錄用戶的,那么登錄相關的用例和這些操作用例就是強耦合的。或者在一個場景中,存在上下文數據的傳遞關系,必須組合使用,但是單獨任何一個步驟拿出去都是不可執行的,那么這種場景就需要設計成一個完整的測試用例,因為每個步驟都是不可分割的。

二、易用性

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

三、有效性

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

四、進化性

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

 

最后,根據以上內容,我提煉出測試用例的十條設計建議,作為設計測試用例的建議原則,供大家參考:

  1. 每組測試用例 可以單獨維護、執行,不影響其他的測試用例組;

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

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

  4. 測試用例應該是盡量簡潔,易於理解的;

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

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

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

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

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

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

 

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

 

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

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

3:錨點,anchor又叫做錨記,可以幫助人們迅速定位,找到需要訪問的位置。

 

看完點個贊唄,難道想白嫖不成?更多內容請訪問微信公眾號 :三國測,掃碼關注喲!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM