Có cách nào để xác định tập hợp các kiểm tra đơn vị có khả năng thực thi một dòng mã nhất định không? Nói cách khác, bạn có thể tự động xác định không chỉ liệu một dòng nhất định có được bao trả hay không, nhưng tập hợp thử nghiệm thực tế bao gồm nó?Xác định thử nghiệm nào bao gồm một dòng mã
Hãy xem xét một cơ sở mã lớn với các bài kiểm tra đơn vị 50K. Rõ ràng, nó có thể mất một thời gian dài để chạy chúng tất cả - giờ, nếu không phải ngày. Làm việc trong cơ sở mã như vậy, bạn muốn có thể thực hiện một số tập hợp con của tất cả các bài kiểm tra đơn vị, bao gồm các bài kiểm tra chỉ bao gồm dòng (hoặc dòng) mà bạn vừa mới chạm vào. Chắc chắn, bạn có thể tìm thấy một số bằng tay và chạy chúng, nhưng tôi đang tìm cách để làm điều đó nhanh hơn, và toàn diện hơn.
Nếu tôi đang suy nghĩ về điều này một cách chính xác, nó sẽ là có thể. Một công cụ có thể duyệt qua tất cả các đường dẫn mã dẫn ra khỏi mỗi bài kiểm tra đơn vị và đưa ra một phần của chương trình có thể truy cập từ bài kiểm tra đó. Và sau đó, bạn có thể tính toán tập các bài kiểm tra đơn vị bao gồm một dòng nhất định trong slice của họ, có nghĩa là dòng có thể được thực hiện bởi phép thử đó ("có thể" thay vì "sẽ" vì đường dẫn mã thực tế sẽ chỉ được xác định tại thời gian chạy dựa trên đầu vào hoặc các điều kiện khác). Một dòng mã nhất định có thể có một số lượng lớn các thử nghiệm thực thi nó (nói, mã trong một thư viện được chia sẻ), trong khi các dòng khác có thể có vài (hoặc không) thử nghiệm bao gồm chúng.
Vì vậy:
là âm thanh lập luận của tôi về ý tưởng này? Nó có thể được thực hiện về mặt lý thuyết hay không, hay có thứ gì đó tôi đang bỏ đi?
Đã có một công cụ ở đó có thể thực hiện việc này không? Hay, đây có phải là một điều phổ biến với cái tên mà tôi chưa từng gặp? Con trỏ đến các công cụ trong thế giới java, hoặc để nghiên cứu chung về chủ đề này, sẽ được đánh giá cao.
xác thực từng dòng mã = Clover có thể thực hiện việc này - tab Đóng góp thử nghiệm. Clover cũng có một tính năng mới để chỉ thực hiện các thử nghiệm liên quan đến các thay đổi của bạn. Tôi đã không sử dụng nó tuy nhiên (chuyển đến. NET và thực sự mất Clover) http://www.atlassian.com/software/clover/tour/test-optimization.jsp –