Kiểm thử là một giai đoạn tốn kém và nặng nề trong quy trình phần mềm. Kết quả những công cụ kiểm thử là một trong những công cụ phần mềm đầu tiên được phát triển.
Hiện nay, các công cụ này đã bộc lộ nhiều sự thuận tiện và chúng làm giảm đáng kể chi phí kiểm thử. Tôi đã thảo luận một cách tiếp cận để tự động hóa kiểm thử (Mosley và Posey, 2002) với một khung kiểm thử như JUnit (Massol và Husted, 2003) được sử dụng để kiểm thử phục hồi.
JUnit là một tập các lớp Java được người dùng mở rộng để tạo nên môi trường kiểm thử tự động. Mỗi thử nghiệm riêng lẻ được thực hiện như một đối tượng và một chương trình đang chạy thử nghiệm chạy tất cả các thử nghiệm đó. Các thử nghiệm đó nên được viết theo cách để chúng chỉ ra hệ thống kiểm thử có thực hiện như mong muốn không.
Một phần mềm kiểm thử workbench là một tập tích hợp các công cụ để phục vụ cho quá trình kiểm thử. Hơn nữa với các khung kiểm thử cho phép thực hiện kiểm thử tự động, một workbench có thể bao gồm các công cụ để mô phỏng các phần khác của hệ thống và để sinh ra dữ liệu thử nghiệm hệ thống.
1. Người quản lý kiểm thử: quản lý quá trình chạy các thử nghiệm. Họ giữ vết của dữ liệu thử nghiệm, các kết quả mong đợi và chương trình dễ dàng kiểm thử. Các khung kiểm thử tự động hóa thử nghiệm như JUnit là ví dụ của các người quản lý thử nghiệm.
2. Máy sinh dữ liệu thử nghiệm: sinh các dữ liệu để thử nghiệm chương trình. Điều này có thể thực hiện bằng cách lựa chọn dữ liệu từ cơ sở dữ liệu hoặc sử dụng các mẫu để sinh ngẫu nhiên dữ liệu với khuôn dạng đúng đắn.
3. Hệ tiên đoán (Oracle): đưa ra các dự đoán về kết quả kiểm thử mong muốn. Các hệ tiên đoán có thể là phiên bản trước của chương trình hoặc hệ thống bản mẫu. Kiểm thử back-to-back, bao gồm việc thực hiện kiểm thử song song hệ tiên đoán và chương trình đó. Các khác biệt trong các đầu ra của chúng được làm nổi bật.
4. Hệ so sánh tập tin: so sánh các kết quả thử nghiệm chương trình với các kết quả thử nghiệm trước đó và báo cáo các khác biệt giữa chúng. Các hệ so sánh được sử dụng trong kiểm thử hồi quy (các kết quả thực hiện trong các phiên bản khác nhau được so sánh). Khi kiểm thử tự động được sử dụng, hệ so sánh có thể được gọi từ bên trong các kiểm thử đó.
5. Hệ sinh báo cáo: cung cấp các báo cáo để xác định và đưa ra các tiện lợi cho kết quả thử nghiệm.
6. Hệ phân tích động: thêm mã vào chương trình để đếm số lần mỗi câu lệnh đã được thực thi. Sau khi kiểm thử, một bản sơ thảo thực thi được sinh ra sẽ cho biết mỗi câu lệnh trong chương trình đã được thực hiện bao nhiêu lần.
7. Hệ mô phỏng (Simulator): Các loại hệ mô phỏng khác nhau có thể được cung cấp. Mục đích của các hệ mô phỏng là mô phỏng các máy khi chương trình được thực thi. Hệ mô phỏng giao diện người dùng là các chương trình điều khiến kịch bản mô phòng nhiều tương tác đồng thời của người dùng. Sử dụng hệ mô phỏng cho 1/0 có nghĩa là bộ định thời gian của dây giao dịch có thể được lặp đi lặp lại. Khi sử dụng cho kiểm thử hệ thống lớn, các công cụ đó phải được định dạng và phù hợp với hệ thống cụ thể. Ví dụ:
– Các công cụ mới có thể được thêm vào để kiểm thử các đặc trưng ứng dụng cụ thể, một vài công cụ hiện có có thể không cần đến.
– Các kịch bản có thể được viết cho hệ mô phỏng giao diện người dùng và các mẫu đã xác định cho công nghệ hệ sinh dữ liệu thử nghiệm. Các khuôn dạng báo cáo có thể cũng phải được xác định.
– Các tập kết quả thử nghiệm mong muốn có thể phải chuẩn bị bằng tay nếu không một phiên bản chương trình nào trước đó có thể dùng được như một hệ tiên đoán.
– Hệ so sánh tập tin mục đích đặc biệt có thể được viết bao gồm hiểu biết về cấu trúc của kết quả thử nghiệm trên tập tin.
Để tạo nên một workbench thử nghiệm toàn diện thường cần một lượng lớn thời gian và công sức. Do đó, các workbench hoàn chỉnh, chỉ được sử dụng khi phát triển các hệ thống lớn. Với các hệ thống đó, toàn bộ chi phí kiểm thử có thể lên tới 50% tổng giá trị phát triển. Vì vậy, nó là hiệu quả để đầu tư cho công cụ chất lượng cao CASE hỗ trợ việc kiểm thử.
Tuy nhiên, vì các loại hệ thống khác nhau yêu cầu sự hỗ trợ các loại kiểm thử khác nhau, các công cụ kiểm thử có thể không sản có để dùng. Rankin (Rankin, 2002) đã thảo luận một tình huống trong IBM và miêu tả thiết kế của hệ thống hỗ trợ kiểm thử mà họ đã phát triển cho máy chủ kinh doanh điện tử.
Các điểm chính: Kiểm thử có thể chỉ ra sự hiện diện của các lỗi trong chương trình. Nó không thử chứng tỏ không còn lỏi trong chương trình; Kiểm thử thành phần là trách nhiệm của người phát triển thành phần. Một đội kiểm thử khác thường thực hiện kiểm thử hệ thống.
Kiểm thử tích hợp là hoạt động kiểm thử hệ thống ban đầu khi bạn kiểm thử khiếm khuyết của các thành phần tích hợp. Kiểm thử phát hành liên quan đến kiểm thử của khách hàng và kiểm thử phát hành nên xác nhận hệ thống được phân phối có đầy đủ các yêu cầu.
Khi kiểm thử hệ thống, bạn nên cố gắng phá hệ thống bằng cách sử dụng kinh nghiệm, và các nguyên tắc để lựa chọn các kiểu thử nghiệm có hiệu quả, nhằm phát hiện khiếm khuyết trong hệ thống.
Kiểm thử giao diện dùng để phát hiện các khiếm khuyết trong giao diện của các thành phần hỗn hợp. Các khiếm khuyết trong giao diện có thể nảy sinh bởi lỗi trong khi đọc các đặc tả chương trình, hiểu sai các đặc tả chương trình, các lỗi khác hoặc do thừa nhận bộ đếm thời gian không hợp lệ.
Phân hoạch tương đương là một cách xác định các thử nghiệm. Nó phụ thuộc vào việc xác định các phân hoạch trong tập dữ liệu đầu vào và đầu ra, sự thực hiện chương trình với các giá trị từ các phân hoạch đó. Thông thường, các giá trị đó là giá trị tại giới hạn của phân hoạch.
Kiểm thử cấu trúc dựa trên phân tích chương trình để phát hiện đường dẫn qua chương trình và sử dụng những phân tích để lựa chọn các thử nghiệm. Tự động hóa thử nghiệm làm giảm chi phí kiểm thử, bằng cách hỗ trợ quá trình kiểm thử bằng cách công cụ phần mềm.
Tác giả: Thạc Bình Cường
Bạn đang xem bài viết:
Tự động hóa kiểm thử (Test automation) là gì?
Link https://vnlibs.com/cong-nghe/tu-dong-hoa-kiem-thu-test-automation-la-gi.html