Các công cụ khung kiểm thử khai thác/kiểm thử đơn vị (D)
Hai loại công cụ này được nhóm lại với nhau vì chúng là các biến thể của loại hỗ trợ mà các nhà phát triển cần khi kiểm thử các thành phần hoặc đơn vị phần mềm riêng lẻ. Khai thác kiểm thử (test harness) cung cấp stub và drivers, là những chương trình nhỏ tương tác với phần mềm đang được kiểm thử (ví dụ: để kiểm thử phần mềm trung gian và phần mềm nhúng). Xem Chương 2 để biết thêm chi tiết về cách chúng được sử dụng trong kiểm thử tích hợp. Một số công cụ khung kiểm thử đơn vị cung cấp hỗ trợ cho phần mềm hướng đối tượng, số khác cho các mô hình phát triển khác.
Một số khung kiểm thử đơn vị (unit test framework tools) có thể được sử dụng trong quá trình phát triển nhanh để tự động hóa các bài kiểm thử song song với quá trình phát triển. Cả hai loại công cụ đều cho phép nhà phát triển kiểm thử, xác định và khoanh vùng bất kỳ lỗi nào. Framework, Stub và drivers cung cấp bất kỳ thông tin nào cần thiết cho phần mềm đang được kiểm thử (ví dụ: đầu vào sẽ đến từ người dùng) và cũng nhận bất kỳ thông tin nào do phần mềm gửi (ví dụ: giá trị được hiển thị trên màn hình).
Stub cũng có thể được gọi là “đối tượng giả”. Test harnesses hoặc drivers có thể được phát triển nội bộ cho các hệ thống cụ thể. Lời khuyên về thiết kế trình điều khiển kiểm thử có thể được tìm thấy trong [Hoffman và Strooper, 1995].
Có một số lượng lớn các công cụ “xUnit” dành cho các ngôn ngữ lập trình khác nhau, ví dụ: JUnit cho các ứng dụng Java, NUnit cho .Net…. Có cả công cụ thương mại và cả công cụ mã nguồn mở (tức là miễn phí). Các công cụ khung kiểm thử đơn vị rất giống với các công cụ thực hiện kiểm thử, vì chúng bao gồm các phương tiện như khả năng lưu trữ các trường hợp kiểm thử và giám sát xem các kiểm thử đạt hay không.
Sự khác biệt chính là không có cơ sở chụp/phát lại và chúng có xu hướng được sử dụng ở cấp độ thấp hơn, tức là để kiểm thử tích hợp thành phần hoặc kiểm thử thành phần, thay vì kiểm thử hệ thống hoặc kiểm thử chấp nhận.
Các tính năng hoặc đặc điểm của test harnesses và công cụ khung kiểm thử đơn vị bao gồm hỗ trợ cho:
- Cung cấp đầu vào cho phần mềm đang được kiểm thử
- Nhận đầu ra được tạo ra bởi phần mềm đang được kiểm thử
- Thực hiện một tập hợp các bài kiểm thử trong khuôn khổ hoặc sử dụng test harnesses
- Ghi lại kết quả đạt/không đạt của từng bài kiểm thử (công cụ khung)
- Lưu trữ các bài kiểm thử (công cụ khung)
- Hỗ trợ gỡ lỗi (các công cụ khung)
- Đo lường mức độ bao phủ ở mức mã (công cụ khung).
Kiểm thử so sánh
Một bài kiểm thử thực sự là nếu bạn đưa một số đầu vào vào một số phần mềm, nhưng không bao giờ xem liệu phần mềm có tạo ra kết quả chính xác hay không? Bản chất của kiểm thử là kiểm thử xem phần mềm có tạo ra kết quả chính xác hay không và để làm được điều đó, chúng ta phải so sánh những gì phần mềm tạo ra với những gì nó nên tạo ra. Bộ so sánh kiểm thử giúp tự động hóa các khía cạnh của phép so sánh đó.
Có hai cách để so sánh kết quả thực tế của bài kiểm thử với kết quả dự kiến cho bài kiểm thử. So sánh động là việc so sánh được thực hiện một cách linh hoạt, tức là trong khi việc kiểm thử đang được thực hiện. Còn cách khác là so sánh sau khi thực hiện, trong đó so sánh được thực hiện sau khi việc kiểm thử đã thực hiện xong và phần mềm được kiểm thử không còn chạy nữa.
Các công cụ thực hiện kiểm thử bao gồm khả năng thực hiện so sánh động trong khi công cụ đang thực hiện kiểm thử. Kiểu so sánh này phù hợp để so sánh cách diễn đạt của thông báo lỗi hiện lên trên màn hình với cách diễn đạt chính xác cho thông báo lỗi đó. So sánh động rất hữu ích khi một kết quả thực tế không khớp với kết quả mong đợi ở giữa quá trình kiểm thử (công cụ có thể được lập trình để thực hiện một số hành động khôi phục tại thời điểm này hoặc chuyển sang một nhóm kiểm thử khác).
So sánh sau khi thực hiện thường được thực hiện tốt nhất bởi một công cụ riêng biệt (nghĩa là không phải công cụ thực hiện kiểm thử). Đây là loại công cụ gọi là công cụ so sánh kiểm thử và thường là công cụ “độc lập”. Các hệ điều hành thường có sẵn các công cụ so sánh tệp có thể được sử dụng để so sánh sau khi thực thi và thường thì một công cụ so sánh sẽ được phát triển nội bộ để so sánh một loại tệp hoặc kết quả kiểm thử cụ thể.
So sánh sau khi thực hiện là cách tốt nhất để so sánh một khối lượng lớn dữ liệu, chẳng hạn như so sánh nội dung của toàn bộ tệp với nội dung dự kiến của tệp đó hoặc so sánh một tập hợp lớn các bản ghi từ cơ sở dữ liệu với nội dung dự kiến của những bản ghi đó. Ví dụ: so sánh kết quả của một lần chạy hàng loạt (ví dụ: xử lý qua đêm các giao dịch trực tuyến trong ngày) có lẽ là không thể làm mà không cần công cụ hỗ trợ.
Cho dù so sánh là động hay sau khi thực hiện, công cụ so sánh kiểm thử cần biết kết quả chính xác là gì. Điều này có thể được lưu trữ như một phần của chính trường hợp kiểm thử hoặc nó có thể được tính toán bằng cách sử dụng dự đoán kiểm thử. Xem Chương 4 để biết thông tin về các phép dự đoán.
Các tính năng hoặc đặc điểm của bộ so sánh kiểm thử bao gồm hỗ trợ cho:
- So sánh động các sự kiện thoáng qua xảy ra trong quá trình thực hiện kiểm thử
- So sánh dữ liệu được lưu trữ sau khi thực hiện, ví dụ: trong tệp hoặc cơ sở dữ liệu
- Lọc các tập hợp con của kết quả thực tế và dự kiến.