Kiểm thử Cookie của Website và Test case cho việc kiểm thử Cookies của ứng dụng Webstie
Bài viết này chúng ta sẽ tập trung chủ yếu vào khái niệm Cookies là gì và làm thế nào để nó làm việc. Nó sẽ trở nên dễ dàng cho bạn để hiểu được các trường hợp kiểm thử, để kiểm thử Cookie thì bạn cần phải hiểu rõ về cách mà Cookie làm việc? Làm thế nào các tập tin Cookie được lưu trữ trên ổ ...
Bài viết này chúng ta sẽ tập trung chủ yếu vào khái niệm Cookies là gì và làm thế nào để nó làm việc. Nó sẽ trở nên dễ dàng cho bạn để hiểu được các trường hợp kiểm thử, để kiểm thử Cookie thì bạn cần phải hiểu rõ về cách mà Cookie làm việc? Làm thế nào các tập tin Cookie được lưu trữ trên ổ cúng? Và làm thế nào chúng ta có thể chỉnh sửa cài đặt Cookie?
Cookie là gì?
Cookie là 1 thông tin nhỏ được lưu trữ dưới dạng 1 file text trên ổ của người sử dụng bởi web server. Thông tin này sau đó được sử dụng bởi trình duyệt web để khôi phục thông tin từ máy chủ đó. Nhìn chung cookie chứa đựng dữ liệu hoặc thông tin cá nhân của người dùng mà được sử dụng để truyền thông giữa các trang web.
Tại sao Cookie được sử dụng?
Các Cookie không là gì chỉ là nhận diện của user và được sử dụng để theo dõi nơi mà user đã đi qua các page của web site. Truyền thông giữa trình duyệt web và web server là phi kết nối.
Ví dụ nếu bạn đang truy nhập tên miền http://www.example.com/1.html sau đó trình duyệt web sẽ chỉ đơn giản là yêu cầu tới web server example.com cho page 1.html. Tiếp đó nếu bạn chuyển tới page như http://www.example.com/2.html sau đó yêu cầu mới được gửi tới web server example.com cho việc gửi page 2.html và web server không biết điều gì về người mà được cung cấp page 1.html trước đó.
Cần làm gì nếu bạn muốn lịch sử truyền thông của user này trước đó? Bạn cần duy trì trạng thái của user và tương tác giữa trình duyệt web và web server mọi nơi. Đây là nơi mà Cookie được cần đến. Các cookie phục vụ mục đích duy trì các tương tác với web server. Làm thế nào các Cookie làm việc?
Giao thức HTTP được sử dụng để trao đổi các file thông tin trên web mà được sử dụng để duy trì các Cookie. Có 2 loại giao thức HTTP. Giao thức stateless HTTP và stateful HTTP. Giao thức stateless HTTP không giữ bất cứ bản record nào của lịch sử web page được truy cập trước đó. Trong khi giao thức stateful HTTP giữ 1 vài lịch sử duyệt web trước đó và các tương tác của web server và giao thức này được sử dụng bởi các cookie để duy trì các tương tác của người sử dụng. Mỗi khi user truy cập 1 site hoặc page mà đang sử dụng Cookie, small code bên trong HTML page đó (JAVAscript, PHP, Perl) viết 1 file text trên máy của các user được gọi là Cookie.
Đây là 1 ví dụ của code mà được sử dụng để viết cookie và có thể được đặt bên trong bất kỳ HTML page nào:
Set-Cookie: NAME=VALUE;
expires=DATE; path=PATH;
domain=DOMAIN_NAME;
Khi 1 user truy cập cùng 1 page hoặc domain sau đó cookie này đọc từ ổ đĩa và được sử dụng để nhận diện lần truy cập thứ 2 của cùng 1 user vào domain đó. Expiration time là thiết lập trong khi viết cookie. Thời gian này được quyết định bởi ứng dụng mà sẽ sử dụng cookie.
Thông thường có 2 loại cookie được viết trên máy của user.
1) Các Session cookie: Cookie này kích hoạt tới trình duyệt mà cần cookie mở. Khi chúng ta đóng trình duyệt cookie của session này sẽ bị xóa. Thời gian hết hạn của cookie đôi khi được gán là 20 phút.
2) Các Persistent cookie: Những cookie này là các cookie mà được viết vĩnh viễn trên máy của user và có thể mất sau 1 thời gian nào đó. Các cookie được lưu trữ ở đâu? Khi bất kỳ ứng dụng web page nào viết 1 cookie nó được lưu dưới dạng file text trên ở đĩa của user. Đường dẫn nơi mà các cookie được lưu trữ phụ thuộc vào trình duyệt. Các trình duyệt khác nhau lưu trữ cookie trong các đường dẫn khác nhau. Ví dụ IE lưu các cookie trên đường dẫn “C:Documents and SettingsDefault UserCookies” Đường dẫn cookie có thể được dễ dàng tìm thấy qua các tùy chọn của trình duyệt. Trong firefox bạn có thể nhìn thấy ngay các cookie trong tùy chọn của chính nó. Mở firefox, chọn Tools->Options->Privacy và sau đó ấn nút “Show cookies”.
Làm thế nào các cookie được lưu trữ?
Hãy xem 1 ví dụ của cookie được viết bởi rediff.com trên trình duyệt firefox. Trên trình duyệt firefox khi bạn mở page rediff.com hoặc truy cập tới tài khoản mail rediff của bạn, 1 cookie sẽ được viết trên ổ đĩa của bạn. Để xem cookie này chỉ đơn giản kích vào nút “Show cookies” được đề cập ở đường dẫn như trên. Kích vào rediff.com dưới danh sách cookie này. Bạn có thể nhìn thấy các cookie khác nhau được viết bởi rediff domain với các 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
Các ứng dụng nơi mà các Cookie có thể được sử dụng:
1) Để thực thi shopping cart:
Các cookie là được sử dụng cho việc duy trì hệ thống bán hàng online. Các cookie lưu lại những gì mà user muốn mua. Chuyện gì sẽ xảy ra nếu user bổ sung 1 vài sản phẩm trong shopping cart của họ và nếu vì 1 lý do nào đó user không muốn mua các sản phẩm đó thời gian này và đóng của sổ trình duyệt? Trong tương lai cùng 1 user truy cập đến page mua sắm , anh ấy có thể nhìn thấy tất cả các sản phẩm anh ấy đã bổ sung trong shopping cart trong suốt lần truy cập trước đó.
2) Các trang cá nhân:
Khi 1 user truy cập page nào đó, họ được yêu cầu các page mà họ không muốn truy cập hoặc hiển thị. User có thể tùy chọn việc lưu trong cookie và đến khi user online, các page đó sẽ không được hiển thị tới anh ấy nữa.
3) Theo dõi user:
Để theo dõi lượng truy cập online tại thời điểm cụ thể.
4) Marketing:
Một vài công ty sử dụng cookie để hiển thị các quảng cáo trên các máy của user. Các cookie điều khiển các quảng cáo này. Khi nào và quảng cáo nào sẽ được hiển thị? Quyền lợi của user là gì? Các từ khóa nào anh ấy có thể tìm kiếm trên site? Tất cả những thứ đó có thể được duy trì sử dụng các cookie. 5) Các phiên của user:
Các cookie có thể theo dõi các phiên của user tới tên miền chi tiết sử dụng user ID và password.
Các hạn chế của các cookie:
-
Ngay cả khi viết 1 Cookie là 1 cách rất hay để duy trì tương tác của user, nếu user thiết lập các tùy chọn của trình duyệt để cảnh báo trước khi viết bất kỳ cookie nào hoặc vô hiệu hóa hoàn toàn các cookie sau đó site chứa đựng cookie sẽ bị vô hiệu hóa hoàn toàn và nó không thể thực hiện bất kỳ hoạt động nào dẫn đến mất lưu lượng của các site.
-
Quá nhiều các Cookie:
Nếu bạn viết quá nhiều các cookie trên mỗi page đi qua và nếu user đã bật tùy chọn cảnh báo trước khi viết cookie, điều này có thể dẫn đến user từ bỏ trang của bạn. 3) Các vấn đề về bảo mật:
Đôi khi thông tin cá nhân của các user được lưu trong các cookie và nếu ai đó hack cookie sau đó hacker có thể chiếm quyền truy nhập tới thông tin cá nhân của bạn. Kể cả các cookie đã hỏng có thể được đọc bởi các domain khác nhau và dẫn tới các vấn đề về bảo mật. 4) Các thông tin nhạy cảm:
1 vài site có thể viết và lưu các thông tin nhạy cảm của bạn trong các cookie, là những thông tin sẽ không được cho phép bởi các lý do cá nhân.
Một vài các test case chính cho việc test cookie của ứng dụng web:
1) 1 Cookie privacy policy cần đảm bảo từ các tài liệu thiết kế của bạn rằng không có dữ liệu cá nhân hoặc nhạy cảm được lưu trong cookie.
2) Nếu bạn không có sự lựa chọn nào ngoài việc lưu dữ liệu nhạy cảm trong 1 cookie, sau đó hãy đảm bảo rằng dự liệu được lưu trong cookie là được lưu dưới dạng mã hóa.
3) Đảm bảo rằng không có sự lạm dụng các cookie trên site của bạn cần test. Lạm dụng các cookie sẽ làm phiền các user nếu trình duyệt nhắc nhở các cookie thường xuyên và điều này có thể dẫn đến mất lưu lượng của site và thậm chí mất quyền kinh doanh.
4) Vô hiệu hóa các cookie từ các thiết lập trình duyệt của bạn: Nếu bạn đang sử dụng các cookie trên site của bạn, các chức năng chính của các site của bạn sẽ không làm việc bởi các cookie đang bị vô hiệu hóa. Sau đó hãy thử truy cập tới website cần test. Chuyển qua lại các site. Theo dõi nếu các bản tin tương ứng được hiển thị tới user giống như like “For smooth functioning of this site make sure that cookies are enabled on your browser”. Không nên có bất cứ page crash nào bởi việc vô hiệu hóa các cookie. (Hãy đảm bảo rằng bạn đóng tất cả các trình duyệt, xóa toàn bộ các cookie được viết trước đó trước khi thực hiện test).
5) Accepts/Reject 1 vài cookie: Các tốt nhất để kiểm tra chức năng của website là không chấp nhận tất cả các cookie. Nếu bạn đang viết 10 cookie trong ứng dụng web của bạn sau đó ngẫu nhiên chấp nhận 1 vài cookie, chọn chấp nhận 5 và loại bỏ 5 cookie. Việc thực hiện test case này bạn có thể thiết lập các tùy chọn của trình duyệt để nhắc nhở bất cứ khi nào cookie là được viết tới ổ đĩa. Trên của sổ nhắc nhở này bạn có thể chập nhận hoặc loại bỏ cookie. Thử truy cập các chức năng chính của website. Theo dõi nếu các page bị crash hoặc dữ liệu bị corrupt.
6) Xóa cookie: Cho phép các site viết các cookie và sau đó đóng tất cả trình duyệt và xóa thủ công tất cả các cookie cho website để kiểm tra. Truy cập tới các web page và kiểm tra hành xử của các page.
7) Các cookie hỏng: Hỏng 1 cookie là việc dễ dàng. Bạn biết nơi mà các cookie được lưu trữ. Chỉnh sửa thủ công cookie trong 1 notepad và thay đổi các thông số tới 1 số giá trị bất kỳ. Chẳng hạn như thay đổi nội dung của cookie, tên của cookie hoặc ngày hết hạn của cookie và xem các chức năng của trang web. Trong 1 vài trường hợp các cookie đã bị hỏng cho phép đọc dữ liệu bên trong nó cho bất kỳ tên miền khác. Điều này không nên xảy ra trong trường hợp các cookie của website của bạn. Lưu ý nếu các cookie được viết bởi 1 tên miền rediff.com không thể được truy cập bởi tên miền khác như yahoo.com trừ khi các cookie đã bị hỏng và ai đó đang cố để hack dữ liệu của cookie.
8) Kiểm tra việc xóa các cookie từ trang ứng dụng web của bạn: Đôi khi các cookie được viết bởi tên miền như rediff.com có thể được xóa bởi cùng 1 tên miền nhưng bởi các page khác nhau dưới tên miền đó. Đây là case phổ biến nếu bạn đang test 1 vài “action tracking” portal của web. Action tracking hoặc purchase tracking pixel được đưa vào các action của trang web và khi bất kỳ action nào hoặc xảy ra các hành động mua bán nào đó bởi user, cookie đã viết trên ổ đĩa được xóa để tránh nhiều action log từ cùng cookie. Kiểm tra nếu hoàn thành action của bạn hoặc page mua bán xóa chính xác cookie và không có thêm các action không có giá trị hoặc việc mua bán được log từ cùng user.
9) Kiểm tra cookie trên nhiều trình duyệt: Đây là case quan trọng để kiểm tra nếu trang ứng dụng web của bạn đang viết các cookie chính xác trên các trình duyệt khác nhau như dự định và trang web làm việc chính xác sử dụng các cookie này. Bạn có thể kiểm tra ứng dụng web của bạn thường xuyên sử dụng các trình duyệt như IE (nhiều version), Firefox, netscape, opera….
10) Nếu ứng dụng web của bạn đang sử dụng các cookie để duy trì trạng thái đăng nhập của user nào đó sau đó đăng nhập tới ứng dụng web của bạn sử dụng 1 vài username/password. Trong nhiều trường hợp bạn có thể thấy trực tiếp thông số của user ID đã đăng nhập trong thanh địa chi trinh duyệt. Thay đổi thông số này tới các giá trị khác nhau giống như nếu user ID trước đó là 100 tiếp đó 101 và sau đó enter. Các bản tin truy nhập chính xác nên được hiển thị tới user và user sẽ không thể nhìn thấy các user account khác.