Tôi sẽ lập luận rằng bài kiểm tra thất bại nên được thêm vào, nhưng không rõ ràng là "một bài kiểm tra thất bại".
Như @BenVoigt chỉ ra trong câu trả lời của mình , một bài kiểm tra thất bại không nhất thiết là "phá vỡ bản dựng". Tôi đoán thuật ngữ có thể thay đổi từ nhóm này sang nhóm khác, nhưng mã vẫn biên dịch và sản phẩm vẫn có thể xuất xưởng với một bài kiểm tra thất bại.
Những gì bạn nên tự hỏi mình trong tình huống này là,
Các bài kiểm tra có nghĩa là gì để hoàn thành?
Nếu các thử nghiệm ở đó chỉ để làm cho mọi người cảm thấy tốt về mã, thì việc thêm một thử nghiệm thất bại chỉ để làm cho mọi người cảm thấy tồi tệ về mã không có vẻ hiệu quả. Nhưng sau đó, làm thế nào hiệu quả là các bài kiểm tra ở nơi đầu tiên?
Khẳng định của tôi là các bài kiểm tra nên phản ánh các yêu cầu kinh doanh . Vì vậy, nếu một "lỗi" đã được tìm thấy cho thấy một yêu cầu không được đáp ứng đúng, thì đó cũng là một dấu hiệu cho thấy các thử nghiệm không phản ánh đúng hoặc đầy đủ các yêu cầu kinh doanh.
Đó là lỗi cần sửa trước. Bạn không "thêm một bài kiểm tra thất bại." Bạn đang sửa các bài kiểm tra để phản ánh chính xác hơn các yêu cầu kinh doanh. Nếu mã sau đó không vượt qua các thử nghiệm đó, đó là một điều tốt. Nó có nghĩa là các bài kiểm tra đang làm công việc của họ.
Ưu tiên của việc sửa mã là được xác định bởi doanh nghiệp. Nhưng cho đến khi các bài kiểm tra được cố định, ưu tiên đó có thực sự được xác định không? Doanh nghiệp nên được trang bị kiến thức về chính xác những gì đang thất bại, làm thế nào nó thất bại và tại sao nó thất bại để đưa ra quyết định ưu tiên của họ. Các xét nghiệm nên chỉ ra điều này.
Có những bài kiểm tra không vượt qua hoàn toàn không phải là một điều xấu. Nó tạo ra một tạo tác lớn của các vấn đề đã biết được ưu tiên và xử lý tương ứng. Tuy nhiên, có các bài kiểm tra không kiểm tra đầy đủ là một vấn đề. Nó đặt câu hỏi về giá trị của các bài kiểm tra.
Nói cách khác ... Bản dựng đã bị hỏng. Tất cả những gì bạn quyết định là có hay không chú ý đến thực tế đó.