Biến Giấy PRD Khô Khan Thành Kịch Bản Test BDD Thần Tốc Với AI: Hành Trình Xây Dựng "Zephyr AI"!
Lê Lân
0
Zephyr AI: Tự Động Sinh Test Case BDD Từ Tài Liệu Yêu Cầu Sản Phẩm
Mở Đầu
Việc viết test case BDD thủ công từ các tài liệu yêu cầu sản phẩm (Product Requirement Documents - PRDs) dài dòng là nhiệm vụ tốn thời gian và lặp đi lặp lại nhưng lại vô cùng quan trọng đối với đội ngũ QA.
Trong môi trường phát triển phần mềm hiện đại, đảm bảo chất lượng sản phẩm đồng bộ với các yêu cầu đã được định nghĩa là điều kiện tiên quyết cho thành công. Tuy nhiên, chuyển hóa PRD thành các kịch bản kiểm thử BDD (Behavior-Driven Development) không chỉ mất thời gian mà còn dễ bị sai sót do quá trình viết tay.
Bài viết này sẽ giới thiệu về Zephyr AI – một công cụ dòng lệnh tự động, tích hợp Confluence, Google Gemini AI và Zephyr Scale, giúp biến các tài liệu yêu cầu thành các test case BDD chuẩn Gherkin chỉ trong vài phút. Bạn sẽ hiểu cách xây dựng quy trình, đối mặt với các thách thức và hướng mở tương lai cho dự án này.
Tổng Quan Quy Trình Làm Việc Của Zephyr AI
Zephyr AI vận hành dựa trên một quy trình bốn bước rõ ràng giúp tự động hóa chuyển đổi yêu cầu thành test case:
1. Lấy Yêu Cầu
Công cụ kết nối an toàn với trang Confluence thông qua API để tải về toàn bộ nội dung PRD dạng thô.
2. Làm Sạch Và Chuẩn Hóa Dữ Liệu
Dữ liệu HTML lấy về thường rất lộn xộn. Zephyr AI sử dụng các thư viện như BeautifulSoup để loại bỏ các thành phần không cần thiết và trích xuất nội dung súc tích, dễ xử lý cho AI.
3. Tạo Kịch Bản BDD Bằng AI
Phần dữ liệu sạch được gửi đến Google Gemini AI cùng với một prompt chuyên biệt, yêu cầu tạo ra các kịch bản BDD hoàn chỉnh theo cú pháp Gherkin.
4. Tạo Test Case Tự Động Trong Zephyr Scale
Cuối cùng, kịch bản do AI sinh ra được đẩy qua REST API của Zephyr Scale để tạo test case chuẩn xác, sẵn sàng cho quá trình kiểm thử.
Công Nghệ Sử Dụng Trong Zephyr AI
Ngôn Ngữ và Thư Viện
Python: ngôn ngữ chính để xây dựng công cụ
requests: kết nối và gọi API
BeautifulSoup: phân tích và làm sạch HTML từ Confluence
python-dotenv: quản lý biến môi trường, bí mật
google-generativeai: tương tác với Google Gemini AI
atlassian-python-api: hỗ trợ thao tác với Confluence API
Hệ Thống Tích Hợp
Bộ Phận
Công Nghệ / Công Cụ
Vai Trò
Lấy dữ liệu
Confluence API
Truy xuất PRD từ trang Confluence
Tạo nội dung AI
Google Gemini AI
Sinh kịch bản BDD dựa trên PRD đã xử lý
Quản lý test case
Zephyr Scale REST API
Tạo và lưu trữ test case tự động
Những Thách Thức Đặc Biệt Và Cách Khắc Phục
Điều Khiển Prompt Cho AI Đạt Chất Lượng Cao
Yếu tố quyết định thành công khi dùng LLM (Large Language Model) chính là chất lượng của prompt.
Các prompt ban đầu tôi dùng thường tạo ra test case không đầy đủ hoặc chung chung. Giải pháp là coi AI như một kỹ sư QA mới vào nghề, cần hướng dẫn rất chi tiết để tạo ra các kịch bản:
Mỗi Scenario phải đầy đủ, không được bỏ sót phần nào.
Luồng kịch bản phải toàn diện từ đầu đến cuối theo cấu trúc Given-When-Then.
AI được phép suy luận các thông tin hợp lý nếu PRD thiếu chi tiết, ví dụ như vai trò người dùng, thông báo lỗi, xác nhận thành công.
Mẫu Prompt đã thành công:
Bạn là một Kỹ Sư QA Automation tỉ mỉ. Viết các kịch bản BDD hoàn chỉnh, chi tiết theo chuẩn Gherkin dựa trên PRD sau.
**Điều kiện bắt buộc:**
1. Không được tạo ra kịch bản chưa hoàn chỉnh.
2. Kịch bản phải bao quát toàn bộ trải nghiệm người dùng từ `Given` đến `Then`.
3. Nếu PRD ngắn, suy luận các chi tiết cần thiết như vai trò, thông báo lỗi, thông báo thành công.
PRD:
---
[Text PRD đã làm sạch ở đây]
---
Vấn Đề “Thư Mục Zephyr” Khó Hiểu
Khi tạo test case mới, tôi gặp khó khăn vì test case thường rơi vào thư mục gốc, không vào đúng thư mục đích dù payload gửi đã bao gồm tham số folder.
Sau khi trao đổi với support SmartBear, tôi mới biết rằng:
Payload sai
Payload đúng
json { "projectKey": "VX", "name": "My Test Case", "folder": { "id": 12345678 } }
json { "projectKey": "VX", "name": "My Test Case", "folderId": 12345678 }
folderId phải là tham số cấp cao, không được đặt trong folder. Điều chỉnh này giúp API tạo test case đúng vị trí thư mục mong muốn.
Tóm lại: Luôn đọc kỹ tài liệu REST API để tránh sai sót tưởng chừng đơn giản nhưng tốn nhiều thời gian debug.
Tương Lai Của Zephyr AI
Zephyr AI đã và đang giúp tiết kiệm hàng giờ làm việc thủ công, đảm bảo tính nhất quán giữa yêu cầu và test case, đồng thời dành thời gian cho QA tập trung vào kiểm thử khám phá phức tạp hơn.
Kế Hoạch Tiếp Theo
Xây dựng giao diện web thân thiện cho công cụ sử dụng Flask hoặc Streamlit, mở rộng khả năng tiếp cận cho toàn bộ đội ngũ.
Bổ sung tính năng tùy chỉnh prompt, quản lý lịch sử test case, và hỗ trợ đa ngôn ngữ.
Tích hợp khâu báo cáo, review test case tự động trên nền tảng web.
Kết Luận
Việc tự động hoá tạo test case BDD từ PRD không chỉ tăng hiệu quả mà còn nâng cao độ chính xác của kiểm thử. Zephyr AI là minh chứng cho sức mạnh của trí tuệ nhân tạo khi kết hợp với các nền tảng quản lý hiện đại.
Nếu bạn đang làm việc với đội QA hoặc quản lý dự án phần mềm, Zephyr AI có thể là công cụ cần thiết giúp bạn rút ngắn khoảng cách giữa yêu cầu và kiểm thử.
Hãy thử nghiệm và chia sẻ ý tưởng phát triển thêm để cùng hoàn thiện hơn trong cộng đồng QA hiện đại!