# Xây Skill đầu tiên cho tester: Sinh test case từ user story

> Bài 6 trong chuỗi 8 bài "Xây dựng Skill cho Claude Code dành cho tester". Bài này tổng hợp kiến thức từ Bài 1 đến Bài 5 thành một Skill hoàn chỉnh, có thể dùng được ngay. Mục tiêu: sinh test case từ user story theo template chuẩn.

- **URL canonical**: https://itlearn.edu.vn/blog/xay-skill-dau-tien-cho-tester-sinh-test-case-tu-user-story
- **Published**: 2026-06-16T05:18:02+07:00
- **Modified**: 2026-06-16T08:02:21+07:00
- **Author**: IT LEARN
- **Category**: AI for Tester (https://itlearn.edu.vn/blog/cat/ai-for-tester)
- **Reading time**: 8 phút
- **Source site**: IT LEARN — Học viện Software Testing tiếng Việt

---

## 1. Xác định use case

Trước khi viết bất kỳ dòng nào, cần xác định use case cụ thể. Đây là bước được khuyến nghị trong quy trình thiết kế Skill.

text

`Use Case: Sinh test case từ user story
Kích hoạt: Người dùng dán một user story và yêu cầu "viết test case"
 hoặc "tạo test case từ user story này".
Các bước:
1. Đọc user story và các tiêu chí chấp nhận (acceptance criteria).
2. Xác định các kịch bản: happy path, biên (boundary), ngoại lệ (negative).
3. Sinh test case theo template chuẩn của team.
4. Trình bày kết quả dưới dạng bảng để dễ rà soát.
Kết quả: Bộ test case đầy đủ, đúng template, sẵn sàng review.`

## 2. Lên cấu trúc thư mục

Áp dụng quy tắc đặt tên từ Bài 3:

 

 

text

`sinh-test-case-tu-user-story/
├── SKILL.md # Hướng dẫn chính + điều kiện kích hoạt
└── references/
 └── test-case-template.md # Quy ước viết test case của team`

Skill này không cần `scripts/` hay `assets/` vì tác vụ thuần về phân tích và soạn nội dung. Phần quy ước chi tiết được tách ra `references/` đúng tinh thần progressive disclosure.

## 3. Viết file tham chiếu references/test-case-template.md

File này chứa quy ước cụ thể để Claude bám theo:

markdown

`# Quy ước viết test case

## Các trường bắt buộc
- Test Case ID: định dạng TC_<module>_<số thứ tự>, ví dụ TC_LOGIN_001
- Tiêu đề: mô tả ngắn gọn mục tiêu kiểm thử
- Điều kiện tiền đề (Precondition)
- Các bước thực hiện (Steps)
- Kết quả mong đợi (Expected Result)
- Mức độ ưu tiên (Priority): High / Medium / Low

## Nguyên tắc
- Mỗi test case kiểm tra một mục tiêu rõ ràng.
- Có đủ ba nhóm kịch bản: happy path, biên, ngoại lệ.
- Bước thực hiện viết ở dạng hành động, đánh số tuần tự.`

## 4. Viết file SKILL.md hoàn chỉnh

Đây là nội dung hoàn chỉnh, ghép phần YAML (Bài 4) và Instructions (Bài 5):

markdown

`---
name: sinh-test-case-tu-user-story
description: Sinh test case từ user story theo template chuẩn của team.
 Dùng khi người dùng dán một user story và yêu cầu "viết test case",
 "tạo test case từ user story", hoặc "phân tích kịch bản kiểm thử"
 cho một yêu cầu chức năng.
---

# Sinh test case từ user story

## Hướng dẫn

### Bước 1: Đọc và phân tích user story
Xác định trong user story:
- Chức năng cần kiểm thử
- Điều kiện đầu vào
- Các tiêu chí chấp nhận (acceptance criteria)

Nếu user story thiếu tiêu chí chấp nhận, hãy nêu rõ giả định trước khi sinh test case.

### Bước 2: Xác định nhóm kịch bản
Sinh test case cho đủ ba nhóm:
- Happy path: luồng thành công chính
- Biên (boundary): giá trị giới hạn, trường rỗng, độ dài tối đa
- Ngoại lệ (negative): đầu vào sai, thao tác không hợp lệ

### Bước 3: Áp dụng quy ước
Trước khi viết, tham khảo `references/test-case-template.md` để biết
các trường bắt buộc và quy ước đặt Test Case ID.

### Bước 4: Trình bày kết quả
Trình bày bộ test case dưới dạng bảng, mỗi dòng một test case,
gồm đủ các cột: ID, Tiêu đề, Precondition, Steps, Expected Result, Priority.

## Ví dụ

Người dùng nói: "Viết test case cho user story sau: Là người dùng,
tôi muốn đăng nhập bằng email và mật khẩu để truy cập tài khoản."

Hành động:
1. Phân tích: chức năng đăng nhập, đầu vào email + mật khẩu.
2. Sinh kịch bản: đăng nhập đúng (happy), email sai định dạng (biên),
 mật khẩu sai (negative), bỏ trống trường (negative).
3. Áp dụng template, xuất bảng test case.

Kết quả: Bảng test case có ID dạng TC_LOGIN_xxx, đủ ba nhóm kịch bản.

## Xử lý lỗi

### User story quá mơ hồ
Nguyên nhân: Thiếu mô tả đầu vào hoặc tiêu chí chấp nhận.
Cách xử lý: Nêu rõ các giả định đang dùng, hoặc hỏi lại người dùng
trước khi sinh test case.

### Yêu cầu nằm ngoài phạm vi
Nguyên nhân: Đầu vào không phải user story (ví dụ một đoạn code).
Cách xử lý: Thông báo Skill này dành cho user story và đề nghị
cung cấp đúng định dạng.`

## 5. Cài đặt và thử nghiệm

- Đóng gói thư mục `sinh-test-case-tu-user-story/` thành file `.zip`.

- Upload vào Claude.ai qua Settings > Capabilities > Skills, hoặc đặt vào thư mục skills của Claude Code.

- Bật Skill và thử bằng một user story thật.

Cách upload chi tiết và chia sẻ trong nhóm sẽ được trình bày ở Bài 8.

## 6. Kiểm tra nhanh sau khi dựng

- Thư mục đặt tên kebab-case, có `SKILL.md` đúng chính tả.

- `description` nêu rõ làm gì + khi nào dùng, có trigger phrases.

- Phần thân có đủ: các bước, ví dụ, xử lý lỗi.

- Quy ước chi tiết nằm trong `references/`, không nhồi vào `SKILL.md`.

- Đã thử với ít nhất một user story thật và rà soát kết quả.

## 7. Tổng kết bài 6

- Một Skill hoàn chỉnh bắt đầu từ use case rõ ràng, rồi đến cấu trúc, YAML và Instructions.

- Tách quy ước chi tiết sang `references/` giúp `SKILL.md` gọn và dễ bảo trì.

- Skill nên có sẵn phần ví dụ và xử lý lỗi để Claude phản hồi nhất quán.

- Sau khi dựng, cần thử với dữ liệu thật trước khi đưa vào dùng chung.

**Bài tiếp theo (Bài 7):** Kiểm thử và tinh chỉnh Skill — kiểm tra kích hoạt, kiểm tra chức năng, và xử lý tình trạng Skill kích hoạt thiếu hoặc thừa.
