Tôi nghĩ bạn nên phân biệt giữa đánh giá Đơn vị và thuật toán hiệu suất (= độ chính xác và/hoặc tốc độ). Bạn nên áp dụng cả hai, nhưng riêng biệt.
Kiểm tra đơn vị phải cho bạn biết mã của bạn có thực hiện được không. Không chắc chắn nếu/làm thế nào bạn có thể đơn vị kiểm tra toàn bộ chuỗi từ một hình ảnh thô để trích xuất các đối tượng, nhưng bạn sẽ có thể kiểm tra "đơn vị" (modules/methods/classes) riêng lẻ được kết hợp để thực hiện công việc. Các bài kiểm tra đơn vị sẽ cho bạn "lỗi" hoặc "vượt qua". Nếu tối ưu hóa tốc độ thay đổi hành vi của mã, kiểm tra đơn vị sẽ cho bạn biết điều này. Đối với thử nghiệm đơn vị có rất nhiều khung có sẵn (Tôi thích Google Test, nhưng có nhiều khung công tác khác.)
Câu hỏi của bạn dường như nhắm đến phần thứ hai: đánh giá chất lượng thuật toán của bạn. Cá nhân tôi yêu thích TeamCity chủ yếu được dùng như máy chủ tích hợp liên tục Java/.net, nhưng bạn cũng có thể dễ dàng sử dụng nó với C++. Tôi đã viết một vài dòng mã trong cửa hàng của chúng tôi để xuất kết quả của Google Test theo định dạng TeamCity sử dụng số service API của họ. Mỗi khi ai đó kiểm tra trong một phiên bản mới, TeamCity thực hiện việc xây dựng (có thể là một giải pháp Visual Studio, Ant, kịch bản dòng lệnh hoặc những người khác.) Kết quả được hiển thị cho tất cả các đồng đội thông qua một ui web tốt đẹp. Hơn nữa, bạn có thể báo cáo custom build statistics. Điều này có thể được sử dụng cho bất kỳ thứ gì như kiểm tra hiệu suất của các thuật toán của bạn.Bạn chỉ cần ra một dòng như
##teamcity[buildStatisticValue key='detectedObjectsPercent' value='88.3']
trên giao diện điều khiển từ ứng dụng của bạn (mà phải được cấu hình để chạy trong từng xây dựng) và TeamCity sẽ lưu giữ những giá trị và cung cấp một đồ thị đẹp (giá trị theo thời gian) trên người sử dụng web giao diện.
Đừng quên thiết lập biểu đồ tùy chỉnh của bạn như được mô tả here.
Tôi nghĩ TeamCity thực sự rất đơn giản để thiết lập, vì vậy hãy thử dùng! Tôi thậm chí thích nó nếu tôi làm việc trên một dự án chỉ bằng bản thân mình!
Hy vọng rằng ai đó sẽ mâu thuẫn với tôi, nhưng thường thì trường hợp các khuôn khổ thử nghiệm thường là mục đích chung chung. Vì vậy, họ không cung cấp hỗ trợ cho các loại tính toán cụ thể. Bạn có thể cần phải viết mã của riêng bạn để đánh giá lỗi trong các tính toán được đưa ra câu trả lời đúng. Nếu bạn có thể đo được lỗi, sau đó bạn có thể tạo các thử nghiệm dựa trên việc lỗi có nằm trong dung sai được chỉ định hay không. Sau đó bạn có thể tạo một tập hợp các bài kiểm tra dựa trên dung sai ngày càng chặt chẽ. Điều này sẽ cho phép bạn quan sát xem các cải tiến có làm giảm lỗi trong các phép tính hay không. –
@Bowie Owens: Làm cho nó là một câu trả lời, tôi sẽ bỏ phiếu cho bạn :) – neuro
Phân loại tay bao gồm những gì? Có phân đoạn hoặc hộp giới hạn hoặc thẻ đối tượng không? – nav