Kiểm thử Cookie và Test case đối với ứng dụng web

Về cơ bản, chúng ta sẽ tập trung vào xem chính xác thì Cookies là cái gì và nó làm việc như thế nào. Sẽ dễ tạo test case cho test với Cookies hơn khi bạn hiểu chính xác cách Cookies làm việc, Cookies được lưu như thế nào và làm thế nào để edit được Cookies.

Cookies là gì?

Cookies là một mẩu thông tin nhỏ mà web server lưu dạng file text trên máy của user. Thông tin này về sau sẽ được sử dụng bởi web browser để lấy thông tin từ máy của user. Thông thường, Cookies chứa thông tin cá nhân của user hoặc thông tin thường được sử dụng để trao đổi giữa các trang web.

Tại sao sử dụng Cookies?

Cookies không có gì khác ngoài định danh của người dùng và được sử dụng để theo dõi các user di chuyển qua các trang web. Sự trao đổi giữa trình duyệt và web server là không có trạng thái (stateless).

Ví dụ, nếu bạn truy cập vào tên miền http://www.example.com/1.html thì trình duyệt sẽ truy vấn web server của example.com để lấy về trang web 1.html. Lần tới nếu bạn truy cập vào http://www.example.com/2.html thì một yêu cầu mới được gửi tới web server example.com để lấy trang web 2.html và web server không hề biết rằng liệu yêu cầu đó là từ người đã từng truy cập vào trang 1.html hay không.

Nếu bạn muốn biết lịch sử truy cập đến web server của người dùng thì sao? Bạn cần phải quản lý trạng thái của người dùng và các tương tác giữa trình duyệt và web server ở đâu đó. Đó chính là điều Cookies hướng tới. Cookies được sử dụng nhằm quản lý tương tác của người dùng với web server.

Cookies làm việc như thế nào?

Giao thức HTTP vốn được sử dụng để trao đổi các file thông tin trên web, được sử dụng để quản lý Cookies. Có 2 loại giao thức HTTP. Không trạng thái và có trạng thái. HTTP không trạng thái không giữ lại bất kỳ bản ghi nào về lịch sử try cập trang web. Trong khi HTTP có trạng thái giữ lại một số dữ liệu về lịch sử tương tác giữa trình duyệt và web server, và giao thức này được sử dụng bởi Cookies để quản lý tương tác của người dùng.

Bất cứ khi nào user đến thăm một website có sử dụng Cookies, một đoạn code nhỏ bên trong trang web (Thường sử dụng các ngôn ngữ kịch bản để ghi vào C như Javascript, PHP, Perl) ghi thông tin user vào 1 file text trên máy của user gọi là Cookies. Đây là 1 ví dụ về đoạn code được sử dụng để ghi Cookies và có thể đặt trong bất kỳ trang HTML nào:

Set-Cookie: NAME=VALUE; expires=DATE; path=PATH; domain=DOMAIN_NAME;

Khi người dùng đến thăm trang web hoặc tên miền lần tiếp theo, Cookies này sẽ được đọc từ máy của người dùng và sử dụng để xác định lần truy cập thứ 2 từ cùng 1 user đến tên miền. Thời gian hết hạn được thiết lập khi ghi Cookies. Thời gian này quyết định bởi ứng dụng mà sẽ sử dụng Cookies. Thông thường có 2 loại Cookies được ghi lên máy người dùng:

1) Cookies phiên làm việc: Cookies này được kích hoạt cho khi trình duyệt tạo ra nó được mở lên. Khi chúng ta đóng trình duyệt, Cookies sẽ bị xoá đi. Một vài phiên làm việc theo thời gian thiết lập khoảng 20 phút để tự động huỷ bỏ Cookies.

2) Cookies vĩnh viễn: Cookies này được ghi lại lâu dài trên máy của người dùng trong vài tháng hoặc vài năm.

Cookies được lưu ở đâu?

Khi một ứng dụng web ghi Cookies nó sẽ ghi vào 1 file text trên máy người dùng. Nơi để file này tuỳ thuộc vào trình duyệt. Trình duyệt khác nau sẽ lưu Cookies ở vị trí khác nhau. Ví dụ IE lưu cookies tại "C:\Documents and Settings\Default User\Cookies" Ở đây Default User có thể thay thế bằng người dùng hiện tại đang đăng nhập. Nơi lưu Cookies cũng có thể tìm thấy thông qua các thiết lập của trình duyệt. Với trình duyệt Firefox, mở Tools -> Options -> Privacy rồi click nút "Show Cookies".

Cookies được lưu như thế nào?

Hãy lấy ví dụ C được ghi bởi rediff.com trên trình duyệt Firefox. Trên FF khi bạn mở trang web rediff.com hoặc đăng nhập vào tài khoản rediffmail của bạn, một cookies được ghi lên ổ cúng của bạn. Để xem được Cookies này, hãy click vào nút "Show Cookies" như trên. Click vào Rediff.com site trong danh sách cookies, bạn có thể thấy nhiều cookies được ghi bởi rediff với nhiều tên khác nhau.

Site: Rediff.com Cookie name: RMID Name: RMID (Name of the cookie) Content: 1d11c8ec44bf49e0… (Encrypted content) Domain: .rediff.com Path: / (Any path after the domain name) Send For: Any type of connection Expires: Thursday, December 31, 2020 11:59:59 PM

Ứng dụng của Cookies

1) Giỏ hàng Cookies có thể được sử dụng cho các hệ thống đặt hàng online. Cookies ghi lại người dùng muốn mua gì. Nếu người dùng thêm một vài sản phẩm vào giỏ hàng của họ, và vì một vài lý do nào đó, người dùng không muốn mua những sản phầm đó trong lần này và đóng trình duyệt? Khi người dùng đó quay lại trang thanh toán, anh ta có thể nhìn thấy toàn bộ các sản phẩm mà anh ta đã thêm vào giỏ hàng lần trước.

2) Website cá nhân hoá Khi người dùng truy cập một trang nào đó, họ sẽ bị hỏi xem những trang nào họ không muốn xem hoặc không muốn nhìn thấy. Lựa chọn của người dùng được lưu lại trong Cookies và khi người dùng online, những trang đó sẽ không hiển thị nữa.

3) Theo dõi người dùng Để theo dõi số lượng người dùng đang trực tuyến tại thời điểm bất kỳ.

4) Marketing Một vài công ty sử dụng Cookies để hiển thị quảng cáo trên máy người dùng. Cookies điều khiển các quảng cáo này. Khi nào và cái nào sẽ được hiển thị? Cái gì thu hút người dùng? Từ khoá nào họ tìm kiếm trên site? Tất cả những điều đó đều được ghi lại bằng Cookies.

5) Phiên làm việc người dùng Cookies có thể theo dõi phiên làm việc của người dùng cho các trang sử dụng user id và mật khẩu.

Nhược điểm của Cookies:

1) Phụ thuộc vào Cookies Mặc dù ghi Cookies là cách hay để theo dõi tương tác của người dùng, nếu người dùng thiết lập cho trình duyệt cảnh báo khi có thao tác ghi Cookies, hoặc tắt hoàn toàn tính năng Cookies thì trang web sử dụng Cookies sẽ hoàn toàn bị vô hiệu hoá và không thể hoạt động được, và dẫn đến mất người dùng.

2) Quá nhiều Cookies Nếu bạn viết quá nhiều Cookies cho tất cả các di chuyển trên trang web và nếu người dùng bật cảnh báo khi có thao tác ghi Cookies thì điều đó có thể khiến user không thích trang của bạn.

3) Vấn đề bảo mật Đôi khi thông tin cá nhân của người dùng được lưu trong Cookies và nếu ai đó hack được những Cookies thì hacker có thể lấy được quyền truy cập vào thông tin cá nhân của người dùng. Thậm chí những cookies lỗi có thể bị đọc bởi nhiều tên miền khác nhau (Thông thường trình duyệt chỉ cho phép tên miền đọc Cookies mà nó tạo ra) và dẫn đến vấn đề về bảo mật.

4) Thông tin nhạy cảm: Một vài trang ghi và lưu lại thông tin nhạy cảm của người dùng trong Cookies, điều vốn không được phép vì vấn đề bảo mật riêng tư.

Một số test case chính khi test Cookie

Test case đầu tiên rõ ràng là xem ứng dụng của bạn có ghi cookie đúng hay không. Bạn có thể sử dụng ứng dụng 'Cookie Tester' nếu bạn không có ứng dụng web nào để test nhưng bạn phải hiểu khái niệm về cookie để test.

1) Chính sách bảo mật Cookies trong tài liệu của bạn phải đảm bảo không có bất kỳ thông tin cá nhân hoặc thông tin nhạy cảm nào được lưu trong Cookies.

2) Nếu bạn không có tuỳ chọn nào khác ngoài lưu thông tin nhạy cảm trên Cookies, hãy đảm bảo dữ liệu đó phải được mã hoá trước khi ghi vào Cookies.

3) Đảm bảo là không quá lạm dụng Cookies khi test. Việc sử dụng Cookies quá nhiều sẽ gây phiền tới người dùng nếu trình duyệt luôn hỏi về Cookies và có thể dẫn đến mất đi người dùng.

4) Vô hiệu hoá Cookies trên trình duyệt: Nếu bạn sử dụng Cookies trên trang của mình, các chức năng chính sẽ không làm việc khi vô hiệu hoá Cookies. Hãy thử truy cập vào trang web sau khi tắt Cookies. Di chuyển qua các trang, và phải có các thông báo phù hợp hiển thị ra như "Để các chức năng hoạt động ổn đỉnh, hãy bật Cookies trên trình đuyệt của bạn". Không nên có hiện tượng crash nào xẩy ra khi tắt Cookies.

5) Đồng ý/Từ chối một vài Cookies: Các tốt nhất để test chức năng của website là, không đồng ý toàn bộ Cookies. Nếu bạn đang ghi ra 10 Cookies từ ứng dụng của bạn và ngẫu nhiên đồng ý 5 cái và từ chối 5 cái. Để thực hiện test case, bạn có thể thiết lập tuỳ chọn của trình duyệt để thông báo mỗi khi có thao tác ghi Cookies. Trên cửa sổ thông báo, bạn có thể hoặc chấp nhận hoặc từ chối việc ghi Cookies. Thử truy cập vào các chức năng chính của trang web, kiểm tra xem có trang nào bị crash hoặc data nào bị lỗi không.

6) Xoá Cookies: Cho phép website ghi vào Cookies và sau đó đóng toàn bộ trình duyệt và xoá thủ công Cookies của website đang test. Truy cập vào website và kiểm tra hoạt động của website.

7) Làm hỏng Cookies: Rất dễ để làm hỏng Cookies. Bạn biết Cookies được lưu ở đâu. Chỉnh sửa thủ công nội dung của Cookies với notepad và thay đổi các tham số trong đó thành 1 giá trị nào đó. Ví dụ như thay đổi nội dung của Cookies, tên hoặc ngày hết hạn của Cookies và kiểm tra chức năng của website. Với 1 số trường hợp, Cookies bị hỏng khiến cho các tên miền khác có thể đọc được Cookies. Điều này không nên xảy ra với Cookies của website của bạn. Nhớ rằng nếu Cookies được ghi bởi 1 tên miền ví dụ như rediff.com thì không thể truy cập bởi tên miền khác ví dụ như yahoo.com trừ khi Cookies đó bị hỏng hay ai đó cố tình hack Cookies.

8) Kiểm tra việc xoá Cookies từ website của bạn: Một vài Cookies được ghi bởi tên miền rediff.com có thể bị xoá bởi cùng tên miền đó nhưng từ page khác. Đây là case thông thường nếu bạn đang test một website theo dõi hành vi. Theo dõi hành vi hoặc theo dõi thanh toán được thiết lập với các hoạt động trên website, và bất kỳ hành động hoặc thanh toán nào xảy ra bởi người dùng sẽ xoá Cookies để tránh việc ghi nhận trùng lặp các hành động trên cùng 1 cookie. Kiểm tra xem khi có hoạt động hoặc thanh toán trên website của bạn, thì cookie có được xoá chính xác hay không và không có bất kỳ hành động hoặc thanh toán không hợp lệ nào được ghi lại.

9) Kiểm thử với nhiều loại trình duyệt: Một trong những case quan trọng nhất khi kiểm tra ứng dụng của bạn có ghi cookie đúng hay không trên các trình duyệt khác nhau. Bạn có thể kiểm tra với các trình duyệt phổ thông: IE (tất cả các phiên bản), FF, Opera,...

10) Nếu ứng dụng của bạn sử dụng Cookie để theo dõi trạng thái đăng nhập của người dùng và sau đó đăng nhập vào ứng dụng của bạn bằng username và mật khẩu. Trong nhiều trường hợp, bạn có thể nhìn thấy user_id của người dùng ngay trên thanh địa chỉ. Thay đổi tham số này thành 1 user_id khác và ấn Enter. Một thông báo phù hợp nên được hiển thị cho người dùng và người dùng không nên nhìn thấy thông tin của người dùng khác.

Kết luận:

Trên đây là một số trường hợp thử nghiệm chính được xem xét khi kiểm tra cookie của trang web. Bạn có thể viết nhiều trường hợp thử nghiệm từ các trường hợp thử nghiệm này bằng cách thực hiện các kết hợp khác nhau. Nếu bạn có một số kịch bản ứng dụng khác, bạn có thể đề cập đến trường hợp thử nghiệm của mình trong các nhận xét bên dưới.

Nguồn dịch: http://www.softwaretestinghelp.com/website-cookie-testing-test-cases/