Website Cookie Testing & Test Cases for Testing Web Application Cookies

Introduction to Cookies

Primarily we will focus on what exactly HTTP cookies or Internet cookies are and how they work.

It would be easy for you to understand the test cases for testing website cookies when you have a clear understanding of how cookies work, how cookies get stored on the hard drive, and how we can edit cookie settings.

What is an HTTP or Internet Cookie?

A web cookie is a small piece of information stored in a text file on the user’s hard drive by a web server. This information is later used by the web browser to retrieve information from that machine.

Generally, the cookie contains personalized user data or information that is used to communicate between different web pages.

WEBSITE COOKIE TESTING

Why are Web Cookies Used For?

Cookies are nothing but the user’s identity and are used to track where the user navigated throughout the website pages. The communication between the web browser and a web server is stateless.

For Example:

If you are accessing the domain “http://www.example.com/1.html” then the web browser will simply query the example.com web server for page 1.html.

Next time if you type the page as “http://www.example.com/2.html” then the new request will be sent to the example.com web server for sending 2.html page and the web server does not know anything about to whom the previous page 1.html was served.

What if you want the previous history of this user communication with the webserver? You need to maintain the user state and interaction between a web browser and a web server somewhere. This is where the cookie comes into the picture. Cookies serve the purpose of maintaining user interactions with a web server.

How Do Cookies Work?

The HTTP protocol used to exchange information files on the web is used to maintain the cookies.

There are two types of HTTP protocols. Stateless HTTP and Stateful HTTP protocol. The stateless HTTP protocol does not keep any record of the previously accessed web page history.

While the Stateful HTTP protocol does keep some history of previous web browser and web server interactions, this protocol is used by the cookies to maintain the user interactions.

Whenever a user visits a site or page that is using a cookie, the small code inside that HTML page (generally, a call to some language script to write the cookie like cookies in JAVAScript, PHP, Perl) writes a text file on the user’s machine called a cookie.

Here is an example of a code that is used to write a Cookie and can be placed on any HTML page:

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

When a user visits the same page or domain at a later time this cookie is read from a disk and used to identify the second visit of the same user on that domain. The expiration time is set while writing the cookie. This time is decided by the application that is going to use the cookie.

Generally, two types of Cookies are written on the user machine

#1) Session Cookies: This cookie is active until the browser that invoked the cookie is open. When we close the browser this session cookie gets deleted. Sometimes a session of, say, 20 minutes can be set to expire the cookie.

#2) Persistent Cookies: These are cookies that are written permanently on the user’s machine and last for months or years.

Where are Cookies Stored?

When any web page application writes a cookie, then it gets saved in a text file on the user’s hard disk drive. The path where the cookies get stored depends upon the browser. Different browsers store cookies in different paths.

The below-mentioned paths are examples of where cookies are stored:

Internet Explorer: “C:\Users\username\AppData\Roaming\Microsoft\Windows\Cookies”.

Windows 7: “C:\Users\username\AppData\Roaming\Microsoft\Windows\Cookies\Low”.

Windows 8 and Windows 10: “C:\Users\username\AppData\Local\Microsoft\Windows\INetCookies”.

Here the “Default User” can be replaced by the current user you logged in as like “Administrator”, or username like “Vijay” etc. The cookie path can be easily found by navigating through the browser options.

In the Mozilla Firefox browser, you can even see the cookies in the browser option itself. Open the Mozilla browser, press the “Open menu” button? “Web Developer”? “Storage Inspector” or by pressing combination “Shift + F9”.

In the Google Chrome browser, you can find cookies by typing “chrome://settings/content/cookies” in your address bar. Cookies can also be accessed using the browser console: Press F12 –> application –> storage –> cookies.

How are Cookies Stored?

Take an example of a cookie written by rediff.com on the Mozilla Firefox browser. On the Mozilla Firefox browser, when you open the rediff.com page or log in to your Rediffmail account, a cookie will get written on your Hard disk.

To view this cookie, simply click on the “Show cookies” button mentioned in the above path. Click on the Rediff.com site under this cookie list.

You can see different Cookies written in the Rediff domain with different names.

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

Applications where cookies can be used:

#1) To implement the shopping cart: Cookies are used for maintaining an online ordering system. Cookies, remember what the user wants to buy. What if the user adds some products to their shopping cart and if due to some reason the user doesn’t want to buy those products this time and closes the browser window?

In the above instance, the next time the same user visits the purchase page, he can see all the products he added to the shopping cart during his last visit.

#2) Personalized sites: When a user visits a certain page, they are asked which pages they don’t want to visit or display. User options get stored in a cookie and until the user is online, those pages are not shown to him.

#3) User tracking: To track the number of unique visitors online at a particular time.

#4) Marketing: Some companies use cookies to display advertisements on user machines. Cookies control these advertisements. When and which advertisement should be shown? What is the interest of the user? What keywords do they search for on the site? All these things can be maintained using cookies.

#5) User sessions: Cookies can track user sessions to a particular domain using a user ID and password.

Drawbacks of Cookies

#1) Even writing a Cookie is a great way to maintain user interaction, if the user has set browser options to warn before writing any Cookies or disabled the Cookies completely then the site containing Cookie will be completely disabled and it cannot perform any operation thereby resulting in loss of site traffic. This can be disabled/enabled in your browser settings.

For Example: for google chrome, you need to go Setting -> Advanced -> Content Settings -> Cookies. There you can apply a general rule for Cookie policy, or set it for individual websites.

In addition to browser settings, there are some changes in regulations in the EU and US that force developers to warn a user that Cookies are used on the website. Compliance with such new regulations should also be a part of test scenarios for certain regions.

#2) Too many Cookies: If you are writing too many cookies on every page navigation and if the user has turned on an option to warn before writing the Cookie, this could even turn away user from your site.

#3) Security Issues: Sometimes, the users’ personal information is stored in Cookies and if someone hacks the Cookie then a hacker can get access to your personal information. Even corrupted cookies can be read by different domains and lead to security issues.

#4) Sensitive Information: Some sites may write and store your sensitive information in cookies, which indeed should not be allowed due to privacy concerns. This should be enough to know what Cookies are.

Test Cases for Web Application Cookie Testing

The first obvious test case is to test if your application is writing Cookies properly on disk. You can also use the Cookie Tester application if you don’t have any web application to test, but you must understand the Cookie concept for testing.

Some Major Test Cases for Web Application Cookie Testing

#1) As a Cookie privacy policy, make sure from your design documents that no personal or sensitive data is stored in the Cookie.

#2) If you have no option other than saving sensitive data in a Cookie, then make sure that the data stored in a cookie is stored in an encrypted format.

#3) Make sure that there is no overuse of cookies on your site under test. Overuse of cookies will annoy users if the browser is prompting for cookies more often and this could result in loss of site traffic and eventually loss of business.

#4) Disable the Cookies from your browser settings. If you are using cookies on your site, your site’s major functionality will not work by disabling the Cookies. Then try to access the website under test.

Navigate to the site to see if appropriate messages are displayed to the user like “For smooth functioning of this site, make sure that Cookies are enabled on your browser”.

No page should crash due to disabling Cookies. Make sure to close all browsers and delete all previously written cookies before performing this test.

#5) Accepts/Reject some cookies: The best way to check the website functionality is, not to accept all Cookies. If you are writing 10 Cookies on your web application then randomly accept some cookies, say accept 5 and reject 5 Cookies.

To execute the above test case, you can set the browser options to prompt whenever the Cookie is being written on disk. In this prompt window, you can either accept or reject the Cookie. Try to access the main functionality of the website and see if the pages are getting crashed or data is getting corrupted.

#6) Delete the Cookie: Allow the site to write the cookies and then close all browsers and manually delete all Cookies for a website under test. Access the web pages and check the behavior of the pages.

#7) Corrupt the Cookies: Corrupting a cookie is easy. As you know where the cookies are stored, you can manually edit the cookies in the notepad and change the parameters to some vague values like altering the cookie content, name of the cookie, or expiry date of the cookie and see the site functionality.

In some cases, corrupted cookies allow reading the data inside it for any other domain. This should not happen in the case of your website cookies. Note that if the cookies are written by one domain say rediff.com it can’t be accessed by another domain, say yahoo.com unless and until the cookies are corrupted and someone is trying to hack the cookie data.

#8 ) Checking the deletion of cookies from your web application page: Sometimes cookies written by a domain say rediff.com may be deleted by the same domain but by a different page under that domain. This is the general case if you are testing some ‘action tracking’ web portal.

Recommended reading => Methods to clear browser cache memory

Action tracking or purchase tracking pixel is placed on the action web page and when any action or purchase occurs by a user the Cookie written on disk gets deleted to avoid multiple actions logging from the same Cookie. Check if reaching your action or purchase page deletes the Cookie properly and no more invalid actions or purchases get logged from the same user.

#9) Cookie Testing on Multiple browsers: This is the most important case to check if your web application page is writing the cookies properly on different browsers as intended and the site works properly using these Cookies. You can test your web application on the most used browsers like Chrome, Internet Explorer, Mozilla Firefox, Netscape, Opera, etc.

#10) If your web application is using cookies to maintain the logging state of any user then log in to your web application using some username and password.

In many cases, you can see the logged-in user ID parameter directly in the browser address bar. Change this parameter to a different value, say if the previous user ID is 100 then make it 101 and press enter. Proper access messages should be displayed to the user and the user should not be able to see the other user’s account details.

#11) Verify if cookies are persistent or not (according to your requirements) by checking the cookie type and expiration dates in Cookie file or browser console

#12) Validate if an expiration date is set accordingly to requirements. In some cases, it is vital to check if the Cookie expiration date is updated by working with an application (to refresh session for example). This can be checked in the browser console or in the cookie file itself.

Please note that decoding a cookie manually is not the best approach and it is easier to rely on browser data, but if required – this thread contains some answers on the Cookie file format.

#13) If some cookies are user-specific, it is important to ensure that they are deleted or simply ignored if another user logs into the application unless it is said differently in the specification.

#14) Specific test for multi-environment sites: Check if the same cookies are acceptable in all environments. Issues could be caused by the use of wildcards in the cookie path (so-called supercookies). If this is a requirement to allow it, some access issues can be caused because a different encryption key is used (e.g for .Net, it is a machine key that is usually unique unless specified otherwise).

These are some of the major test cases to be considered while testing the website cookies. You can write multiple test cases from these test cases by performing various combinations. If you have a different application scenario, you can mention your test cases in the comments below.

Conclusion

By now you should have a clear understanding of how to perform website cookie testing and how to write test cases for testing web application cookies.

Please share your thoughts/queries in the comment section below. 

Recommended Reading

293 thoughts on “Website Cookie Testing & Test Cases for Testing Web Application Cookies”

  1. COOKIES TESTING IS VERY MUCH NEEDED LIKE OTHER PARTS OF WEB APPLICATIONS. YOU HAVE NOTED DOWN SOME GOOD POINTS THAT CAN BE INTEGRATED IN WRITING TEST CASES.. GOOD JOB..

    Reply
  2. Thank you for providing the such a great information. I have one question. In chrome where cookies will be stored (Please specify the path)

    Reply
  3. As part of security testing, got to know tester has to check httponly and secure tags in cookies. Please let us know how can be this tested manually?

    Reply
  4. Thanks for the great article. I am doing some self-study on testing, and tried to carry out cookie testing after reading this article. But I am not able to locate and edit cookies. I have Mac OS X Yosemite. Please help me with this. Or it is only possible to edit cookies on server operating systems?

    Reply
  5. Hi,
    I want to know answer of this question “how to check security of any browser ? give me some example”.

    Please reply me.

    Reply
  6. How can we automate Persistent basket
    Example Scenario: User can able to add multiple products to the basket, leave the system for a period of time(1hour or couple of hours)and on user return to the website, user should be able to continue the checkout process and purchase the previously added items without having to re-add all of them to the basket.

    Please help me in this regard how can I test this efficiently

    Thanks
    Sri

    Reply
  7. I wanted to know how can I verify the information stored in a cookie. I tried cookie extension however i could not read it. As per my exploration, cookies in chrome are encrypted and they are in SQL Lite DB file. What are the ways to know what is stored inside the cookie?

    Reply
  8. Hi,
    please could you give me
    1)Software testing questions and answers
    2)CSTE &CSQA exam related questions and answers

    email:podsevatkina.anastasia@gmail.com

    Reply
  9. Am facing scenarios where am always told by the developers to delete the cookies and then validate the application. And after I delete the cookies then the functionality works. But below is my concern,
    Q) will the end user/customer delete the cookies to perform his actions ?

    Any reply would be greatly helpful and i can work with my developers accordingly.

    Reply

Leave a Comment