Testing với Website
Có thể nói, web là một từ ngữ đã trở nên quá phổ biến trong thời đại kỹ thuật số này. Thế giới đã và đang cố gắng tạo ra vô số ứng dụng web để phục vụ cho nhiều mục đích, trên nhiều thiết bị, với nhiều ngôn ngữ và hỗ trợ mọi thứ công nghệ mà người ta có thể nghĩ ra được. Do đó, kiến thức chuyên môn ...
Có thể nói, web là một từ ngữ đã trở nên quá phổ biến trong thời đại kỹ thuật số này. Thế giới đã và đang cố gắng tạo ra vô số ứng dụng web để phục vụ cho nhiều mục đích, trên nhiều thiết bị, với nhiều ngôn ngữ và hỗ trợ mọi thứ công nghệ mà người ta có thể nghĩ ra được. Do đó, kiến thức chuyên môn về phát triển và kiểm thử web gần như là hành trang không thể thiếu khi bạn muốn bước chân vào con đường kiểm thử chuyên nghiệp. Qua đó tôi xin trình bày một số nghiên cứu về các kỉ thuật và các vấn đề cần lưu ý khi testing với website.
1. Các kĩ thuật thường được sử dụng khi testing với website:
a. Kiểm thử chức năng:
- Kiểm tra form của tất cả các trang:Form là phần cơ bản của bất kỳ trang web nào. Form được sử dụng để nhận thông tin từ người dùng và tương tác với họ. Vậy, những gì cần phải được kiểm tra trong form?
- Kiểm tra tất cả trường bắt buộc
- Kiểm tra các giá trị mặc định của các trường
- Các đầu vào sai cho các trường
- Kiểm tra các form bất kỳ: xóa, xem, sửa
Lấy ví dụ về dự án search engine mà tôi đãlàm. Trong dự án này, chúng tôi có quảng cáo và các bước đăng ký để liên kết. Mỗi bước đăng ký khác nhau nhưng đều phụ thuộc vào các bước khác. Vì vậy tiến trình đăng ký cần được thực hiện chính xác. Có nhiều trường bắt buộc như email Ids, xác nhận thông tin tài chính người dùng. Tất cả yêu cầu này cần được kiểm tra thủ công và tự động.
-
Kiểm thử cookie:
-
Cookies là các file nhỏ được lưu trong máy người dùng. Đây là cách cơ bản để duy trì các phiên làm việc, đặc biệt là các phiên đăng nhập.
-
Kiểm tra ứng dụng bằng cách chọn “cho phép lưu” (enable) hoặc “không cho phép lưu” (disable) cookies từ trình duyệt của bạn.
-
Kiểm tra các cookies có được mã hóa trước khi ghi vào máy người dùng?
-
Nếu bạn đang kiểm thử cookies (cí dụ cookies hết hạn sau khi kết thúc phiên làm việc), hãy kiểm tra các phiên đăng nhập và trạng thái của người dùng sau khi phiên làm việc kết thúc.
-
Kiểm tra bảo mật ứng dụng bằng cách xóa các cookies.
-
Xác minh HTML/CSS của bạn: Nếu bạn đang tối ưu hóa trang web của bạn cho các công cụ tìm kiếm (Search engines) thì việc xác minh HTML/SCC rất quan trọng. Việc xác minh chủ yếu là các lỗi cú pháp HTML. Kiểm tra xem trang web có được nhận diện với các công cụ tìm kiếm khác nhau hay ko?
-
Kiểm thử cơ sở dữ liệu: Sự nhất quán về dữ liệu rất quan trọng trong ứng dụng web.
-
Kiểm tra tính toàn vẹn của dữ liệu và các lỗi khi bạn tạo/sửa/xóa các forms hoặc thực hiện bất kỳ chức năng nào có liên quan tới CSDL
-
Kiểm tra tất cả các truy vấn CSDL có được thực thi chính xác không? Dữ liệu có được lấy và cập nhật chính xác không? Ngoài ra cần kiểm tra việc tải dữ liệu vào DB, chúng tôi sẽ trình bày vấn đề kiểm thử tải và kiểm thử hiệu năng sau
b. Kiểm thử tính khả dụng:
-
Kiểm thử cho chuyển hướng: Chuyển hướng nghĩa là cách thức người dùng lướt web (xem các trang webs), sử dụng các điều khiển khác nhau như các nút bấm, các hộp (textbox, listbox…) hay cách người dùng sử dụng các đường links trong các trang để lướt web.
-
Kiểm thử tính khả dụng: Trang web phải dễ sử dụng. Cung cấp các hướng dẫn rõ ràng, rành mạch. Kiểm thử xem các hướng dẫn đó có đúng như những gì nó phải đáp ứng ko? Mỗi trang đều cần có menu chính, và menu này phải nhất quán.
-
Kiểm thử nội dung:
-
Nội dung trang web phải hợp lý và dễ hiểu. Kiểm tra các lỗi chính tả. Các màu tối sẽ gây phiền phức cho người dùng và do đó ko nên được sử dụng. Bạn có thể theo một vài chuẩn nào đó được sử dụng cho việc xây dựng nội dung web. Đây là những chuẩn được chấp nhận phổ biến như tôi đã chú ý ở trên, về màu sắc, fonts, frames…
-
Nội dung cần phải đầy đủ ý nghĩa. Tất cả các đường links được gán phải làm việc tốt. Các tranh ảnh phải được đặt đúng chỗ với đúng kích thước. Có một vài chuẩn cơ bản nên theo khi phát triển ứng dụng web. Nhiệm vụ của bạn là xác minh tất cả khi kiểm thử giao diện.
-
Các thông tin hỗ trợ người dùng:
- Như lựa chọn tìm kiếm, sơ đồ trang web, các file hỗ trợ…Sơ đồ trang web cần có trong tất cả các links trong trang web với cây thư mục để hỗ trợ chuyển hướng. Kiểm tra tất cả cá links trong sơ đồ.
- Tùy chọn “Tìm kiếm trong trang web” sẽ giúp người dùng tìm kiếm các trang nội dung một cách dễ dàng và nhanh chóng. Tất cả các mục cần được phô bày và phải được xác minh.
-
c. Kiểm thử giao diện: trong kiểm thử web, giao diện phía nguồn phục vụ nên được kiểm thử để thẩm tra rằng trao đổi được thực hiện đúng.
- Ứng dụng: các yêu cầu của người dùng được gửi một cách chính xác đến database và đầu ra sẽ được hiển thị một cách chính xác.
- Web Server: chúng ta phải kiểm tra chúng sẽ được xử lý tất cả các yêu cầu từ website gửi tới mà không có bất kỳ sự từ chối dịch vụ nào.
- Cơ sở dữ liệu Server: Hãy chắc chắn rằng các truy vấn dữ liệu gửi đến database sẽ trả về các kết quả như mong đợi.
d. Kiểm thử hiệu năng:
Ứng dụng web phải được duy trì với tải lớn. Kiểm thử hiệu năng bao gồm:
- Kiểm thử tải
- Kiểm thử áp lực
Kiểm thử hiệu năng ứng dụng với các tốc độ kết nối mạng khác nhau.
-
Trong kiểm thử tải phải kiểm tra xem khi có nhiều người dùng cùng truy cập hoặc cùng yêu cầu một trang thì sao? Hệ thống có thể duy trì hoạt động trong giờ bận được không? Trang web phải nắm bắt được nhiều yêu cầu đồng thời của người dùng, dữ liệu đầu vào lớn từ các người dùng, kết nối đồng bộ với DB, tải lớn trên các trang đặc biệt…
-
Kiểm thử chịu tải: Thông thường stress test có nghĩa là đẩy hệ thống vượt ra ngoài giới hạn của nó. Kiểm thử chịu tải một trang web là làm gián đoạn trang web đó bằng cách tăng lượng tải cao hơn và kiểm tra xem hệ thống phản ứng lại với từng mức tải cụ thể đó như thế nào? Hệ thống phục hồi lại như thế nào? Tải có thể nhận dữ liệu đầu vào từ các phần đăng nhập, đăng ký, seach…
Trong kiểm thử hiệu năng web, các chức năng của trang web trên các hệ điều hành, các nền tảng phần cứng khác nhau phải được kiểm tra để tìm ra các lỗi phần mềm, thất thoát bộ nhớ…
e. Kiểm thử bảo mật:
Một vài testcases cho kiểm thử bảo mật web:
- Kiểm thử bằng cách gõ trực tiếp url vào thanh địa chỉ của trình duyệt mà không qua đăng nhập. Các trang nội bộ phải không được mở.
- Nếu bạn đã đăng nhập với username và password, và mở các trang nội bộ, hãy thử thay đổi url trực tiếp. Ví dụ, nếu bạn kiểm tra một vài thống kê trang với ID = 123, hãy thay đổi trực tiếp tham số ID của trang tới trang thuộc quyền người dùng đã đăng nhập. Truy cập phải bị từ chối bởi người dùng này bởi không cho phép xem số liệu thống kê của người dùng khác.
- Thử các giá trị đầu vào không hợp lệ trong các trường nhập như password, username…vào các textboxes. Kiểm tra phản ứng của hệ thống trước các đầu vào không hợp lệ này.
- Các thư mục web hay các tệp tin không được truy nhập trực tiếp mà không có tùy chọn “download”
- Kiểm tra CAPTCHA cho các đăng nhập tự động
- Kiểm tra SSL có được sử dụng cho đo mức bảo mật? Các thông điệp có được hiển thị khi người dùng chuyển từ các trang không bảo mật sang các trang có bảo mật và ngược lại
- Tất cả c Khi sử dụng giấy chứng nhận SSL, trang web nên lại trực tiếp đến các trang mã hóa SSL.
2. Những điều nên xem xét khi testing với Website
Tôi đã trình bày các phương pháp testing khi testinh ở trên, nhưng khi làm thực tế chúng ta cần chú ý những tiểu tiết được nêu trong yêu cầu của khách hàng. Tôi xin trình bày một số điểm chú ý khi thực hiện testing với website:
-
Những hiệu năng nào mong muốn trên phía máy khách (ví dụ, trang web sẽ xuất hiện nhanh như thế nào, flash sẽ nhanh như thế nào, các ứng dụng applet, v.v… thời gian tải và chạy)?
-
Thời gian nghỉ cho server và việc bảo trì/nâng cấp nội dung sẽ cho phép hay không? Bao nhiêu?
-
Loại bảo mật nào (firewalls, encryption, passwords, functionality, v.v…) sẽ được yêu cầu và mong muốn sẽ làm gì? Có thể kiểm thử như thế nào?
-
Các yêu cầu quốc tế hóa/nội địa hóa/ngôn ngữ có yêu cầu hay không, và làm thế nào để kiểm tra các điều này?
-
Mức độ tin cậy kết nối Internet của trang web sẽ được yêu cầu như thế nào? Và ảnh hưởng đến hệ thống dự phòng hoặc các yêu cầu kết nối dự phòng và kiểm thử như thế nào?
-
HTML và mô tả chi tiết (spec) liên quan nào sẽ được sử dụng? Mức độ chặt chẽ thế nào? Các thay đổi dự định sẽ được phép đối với các trình duyệt?
-
Liệu có bất kỳ tiêu chuẩn hoặc yêu cầu đối với sự giao diện và/hoặc đồ họa của một phần hoặc một trang web?
-
Liệu có bất kỳ quá trình phát triển thực tế/tiêu chuẩn sử dụng cho các thành phần và nhận dạng của trang web (components và identifiers), nó có thể tác động đáng kể đến việc kiểm thử tự động.
-
Liên kết nội bộ và bên ngoài sẽ được xác nhận và cập nhật như thế nào? Mức độ thường xuyên ra sao?
-
Cả hệ thống sản phẩm có thể được kiểm thử hết, hoặc sẽ tách riêng một phần hệ thống để kiểm thử? Trình duyệt caching (lưu bộ nhớ đệm) như thế nào, thay đổi thiết lập tùy chọn trong trình duyệt, thay đổi kết nối, và vấn đề "tắc nghẽn giao thông" của Internet trong thế giới thực sẽ được tính toán cho vào kiểm thử?
-
Làm thế nào mở rộng hay tùy biến nhật ký (log) của máy chủ và các yêu cầu báo cáo; chúng có được coi là một phần của hệ thống và chúng có được yêu cầu thử nghiệm không?
-
Các thành phần như flash, applet, javascript, ActiveX component, v.v… sẽ được bảo trì, theo dõi, điều khiển, test như thế nào?