Công cụ kiểm thử tự động ứng dụng Web của chúng tôi là một giải pháp cho việc kiểm thử tự động tương tác giao diện cho các ứng dụng Web. Thực nghiệm cho thấy hướng phát triển tiềm năng của phương pháp đối với kiểm thử tương tác giao diện các ứng dụng Web. Tuy phương pháp và công cụ vẫn còn một số hạn chế. Nhưng, công cụ này vẫn có ý nghĩa quan trọng trong việc kiểm thử tự động tương tác giao diện các ứng dụng Web. Công cụ tự động sinh và thực thi các ca kiểm thử trên hầu hết các loại phần tử Web của các ứng dụng
Web. Đây là một giải pháp nhằm nâng cao tính chính xác và hiệu quả, cũng như giảm kinh phí và rút ngắn thời gian trong quá trình kiểm thử các ứng dụng Web.
Để áp dụng phương pháp và công cụ của chúng tôi, kiểm thử viên chỉ cần tạo đặc tả cho từng trang Web theo như phương pháp đã trình bày ở chương 2. Sau đó, công cụ tự động ghép nối các bản đặc tả lại với nhau, từ đó sinh các ca kiểm thử và thực thi chúng tự động trên toàn bộ ứng dụng Web hoặc cho một mô-đun cụ thể. Khi có sự cập nhật phiên bản ứng dụng Web, thay vì việc thực hiện lại toàn bộ quy trình kiểm thử, chúng ta chỉ việc thay đổi lại các tệp tin đặc tả và chạy lại công cụ để thực thi lại việc kiểm thử ứng dụng đó. Việc này giúp chúng ta giảm thiểu rủi ro, thời gian, công sức và chi phí thực hiện. Thực nghiệm cho thấy, chỉ sau ít giây kể từ khi chọn dữ liệu đầu vào, công cụ trả về kết quả là 45 đường dẫn kiểm thử, mỗi đường dẫn kiểm thử chứa gần 30 đường chuyển trạng thái. Các đường dẫn kiểm thử này, được thực thi tự động và nhanh chóng trên hầu hết các phần tử Web của ứng dụng. Do đó, việc áp dụng công cụ để kiểm thử tự động mang lại rất nhiều lợi ích.
Với những lợi thế và ưu điểm đã nêu, trong tương lai công cụ có khả năng áp dụng hiệu quả cho các ứng dụng Web lớn trong thực tế. Hiện tại, công cụ đang được triển khai thử nghiệm với một số hệ thống ứng dụng Web của Cục Công nghệ Thông tin - Bộ Công an và đã nhận được những kết quả tích cực.
Chương 5: KẾT LUẬN
Kiểm thử tự động đang được xem là giải pháp chủ yếu nhằm đảm bảo chất lượng cho các sản phẩm phần mềm [1]. Đã có nhiều giải pháp và công cụ được đề xuất nhằm hiện thực hóa mục tiêu này. Hầu hết các phương pháp đều tập trung cho kiểm thử đơn vị hoặc kiểm thử một số yêu cầu phi chức năng như tính an toàn, bảo mật, khả năng chịu tải, v.v. [2, 3, 5, 6]. Tuy nhiên, việc kiểm thử tương tác giao diện cho các ứng dụng Web vẫn chưa có giải pháp thỏa đáng.
Chúng tôi đã nghiên cứu phương pháp và công cụ kiểm thử tự động tương tác giao diện ứng dụng Web được đề xuất bởi [5]. Phương pháp [5] này đã thực hiện kiểm thử được luồng tương tác giao diện người dùng ứng dụng Web. Nhưng, phương pháp chỉ kiểm thử được cho một số phần tử Web cơ bản và
chúng phải có thuộc tính định danh id, nên khó áp dụng cho các ứng dụng Web
trong thực tế. Dựa trên cơ sở của phương pháp tại [5], chúng tôi đã đề xuất một phương pháp cải tiến nhằm khắc phục những hạn chế đó. Thay vì, việc đặc tả
phần tử Web bằng thuộc tính định danh id. Phương pháp cải tiến cho phép đặc tả
phần tử Web theo nhiều thuộc tính một cách linh động hơn. Sau khi áp dụng phương pháp cải tiến, công cụ cải tiến đã thực hiện kiểm thử được cho hầu hết các phần tử Web có trong ứng dụng Web như: các phần tử Web động, giao diện
pop-up, phần tử Web không có id chỉ có thuộc tính name hoặc class và một số
phần tử Web khác mà công cụ trước chưa hỗ trợ.
Phương pháp kiểm thử tự động dựa vào hành vi tương tác giao diện ứng dụng Web đã trình bày có các ưu điểm nổi bật như: chỉ phụ thuộc vào phần hiển thị HTML mà không phụ thuộc vào ngôn ngữ lập trình Web, kiểm thử được cho hầu hết các loại phần tử Web và dễ dàng tạo các tệp tin đầu vào giúp giảm chi phí và công sức thực hiện. Với những ưu điểm trên, phương pháp hứa hẹn sớm được áp dụng rộng rãi trong thực tế, trở thành một công cụ hữu hiệu cho việc kiểm thử các ứng dụng Web hiện nay.
Về thực nghiệm, chúng tôi đã áp dụng công cụ kiểm thử tự động tương tác giao diện các ứng dụng Web cho một số hệ thống tại Cục Công nghệ thông tin - Bộ Công an. Kết quả thực nghiệm cho thấy, công cụ cải tiến tìm được nhiều lỗi lập trình liên quan đến tương tác giao diện ứng dụng Web mà công cụ trước không tìm thấy. Dựa vào kết quả thực nghiệm, công cụ đã cho chúng ta thấy được tính khả dụng cũng như khả năng tạo những đường dẫn kiểm thử bao phủ được hầu hết các trường hợp có thể xảy ra trong hệ thống.
Trong tương lai, chúng tôi sẽ áp dụng công cụ cho các hệ thống phức tạp hơn nhằm chứng minh tính hiệu quả của phương pháp. Đồng thời, chúng tôi sẽ tiếp tục so sánh công cụ này với các công cụ khác có chức năng tương tự nhằm nâng cấp thêm những tính năng mới, đảm bảo cho việc kiểm thử trở nên dễ dàng, thuận tiện và hiệu quả hơn.
TÀI LIỆU THAM KHẢO
Tiếng Việt
[1]Phạm Ngọc Hùng, Trương Anh Hoàng, Đặng Văn Hưng (2014), Giáo trình
kiểm thử phần mềm, NXB Đại học Quốc gia Hà Nội.
Tiếng Anh
[2]A. Armando, R. Carbone, L. Compagna, K. Li, and G. Pellegrino (2010), “Model-checking driven security testing of web-based applications”,
International Conference on Software Testing, Verification, and Validation Workshops, ICSTW ’10, pp 361–370.
[3]A. Vernotte (2013), “Research questions for model-based vulnerability
testing of web applications”, International Conference on Software Testing,
Verification and Validation, ICST ’13, pp 505–506.
[4]J. Ernits, R. Roo, J. Jacky, and M. Veanes (2009), ”Modelbased testing of
web applications using nmodel”, The 21st IFIP WG 6.1 International
Conference on Testing of Software and Communication Systems and 9th International FATES Workshop, TESTCOM ’09/FATES ’09, pp 211–216.
[5]Khanh Trinh Le, Hieu Dinh Vo and Pham Ngoc Hung, “A Method for
Automated User Interaction Testing of Web Applications”,Journal on
Information and Communications Technology (JoICT) (accepted 2015)
[6]M. Anisetti, C. A. Ardagna, E. Damiani, and F. Saonara (May. 2013), “A
test-based security certification scheme for web services”. ACM Transactions
on the Web (TWEB) 7(2), 5:1–5:41.
[7]M. Broy, B. Jonsson, J.-P. Katoen, M. Leucker, and A. Pretschner (2005), “Model-Based Testing of Reactive Systems: Advanced Lectures (Lecture
Notes in Computer Science)”. Springer-Verlag New York, Inc.
[8]M. Utting and B. Legeard (2007), “Practical Model-Based Testing: A Tools
Approach”, Morgan Kaufmann Publishers Inc.
[9]P. Koopman, R. Plasmeijer, and P. Achten (2006), “Modelbased testing of
thin-client web applications”, The First Combined International Conference
on Formal Approaches to Software Testing and Runtime Verification, FATES’06/RV’06, pp 115–132.