Trong vài tuần qua tôi đã nghiên cứu và nghiên cứu cách lấp đầy khoảng trống trong phương pháp thử nghiệm của chúng tôi. Nói một cách đơn giản, các bài kiểm tra đơn vị là quá nhỏ và các bài kiểm tra tích hợp truyền thống là quá lớn.
Một kịch bản thường xuyên xuất hiện ở đâu Avà Bcả hai sử dụng thành phần C. Tuy nhiên Avà Bcó các yêu cầu hơi khác nhau cho, và đưa ra các giả định hơi khác nhau về C. Nếu tôi là nhà phát triển về Acách thức và nơi tôi kiểm tra các giả định của mình về C?
Rõ ràng thử nghiệm đơn vị Avới các giả định bị chế giễu Clà tốt để thử nghiệm Ariêng rẽ, nhưng nó không tự kiểm tra các giả định đó.
Một khả năng khác là thêm các bài kiểm tra đơn vị cho C. Tuy nhiên điều này không lý tưởng bởi vì, trong khi Ađang trong quá trình phát triển, việc thay đổi các bài kiểm tra Cvới các giả định phát triển từ đó Asẽ quá vụng về. Thật vậy A, nhà phát triển thậm chí có thể không có quyền truy cập đầy đủ vào các bài kiểm tra đơn vị của C(ví dụ: thư viện bên ngoài).
Để đóng khung này với một ví dụ cụ thể hơn: Giả sử rằng đây là một ứng dụng nút. Avà Bphụ thuộc vào Cviệc đọc một tệp (trong số những thứ khác) và lưu trữ nội dung tệp trong đối tượng được truyền tới C. Lúc đầu, tất cả các tệp Cxử lý đều nhỏ và có thể được đọc đồng bộ mà không bị chặn đáng kể. Tuy nhiên, nhà phát triển Bnhận ra rằng các tệp của mình đang trở nên rất lớn và cần phải chuyển sang Cđọc không đồng bộ. Điều này dẫn đến một lỗi đồng bộ hóa lẻ tẻ A, vẫn giả sử Cđang đọc các tệp đồng bộ.
Đây là loại lỗi rất khó theo dõi từ các thử nghiệm tích hợp đầy đủ và có thể không bị bắt trong các thử nghiệm tích hợp. Nó cũng không bị bắt bởi Acác bài kiểm tra đơn vị vì các Agiả định của s bị chế giễu. Tuy nhiên, nó có thể dễ dàng bị bắt bởi một bài kiểm tra tích hợp "mini" chỉ thực hiện Avà C.
Tôi chỉ tìm thấy một vài tài liệu tham khảo về loại thử nghiệm này. Tích hợp trong thử nghiệm tích hợp nhỏ , thành phần , thử nghiệm tích hợp đơn vị . Nó cũng liên quan phần nào đến hướng thử nghiệm của BDD hơn là thử nghiệm đơn vị TDD chính thức.
Làm thế nào để tôi lấp đầy khoảng trống thử nghiệm này? Cụ thể - nơi tôi đặt các bài kiểm tra như vậy? Làm cách nào để tôi chế nhạo các đầu vào Avà Ccho các thử nghiệm tích hợp "mini"? Và cần bao nhiêu nỗ lực để phân tách mối quan tâm kiểm tra giữa các bài kiểm tra này và bài kiểm tra đơn vị? Hoặc có cách nào tốt hơn để lấp đầy khoảng trống thử nghiệm?