export-gherkin
SKILL.md
Export Gherkin
目的
減少與非技術人員(PM、QA、客戶)對齊需求或驗證行為時的溝通成本,採用明確定義的規格格式。
適用情境
- 需求訪談後整理規格
- 程式碼審查時驗證行為是否符合預期
- 撰寫驗收測試前的規格確認
- 向非技術人員說明系統行為
格式定義
Feature: 功能名稱
功能描述(說明這個功能的目的)
Scenario: 情境描述(一句話說明這個測試案例要驗證什麼)
Given 前置條件(系統的初始狀態)
And 額外的前置條件(可選)
When 觸發動作(用戶或系統執行的操作)
Then 預期結果(系統應該呈現的狀態或回應)
And 額外的預期結果(可選)
| 關鍵字 | 用途 | 範例 |
|---|---|---|
| Feature | 功能名稱與描述,作為多個 Scenario 的分組 | Feature: 用戶登入 |
| Scenario | 描述測試情境 | Scenario: 套用有效折扣碼 |
| Given | 前置條件 / 初始狀態 | Given 購物車總金額為 x 元 |
| When | 觸發的動作或事件 | When 用戶輸入有效折扣碼 |
| Then | 預期的結果 | Then 總金額更新為 y 元 |
| And | 延續上一個關鍵字(可選,僅當有多項條件或結果時使用) | And 顯示折扣成功訊息 |
範例
範例 1:用戶登入
輸入(程式碼邏輯):
// 檢查帳號密碼,正確則導向首頁,錯誤則顯示錯誤訊息
// 連續錯誤 3 次則鎖定帳號
輸出(Gherkin):
Feature: 用戶登入
用戶透過帳號密碼進行身份驗證,以存取系統功能
Scenario: 用戶成功登入
Given 用戶已註冊帳號
And 帳號未被鎖定
When 用戶輸入正確的帳號密碼
Then 導向至首頁
Scenario: 用戶登入失敗
Given 用戶已註冊帳號
When 用戶輸入錯誤的密碼
Then 停留在登入頁面
Scenario: 連續登入失敗鎖定帳號
Given 用戶已連續輸入錯誤密碼 x-1 次
When 用戶第 x 次輸入錯誤密碼
Then 帳號被鎖定
範例 2:購物車
輸入(需求描述):
用戶可以將商品加入購物車,數量不可超過庫存,
結帳時計算總金額並套用折扣碼
輸出(Gherkin):
Feature: 購物車管理
用戶可以管理購物車內的商品,並在結帳時套用優惠
Scenario: 加入商品至購物車
Given 商品庫存為 x 件
When 用戶將該商品加入購物車 y 件
Then 購物車商品數量為 y
And 庫存剩餘 x-y 件
Scenario: 加入商品超過庫存數量
Given 商品庫存為 x 件
When 用戶嘗試將該商品加入購物車 y 件(y > x)
Then 系統拒絕此操作
And 顯示庫存不足提示
Scenario: 套用有效折扣碼
Given 購物車總金額為 x 元
And 折扣碼可折抵 y%
When 用戶輸入有效折扣碼
Then 總金額更新為 x × (1 - y%) 元
輸出規範
- 必須包含 Feature:每個輸出都以 Feature 開頭,說明功能名稱與目的
- 相關 Scenario 歸屬同一 Feature:將相關的測試情境組織在同一個 Feature 下
- 每個 Scenario 聚焦於單一行為
- 專注在有價值的行為:不求詳盡,只描述最關鍵的業務規則
- 使用業務語言而非技術術語,但可提及 API、DB 通用術語
- Given/When/Then 各自獨立成行,保持可讀性
- And 為可選,僅當條件或結果有多項時才使用
- 避免畫面互動細節(如「顯示訊息」、「彈出視窗」),專注於業務邏輯
- 使用變數代替具體數字:以 x、y 等變數表示數值,避免寫死具體數字
- 沙漏原則 - When 最小化:
- When 越小越好,理想情況只有一行
- 將操作步驟移至 Given(「When 我做了什麼」→「Given 我已經做了什麼」)
- When 只保留最關鍵的觸發點(如:送出、確認、提交)
- 揭露「做什麼what to do」而非「怎麼做how to do」
- 輸出後更新指定文檔:將產出的 Gherkin 內容寫入用戶指定的檔案路徑
Weekly Installs
1
Repository
ting-s515/skillsFirst Seen
11 days ago
Security Audits
Installed on
mcpjam1
claude-code1
replit1
junie1
windsurf1
zencoder1