Có một công cụ tốt để tạo ra các trường hợp thử nghiệm đơn vị được cho là một dự án .NET hay Java, nó tạo ra các trường hợp kiểm tra đơn vị có thể bao phủ phạm vi mã gần như 100%. Số lượng các trường hợp thử nghiệm có thể tỷ lệ thuận với độ phức tạp chu kỳ của mã (cao hơn việc lồng các vòng và điều kiện độ phức tạp chu trình càng cao) khi độ phức tạp chu trình càng cao thì tập hợp các trường hợp thử nghiệm càng lớn. Tôi không mong đợi nó có đầy đủ chức năng (nói rằng tôi sẽ xây dựng các bài kiểm tra đơn vị và chạy nó sau khi nó được tạo ra), nhưng tôi sẽ nói rằng nó có thể có một kiểu mẫu trong trường hợp kiểm tra nơi bạn đang sửa đổi trường hợp phù hợp với nhu cầu của bạn. Nhưng nó cũng nên có một phương pháp thiết lập và teardown thích hợp và là đủ tốt để phát hiện nếu các đối tượng giả cho thử nghiệm đơn vị nên được sử dụng nên có bất kỳ phụ thuộc. Vậy, có một công cụ như vậy tồn tại?Tự động tạo các trường hợp kiểm tra đơn vị cho .NET và Java
Trả lời
Đối với .NET, Microsoft có Pex, hy vọng sẽ trở thành chủ đạo cho .NET 4.0, cùng với Code Contracts. Tôi khuyên bạn nên xem video của Kênh 9. Nó gây ấn tượng với tôi rằng loại điều này rất tốt cho các lớp học theo hướng dữ liệu - phân tích cú pháp, v.v. Tôi không thể thấy rằng tôi rất thường xuyên bắt đầu tắt với nó, nhưng một công cụ hữu ích để có armory của bạn dù sao đi nữa.
Đối với C# (hoặc .NET nói chung), PEX có thể là công cụ đó. Nó hoạt động ở cấp độ IL, và cố gắng để buộc nó vào mọi chi nhánh. Nó đã phát hiện thành công một loạt các lỗi (trong BCL vv).
Mặc dù có vẻ như ngược lại, bạn cũng có thể quan tâm đến các khung tạo thử nghiệm ngẫu nhiên. Nghiên cứu đã chứng minh rằng nó có thể cũng hiệu quả trong việc tìm kiếm lỗi hơn là các phương pháp tiếp cận có hệ thống dựa trên mức độ phù hợp, như bạn đề xuất.
Kiểm tra Randoop cả cho .NET và Java. Nó hoạt động bằng cách tạo ra một chuỗi các cuộc gọi phương thức nhiều hơn hoặc ít hơn ngẫu nhiên, và kiểm tra các hợp đồng, sự cố, vv Nó hoàn toàn tự động.
Ngoài ra, bạn có thể muốn kiểm tra một số công cụ kiểm tra ngẫu nhiên khác dựa trên QuickCheck, ví dụ: cho Java, Scala, F #. tương tự như Pex, tức là bạn đưa ra một đặc điểm kỹ thuật, hoặc thử nghiệm đơn vị tham số, và công cụ kiểm tra nó cho một số đối số đầu vào được tạo ra.
Tôi đã nhận thấy rằng cách kiểm tra đơn vị "parametrized" này thực sự tự nhiên hơn trong ít nhất 60% các trường hợp và tìm thấy nhiều lỗi hơn.
Trang web dự án Randoop đã chuyển đến http://mernst.github.io/randoop/. – mernst
Đối với Java, hãy thử JUnit-Tools. Nó có plugin eclipse riêng cùng với tài liệu tốt.
- 1. Tạo các Bài kiểm tra Đơn vị Tự động
- 2. Công cụ để tự động tạo các bài kiểm tra đơn vị cho C++?
- 3. Có khung kiểm thử đơn vị Java tự động kiểm tra getters và setters không?
- 4. "App_GlobalResources" không tải trong trường hợp kiểm tra Đơn vị
- 5. khung kiểm tra đơn vị cho C
- 6. Kiểm tra đơn vị XQuery
- 7. Tạo các bài kiểm tra đơn vị cho các phương thức hashcode, equals và toString
- 8. Tự động kiểm tra đơn vị Mã số
- 9. Tự động tạo lớp học từ các bài kiểm tra đơn vị?
- 10. Kiểm tra đơn vị một Servlet Java
- 11. Mùa xuân: kiểm tra đơn vị và tích hợp
- 12. Tư vấn kiểm tra đơn vị - cách kiểm tra đơn vị của bạn .asmx
- 13. Maven - các bài kiểm tra tích hợp riêng biệt từ các bài kiểm tra đơn vị
- 14. zookeeper nhúng cho bài kiểm tra đơn vị/tích hợp
- 15. Làm thế nào để viết các bài kiểm tra đơn vị tự động cho bộ xử lý chú thích java?
- 16. Tự động cho phép quyền WebRTC trong các bài kiểm tra đơn vị
- 17. Tự động tạo đơn vị thử nghiệm cho mã Java cũ
- 18. Kiểm tra đơn vị cho PL/SQL
- 19. Kiểm tra đơn vị http xử lý?
- 20. Khung kiểm tra đơn vị cho Vala
- 21. Global.asax cho bài kiểm tra đơn vị?
- 22. Tạo tài liệu từ các bài kiểm tra đơn vị
- 23. Các trường hợp kiểm tra đơn vị gỡ lỗi trong VS 2008
- 24. tạo thử nghiệm đơn vị (bán) tự động?
- 25. Mocking HttpPostedFileBase và InputStream cho đơn vị kiểm tra
- 26. DAO Kiểm tra đơn vị
- 27. Đơn vị kiểm tra TSQL
- 28. Làm cách nào để thực hiện kiểm tra đơn vị tự động trong các gói SSIS?
- 29. Kiểm tra đơn vị CacheManager
- 30. Kiểm tra đơn vị và SAP
Darn, 12 giây trong đó! –
Tôi có thể nói gì, Marc? Hoặc bạn đã có nó hoặc bạn đã không ...;) –
Ngày "bắt đầu" với nó: Pex kiểm tra là giống như thông số kỹ thuật thực thi. Nghĩ về đầu vào ví dụ thực sự là một công việc nhàm chán được xử lý tốt hơn bởi phần mềm ... nó biết về tất cả các trường hợp góc mà kẻ phá hủy đang cố gắng bỏ qua;) –