How To Find Bugs on Websites
Why You Need To Find Website Bugs
Bugs can occur in any digital system, from software to mobile apps and websites, and sometimes these bugs can cause tremendous chaos and negative impact on the bottom line. The more traffic a website receives, the greater an impact a bug can cause.
An interesting example is the case of the collapse of a U.S. government healthcare website. On 1 October 2013, the healthcare.gov website was launched, but many users experienced crashes, delays, errors, and slow performance after its release. The site had over 4 million unique visitors on the first day, but only six people were able to successfully enrolled in health plans due to bugs on the site. Even those who registered and shopped online encountered frustrating errors and confusing duplicates in their applications.
As a result, the site had to be taken down for significant repairs during the first weekend because it was practically unusable. The project cost about $500 million, yet they didn’t focus their efforts on finding bugs. This disaster could have easily been avoided with some thorough web testing.
In this article, we’ll guide you step by step on how to find bugs on websites and suggest tools that you can leverage to improve website testing.
How To Find Bugs on Websites
1. Choose Between Manual Testing vs. Automation Testing
Before finding bugs, you need to choose the right approach. There are two common ways to find bugs on any website: manual testing and automation testing.
Manual testing is simply about manually interacting with website elements to see if anything does not work as expected. For example, if you want to test the login feature on your website you can navigate to the login page, then enter credentials of a registered user into the right fields. If you successfully log into the website, and you see the UI of a logged-in user, you know that the feature works fine.
However, that only addresses a “valid credential” scenario, and sometimes users also input “invalid credentials,” so you also need to intentionally type incorrect username and password combinations to see how the system responds. Similarly, there are many other scenarios that fall under the login/registering feature that you should test, including:
- Forgot password
- Account lockout
- Remember me feature
- 2FA verification (if your site has it)
- Security validation
- Performance and load testing (to see how the system responds under abnormal traffic)
- Localization (to see language preferences settings)
Manual testing is suitable for small-scale websites with simple features. However, when it comes to more advanced websites with thousands or even millions of pages having interconnected features, performing manual testing alone can be exhausting.
Here testers may want to leverage web automation testing to test repetitive test cases. They can code test scripts using popular automation frameworks like Selenium, or choose an automation testing tool that offers the features that they need.
The ultimate decision on whether to choose manual testing depends on many factors. If you are building a hobby site, have limited budget, or your testing needs are not too high, manual testing is a great choice. However, as your website scales, automation testing will be extremely valuable in helping you find bugs faster, more efficiently, and with no human errors, which can deliver significant ROI in the long run. Many QA teams usually go for a hybrid approach — automating repetitive tasks but still using manual testing in website areas that require a human touch.
2. Determine the Testing Types To Perform and Tools To Use
Now that you have decided on the approach to use, the next step is to choose the right testing type. Each testing type allows you to find a different type of bug, and may require a unique type of tool. Below is a comprehensive list of testing types that you should consider with areas that they cover and suggestions on how to test:
How To Test
Feature functionality, user interactions, navigation, forms, error handling
- Design comprehensive test scenarios including positive and negative cases
- Leverage data-driven testing for cases that need a wide variety of input data sets
User-friendliness, overall user experience, website layout, navigation
- Involve representative user groups
- Look for bugs related to layout, design, readability, intuitiveness, error messages, and ease of navigation
Tests application programming interfaces, data transmission
- Test each API endpoint; validate the request/response data structure, format, and content
- Try creating, updating, deleting, and retrieving data through the API to see how it processes and stores data
Functionality and usability on mobile devices, responsive design
- Test your website on different screen sizes and operating systems
- If applicable, also test offline functionality
Website performance, response times, scalability
- Test for slow loading pages, long response times, broken images or media, inefficient scripts, memory leaks, and any bottlenecks that affect the user experience
- Test under several network conditions
Identify and mitigate security risks, data protection
- Look for bugs related to insecure login mechanisms, cross-site scripting (XSS), SQL injection, cross-site request forgery (CSRF), insecure data transmission, and inadequate access controls
- Test the website's authentication and authorization mechanisms
Website accessibility for users with disabilities, screen reader support
- Test for compatibility with screen readers, keyboard navigation, alternative text for images, color contrast, and adherence to web accessibility guidelines (WCAG)
3. Include Cross-browser Testing and Cross-device Testing
Cross-browser testing is an important activity when finding bugs on websites. There are currently 63,000+ possible browser-device-OS combinations that provide an extremely unique browsing experience for each user. Someone browsing on Safari using an iPhone 14 with the latest updates experiences a completely different website compared to someone browsing on Google Chrome using a Dell laptop with a 15.4” screen. Without cross-browser testing, you risk serving your diverse user base a negative web experience.
The key is to find out what browsers-devices-OS the majority of your users are using and conduct testing on them in order to catch bugs easily.
4. Report and Track Bugs
If you work with a comprehensive team, the development team will handle the troubleshooting of the bugs you find. To report and track bugs, you can simply use Google Sheets. Open up a new spreadsheet, then add bug categories to help you better classify any bugs you find. A good list of bug categories include:
- Severity: The level of impact a bug has on the performance or security of the system, ranging from high to low.
- Priority: The level of urgency assigned to a bug, indicating how quickly it needs to be addressed, ranging from high to low.
- Reproducibility: Whether a bug can be consistently reproduced, occurs occasionally, cannot be reproduced, or the cause of the issue cannot be identified.
- Root cause: The underlying reason or source of a bug, such as a mistake in the code, a flaw in the design, a configuration problem, or an error made by the users.
- Bug type: The category or classification of a bug, such as functional issues, problems with performance, difficulties in usability, security vulnerabilities, or compatibility errors.
- Areas of impact: The parts or components of the system that are affected by the bug and may experience consequences or negative effects.
- Frequency of occurrence: How often the bug occurs, whether it happens frequently, occasionally, or rarely.
You can also add another column for Bug status, with dropdowns that include In Progress, To be Retested, Fixed. For more advanced needs, you can leverage bug management tools with more tailored features.
Read More: A Comprehensive Website QA Checklist
Level Up Your Web Testing With Katalon
Katalon Platform is a comprehensive quality management platform that simplifies all aspects of web testing. You receive all the features you need to find bugs on websites in a single platform:
- Test creation: Quickly construct a test for any features on your websites using Katalon’s built-in keywords. They are essentially code snippets that you can easily drag-and-drop to construct a full test script that can be executed on any environment. For example, if you want to test a login feature on a website, you can drag-and-drop the following keywords to build your test:
- Open browser (e.g., Chrome, Edge, etc.)
- Navigate to URL (input your Login page)
- SetText (to input your username/password)
- Click (to click on certain buttons such as login)
- Wait until element is visible (to wait until the login is successful)
- Close browser
Without a single line of code, you can construct a test that can be automatically executed whenever you want. Katalon also has a Record-and-Playback feature to record the actions on your browser and turn them into a full test script. What’s even better is that you can build new keywords by yourself, so there is always room for customization.
- Test execution: Effortlessly execute the tests you have created on many popular browsers, environments, and operating systems.
- Test management: Group all of the tests you have created in test suites and test collections (as a hierarchy) so that you can have a centralized view over all of the tests.
- Test reporting: Export detailed analytics on your test runs to gain a comprehensive understanding of your website quality and communicate results to stakeholders.
- Test planning: If you work as a team, Katalon can help you communicate easily with many collaborative features and integrations with Slack, Jira, and Microsoft Teams.