Không có quá trình phát triển dựa trên thử nghiệm trong quá trình phát triển do thời hạn rất chặt chẽ
Tuyên bố này rất liên quan. Không phải vì điều đó có nghĩa là bạn đã phát triển mà không có TDD hoặc vì bạn không thử nghiệm mọi thứ. Điều này có liên quan, bởi vì nó cho thấy bạn nghĩ TDD sẽ làm bạn chậm lại và khiến bạn bỏ lỡ thời hạn.
Miễn là bạn thấy nó theo cách này bạn chưa sẵn sàng cho TDD. TDD không phải là thứ bạn có thể dần dần dễ dàng. Bạn có biết làm thế nào để làm điều đó hoặc bạn không. Nếu bạn cố gắng thực hiện nửa chừng, bạn sẽ làm cho nó và bản thân bạn trông xấu đi.
TDD là điều đầu tiên bạn nên thực hành ở nhà. Tìm hiểu để làm điều đó, bởi vì nó giúp bạn viết mã ngay bây giờ . Không phải vì ai đó bảo bạn làm điều đó. Không phải vì nó sẽ giúp ích khi bạn thay đổi sau này. Khi nó trở thành thứ bạn làm bởi vì bạn đang vội thì bạn đã sẵn sàng để làm nó một cách chuyên nghiệp.
TDD là điều bạn có thể làm trong bất kỳ cửa hàng nào . Bạn thậm chí không phải bật mã kiểm tra của mình. Bạn có thể giữ nó cho riêng mình nếu những người khác coi thường các bài kiểm tra. Khi bạn làm đúng, các bài kiểm tra sẽ tăng tốc độ phát triển của bạn ngay cả khi không có ai khác chạy chúng.
Mặt khác, nếu người khác yêu thích và chạy thử nghiệm của bạn, bạn vẫn nên nhớ rằng ngay cả trong cửa hàng TDD, công việc của bạn không phải là kiểm tra. Đó là để tạo mã sản xuất làm việc đã được chứng minh. Nếu nó xảy ra để có thể kiểm tra, gọn gàng.
Nếu bạn nghĩ rằng quản lý phải tin vào TDD hoặc rằng các lập trình viên đồng nghiệp của bạn phải hỗ trợ các bài kiểm tra của bạn thì bạn đã bỏ qua điều tốt nhất TDD dành cho bạn. Nó nhanh chóng cho bạn thấy sự khác biệt giữa những gì bạn nghĩ rằng mã của bạn làm và những gì nó thực sự làm.
Nếu bạn không thể tự mình thấy điều đó có thể giúp bạn đáp ứng thời hạn nhanh hơn thì bạn chưa sẵn sàng cho TDD tại nơi làm việc. Bạn cần thực hành tại nhà.
Điều đó nói rằng, thật tuyệt khi nhóm có thể sử dụng các bài kiểm tra của bạn để giúp họ đọc mã sản xuất của bạn và khi quản lý sẽ mua các công cụ TDD mới.
Có phải là một ý tưởng tốt để viết tất cả các trường hợp thử nghiệm có thể sau khi chuyển đổi nhóm thành TDD?
Bất kể những gì nhóm đang làm, không phải lúc nào cũng nên viết tất cả các trường hợp thử nghiệm có thể. Viết các trường hợp kiểm tra hữu ích nhất. Bảo hiểm mã 100% đi kèm với một chi phí. Đừng bỏ qua luật giảm lợi nhuận chỉ vì thực hiện một cuộc gọi phán xét là khó khăn.
Tiết kiệm năng lượng thử nghiệm của bạn cho logic kinh doanh thú vị. Các công cụ đưa ra quyết định và thực thi chính sách. Kiểm tra cái quái gì đó Chán rõ ràng mã keo cấu trúc dễ đọc mà chỉ nối các thứ lại với nhau không cần kiểm tra gần như tồi tệ.
(1) Vẫn còn ổn hay tốt để dừng hầu hết sự phát triển và bắt đầu viết toàn bộ các trường hợp thử nghiệm có thể ngay từ đầu, mặc dù mọi thứ đều hoạt động hoàn toàn OKAY (chưa!)? Hoặc là
Không. Đây là suy nghĩ "hãy viết lại hoàn toàn". Điều này phá hủy kiến thức khó giành được. Đừng yêu cầu quản lý thời gian để viết bài kiểm tra. Chỉ cần viết bài kiểm tra. Một khi bạn biết những gì bạn đang làm, các bài kiểm tra sẽ không làm bạn chậm lại.
(2) tốt hơn là chờ đợi điều gì đó xấu xảy ra và sau đó trong quá trình sửa lỗi, hãy viết các bài kiểm tra đơn vị mới, hoặc
(3) thậm chí quên các mã trước đó và chỉ viết các bài kiểm tra đơn vị cho các mã mới và hoãn mọi thứ cho bộ tái cấu trúc chính tiếp theo.
Tôi sẽ trả lời 2 và 3 theo cùng một cách. Khi bạn thay đổi mã, vì bất kỳ lý do gì, thật tuyệt nếu bạn có thể trượt trong một bài kiểm tra. Nếu mã là di sản, hiện tại nó không chào đón một thử nghiệm. Điều đó có nghĩa là rất khó để kiểm tra nó trước khi thay đổi nó. Chà, vì dù sao bạn cũng thay đổi nó, bạn có thể thay đổi nó thành thứ gì đó có thể kiểm tra và kiểm tra nó.
Đó là lựa chọn hạt nhân. Đó là rủi ro. Bạn đang thực hiện thay đổi mà không cần kiểm tra. Có một số thủ thuật sáng tạo để kiểm tra mã kế thừa trước khi bạn thay đổi nó. Bạn tìm kiếm những gì được gọi là đường nối cho phép bạn thay đổi hành vi của mã mà không thay đổi mã. Bạn thay đổi tập tin cấu hình, xây dựng tập tin, bất cứ điều gì nó cần.
Michael Feathers đã cho chúng tôi một cuốn sách về điều này: Làm việc hiệu quả với Bộ luật kế thừa . Hãy đọc và bạn sẽ thấy rằng bạn không cần phải đốt cháy mọi thứ cũ để tạo ra thứ gì đó mới.