Ứng dụng Web về bản chất cũng là một phần mềm, chính vì vậy các loại kiểm thử áp dụng cho phần mềm cũng áp dụng cho ứng dụng Web. Tuy nhiên có một số loại kiểm thử cần chú trọng hơn trong ứng dụng Web như kiểm thử giao diện người dùng, kiểm thử hiệu năng và kiểm thử an ninh, bảo mật.
Kiểm thử giao diện ngƣời dùng
Đối với ứng dụng Web, giao diện người dùng được hiển thị thông qua các trình duyệt Web, trên lý thuyết thì chỉ cần nhà phát triển đáp ứng được các chuẩn mà nhà cung cấp trình duyệt Web đề ra thì các nội dung hiển thị trên các trình duyệt khác nhau sẽ là đồng nhất, tuy nhiên thực tế thì với những trình duyệt khác nhau, nội dung hiển thị có thể khác nhau đôi chút. Kiểm thử giao diện người dùng giúp kiểm tra tính tương thích, nhất quán trên các trình duyệt. Ngoài ra nó còn giúp đánh giá mức độ “quan tâm”
người dùng qua việc cung cấp các chỉ dẫn rõ ràng khi sử dụng. Trong quá trình kiểm thử giao diện người dùng cũng nên chú trọng đến các khía cạnh như tính thẩm mỹ, sự hài hòa giữa các thành phần, tính tương tác. [3, tr.216]
Trước khi bắt đầu thực hiện kiểm thử giao diện người dùng cho một ứng dụng, để nắm được những tiêu chuẩn cần kiểm thử nên đặt ra hai câu hỏi:
Ai là người dùng mà ứng dụng sẽ nhắm tới?.
Những tiếp cận thiết kế được sử dụng trong giao diện là gì?.
Một ứng dụng Web thường có hai nhóm người dùng chính, một là nhóm người dùng phía máy chủ và nhóm người dùng phía máy khách. Trên thực tế, nhóm người dùng phía máy chủ chính là các quản trị viên hệ thống, về mặt hiểu biết về kỹ thuật hay công nghệ thì họ thường tốt hơn nhóm người dùng phía máy khách chính vì thế nên việc kiểm thử giao diện người dùng cho hai nhóm này phải có những tiêu chuẩn khác nhau. Để thiết lập những tiêu chuẩn này cần xem xét bốn yếu tố: kinh nghiệm sử dụng máy tính, kính nghiệm sử dụng Web, kiến thức chuyên môn trong các chức năng mà ứng dụng Web cung cấp và kinh nghiệm sử dụng ứng dụng Web.
Những tiếp cận thiết kế được sử dụng trong giao diện gồm ba loại:
Tiếp cận thiết kế theo trải nghiệm người dùng trong thế giới thực, giúp người dùng dễ dàng hơn trong việc tiếp cận ứng dụng do nó gần giống với những gì đã làm. Một ví dụ minh họa là với những người làm việc văn phòng thì ứng dụng nên thiết kế giao diện giống như một bàn làm việc.
Tương tác người dùng. Thiết kế cho phép người dùng tương tác với ứng dụng Web qua các liên kết hay input như textbox, button, radiobutton, checkbox hay combobox. Các vấn đề cần xem xét khi kiểm thử loại tiếp cận này đó là:
o Đặt tên cho các thành phần input có chính xác không?
o Loại input được sử dụng có phù hợp với loại dữ liệu được nhập không?
o Bố trí thứ tự, vị trí các input có hợp lý không?
Trình diễn dữ liệu. Thiết kế cung cấp việc hiển thị thông tin cho người dùng quan sát qua các thành phần như bảng biểu, menu, dạng văn. Các vấn đề cần xem xét khi kiểm thử loại tiếp cận này đó là:
o Lựa chọn kiểu hiển thị này có phù hợp với loại dữ liệu này không?
o Dữ liệu được hiển thị có đầy đủ, rõ ràng không?
o Xác định xem kiểu hiển thị dữ liệu này có thỏa mãn người dùng không?
Kiểm thử hiệu năng
Một trong những ưu điểm của ứng dụng Web là nó cho phép nhiều người dùng truy cập và sử dụng một hoặc nhiều chức năng khác nhau mà ứng dụng Web cung cấp trong cùng một thời điểm. Với phần mềm thông thường thì ta có thể ước lượng được số người dùng tối đa nhưng với ứng dụng Web thì rất khó ước lượng được. Chính vì vậy cần phải kiểm thử hiệu năng của ứng dụng Web để đánh giá khả năng của nó trong các giai đoạn sử dụng bình thường và cao điểm có xảy ra vấn đề hay không. Kiểm thử hiệu năng sẽ trả lời được các câu hỏi như ứng dụng có thể xử lý được tối đa bao nhiêu
yêu cầu trong một thời điểm?, nếu vượt quá khả năng xử lý tối đa thì ứng dụng sẽ xảy ra vấn đề gì? Và ứng dụng có khả năng mở rộng được hay không?
Một trong những mục đích của việc kiểm thử hiệu năng đó là đảm bảo sự hài lòng của người sử dụng. Một người bình thường khi sử dụng một ứng dụng Web ngoài những thỏa mãn yêu cầu về chức năng mà ứng dụng mang lại thì hai yếu tố quan trọng khác đó là tính đúng đắn và tính kịp thời. Ví dụ đơn giản là một người khách hàng khi đến quán nước và yêu cầu gọi nước cam trong lúc quán rất đông khách. Vì quán rất đông mà người phục vụ có hạn nên rất dễ xảy ra nhầm lẫn, tính đúng đắn thể hiện không tốt ở việc khách gọi nước cam mà phục vụ lại nhầm sang nước chanh và tính kịp thời thể hiện không tốt ở việc bắt khách đợi quá lâu mới có đồ uống. Trong ứng dụng Web cũng vậy, nếu ở thời điểm ứng dụng có quá nhiều người dùng mà ứng dụng không đáp ứng được, đưa ra trả lời sai yêu cầu của người dùng hoặc thời gian xử lý quá lâu sẽ khiến người dùng không hài lòng. Để kiểm thử hiệu năng cho ứng dụng Web có thể sử dụng công cụ hỗ trợ được đề xuất tại 2.2.3 của luận văn.
Kiểm thử an ninh, bảo mật
Một trong những yếu tố khiến người sử dụng và nhà phát triển ứng dụng Web luôn trăn trở đó là khả năng an ninh và bảo mật của ứng dụng. Tuy nhiên trên thực tế thì không ứng dụng Web nào có thể khẳng định hoàn toàn an toàn trước sự tấn công có chủ đích lẫn không chủ đích. Đối với những ứng dụng Web phục vụ cho mục đích thương mại như ngân hàng hay bán hàng trực tuyến thì yếu tố bảo mật càng quan trọng, tuy nhiên nếu sử dụng các biện pháp bảo mật quá cứng rắn sẽ dẫn tới việc khó khăn khi sử dụng ứng dụng hoặc quá thô sơ thì lại dễ bị tổn thương [3, tr.416]. Kiểm thử an ninh, bảo mật đối với ứng dụng Web là việc kiểm tra khả năng phòng thủ của ứng dụng trước sự tấn công, điều này đòi hỏi sự kết hợp giữa các kiến thức như lập trình, quản trị mạng, an ninh mạng, .. tuy nhiên hầu hết các kiểm thử viên đều không có đầy đủ những kiến thức này nên việc kiểm thử an ninh, bảo mật thường được thực hiện bằng sự kết hợp của một đội ngũ chuyên gia.
Theo [3, tr.412] thì các mối đe dọa chủ yếu đến an ninh, bảo mật của ứng dụng Web gồm:
Dữ liệu:
o Tính toàn vẹn bị xâm phạm: xóa hoặc thay đổi dữ liệu không được phép truy cập như tài khoản ngân hàng, giấy tờ pháp lý,...
o Truy cập các dữ liệu không được cho phép như thông tin cá nhân, tổ chức chính phủ,...
Tài nguyên mạng: sử dụng trái phép các tài nguyên mạng. Các mối đe dọa có thể đến từ các nguồn sau:
Lỗi phần mềm hoặc phần cứng.
Lỗi do người dùng cố ý hoặc vô ý gây ra khi sử dụng.
Bảng 1.2. Một số lỗi thường gặp trên ứng dụng Web STT Tên lỗi Giải thích STT Tên lỗi Giải thích
1 204 No Content Nội dung không có hoặc đã bị xóa.
2 400 Bad Request Yêu cầu không thực hiện được có thể do thời gian xử lý quá lâu hoặc do trình duyệt.
3 403 Forbidden Không được phép yêu cầu truy cập tài nguyên. 4 404 Not Found Không tìm thấy tài nguyên được yêu cầu. 5 409 Conflict Xảy ra khi gặp xung đột tài nguyên.
6 503 Service Unavailable Máy chủ ứng dụng không trả lời được do đang bảo trì hoặc quá bận.
CHƢƠNG 2 CÁC CÔNG CỤ KIỂM THỬ TỰ ĐỘNG CHO CÁC ỨNG DỤNG WEB
2.1. Công cụ kiểm thử tự động tĩnh
Trên các ứng dụng Web, cần sử dụng cả hai loại ngôn ngữ lập trình, một dành cho phía máy chủ (C#, PHP, Java) và một dành cho phía máy khách (Javascript, ActionScript). Sự khác biệt nhất có thể thấy là các ngôn ngữ lập trình phía máy khách không cần biên dịch để thực thi, người sử dụng có thể thấy được mã nguồn. Việc sử dụng các ngôn ngữ lập trình phía máy khách giúp giảm thực thi phía máy chủ và tăng tốc cho ứng dụng. Luận văn xin trình bày hai công cụ kiểm thử tự động phân tích mã nguồn cho hai loại ngôn ngữ lập trình trong ứng dụng Web.