Một số điều cơ bản về kiểm thử ứng dụng web

Kiểm thử web khác với kiểm thử ứng dụng desktop, trong kiểm thử ứng dụng web, chúng ta thường sử dụng một trình duyệt (client) để gửi yêu cầu tới website từ một webserver thông qua HTTP hoặc HTTPS

Đối với một người kiểm thử, khi tham gia vào kiểm thử web, chúng ta nên làm quen với những khái niệm cơ bản của HTTP để có hiểu biết về cách ứng dụng web làm việc.

Trong kiểm thử web, ngoài kiểm thử chức năng độc lập và tích hợp các thành phần, một số loại kiểm thử như: Hiệu năng, an toàn, tương thích, cross-browser là rất cần thiết trong kiểm thử ứng dụng web. Bởi vì ứng dụng web được rất nhiều người sử dụng do đó hiệu năng cần phải được đo đạc.

Thêm vào đó, các ứng dụng web có thể dễ dàng bị tấn công như: DDos, SQL injection. Khi website bị tấn công, thời gian chết có thể gây tổn thất rất lớn. Vì thế cần chú trọng vào kiểm thử an toàn thông tin.

Kiểm thử web services

Rất nhiều website được xây dựng sử dụng web services. Người kiểm thử có thể kiểm thử ứng dụng web với các thành phần độc lập hơn là chỉ kiểm thử tích hợp toàn bộ ứng dụng.

Lợi ích của kiểm thử web services độc lập:

  • Không liên quan đến trình duyệt: Chúng ta có thể giao tiếp một cách trực tiếp với một web service miễn là chúng ta biết điểm kết thúc và các tham số gửi đi.
  • Nhanh hơn: khi kiểm thử web services độc lập, không có hình ảnh, javascripts, vì thế phản hồi sẽ nhanh hơn.
  • Dễ dàng gỡ lỗi: khi kiểm thử một web service, nếu chúng ta tìm thấy 1 vấn đề, sẽ dễ dàng tìm được nguyên nhân gây ra vấn đề đó và việc gỡ lỗi sẽ trở nên dễ dàng hơn.
  • Điều khiển được nhiều hơn: Chúng ta có thể điều kiển trực tiếp yêu cầu được gửi tới web services.

Kiểm thử hiệu năng - Performance Testing

Kiểm thử hiệu năng là một phần rất quan trọng trong kiểm thử web.

Khi thử nghiệm các ứng dụng web, chúng ta không chỉ phải đảm bảo chức năng của trang web là ổn định, mà còn phải chắc chắn rằng các ứng dụng không sụp đổ khi chịu một tải trọng lớn trên máy chủ. Thật không may nếu chúng ta quên mất kiểm thử hiệu năng của ứng dụng web hoặc chỉ kiểm thử trước khi phát hành sản phẩm. Lúc đó là quá muộn nếu chúng ta tìm thấy một số sai lầm cơ bản trong thiết kế hoặc trong mã nguồn gây ảnh hưởng tới hiệu năng.

Cách tiếp cận tốt nhất là kiểm tra hiệu năng thường xuyên như kiểm thử chức năng hồi quy. Khi đó nếu mã nguồn thay đổi, chúng ta cung có thể tự tin về hiệu suất.

Jmetter là công cụ mã nguồn mở phổ biến cho phép sử dụng để kiểm tra hiệu năng của một website.

Kiểm thử Cross-browser

Có tất nhiều trình duyệt khác nhau, chúng ta cần chắc chắn rằng ứng dụng web làm việc như mong muốn trên tất cả các trình duyệt đó ( ít nhất là trên một vài trình duyệt phổ biến: Chrome, Firefox, IE..)

Chúng ta cần biết rằng các trình duyệt và phiên bản của chúng, ứng dụng có hỗ trợ và đáp ứng được hay không? Từ đó có kế hoạch kiểm thử phù hợp.

Hơn nữa, có rất nhiều công cụ kiểm thử cross-browser trực tiếp. Người kiểm thử có thể dễ dàng sử dụng và kiểm thử trên các trình duyệt khác nhau.

Có thể không cần thiết chạy tất cả các test cases trên tất cả các trình duyệt, vì điều này rất mất thời gian. Phương pháp tiếp cận tốt nhất là chạy tất cả các test cases trên trình duyệt chính. Sau đó lựa chọn các kịch bản quan trọng, có thể cho các kết quả khác nhau trên các trình duyệt khác nhau, và chạy chúng trên tất cả các trình duyệt.

Kiểm thử tự động

Hầu hết các công ty phát triển ứng dụng web hiện nay đều phát triển theo mô hình Agile với lịch phát hành thường xuyên, do đó cần liên tục kiểm thử. Trong kiểm thử web, kiểm thử tự động có thể mang lại nhiều lợi ích vì nó loại bỏ gánh nặng làm việc lặp đi lặp lại.

Chúng ta có thể sử dụng kịch bản tự động để sinh ra dữ liệu kiểm thử cần thiết trong suốt quá trình kiểm thử web.

Một cách khác để giúp chúng ta kiểm thử tự động là dùng công cụ như Selenium Web Driver, có thể chụp ảnh màn hình của trang trình duyệt thực sự. Nếu chúng ta cần kiểm tra một cách trực quan số lượng lớn các trang web. Ví dụ như chúng ta muốn biết làm cách nào để các ngôn ngữ khác nhau hiển thị trên các trang khác nhau, chúng ta có thể sử dụng công cụ này và chụp lại ảnh màn hình, sau đó có thể xác nhận một cách trực quan, nhanh chóng.

Phân tích lưu lượng HTTP

Trong kiểm thử web, phân tích lưu lượng HTTP là đặc biệt hữu ích khi kiểm thử thông qua bên thứ 3 ví dụ như Google Analytics hoặc Omiture trên trang web.

Để dễ dàng hình dung và ghi lại lưu lượng HTTP, chúng ta phải sử dụng một công cụ thích hợp đóng vai trò như một proxy, có thể lắng nghe yêu cầu và phản hồi giữa client và servers

Sau đây là một số công cụ phổ biến chúng ta có thể sử dụng để phân tích lưu lượng HTTP:

Wireshark: sử dụng nếu bạn muốn nhìn thấy tất cả mọi thứ xảy ra trên mạng. Fiddler: Sử dụng nếu bạn chỉ muốn giám sát lưu lượng HTTP/s.

Live HTTP Headers: sử dụng khi bạn dùng Firefox và chỉ muốn xem các tiêu đề.

FireBug: có thể cung cấp cho bạn thông tin và giao diện đẹp khi bạn làm việc trên một trang duy nhất trong quá trình phát triển.

BrowserMob Proxy: là một công cụ tốt, có thể kết nối với Selenium WebDriver khi chạy kiểm thử tự động.

Các trang web tương thích (Responsive Websites) và kiểm thử di động

Hầu hết mọi người hiện nay truy cập vào các trang web từ điện thoại di động của họ nhiều hơn là từ máy tính.Điều này có nghĩa rằng kiểm thử web không còn bị giới hạn ở trình duyệt trên máy tính để bàn. Chúng ta phải kiểm thử ứng dụng web trên cả nền tảng di động nữa.

Có hai loại ứng dụng web cho thiết bị di động: một là được phát triển trên các nền tảng di động, một là ứng dụng web tương thích (responsive), tức là chỉ có một phiên bản ứng dụng web được phát triển cho máy tính để bàn và thiết bị di động nhưng ứng dụng đó phải được hiển thị khác nhau tùy thuộc vào kích thước của thiết bị.

Cả hai loại này đều yêu cầu kiểm thử trên thiết bị di động hoặc giả lập.

Các thành phần quan trọng khác cho kiểm thử web

Trong suốt quá trình kiểm thử web, giống như kiểm thử chức năng, chúng ta cần phải kiểm tra những thành phần sau đây:

  • Javascript
  • CSS
  • Cookies
  • Accessibility
  • Dead-links
  • UX and Layout
  • HTML Validity
  • Security
  • Browser Refresh
  • Window Resizing

Bài viết được dịch lại từ nguồn sau đây: http://www.testingexcellence.com/web-testing-tips-how-to-test-web-applications/