Many websites start simple and become increasingly complex over time. While quick spot-checks are sufficient early on, increasing complexity eventually makes them impractical. Software testing is the formal quality assurance process(es) that ensures a website behaves correctly and provides the best possible experience for its users.
Automated tests have replaced repetitive manual quality assurance tasks with code that can be executed to verify functionality. Agile development teams run automated tests as part of a continuous integration and deployment cycle. After each code merge, the automated tests are run to confirm that nothing has broken and the new code is deployed to production.
These automated tests have become commonplace across many development teams, but there are still a number blindspots that companies forget to address.
Let's take a look at three critical software tests that many companies forget to include in their test suites and how you can effectively address them.
#1. Localization Tests
Localization tests ensure that your website shows the correct elements based on a visitor's location. For example, an ecommerce website may want to show certain shipping methods or payment methods to visitors from certain countries. Websites can determine a visitor's location by looking at their IP address or requesting their location from the browser.
Conventional localization testing involves a tester connecting to a proxy server and running through a test plan for various page elements. While it's feasible for small websites, these manual processes quickly become unmanageable at scale. Larger ecommerce websites may need to test hundreds of different elements across different regions with each deployment.
Automated tests solve these issues by programmatically looking at elements to ensure they properly appear. The biggest challenge with automated localization tests is finding reliable proxy servers that support the right locations and don't inject ads or other elements that could cause a test to fail. It can also be challenging to integrate them with testing frameworks.
WonderProxy provides an easy-to-use browser extension for manual testers, as well as built-in support for automated localization tests through Selenium and SauceLabs. With more than 240 servers across about 90 countries, the company's proxy servers cover 97% of the world's gross domestic product (GDP), making it an ideal solution for localization testing.
#2. Accessibility Tests
Many websites are designed to support multiple devices and browsers, and cross-browser testing helps ensure that the right elements appear across different devices and browsers. However, few testers have tried using a magnifier or screen reader to ensure that their website is easy to read and navigate for those with visual impairments.
Federal, state, and local governments are required to meet Section 508 regulations for website accessibility. While these standards don't apply to private companies, that doesn't mean you shouldn't address accessibility. Title III prohibits discrimination based on disability in the activities of places of public accommodations — potentially including websites.
WordPress and many other web frameworks meet Web Content Accessibility Guidelines (WCAG) standards on their own, but that doesn't mean that all themes and plugins are compliant. Testers should ensure that an entire website is compliant with WCAG and other accessibility standards to improve the user experience and avoid any potential liabilities.
There are several tools that can test web accessibility:
WAVE is a suite of evaluation tools designed to identify WCAG errors and help facilitate corrections.
SortSite provides an accessibility checker that runs against all three WCAG levels as well as guidelines specific to Section 508, making it a more comprehensive tool.
aXe is a developer-focused accessibility tool that adds a new tab to Chrome and Firefox's Developer Tools. The in-code messages make it easy to address any issues without having to compare the UI to the code.
#3. Compliance Tests
Many industries have unique compliance requirements that apply to their websites. For instance, most healthcare companies must comply with HIPAA regulations, some ecommerce shops must comply with PCI regulations, and many SaaS applications may be bound to SLAs. The failure to comply with these standards can result in fines or other penalties.
Many of these regulatory requirements can be translated into automated tests. For example, HIPAA requirements can be tested with an integration test that verifies that two-factor authentication is implemented and SLA requirements can be tested using a load test to ensure that page load times are sufficiently lower to avoid triggering a violation.
While these tests ensure technical compliance with regulations, it's important to keep in mind that there are non-technical components to most regulations. Chief Information Security Officers, or CISOs, are typically responsible for integrating both parts of compliance efforts to ensure that an organization is fully compliant with any regulations.
Other Tests to Remember
Documentation Tests - Documentation is a critical tool to help in-house developers understand software projects and customers understand how to use the software. If it’s not kept up-to-date, it’s not very useful to anyone. Automated tests can ensure that it’s kept up-to-date, or even better, behavior-driven development (BDD) tests can be used to automatically generate up-to-date documentation as part of a test suite.
Database Tests - Databases are a common bottleneck for websites and web applications. Slow queries can dramatically slow down a website, while misconfigured databases can throw errors. Database testing can help reduce these errors and ensure that websites load quickly for users.
The Bottom Line
Software testing is a critical component of the Agile development process. As websites grow more complex, it's imperative to ensure that everything properly functions. Automated tests are the most common way to achieve these goals at scale, although manual testing can be helpful for smaller projects that don't have many resources.
By keeping the oft-forgotten tests that we've covered in this article in mind, you can ensure that you're accounting for all of the edge cases and testing the things that matter.