Có vẻ như các bài kiểm tra viết là công việc làm thêm, mang lại cho mọi người một cái nạng khi họ viết mã thực sự và có thể không hiệu quả rất thường xuyên.
Kiểm tra đơn vị có giá trị như một cái nạng. Nó hỗ trợ các nỗ lực phát triển của bạn, cho phép bạn thay đổi triển khai mà không sợ ứng dụng của bạn sẽ ngừng hoạt động theo yêu cầu. Các bài kiểm tra đơn vị cũng nhiều hơn một cái nạng, vì chúng cung cấp cho bạn một công cụ mà bạn có thể xác nhận rằng việc triển khai của bạn phù hợp với các yêu cầu.
Tất cả các thử nghiệm, cho dù thử nghiệm đơn vị, thử nghiệm chấp nhận, thử nghiệm tích hợp, v.v., chỉ hiệu quả như những người sử dụng chúng. Nếu bạn tiếp cận công việc của mình một cách chậm chạp, các bài kiểm tra của bạn sẽ cẩu thả, và việc thực hiện của bạn sẽ có vấn đề. Vậy tại sao phải bận tâm? Bạn bận tâm kiểm tra vì bạn cần chứng minh cho bản thân và khách hàng của mình rằng phần mềm của bạn hoạt động và không có bất kỳ vấn đề nào có thể ngăn phần mềm được sử dụng. Đúng, các bài kiểm tra chắc chắn là công việc bổ sung, nhưng cách bạn tiến hành kiểm tra sẽ xác định bạn sẽ cần bao nhiêu nỗ lực để sửa lỗi sau khi phát hành, và mã của bạn sẽ cần bao nhiêu nỗ lực để thay đổi và duy trì.
Tôi hiểu cách kiểm tra đơn vị hoạt động và cách viết chúng, nhưng bất cứ ai cũng có thể đưa ra trường hợp rằng đó thực sự là một ý tưởng hay và đáng để bỏ công sức và thời gian?
TDD, và thực sự là bất kỳ phương pháp nào yêu cầu bạn viết bài kiểm tra trước khi bạn viết mã theo cách tiếp cận mà bạn đã nỗ lực sớm như một khoản thanh toán cho khoản nợ kỹ thuật trong tương lai. Khi bạn thực hiện dự án, bất cứ điều gì bị bỏ lỡ hoặc không được triển khai tốt sẽ phát sinh thêm nợ kỹ thuật dưới dạng tăng độ khó bảo trì, điều này ảnh hưởng trực tiếp đến chi phí trong tương lai và yêu cầu cung cấp lại. Kiểm tra trước đảm bảo rằng bạn không chỉ nỗ lực giải quyết nợ kỹ thuật trong tương lai mà còn đảm bảo rằng bạn mã hóa các yêu cầu của mình theo cách mà chúng có thể được xác minh chỉ bằng cách chạy mã của bạn. Kiểm tra trước tiên cũng cung cấp cho bạn cơ hội để xác thực sự hiểu biết của bạn về miền vấn đề trước khi bạn cam kết giải quyết vấn đề trong mã và nó xác nhận các nỗ lực triển khai của bạn.
Nó thực sự đi đến nỗ lực tối đa hóa giá trị kinh doanh của mã của bạn. Mã phần lớn chưa được kiểm tra và khó bảo trì nói chung là rẻ và nhanh để tạo, và rất tốn kém để duy trì trong suốt vòng đời của sản phẩm sau khi phát hành. Mã đã được kiểm tra kỹ lưỡng ở cấp độ đơn vị thường đắt hơn để tạo, nhưng chi phí tương đối ít để duy trì trong suốt vòng đời của sản phẩm sau khi phát hành.
Ngoài ra, có điều gì làm TDD đặc biệt tốt cho SCRUM không?
TDD không đặc biệt tốt cho bất kỳ phương pháp cụ thể nào. Nó chỉ đơn giản là một công cụ. Một thực tiễn mà bạn có thể tích hợp vào các quy trình phát triển của mình để giúp bạn đạt được kết quả cụ thể. Vì vậy, để trả lời câu hỏi của bạn, TDD là miễn phí cho phương pháp của bạn, cho dù đó là SCRUM hay bất kỳ phương pháp nào khác.