Tôi làm việc trong một công ty nhỏ với tư cách là nhà phát triển solo. Tôi là nhà phát triển duy nhất tại công ty trên thực tế. Tôi có một số (tương đối) các dự án lớn tôi đã viết và duy trì thường xuyên, và không có dự án nào trong số chúng có các bài kiểm tra để hỗ trợ chúng. Khi tôi bắt đầu các dự án mới, tôi thường tự hỏi liệu tôi có nên thử một cách tiếp cận TDD không. Nghe có vẻ là một ý tưởng tốt, nhưng thật lòng tôi không bao giờ có thể biện minh cho công việc làm thêm có liên quan.
Tôi làm việc chăm chỉ để có tư duy cầu tiến trong thiết kế của mình. Tôi nhận ra rằng chắc chắn một ngày nào đó, một nhà phát triển khác sẽ phải duy trì mã của tôi hoặc ít nhất là khắc phục sự cố. Tôi giữ mọi thứ đơn giản nhất có thể và tôi nhận xét và ghi lại những điều khó nắm bắt. Và thực tế là những dự án này không quá lớn hoặc phức tạp đến nỗi một nhà phát triển đàng hoàng sẽ phải vật lộn để hiểu chúng.
Rất nhiều ví dụ mà tôi đã thấy về các bài kiểm tra đi vào chi tiết vụn vặt, bao gồm tất cả các khía cạnh của mã. Vì tôi là nhà phát triển duy nhất và tôi rất gần với mã trong toàn bộ dự án, nên việc theo mô hình kiểm tra viết thủ công sẽ hiệu quả hơn nhiều. Tôi cũng thấy các yêu cầu và tính năng thay đổi thường xuyên đủ để duy trì các bài kiểm tra sẽ thêm một lượng đáng kể lực kéo vào một dự án. Thời gian có thể được dành để giải quyết các nhu cầu kinh doanh.
Vì vậy, tôi kết thúc với cùng một kết luận mỗi lần. Lợi tức đầu tư quá thấp.
Thỉnh thoảng tôi đã thiết lập một vài thử nghiệm để đảm bảo tôi đã viết một thuật toán chính xác, như tính toán số năm mà một người nào đó đã ở công ty dựa trên ngày thuê của họ. Nhưng từ quan điểm bảo hiểm mã, tôi đã bao phủ khoảng 1% mã của mình.
Trong tình huống của tôi, bạn vẫn sẽ tìm cách biến đơn vị kiểm tra thành một thông lệ thường xuyên, hay tôi có lý khi tránh được chi phí đó không?
CẬP NHẬT: Một vài điều về tình huống của tôi mà tôi đã bỏ qua: Các dự án của tôi đều là các ứng dụng web. Để bao gồm tất cả mã của tôi, tôi phải sử dụng các kiểm tra giao diện người dùng tự động và đó là một lĩnh vực mà tôi vẫn không thấy lợi ích lớn so với kiểm tra thủ công.