Việc kiểm tra tính hợp lệ của các dữ liệu đầu vào là rất quan trọng do dữ liệu đầu vào không chỉ yêu cầu phải đúng kiểu dữ liệu mà còn đòi hỏi phải đúng định dạng của loại dữ liệu đó, ví dụ như định dạng email, dạng số hay ngày tháng. Do đó các ứng dụng Web cần phải có khả năng kiểm tra tính hợp lệ của dữ liệu đầu vào một cách hiệu quả thì các tiến trình xử lý tiếp theo mới được đảm bảo hoạt động tốt. Khi kiểm thử viên tiến hành kiểm thử một form trên ứng dụng Web, việc đầu tiên thường là kiểm tra xem khả năng bắt lỗi (kiểm tra tính hợp lệ) trên các input có chính xác hay không sau đó mới kiểm tra đến chức năng đó có thực hiện và cho ra kết quả chính xác hay không. Công việc này đòi hỏi phải rất tỉ mỉ và mất nhiều thời gian do một input thường không
chỉ có một điều kiện đầu vào mà còn rất nhiều điều kiện khác nhau, có thể không kiểm tra riêng rẽ mà còn kết hợp lại với nhau.
Hiện nay có rất nhiều công cụ hỗ trợ cho việc kiểm thử tự động ứng dụng Web, tuy nhiên hầu hết các công cụ chỉ hỗ trợ cho việc thực thi tự động các ca kiểm thử còn việc thiết kế các ca kiểm thử lại rất hạn chế. Đối với một số kiểm thử viên chưa có nhiều kinh nghiệm hoặc những người không có kiến thức về kiểm thử thì rất khó để có thể thiết kế đầy đủ các ca kiểm thử nhằm kiểm tra xem chức năng đang xem xét có khả năng kiểm tra tính hợp lệ hay không hợp lệ của các dữ liệu đầu vào một cách chính xác.
Bằng việc sử dụng ngôn ngữ lập trình Javascript hoặc các ngôn ngữ khác có khả năng hoạt động phía máy khách, các ứng dụng Web có thể thực hiện việc kiểm tra tính hợp lệ của các input ngay tại phía máy khách mà không cần phải kiểm tra tại phía máy chủ ứng dụng Web, điều này nhằm tăng tốc độ xử lý và giảm tải cho phía máy chủ. Tuy nhiên nếu người sử dụng sử dụng cài đặt các plug-in chặn mã trên trình duyệt hoặc thiết lập không cho Javascript được hoạt động thì việc kiểm tra sẽ bị vô hiệu hóa. Trong trường hợp này, nếu ứng dụng Web phụ thuộc quá nhiều vào việc kiểm tra tính hợp lệ bằng việc kiểm tra trên máy khách mà quên hoặc thiếu sót trong việc kiểm tra tính hợp lệ ở phía máy chủ thì nhiều khả năng lỗi có thể xảy ra. Do đó, việc kiểm tra tính hợp lệ ở phía máy chủ cũng rất quan trọng và không thể bỏ qua.
Xuất phát từ những vấn đề đã nêu trên, ý tưởng thực hiện một công cụ kiểm thử tự động có khả năng sinh ra các ca kiểm thử và thực hiện các ca kiểm thử đó nhằm xác định ứng dụng Web có thể kiểm tra tính hợp lệ của dữ liệu đầu vào chính xác là điều rất cần thiết không chỉ hỗ trợ cho những người chưa có nhiều kinh nghiệm mà còn giúp giảm thời gian và chi phí để thiết kế, thực thi các ca kiểm thử. Trong luận văn này, tôi xin giới thiệu công cụ kiểm thử tự động được phát triển theo ý tưởng đã đặt đề ra.
3.2. Phân tích bài toán
Để giải bài toán với yêu cầu là thực hiện một công cụ kiểm thử tự động ứng dụng Web có khả năng tự sinh ca kiểm thử và thực thi nhằm quan sát xem ứng dụng có kiểm tra chính xác tính hợp lệ của dữ liệu đầu vào hay không cần phải giải quyết một số vấn đề sau:
Xác định form và các input trong form cần kiểm thử trên ứng dụng Web, làm sao để điều khiển và thực thi tự động những thành phần này.
Tính hợp lệ của dữ liệu đầu vào là gì?
Xây dựng các thuật toán ra sao để có thể sinh ra các ca kiểm thử để thỏa mãn hoặc không thỏa mãn tính hợp lệ.
Lưu lại và quan sát kết quả sau khi thực hiện các ca kiểm thử một cách hợp lý.
Điều khiển và thực thi các thành phần cần kiểm thử trên ứng dụng Web
Địa chỉ URL chứa form cần kiểm thử.
Id của form và các input trong nó cần kiểm thử.
Một ứng dụng Web cũng giống như Website, là tập hợp của rất nhiều các trang Web lại với nhau, các trang Web này được truy cập thông qua địa chỉ URL. Form là một thành phần nằm trên trang Web nên để có thể kiểm thử form đòi hỏi phải biết được địa chỉ URL dẫn tới trang Web chứa form đó. Các thành phần trên trang Web, trong đó có form và các input trong nó được định danh duy nhất bởi thuộc tính id, nên để kiểm tra tính hợp lệ của input cần xác định được id của input đó. Như đã biết, người dùng giao tiếp với các ứng dụng Web thông qua các sự kiện, khi dữ liệu được nhập vào các input có trên form cần kích hoạt sự kiện submit của form thì các dữ liệu trong input mới được gửi về phía server để xử lý. Như vậy cần phải biết được một trong hai thông tin đó là tên form cần kiểm thử hoặc tên nút thực hiện việc submit của form thì mới có thể yêu cầu thực thi chức năng.
Ngoài ra, sau khi thực thi form, cần phải nhận thông báo từ ứng dụng Web để biết được ứng dụng phản ứng thế nào với dữ liệu nhận được từ input. Thông thường, ứng dụng Web phản hồi lại người dùng sau khi nhận yêu cầu bằng bốn cách chính:
Phản hồi bằng hộp thông báo. Ví dụ: sau khi đăng nhập thì ứng dụng cho người dùng biết được đã đăng nhập thành công.