測試用例的管理

2020 年發表於《測試技術與質量管理》

摘要

隨着軟件系統規模的持續增大,業務複雜度的持續增加,軟件測試的複雜度也隨之越來越大。而軟件測試工作複雜度的直接體現,就是測試用例編寫、維護、執行和管理,所以編寫易讀、易維護和易管理的測試用例可以有效的降低測試工作的複雜度。本文主要系統的介紹了測試用例的幾種管理方法,包括每種的特點,適用場景以及實例。幫助不同的項目和團隊,根據自己的情況選擇適合的測試用例編寫和管理方法,從而降低測試工作的複雜度,提高測試工作的效率。

正文

在軟件測試工作中,測試用例是其最爲重要的基礎。一個良好的測試用例可以幫助測試人員更容易閱讀,理解,修改並管理它,從而提高測試工作的質量和效率。要編寫一個好的測試用例,首先需要對業務需求和驗收條件(AC)進行深入的分析,並確定業務需求和驗收條件的正確性和合理性。然後對其進行測試分析,並完成整體測試用例的設計和編寫,其中包括功能測試用例,E2E 測試用例,異常測試用例等等。對於設計好的測試用例需要進行分類並管理,然後根據不同的分類進行分層測試。通常情況下可以將測試分爲端到端測試(E2E Testing),功能測試(Functional Testing),集成測試(Integration Testing),單元測試(Unit Testing)等。根據這個分類方法,可以方便進行測試分層管理,就是某些測試用例放在端到端測試類型裏面,而有些測試用例則放到集成測試類型裏面。而根據測試用途還可以將某些類型的測試分類成迴歸測試(Regression Testing),驗收測試(Acceptance Testing), 健全測試 (Sanity Testing) 以及冒煙測試(Smoke Testing)等。由於一個測試用例可能既屬於迴歸測試,又屬於冒煙測試,所以這種情況下就需要一個良好的測試管理系統或者管理方法來對大量的分類後的測試用例進行管理。編寫和管理測試用例是測試用例工作中工作量最大,最爲繁瑣的部分。其質量的高低直接影響到測試工作是不是能高效和順利的進行和完成。所以結合產品的類型和團隊的情況,選擇適合自己團隊的用例編寫和管理方式,從而事半功倍。

測試用例的管理

測試用例需要具有以下特性:易閱讀,易維護,易執行,易管理。而難點也比較突出,其中包括語言的歧義性和多樣性導致的不易閱讀和理解;手動測試和自動化測試用例很難統一管理和統一執行。當測試數量很大的時候,如果測試用例管理系統不易用,測試用例的複用性也不高,則會導致測試用例不易維護,從而會極大的增加了其管理成本。測試用例管理是一項繁瑣的工作,現在業界存在四種經典方法,分別是文件管理,系統管理,代碼活文檔和系統活文檔。與編寫用例一樣,沒有一種用例管理方法是銀彈,適合所有不同的團隊和不同的項目。所以瞭解它們的特點,再根據自己團隊和項目的實際情況,選擇適合的纔是最佳實踐。方法一:使用如 Excel,Word,Mindmap 等文件管理本方法是中小型項目中比較常見的測試用例管理方法。其優勢是簡單易用,而劣勢是需要自己對測試用例模版進行定製,並且當測試用例過多的時候管理成本會急劇增加。其次對於本地文件模式,則很難讓多人進行協作編寫(Google Sheets 這種在線文檔沒有這個問題)。下面是一個 Excel 實例。Excel 管理實例圖:方法二:使用 itest,TestLink 等系統管理本方法一般是中大型項目中最爲常用的管理方法。它的優勢是管理系統提供了強大的管理和協作功能,比如協作編寫用例,協作執行用例,測試步驟管理,截圖管理,測試迭代管理以及豐富的測試用例和測試結果報表等。所以它有一定的學習曲線,並且基本上都是界面操作,相對比較繁瑣,有些修改很難跟蹤,比如測試步驟和測試數據的更改等。其次這種系統一般需要一個獨立服務器來部署和運行,如 itest,TestLink 等。下面三張圖是 itest 最爲典型的支持執行管理、用例管理和用例編排管理的界面。itest 用例管理實例圖 1:itest 用例管理實例圖 2:itest 用例管理實例圖 3:

方法三:使用 Cucumber,RF,SVN 和 GIT 等代碼活文檔、自動化測試框架和代碼版本工具本方法適合於有足夠軟件技術工程實踐的團隊和個人,因爲它需要使用到代碼版本管理工具,集成開發環境(IDE),自動化測試框架,持續流水線等實踐才能高效的編寫,維護,執行,管理測試用例,測試日誌和測試結果。本方法的優勢是可以同時管理自動化測試用例和手動測試用例,並且更容易跟蹤測試用例和測試數據的更改。而劣勢是需要測試工程師有足夠的工程技術能力來實現。下面是用 Cucumber 寫的一個 Demo 的截圖,左邊是集成開發環境中測試用例的管理文件,每個 Feature 文件就是一套測試用例。而右圖是通過 Jenkins 生成的測試用例活文檔(Test Case Living Document),通過它可以統一的展示出手動測試用例和自動化測試用例的測試結果。Cucumber 測試用例管理和活文檔示例圖: 方法四:使用系統活文檔本方法是將代碼活文檔和系統管理結合,通過測試管理系統編寫和管理測試用例,然後會自動生成代碼模式的測試用例。也可以只編寫代碼模式的測試用例,然後自動同步到測試管理文檔中。自動化測試在持續集成流水線執行,通過流水線進行展示並同步到測試管理系統中。手動測試人員執行了手動測試後,將測試結果通過測試管理系統或者在測試代碼中進行記錄,並最終彙總到測試管理系統的進行統一展示,從而實現了讓不同人員可以一起協作分析,設計,管理,和執行測試用例的工作。下面是本方法的架構設計圖。系統活文檔架構圖 1: 系統活文檔架構圖 2:

總結

測試用例是測試工作的根本,不管是手動測試還是自動化測試的成功,都十分依賴於測試用例的質量。但是隻有充分的做好測試分析,設計,編寫和管理才能產出一套合格甚至優秀的測試用例套件。從而保證測試工作可以高效正確的進行,爲產出高質量軟件保駕護航。


本文版權屬 Thoughtworks 公司所有,如需轉載請在後臺留言聯繫。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/lUNBlNkCROzwAOJ3YlANTQ