TDD (Test Driven Development – Phát triển Hướng Kiểm thử) là một phương pháp phát triển phần mềm mà các hoạt động lập trình, kiểm thử và thiết kế được đan xem vào nhau.
TDD có thể xem là một cách lập trình trong thực tiễn mà hướng dẫn developer viết code mới chỉ khi một đoạn test tự động bị lỗi (failed), tránh lặp code. TDD nghĩa là "Test Drivent Development". Mục đích chính của TDD là viết code rõ ràng, đơn giản và ít lỗi.
TDD bắt đầu bằng việc thiết kế và viết test cho mọi chức năng nhỏ của ứng dụng. Theo cách tiếp cận TDD, đầu tiên là test sẽ được viết để validate đoạn code sẽ làm cái gì, làm đúng hay chưa.
Ở quy trình kiểm thử phần mềm thông thường, chúng ta viết code rồi mới viết test. Test có thể lỗi vì test đã được viết trước khi code. Để pass đoạn test này thì developer phải refactor lại code.
Quy tắc của TDD:
- Viết một kiểm thử đơn vị để mô tả một mặt của chương trình, kiểm thử vừa viết thường là thất bại bởi tính năng đó chưa được cài đặt.
- Viết vừa đủ mã nguồn để vượt qua kiểm thử
- Tái cấu trúc mã nguồn tới khi thỏa mãn các tiêu chí của mã tối giản (simple design)
- Lặp lại các thao tác trên
Một số lỗi thường gặp
- Quên không chạy kiểm thử thường xuyên
- Viết quá nhiều kiểm thử một thời điểm
- Viết kiểm thử quá lớn khó hiểu
- Viết những kiểm thử quá
- Viết kiểm thử cho những đoạn mã hiển nhiên
- Không duy trì mã kiểm thử. Mã kiểm thử cũng là mã nguồn
- Chỉ một số nhà phát triển trong nhóm dùng
- Khi vượt qua kiểm thử lại nghĩ quá nhiều tới tái cấu trúc