how-to-use-deepseek-prompts-to-automatically-generate-extreme-test-cases-covering-core-paths
在現代軟件開發週期中,測試是確保產品品質不可或缺的一環。然而,手動編寫全面的測試用例既耗時又容易遺漏關鍵場景,特別是那些隱藏在邊緣情況下的「極致測試用例」。隨着大型語言模型(LLM)技術的成熟,我們現在可以藉助 DeepSeek 這類強大的 AI 模型,自動化生成覆蓋應用核心路徑的極致測試用例,從而顯著提高測試效率和應用穩定性。
傳統的測試用例設計往往依賴於測試工程師的經驗和對業務邏輯的理解。這導致幾個常見痛點:
DeepSeek 憑藉其強大的語言理解與生成能力,能夠解析複雜的系統描述,並基於這些描述自動生成結構化、多樣化的測試用例,有效解決上述問題。
在開始利用 DeepSeek 之前,我們首先要明確兩個關鍵概念:
要讓 DeepSeek 有效地生成測試用例,首先需要向它提供清晰、結構化的系統及業務功能描述。這就像為 AI 提供一份「規格書」。
提示詞範例:
你是一位經驗豐富的軟件測試工程師,專精於編寫高覆蓋率的測試用例。
我正在開發一個名為「智能會議室預訂系統」的Web應用程式。
請根據以下系統功能描述,幫助我生成測試用例。
**系統概述:**
* **應用名稱**:智能會議室預訂系統 (Smart Meeting Room Booking System)
* **目標用戶**:公司員工
* **主要模塊**:
1. **用戶管理**:
* 註冊/登錄:員工使用公司郵箱註冊及登錄。
* 個人資料管理:修改姓名、密碼。
2. **會議室管理**:
* 瀏覽會議室:查看所有會議室的列表、容量、設備(投影儀、白板等)。
* 查看會議室可用時間:選擇日期後,顯示某會議室在該日的預訂情況。
3. **預訂管理**:
* 預訂會議室:選擇會議室、日期、時間段、輸入會議主題及參與人數。
* 我的預訂:查看、修改(時間、主題)、取消自己的預訂。
4. **通知管理**:
* 預訂成功/失敗通知:郵件或站內信通知。
* 會議開始前提醒:會議開始前15分鐘自動提醒。
**請從「用戶管理」模塊開始,識別其核心路徑,並列出每個核心路徑的主要步驟。**
DeepSeek 會基於此描述,分析並提煉出如「用戶註冊成功」或「用戶登錄成功」等核心路徑。
一旦系統被初步定義,下一步是引導 DeepSeek 聚焦於核心路徑,並為其設計初始測試用例。
提示詞範例(接續上文):
很好。現在,請針對「用戶管理」模塊的核心路徑,為每個路徑生成一個「快樂路徑」的測試用例。
測試用例請包含以下欄位:
- **用例ID**:格式為 `UM-CP-XXX`
- **模塊**:用戶管理
- **核心路徑**:具體路徑名稱
- **測試標題**:簡潔描述測試目的
- **前置條件**:執行此用例前需要滿足的條件
- **測試步驟**:詳細的操作步驟
- **預期結果**:預期系統的行為
DeepSeek 可能會生成類似以下的輸出:
| 用例ID | 模塊 | 核心路徑 | 測試標題 | 前置條件 | 測試步驟 | 預期結果 |
|---|---|---|---|---|---|---|
| UM-CP-001 | 用戶管理 | 用戶註冊 | 成功註冊新用戶 | 用戶未註冊,擁有公司郵箱 | 1. 訪問註冊頁面 2. 輸入有效信息 3. 點擊註冊 |
成功創建賬戶並自動登錄,跳轉到首頁或個人中心 |
| UM-CP-002 | 用戶管理 | 用戶登錄 | 成功登錄現有用戶 | 用戶已註冊,賬號正常 | 1. 訪問登錄頁面 2. 輸入正確郵箱和密碼 3. 點擊登錄 |
成功登錄,跳轉到首頁或用戶儀表板 |
這是 DeepSeek 真正發揮價值的環節。我們需要引導 DeepSeek 思考各種非典型但重要的場景。
提示詞範例(針對「用戶註冊」核心路徑):
基於「用戶管理」模塊的「用戶註冊」核心路徑 (UM-CP-001),請你生成至少 5 個極致測試用例。
這些用例應涵蓋以下情境:
1. **邊界條件(Boundary Conditions)**:例如,郵箱長度極限、密碼長度極限等。
2. **負面情境(Negative Scenarios)**:例如,輸入無效郵箱格式、已註冊郵箱重複註冊、密碼不符合複雜度要求等。
3. **安全性(Security)**:例如,SQL 注入嘗試、XSS 攻擊嘗試。
4. **性能(Performance)**:例如,短時間內大量註冊請求。
測試用例請包含以下欄位:
- **用例ID**:格式為 `UM-EX-XXX`
- **模塊**:用戶管理
- **核心路徑**:用戶註冊
- **測試標題**:簡潔描述測試目的
- **測試類型**:如:邊界、負面、安全、性能
- **前置條件**:執行此用例前需要滿足的條件
- **測試步驟**:詳細的操作步驟
- **預期結果**:預期系統的行為
- **優先級**:高、中、低
DeepSeek 會基於這些指令,生成一系列有價值的極致測試用例,例如:
| 用例ID | 模塊 | 核心路徑 | 測試標題 | 測試類型 | 前置條件 | 測試步驟 | 預期結果 | 優先級 |
|---|---|---|---|---|---|---|---|---|
| UM-EX-001 | 用戶管理 | 用戶註冊 | 郵箱格式錯誤註冊 | 負面 | 無 | 1. 訪問註冊頁面 2. 輸入 test@.com 3. 點擊註冊 |
顯示「郵箱格式不正確」提示,註冊失敗 | 高 |
| UM-EX-002 | 用戶管理 | 用戶註冊 | 已註冊郵箱重複註冊 | 負面 | 郵箱 user@example.com 已註冊 |
1. 訪問註冊頁面 2. 輸入 user@example.com 及有效密碼 3. 點擊註冊 |
顯示「該郵箱已被註冊」提示,註冊失敗 | 高 |
| UM-EX-003 | 用戶管理 | 用戶註冊 | 密碼長度不足註冊 | 邊界 | 無 | 1. 訪問註冊頁面 2. 輸入有效郵箱,密碼為 123 3. 點擊註冊 |
顯示「密碼長度不足」提示,註冊失敗 | 中 |
| UM-EX-004 | 用戶管理 | 用戶註冊 | 嘗試 SQL 注入 | 安全 | 無 | 1. 訪問註冊頁面 2. 在郵箱字段輸入 ' OR 1=1 -- 3. 點擊註冊 |
系統應拒絕該輸入,並返回安全錯誤或正常失敗訊息 | 高 |
自動生成的測試用例可能不會第一次就完美,需要進行迭代和優化。
優化提示詞範例:
我們之前討論了「用戶註冊」的極致測試用例。現在,請針對「智能會議室預訂系統」的「預訂會議室」核心路徑,生成 5 個極致測試用例。
特別關注以下情境:
1. **併發衝突**:多用戶同時預訂同一時間段的會議室。
2. **時間邏輯錯誤**:預訂結束時間早於開始時間;預訂跨越系統營業時間(如夜間)。
3. **容量限制**:預訂人數超過會議室最大容量。
4. **權限**:非管理員嘗試預訂已被鎖定或管理員專用的會議室。
請保持上次的輸出格式,並將優先級考慮進去。
透過持續的互動和優化,DeepSeek 能夠理解你的需求,並生成越來越精準、全面的測試用例。
利用 DeepSeek 這類強大的 LLM 自動生成覆蓋核心路徑的極致測試用例,是提升現代軟件測試效率和質量的一大進步。它不僅能幫助測試團隊節省大量手動編寫時間,更能以更廣泛的視角識別潛在的缺陷和風險,從而交付更穩定、更安全的應用程式。透過精心的提示詞工程和持續的迭代優化,DeepSeek 將成為你測試自動化流程中的強大助手。