IT nói tiếng người
Kiểm thử

TDD và BDD khác nhau thế nào?

Trả lời ngắnTDD viết test trước cho chính người code. BDD viết kịch bản trước cho cả đội cùng hiểu giống nhau — dev, tester và người làm nghiệp vụ.

Bảng so sánh

TDDBDD
Viết cho ai đọcNgười viết codeCả đội, kể cả người không kỹ thuật
Ngôn ngữCodeTiếng Việt/Anh thường, dạng Given–When–Then
TầngHàm, lớpHành vi người dùng
Ai tham gia viếtChủ yếu devDev + BA + tester cùng ngồi
Chi phíThấp, bắt đầu ngay đượcCao — mỗi dòng cần một đoạn code đứng sau

💡 Cách nhớ

TDD là kỷ luật cá nhân. BDD là công cụ giao tiếp. Nếu chỉ có một người đọc thứ bạn viết ra thì bạn đang làm TDD, dù có gõ chữ Given–When–Then.

Chọn cái nào?

⚠ Bẫy thường gặp

Phần lớn dự án BDD thất bại vì giữ lại phần hình thức và bỏ mất phần trò chuyện. Nếu người làm nghiệp vụ không thật sự ngồi viết cùng, bạn chỉ vừa thêm một lớp cú pháp mà không ai ngoài tester đọc — tốn công gấp đôi, được lợi bằng không.

Câu hỏi hay gặp

BDD có phải là Cucumber không?
Không. Cucumber chỉ là một công cụ chạy kịch bản Gherkin. BDD là cách làm việc, có thể làm mà không dùng công cụ nào.
Có thể làm cả hai cùng lúc không?
Có, và nhiều đội làm vậy. BDD ở tầng hành vi để thống nhất yêu cầu, TDD ở tầng code khi dev bắt tay viết.

Đọc kỹ từng thuật ngữ

← Xem các bảng so sánh khác