I. Tổng Quan Về Kiểm Thử Giao Diện Phần Mềm Hiện Nay
Ngày nay, phần mềm hiện diện trong hầu hết các lĩnh vực, từ giáo dục đến hàng không vũ trụ. Phần lớn phần mềm được xây dựng với giao diện đồ họa người dùng (GUI) thân thiện. Tuy nhiên, không phải GUI nào cũng đảm bảo tính dễ dùng, bố cục hợp lý và chức năng chính xác. Lỗi phần mềm thường xuất hiện trong quá trình tương tác, gây mất mát dữ liệu, an toàn và thiệt hại kinh tế. Do đó, kiểm thử giao diện phần mềm là vô cùng quan trọng để đảm bảo tính năng, sự nhất quán và khả năng tương thích. Kiểm thử giao diện phần mềm là một quá trình gồm nhiều công việc khác nhau trên nhiều đối tượng của giao diện.
1.1. Tầm Quan Trọng Của Kiểm Thử Giao Diện Người Dùng
Việc kiểm thử giao diện người dùng (UI) là rất quan trọng vì người dùng tương tác với phần mềm chủ yếu thông qua các cửa sổ giao diện. Từ một chức năng trong cửa sổ này, có thể gọi tới một hoặc nhiều cửa sổ khác. Các trạng thái và thứ tự xuất hiện của các giao diện cần đảm bảo chính xác với lời gọi tới nó. Khi cửa sổ hiển thị không đúng với thứ tự ứng chức năng định sẵn sẽ đưa tới người dùng những thông tin và hành động sai, điều này gây ra những hậu quả khó lường. Theo tài liệu gốc, 'Việc kiểm thử giao diện người dùng (UI) là rất quan trọng để đảm bảo tính năng, sự nhất quán và khả năng tương thích'.
1.2. Các Phương Pháp Kiểm Thử Giao Diện Phổ Biến
Hiện nay, có nhiều phương pháp kiểm chứng, kiểm thử được áp dụng để kiểm chứng, kiểm thử các bản đặc tả thiết kế giao diện phần mềm như kiểm chứng tĩnh, kiểm chứng động, kiểm thử hộp đen. Tuy nhiên mỗi phương pháp lại bộc lộ những ưu và nhược điểm riêng. Với kiểm chứng tĩnh lại phụ thuộc chủ yếu vào kiến thức với kinh nghiệm khả năng phân tích của người kiểm thử và thường tốn nhiều thời gian. Trong khi đó kiểm chứng động thì lại được áp dụng trong quá trình thực hiện của phần mềm và sử dụng các kỹ thuật kiểm thử tùy theo cấp độ như kiểm thử modul hay kiểm thử đơn vị, phương pháp này tốt cho việc tìm lỗi nhưng lại đòi hỏi thực hiện chương trình tức là việc kiểm chứng chỉ thực hiện sau khi đã có mã nguồn.
II. Thách Thức Trong Kiểm Thử Giao Diện Phần Mềm Hiện Nay
Kiểm thử giao diện phần mềm là một thách thức lớn trong quá trình xây dựng phần mềm. Các lỗi giao diện có thể biểu hiện trong những điều kiện đặc biệt. Các lỗi thường xảy ra khi một thành phần gọi tới các thành phần khác và gây ra lỗi, hoặc khi các thành phần thao tác với tốc độ khác nhau. Việc kiểm thử thủ công tốn thời gian và phụ thuộc vào kinh nghiệm của người kiểm thử. Do đó, cần có các phương pháp và công cụ tự động để kiểm thử giao diện hiệu quả hơn.
2.1. Khó Khăn Trong Việc Phát Hiện Lỗi Giao Diện
Kiểm thử giao diện người dùng (UI) là một quá trình phát hiện các chức năng không chính xác. Kiểm thử UI áp dụng các kỹ thuật kiểm thử, các kỹ thuật kiểm thử này đề cập đến việc thiết lập các nhiệm vụ thực hiện và so sánh kết quả cùng với kết quả dự kiến và khả năng lặp lại cùng một tập các nhiệm vụ nhiều lần với dữ liệu đầu vào khác nhau và cùng một mức độ chính xác. Theo tài liệu gốc, 'Kiểm thử giao diện người dùng (UI) là một quá trình phát hiện các chức năng không chính xác'.
2.2. Sự Phụ Thuộc Vào Kinh Nghiệm Của Người Kiểm Thử
Phương pháp tĩnh áp dụng kỹ thuật phân tích tĩnh, kiểm thử bằng tay dựa trên kinh nghiệm và kiến thức của người kiểm thử, nó được thực hiện bởi chính người kiểm thử. Phương pháp heuristic được sử dụng trong kiểm thử bằng tay, trong đó một nhóm các chuyên gia nghiên cứu các phần mềm để tìm ra vấn đề. Màn hình giao diện được kiểm thử bằng tay bởi các người kiểm thử, những hành động và phản hồi của giao diện được so sánh với mục tiêu thiết kế và các yêu cầu của người sử dụng, sự khác biệt giữa mong đợi của người sử dụng và các bước thiết kế thiết kế cần thiết bởi giao diện, khả năng sử dụng của giao diện.
III. Phương Pháp Mô Hình Hóa Event B Cho Kiểm Thử Giao Diện
Phương pháp Event-B là một phương pháp mô hình hóa cho phép mô hình hóa các thành phần, đối tượng của hệ thống phần mềm dựa trên các ký hiệu toán học, logic mệnh đề và lý thuyết tập hợp kết hợp với công cụ mã nguồn mở Rodin cho phép sinh và kiểm chứng một cách tự động. Nhận thấy được tầm quan trọng của việc kiểm thử giao diện người dùng của phần mềm mà cụ thể là kiểm thử thứ tự xuất hiện của các cửa sổ giao diện cùng với ưu điểm của phương pháp Event-B và công cụ Rodin, nên tác giả đã mạnh dạn đề xuất đề tài “Kiểm chứng giao diện phần mềm bằng phương pháp mô hình hóa Event – B” nhằm nghiên cứu phương pháp kiểm chứng giao diện chung và tập trung vào xây dựng phương pháp kiểm chứng thứ tự xuất hiện của các cửa sổ giao diện phần mềm cho các ứng dụng trên thiết bị di động.
3.1. Ưu Điểm Của Phương Pháp Event B Trong Kiểm Thử UI
Phương pháp Event-B là một phương pháp hình thức để mô hình hóa và phân tích hệ thống phân cấp, được phát triển từ phương pháp B. Event-B sử dụng chủ yếu các ký hiệu toán học, logic mệnh đề, lý thuyết tập hợp để mô hình hóa hệ thống. Cho phép tinh chỉnh mô hình hóa hệ thống theo các mức từ trừu tượng tới cụ thể và sử dụng các chứng minh toán học để xác minh tính nhất quán giữa các mức độ tinh chỉnh. Các ký hiệu, cú pháp của Event-B có thể được soạn thảo và chứng minh tự động bằng công cụ Rodin Platform được tích hợp trong Eclipse-IDE (Integrated Development Environment), công cụ Rodin hỗ trợ cho phép soạn thảo các ký hiệu và chứng minh các tính chất toán học một cách hiệu quả, là một công cụ mã nguồn mở được cập nhật liên tục tại trang web Event-B.
3.2. Các Thành Phần Cơ Bản Của Mô Hình Event B
Một mô hình Event-B thường mã hóa các hệ thống chuyển đổi trạng thái trong đó các biến sẽ đại diện cho các trạng thái, các sự kiện event đại diện cho việc chuyển từ trạng thái tới một trạng thái khác của hệ thống. Một mô hình trong Event-B được tạo thành bởi hai loại thành phần cơ bản sau: machines và context. Machines bao gồm các phần đặc tả động của mô hình, trong khi đó contexts chứa các phần đặc tả tĩnh của mô hình. Một mô hình có thể chỉ chứa các contexts hoặc các machines hoặc là cả hai loại. Machines và contexts có các mối quan hệ qua lại với nhau: một machine có thể refined bởi một machine khác và một context có thể extended bởi một context khác, một machine có thể sees một hoặc một vài context.
IV. Ứng Dụng Event B Kiểm Thử Giao Diện Ứng Dụng Di Động
Luận văn tập trung vào việc xây dựng quy trình kiểm thử tổng quát và chi tiết cho các giao diện ứng dụng như: xây dựng quy trình thực hiện, xây dựng mô hình chung trên các định nghĩa, xây dựng quy trình chi tiết, đưa ra các luật chuyển đổi tổng quát và mệnh đề chứng minh tổng quát chung. Áp dụng vào kiểm chứng tự động thứ tự thực hiện của các cửa sổ giao diện của ứng dụng tạo ghi chú Note chạy trên hệ điều hành Android của thiết bị di động.
4.1. Mô Hình Hóa Giao Diện Ứng Dụng Note Với Event B
Đề tài tập trung vào việc nghiên cứu đặc điểm của giao diện phần mềm, các vấn đề liên quan tới kiểm chứng giao diện phần mềm, các phương pháp kiểm chứng giao diện. Nghiên cứu mô hình, cấu trúc, ký pháp của phương pháp mô hình hóa Event-B. Tìm hiểu nguyên lý, chức năng của công cụ Rodin. Từ những nghiên cứu có được xây dựng một phương pháp mô hình hóa và kiểm chứng chung, xây dựng phương pháp kiểm chứng thứ tự xuất hiện của các cửa sổ giao diện người dùng của các ứng dụng di động, toàn bộ quá trình nghiên cứu được triển khai gồm các công việc: xây dựng quy trình thực hiện tổng quát, xây dựng quy trình chi tiết, xây dựng các mô hình giao diện trừu tượng tổng quát thông qua các định nghĩa, xây dựng các bộ quy tắc chuyển đổi tham chiếu tương ứng từ mô hình trừu tượng vào trong Event-B.
4.2. Quy Trình Kiểm Thử Tự Động Thứ Tự Cửa Sổ Giao Diện
Áp dụng và kiểm chứng tự động thứ tự thực hiện của các cửa sổ giao diện của ứng dụng tạo ghi chú Note chạy trên hệ điều hành Android của thiết bị di động. Soạn thảo, biên tập mô hình thu được và kiểm chứng tự động với công cụ Rodin. Nghiên cứu đề xuất phương pháp để kiểm chứng giao diện người dùng phần mềm ở giai đoạn thiết kế bằng phương pháp mô hình hóa Event-B, đó chính là kiểm chứng sự tuân thủ về thứ tự của các cửa sổ giao diện, giúp các nhà phát triển có thể phát hiện và tránh các lỗi không mong muốn của giao diện hoặc những giả thiết không hợp lý của bản đặc tả thiết kế của giao diện trong quá trình xây dựng phần mềm trước khi cài đặt.
V. Kết Luận Và Hướng Phát Triển Của Kiểm Thử Giao Diện
Luận văn đã đề xuất phương pháp kiểm chứng giao diện người dùng phần mềm ở giai đoạn thiết kế bằng phương pháp mô hình hóa Event-B, đó chính là kiểm chứng sự tuân thủ về thứ tự của các cửa sổ giao diện. Phương pháp này giúp các nhà phát triển có thể phát hiện và tránh các lỗi không mong muốn của giao diện hoặc những giả thiết không hợp lý của bản đặc tả thiết kế của giao diện trong quá trình xây dựng phần mềm trước khi cài đặt.
5.1. Đóng Góp Của Nghiên Cứu Về Kiểm Thử Giao Diện
Nghiên cứu đề xuất phương pháp để kiểm chứng giao diện người dùng phần mềm ở giai đoạn thiết kế bằng phương pháp mô hình hóa Event-B, đó chính là kiểm chứng sự tuân thủ về thứ tự của các cửa sổ giao diện, giúp các nhà phát triển có thể phát hiện và tránh các lỗi không mong muốn của giao diện hoặc những giả thiết không hợp lý của bản đặc tả thiết kế của giao diện trong quá trình xây dựng phần mềm trước khi cài đặt.
5.2. Hướng Phát Triển Tiếp Theo Cho Nghiên Cứu
Hướng phát triển tiếp theo có thể tập trung vào việc mở rộng phương pháp để kiểm thử các khía cạnh khác của giao diện, như khả năng sử dụng, tính thẩm mỹ và khả năng truy cập. Ngoài ra, có thể nghiên cứu các công cụ và kỹ thuật tự động hóa để hỗ trợ quá trình kiểm thử giao diện hiệu quả hơn.