The topics in this graph will be useful for testers with various backgrounds as well as developers, analysts, and other members of the software development team. To better understand the basics of web testing, we will cover the fundamental concepts of web testing, the key principles behind it, and the main tools that help in the process.
What is web testing?
Web testing is the process of evaluating and verifying the functionality, usability, and performance of a website or web application. It ensures that the website works as intended and provides a seamless user experience. How can a tester determine that the site is actually working according to regulations? There is a special organization for this W3C (World Wide Web Consortium). It develops and sets standards for the World Wide Web. W3C standards are designed to do the following things.
Ensure interoperability. W3C standards define how web technologies should work to ensure compatibility between different web browsers and platforms. This helps developers create websites and web applications that work equally well on different devices and browsers.
Improving security. W3C standards include web application security guidelines and protocols to protect users' data and personal information.
Promoting accessibility. The W3C develops guidelines and standards to improve the accessibility of Web content for all users, including people with disabilities.
Promoting interoperability. W3C standards encourage the creation of Web technologies that can interact with each other, enabling the development of complex Web applications.
Supporting innovation. The W3C organization works to develop new web technologies that can improve the user experience and enhance web development.
W3C standards include technologies such as HTML (HyperText Markup Language), CSS (Cascading Style Sheets), JavaScript, and many others that are the foundation of the modern web. These standards help ensure the stability, security and accessibility of web content, making the web more useful and accessible to everyone. We'll talk about them in more detail in the following topics.
Key web testing principles
To talk about testing principles, it is necessary to mention another international organization. The ISTQB (International Software Testing Qualifications Board) deals with the standardization and certification of software testing professionals. ISTQB develops standards and testing methodologies and provides certification programs for professionals working in the testing field.
The ISTQB aims to improve the quality of software testing, establish common standards and terminology, and create a professional community of testers by facilitating the exchange of knowledge and experience in the field. The ISTQB also works to develop study materials, test questions, and guides for training and preparation for certification exams. These standards and certifications help to improve the quality of software testing and professionalize the world's testers.
ISTQB standards include the following core documents:
Syllabi. These documents describe the syllabi and content of ISTQB certification exams at different certification levels. They define the topics and knowledge that candidates must cover in order to pass the exam.
Glossaries. The ISTQB provides definitions of terms and terminology used in the field of testing. This helps to establish consistent standards of terminology to avoid misunderstandings.
Syllabus mapping documents. These documents explain which syllabus corresponds to a particular certification and which topics need to be studied to pass the exam at a particular level.
Examination Guidelines. These documents describe the procedures and rules for the ISTQB examinations.
International organizations define guidelines and standards related to web technologies and website quality, but they do not generalize specific web testing principles. Here are some principles that can be applied to web testing based on the guidelines and standards.
Accessibility. Principles are defined in the W3C's WCAG standard. They emphasize the need to ensure that websites are accessible to all users, including people with disabilities, using assistive technologies.
Browser compatibility. According to the W3C guidelines, websites should be tested and work correctly in different web browsers such as Chrome, Firefox, Safari, etc.
Performance. Organizations such as Google and its Lighthouse project provide guidance on how to optimize website performance, including page load, speed and resource usage.
Security. ISO 27001 and other information security standards define principles and practices that can be used to keep websites secure. This includes protection against hacking, attacks and data breaches.
Performance testing. International organizations do not define specific performance testing principles, but they may recommend the use of tools and techniques to evaluate the performance of web applications.
Conformance to W3C standards. Verifying that a website conforms to W3C standards and guidelines, such as HTML and CSS, is an important principle of web testing.
The general principles of web testing can vary depending on the specific project requirements and testing objectives. However, the guidelines and standards provided by international organizations serve as a basis for developing testing strategies and methodologies.
Basic web testing tools
Testing tools are programmes, additional extensions or utilities to facilitate the testing process and the life of the tester. Let's explore the purpose and application of them.
Browser developer tools. Tools built into browsers, such as Chrome DevTools and Firefox Developer Tools, allow you to test and debug web elements, network requests, and performance metrics. There are several ways to open devtools in Chrome or Firefox:
| Chrome | Firefox |
|---|---|---|
Windows/Linux |
|
|
macOS |
|
|
Official documentation for the developer tools in Google Chrome and Mozilla Firefox browsers can be found at the links below.
Test automation. One of the primary purposes of testing tools is to automate the execution of test cases. These tools enable testers to create and run automated tests, reducing the manual effort required for repetitive and time-consuming tasks. By automating tests, testers can save time, increase test coverage, and improve the overall efficiency of the testing process. Here are some specific tools for writing automated tests:
Selenium library.
Selenide framework.
Cypress.
Puppeteer.
Playwright.
Katalon browser plugin.
Selenium IDE plugin for Chrome and FF.
Test management. Testing tools provide features for managing test cases, test suites, and test data. Test management tools help testers organize and prioritize test cases, track their execution status, and generate comprehensive reports. These tools facilitate collaboration among team members, ensuring better coordination and visibility into the testing activities. There are many modern test management tools available. Here are some of them:
Jira + Zephyr. Jira is a powerful project management and bug tracking tool. Zephyr is a plugin for Jira that adds test management functionality, including test planning, execution, and reporting.
TestRail. This is a test management tool that allows you to plan, track, and manage your tests. It can also integrate with various bug tracking tools, including Jira and Bugzilla.
qTest. This is a test management tool that provides test planning, tracking, and reporting features. qTest can also integrate with other tools such as Jira.
Bug tracking. Testing tools often incorporate bug tracking or issue management capabilities. Testers can use these tools to log and track identified defects, assign them to developers, and monitor their resolution status. Bug tracking tools streamline the defect management process, enabling effective communication and tracking of issues throughout the testing cycle. The most popular bug tracking systems are such programs:
Jira, which offers a flexible bug tracking system that can be tailored to the team's needs.
Bugzilla. This is an open source and free bug tracking tool that allows users to easily track bugs and code changes.
GitHub provides a built-in bug tracking tool that can be used to track issues within projects on GitHub. It is particularly useful for open source projects.
GitLab provides an integrated bug tracking tool that can be used in conjunction with their other project and version control tools.
Performance testing. Performance testing tools are specifically designed to evaluate the performance and scalability of web applications. These tools simulate high user loads and measure the response time, throughput, and resource utilization of the application under different scenarios. Performance testing tools help identify bottlenecks, optimize system performance, and ensure that the application can handle expected user loads. Here are some examples of performance tools for the web:
JMeter.
k6.
Lighthouse (as a separate library and as part of the developer tools in the browser).
Security testing. Security testing tools help identify vulnerabilities and weaknesses in web applications and potential security risks. They can also provide insight into how to strengthen the application's security measures. There are many tools that can be used to test the security of web applications. Here are some of them:
OWASP ZAP (Zed Attack Proxy). A free open-source tool used for automated security testing of web applications.
Burp Suite. A suite of tools for testing the security of web applications. It includes features for scanning, sniffing, intercepting, and manipulating HTTP traffic, as well as automated and manual security testing.
Veracode. An automated security testing platform that can be used for static, dynamic, interactive, and software security testing.
Selenium. Although primarily used for automated functional testing of web applications, Selenium can be used in conjunction with other security testing tools.
Trends in web testing
As technology evolves, so does the field of web testing. It is essential for testing professionals to stay abreast of the latest trends and developments in this area. This will help to be in demand in the market and provide services keeping up with all the current changes in the IT field. Below are the current areas in testing at the time of writing. Potentially, these are areas where a tester can expand his/her knowledge, build a career, and grow as a specialist:
Shift-left testing – emphasizes early involvement of testing activities in the development process to catch defects sooner and reduce rework.
TestOps – a practice that combines DevOps methodologies and test automation tools to streamline and improve the software testing process. The main goal of TestOps is to accelerate and improve the quality of the software development and testing process. From a practical point of view, TestOps includes test automation, integration with DevOps, use of containers and cloud technologies, reporting and monitoring, resource sharing, environment automation, and customisation.
Test automation – increasing adoption of test automation frameworks and tools to accelerate testing and improve efficiency.
Continuous integration/Continuous delivery (CI/CD) – integration of testing into CI/CD pipelines to ensure rapid and reliable deployment of web applications.
Performance testing – the growing importance of performance testing to optimize website speed, responsiveness, and user experience.
Security testing – heightened focus on security testing to identify vulnerabilities and protect sensitive data from potential threats.
Conclusion
Web testing is one of the areas that many testers start out in, as it seems simple at first glance. But underneath this layer of web testing, there are many complex, but interesting and responsible tasks.