Đối với các nhà quản lý không công nghệ, tôi đã giảm trở lại tương tự xây dựng một ngôi nhà. Họ sẽ xây dựng một cái mà không có bản thiết kế, chỉ lấy viên gạch từ một đống và đặt một cái trên đỉnh kia với một ý tưởng hình ngôi nhà mơ hồ trong đầu? Nếu không thì tại sao họ sẽ không chấp nhận tài liệu thích hợp trước khi viết mã, đánh giá thiết kế, v.v ...?
Đối với đơn vị kiểm tra, bạn có thể thử so sánh nó với chất lượng thử nghiệm các thành phần nhà khác nhau riêng biệt trước khi đưa chúng lại với nhau (gạch, xi măng, cửa ra vào, cửa sổ, hệ thống ống nước)
Đối với những người bất kỳ nắm bắt công nghệ ở tất cả, tôi đề cập rằng 30% đến 50% xử lý các điều kiện lỗi và khôi phục (trong các hệ thống nhúng quan trọng của sứ mệnh) và rằng bạn không thể kiểm tra mà không cần thử nghiệm đơn vị. EG, nếu bạn chỉ thử nghiệm tích hợp blackbox thì làm sao bạn có thể kiểm soát được những gì xảy ra khi module A không thể cấp phát bộ nhớ tại một điểm nhất định hoặc thời gian chờ hết hạn trong mô-đun C khi chờ tin nhắn trả lời từ đâu đó, hoặc một cơ sở dữ liệu đọc mà thông thường sẽ thành công. Giải thích rằng bằng cách dummying ra interfacing module bạn có thể mô phỏng hành vi sai lầm của họ theo ý thích.
Và, tất nhiên, tôi vẽ biểu đồ favouriite của mình bằng ký hiệu $ trên một trục và đồng hồ ở một trục khác. Tôi đánh bại quản lý trên đầu với điều này ở mọi cơ hội để cho thấy rằng chi phí nhận được lỗi tăng sau đó họ được phát hiện (thay đổi một dòng trong một spec yêu cầu - 5 phút; một vài paras trong một tài liệu thiết kế - giờ; dòng mã (tại mã xem xét hoặc giai đoạn thử nghiệm đơn vị) - ngày; tìm kim trong một lỗi haystack và sửa chữa nó tại hệ thống kiểm tra - tuần). Nó không chỉ đơn vị kiểm tra - bạn phải thuyết phục quản lý - và các nhà phát triển đồng nghiệp của bạn - rằng "phí không cần thiết" của tài liệu, đánh giá, thử nghiệm ... s/w Quy trình nói chung (và bao gồm việc học các công cụ mới) ... thực sự tiết kiệm thời gian hơn là thêm thời gian vào một dự án. Nói cách khác, phải mất nhiều thời gian hơn và chi phí nhiều hơn để làm cho nó sai. Đo hai lần, cắt một lần, v.v.
Để kiểm tra đơn vị, hãy cho họ biết về continuous integration. Tôi khuyên bạn nên Jenkins, nhưng sử dụng bất cứ điều gì làm việc cho bạn. Giải thích rằng việc xây dựng thường xuyên, cho dù hàng đêm hoặc với mọi đăng ký, có thể tự động kéo các bài kiểm tra đơn vị từ VCS của bạn và chạy chúng, gửi email hoặc cảnh báo mã mới đã phá vỡ các thử nghiệm hiện tại gần như ngay khi nó xảy ra.
Nếu không ai trong số đó làm việc, tìm kiếm một công việc mới (nếu bạn đang ở Singapore, hoặc muốn trở thành, nói chuyện với tôi ;-)
Như với tất cả sự thuyết phục - chỉ cho họ lý do tại sao những gì bạn đề nghị là trong * của họ * inetrest. – Mawg