While you might not have heard of web testing before, that doesn’t mean it’s unimportant. Web testing is a vital stage that takes place during the development of an app or website. From the simple note-taking app on your phone, to the on-board computer in your car; they’ll all have gone through some form of web testing. In this blog, we’ll break down what web testing is, how we utilise it at Storm and explain just how it benefits you.
What is web testing?
Web testing has become a fairly amorphous phrase in modern computing, mainly because most applications are now designed with some online functionality in mind. Today it’s considered an umbrella term for various testing types that we use to verify the accuracy and stability of how an application will perform once it’s released to the public.
We do this by testing the component parts of a site or application until we are satisfied with its level of usability. This way, when it’s launched, the user receives a seamless, enjoyable experience and our clients receive the product they requested, that works as it was designed.
Why is it important?
The first interaction most people have with a product or company will be through their website – that’s why it’s important to make a great first impression. Most users stick around on a new site for around 15 seconds – not a long time to capture their interest! If a web page doesn’t load, doesn’t render properly – or does anything else that might infuriate the user – then they will likely look elsewhere for a better alternative.
But that’s not the only reason. Unresponsive sites and crashes are not just a nuisance, they’re expensive too. A study from 2017 showed that software failures cost US companies a staggering $1.1 trillion that year.
That startling statistic is one of the defining reasons why companies are obsessed with getting web testing right – and why it is a great example of prevention being better than a cure.
What does it involve exactly?
The process is broken down into six stages that test and gauge the website in different ways.
- Functionality testing
- Compatibility testing
- Performance testing
- Interface testing
- Usability Testing
- Security Testing
Let’s go in to a little more detail.
We split this stage of the process into two parts: front-end and back-end testing. This allows us to test the user journey and functionality of the site separately. Dividing the stage in this way helps us to address any potential redevelopments quickly and accurately.
Front-end testing is concerned with how a web site or application functions when it’s interacted with. It confirms that pages load correctly and look like their designs. The tester will confirm that buttons and links all work as intended and redirect the user to where they expect to go. In essence, its purpose is to drive the site the same way a user would: to determine it looks and feels as it should and that it functions properly.
Back-end testing looks at the interactions that take place under the hood of the application – this means the tester will send requests directly to the server without using the user interface. We do this so that the tester can isolate specific requests and take a look at the data structure that is passed. This allows us to then manipulate that data afterwards to see if we can use it to generate any unexpected responses.
How users choose to access a site can vary massively from person to person – there has never been a bigger selection of browsers and operating systems available than there is now. That’s why it’s important to test the compatibility of a site to determine whether it can function flawlessly across all the options available to all users. We do this by breaking down this stage of the process into three modes of testing.
Browser compatibility tests include checking whether authentication requests are functioning or whether browser notifications are working properly. All tests must be conducted on all browsers, and crucially, all versions of those browsers.
Similarly, tests operating system compatibility must be conducted on all available OSs including; Windows, Linux or Mac. It is important to do this as opposing operating systems can render web elements differently – this can affect crucial components like text fields or buttons.
The last piece of the compatibility testing puzzle is mobile compatibility.
With every passing year, our web usage becomes increasingly mobile intensive. More than 52% of our web browsing is now done by mobile and that number looks only to increase, as it has year on year since the advent of the smartphone – a key indicator that mobile compatibility testing is vital.
Like browser and operating system compatibility, the key to this stage is testing on as many different devices as possible to make sure all your users are catered for.
Once you are sure that the functionality of your website is working as it should, and that it can operate on all browsers and devices, the next step should be to test its performance.
This can be broken down into a variety of testing types:
- Load Testing
- Stress Testing
- Spike Testing
- Soak testing
Load testing checks to see how your site reacts to handling bulk loads, simultaneous connections and multiple user requests. It involves creating virtual users in blocks of 10/20/50/100 etc and using automated test scripts that make those virtual users interact with the site in various ways. The tester will then record the results to look for any slowdowns or bottlenecks in the applications performance when it is being hit by lots of users together.
Stress testing determines the breaking point of your site by putting it under stress and gauging how well it recovers from crashes. It does this by adding users to the application until it reaches the point where it “falls over” and becomes unresponsive. Then the tester will record how long it takes to recover and checks if any redundancies have kicked in. This provides details on how many people the site can handle and how it will recover when it reaches critical failure.
Spike Testing is the cousin of load testing. It’s used to add large spikes of users, have them make a single interaction, then leave. This is used to verify that your site is stable enough to handle expected and unexpected traffic during busy periods.
Soak Testing is used to check the stability of your application over sustained usage. The tester will add a large number of users to the application and leave that test running for a long period of time – whether that be a day, a week or a month. This is done because most web applications aren’t designed to be used 24/7 and some unexpected problems can crop up when the application is pushed beyond what is was designed for. Soak testing allows us to catch those issues before the product is launched to the wider public.
These tests help to check communication processes and make sure that error messages are displayed correctly when something does go wrong. They are important as they measure the ability of the site to deal with interruptions – from both the user and the servers.
Interface testing incorporates the ‘3 Tier Architecture’ model in its process: application server testing (which tests the Client Tier), web server testing (relevant to the Logic Tier) and database server interface testing (this tests the Data Tier).
Application server testing (Client Tier): This involves requests being sent to the database and making sure output at the client side is displayed as intended. Any errors must be caught by the application and shown to the administrator.
Web server testing (Logic Tier): This determines whether the web server is handling all requests without service denial. Handles
Database server interface testing (Data Tier): Makes sure that any queries sent to the database give the intended results.
This part of the process combines functionality testing and gauging the user experience. It can be done internally but usually takes place with the help of a focus group of testers that match the intended audience of your site.
Usability testing typically involves the following steps:
- Developing a strategy – this must be thorough and ensures that all functions are examined. These include looking at two elements of the site: content and navigation.
- Recruiting test participants (these can be found internally or externally). They will use your site or app to check for any issues.
- Running the tests under the observation of experts.
- Analysing the results and amending your site accordingly.
Security is an essential component of every website. Security testing helps to find any issues, potential vulnerabilities and ensures maximum safety. It also helps to prevent potential attacks and maintains the integrity of the site. Effective security testing can negate unauthorized access and helps to protect sensitive and personal data.
There’s never been a piece of software that was released bug-free. But as techniques and approaches in testing improve, the quality and speed of software releases continue to rise. That’s important because as users have become more tech-savvy, they are more expectant of the apps and websites that they use.
Appropriate testing makes sure a site is accessible, user-friendly and fully-functioning before it’s released. If ignored, while it might work well during the development stage, it is inevitable that its users will ultimately become the guinea pigs that push a site to its limits and find the bugs hidden underneath the surface. At that point, fixes become time-consuming and expensive.
Though perhaps more important than the cost to the developer, is the damage to the user experience that forgoing basic testing almost certainly preludes. User experience should be an ever-present concern when designing a website – it is the users’ combined experience that will ultimately determine its success, after all. Failure to test extensively, or to overlook a section of its target audience, could result in a subpar experience for many users – and might be the reason they abandon one product and opt to use a competitor’s instead
That’s why it is imperative for any web developer – whether they’re a seasoned professional or an amateur – to embrace one of the pillars of web development and make sure that their site is great for as many people as it possibly can be.
You can learn more about web testing and web development here.