Chủ lao động của tôi điều hành một cuộc thi ngày thử nghiệm đơn vị hàng tháng. Cả một ngày dành riêng cho việc viết bài kiểm tra đơn vị - rõ ràng chúng tôi làm nhiều bài kiểm tra hơn trong suốt tháng, nhưng đây là cả một ngày - và "người chiến thắng" của cuộc thi được trao giải thưởng. Tuy nhiên, chúng tôi thấy thật khó để xác định ai là người chiến thắng.
Chúng tôi đã chỉ định điểm cho từng trường hợp thử nghiệm. Vì vậy, nếu bạn đã viết một bài kiểm tra đơn vị như thế này ...
for (int i = 0; i < 100; i++) {
assertTrue(i*i, square(i));
}
bạn sẽ được 100 điểm. Rõ ràng đây là một ví dụ đơn giản nhưng nó cho thấy các vấn đề với việc gán "điểm" cho từng trường hợp thử nghiệm.
Chúng tôi chủ yếu là một cửa hàng Java & Javascript. Vì vậy, tôi đề nghị đếm số nhánh mã được thử nghiệm dưới dạng số liệu. Chúng ta có thể dễ dàng đếm các nhánh được kiểm tra thông qua một công cụ bao phủ mã (như EclEmma). Tuy nhiên, không chắc chắn làm thế nào chúng tôi sẽ làm điều này với các thử nghiệm Selen của chúng tôi và nhận được phạm vi bảo hiểm mã trên các nguồn Javascript (có ý tưởng nào không?)
Có ai có bất cứ đề nghị nào về cách chúng tôi có thể xác định tốt hơn người chiến thắng của cuộc thi này không?
Biên tập
Tôi biết cách viết bài kiểm tra đơn vị, tôi biết cách viết bài kiểm tra đơn vị hiệu quả, tôi không cần trợ giúp để xác định bài kiểm tra nào. Tôi không kiểm soát được cuộc thi này - cuộc thi sẽ tiếp tục. Vì vậy, hoặc tôi thêm một số đầu vào để làm cho nó tốt hơn hoặc tiếp tục chơi thử nghiệm (vâng, tôi chơi chúng. Tất nhiên tôi chơi chúng. Có giải thưởng để giành chiến thắng)
Biên tập
Câu hỏi này ở đây rõ ràng không phải là một bản sao, mặc dù nó chứa thông tin hữu ích về cách tìm các trường hợp kiểm tra tốt, nó không cung cấp bất kỳ số liệu hữu ích nào để đánh giá sự cạnh tranh.