Kinh nghiệm của tôi khi thực hiện quá trình chuyển đổi
Trong nhiều năm, tôi đã hiểu sai rằng tôi không có đủ thời gian để viết bài kiểm tra đơn vị cho mã của mình. Khi tôi viết bài kiểm tra, chúng là những thứ nặng nề, nặng nề, điều đó chỉ khuyến khích tôi nghĩ rằng tôi chỉ nên viết bài kiểm tra đơn vị khi tôi biết chúng là cần thiết.
Gần đây tôi đã được khuyến khích sử dụng Phát triển theo hướng thử nghiệm và tôi thấy đó là một tiết lộ hoàn chỉnh. Bây giờ tôi tin chắc rằng tôi không có thời gian để không viết bài kiểm tra đơn vị .
Theo kinh nghiệm của tôi, bằng cách phát triển với thử nghiệm trong tâm trí, bạn kết thúc với các giao diện sạch hơn, các lớp và mô-đun tập trung hơn và nói chung là RẮN hơn , mã có thể kiểm tra.
Mỗi lần tôi làm việc với mã kế thừa không có kiểm tra đơn vị và phải kiểm tra thủ công một cái gì đó, tôi cứ nghĩ "việc này sẽ nhanh hơn rất nhiều nếu mã này đã có kiểm tra đơn vị". Mỗi lần tôi phải thử và thêm chức năng kiểm tra đơn vị vào mã có độ khớp cao, tôi cứ nghĩ "việc này sẽ dễ dàng hơn nhiều nếu nó được viết theo cách tách rời".
So sánh và đối chiếu hai trạm thử nghiệm mà tôi hỗ trợ. Một cái đã xuất hiện được một thời gian và có rất nhiều mã kế thừa, trong khi cái còn lại thì tương đối mới.
Khi thêm chức năng vào phòng thí nghiệm cũ, thường là trường hợp xuống phòng thí nghiệm và dành nhiều giờ để làm việc với hàm ý của chức năng họ cần và làm thế nào tôi có thể thêm chức năng đó mà không ảnh hưởng đến bất kỳ chức năng nào khác. Mã đơn giản là không được thiết lập để cho phép thử nghiệm ngoại tuyến, do đó, hầu hết mọi thứ phải được phát triển trực tuyến. Nếu tôi đã cố gắng phát triển ngoại tuyến thì tôi sẽ kết thúc với nhiều đối tượng giả hơn là hợp lý.
Trong phòng thí nghiệm mới hơn, tôi thường có thể thêm chức năng bằng cách phát triển ngoại tuyến tại bàn của mình, chỉ loại bỏ những thứ cần thiết ngay lập tức, và sau đó chỉ dành một thời gian ngắn trong phòng thí nghiệm, loại bỏ mọi vấn đề còn lại không được xử lý -hàng.
Lời khuyên của tôi
Có vẻ như bạn đã khởi đầu tốt, bất cứ khi nào bạn sẽ tạo ra những thay đổi lớn cho quy trình phát triển của mình, bạn phải chắc chắn rằng mọi người đều tham gia vào việc đưa ra quyết định đó, và lý tưởng nhất là hầu hết mọi người đã mua nó. Từ câu hỏi của bạn, có vẻ như bạn đã hiểu đúng. Nếu mọi người không nhiệt tình với ý tưởng này, thì chắc chắn sẽ thất bại hoặc tạo ra ý chí xấu.
Trừ khi bạn có thể trình bày một trường hợp kinh doanh hấp dẫn, tôi sẽ không đề xuất triển khai các bài kiểm tra đơn vị và thông số kỹ thuật cho toàn bộ hệ thống của bạn. Như tôi đã đề cập ở trên, nếu một hệ thống không được thiết kế để kiểm tra, có thể rất khó để viết các bài kiểm tra tự động cho nó.
Thay vào đó, tôi khuyên bạn nên bắt đầu nhỏ và sử dụng Quy tắc Hướng đạo nam :
Luôn luôn để khu cắm trại sạch hơn bạn tìm thấy.
Nếu trong khi bạn đang triển khai một cái gì đó trên cơ sở mã này, bạn có thể xác định các thử nghiệm cụ thể cần có để kiểm tra hành vi hiện có và chuyển từ hành vi cũ sang hành vi mới, thì bạn đã ghi lại sự thay đổi trong thông số kỹ thuật và bắt đầu thực hiện các thử nghiệm đơn vị cho hệ thống của bạn.
Các mô-đun mà bạn không chạm vào sẽ không được kiểm tra đơn vị, nhưng nếu bạn không chạm vào chúng thì có thể là do chúng đã được kiểm tra kỹ lưỡng trong sử dụng và không cần thay đổi, hoặc chúng không bao giờ được sử dụng.
Những gì bạn muốn tránh là lãng phí toàn bộ khối lượng nỗ lực viết bài kiểm tra không cần thiết ( YAGNI cũng hoạt động tốt đối với mã kiểm tra như mã sản xuất * 8 '), sẽ không bao giờ được sử dụng lại và làm mất tinh thần mọi người vào nghĩ rằng xét nghiệm là vô ích sau khi tất cả.
Tóm lược
Bắt đầu nhỏ, xây dựng niềm tin trong các bài kiểm tra tăng dần và đạt được giá trị kinh doanh từ việc phát triển các bài kiểm tra khi nào và ở đâu chúng có lợi nhất cho nhóm của bạn.