In today’s technology-driven world, it is hard to imagine our daily lives without the advancements surrounding us. However, even with its undeniable benefits, technology is not flawless. It has its strengths, weaknesses, and limitations. After all, it often fails us at the most inconvenient times. This raises the question: Could these failures have been prevented? The answer is “yes” and lies in the implemented solution’s comprehensive quality assurance process.
The importance of additional software verification is gaining recognition, and the need for qualified specialists to handle it is becoming increasingly noticeable. As a result, quality assurance is now being integrated into projects at earlier stages. But what exactly does a high-standard test process entail? In this article, we will explore this topic in detail.
Understanding the Testing Process
In light of their inherent complexity, IT systems – including their internal processes and integrations – require thorough verification before being deployed to customers. This responsibility falls upon the quality assurance specialists who execute the test process within the software development cycle. This process yields valuable feedback and identifies detected errors, also known as defects.
A testing process can be considered a strategic blueprint, guiding necessary test activities at appropriate stages of the development process.
Software Testing Standards
Various projects require different perspectives on testing, leading to distinct variations in the testing process. In other words, the specifics of each project shape the software testing approach. However, amidst this diversity, specific standards rule the work of testers, meticulously crafted by the esteemed International Software Testing Qualifications Board (ISTQB®). As a highly respected IT organization, the ISTQB® is dedicated to advancing the testing profession and establishing a definitive framework for delivering testing services.
Obtaining ISTQB® certification validates that a tester adheres to proven and internationally recognized methodologies. At Infinity Group, we consider it a vital milestone within our Quality Assurance (QA) department’s professional growth. Each member of our testing team holds the ISTQB® certificate as an independent specialist, offering our clients assurance of the utmost quality in our testing services.
Testing Process According to ISTQB® Standards
In line with the model advocated by ISTQB®, the tester should adhere to the following steps:
- Test planning
- Monitoring and supervision of testing
- Test analysis
- Test design
- Test implementation
- Test execution
- Finalization
In the subsequent paragraphs, I will delve into each stage of the testing process, providing detailed insights and explanations.
Test Planning
The testing process adheres to a meticulously prepared plan, ideally created in parallel with the overall project planning. During this phase, it is crucial to consider the objectives that will be pursued in subsequent stages of the project. Each goal is supposed to demonstrate the desired level of quality. In turn, the accomplishment of these objectives determines the completion of specific project phases. Additionally, it is essential to choose the testing techniques to be employed and establish a timeline for completing the planned tasks to meet the project’s delivery date. You can compare this process to renovating a house, where the initial planning involves deciding what needs to be done, how it will be accomplished, and the subsequent steps to maximize the available time.
Once the test plan is created, it may need to be modified at various stages due to changes in business assumptions. Therefore, it can be necessary to revalidate the plan’s components to ensure they align with current circumstances. Furthermore, the implementation and progress of the project itself influence changes in the test plan, offering valuable insights to refine the previously established approach.
The essential elements of the test plan include the following:
- Identification of the objective and development of the scope of work.
- Determination of the degree of risk based on the specified hazards.
- Identification of items to be tested.
- Determining how testers will work, focusing on manual or automated testing.
- Selecting the people involved in testing and their tasks.
- Determining the test environment.
- Preparation of the test schedule.
- Estimating the necessary budget for the task execution.
- Developing documents and document templates related to testing.
Monitoring and Supervision of Testing
The monitoring and supervision of testing involve evaluating the progress of test preparation and the actual product testing. It is the foundation for assessing whether the project is on track according to defined assumptions and timeframes for each step. This stage also evaluates the fulfillment of acceptance criteria set for different stages of the test plan. In reality, it covers the entire testing process from the analysis stage to completion.
To facilitate estimation and assessment, the following information is considered:
- Comparison of tests conducted to the total number of planned tests.
- The number of reported and resolved bugs.
- Coverage of acceptance criteria, measuring the extent to which design assumptions are met.
However, acquiring the information above might not be sufficient. To interpret the test activities effectively the collected data is processed and presented as a report. This report serves the purpose of summarizing and communicating the current test status. It can be created for specific periods or after completing all of the test activities. The report’s format can be customized to meet the stakeholders’ requirements and align with the corresponding project. It may include the following elements:
- Test and product status information.
- Estimates, measures, and statements related to defects and test cases.
- Events encountered and exceptions that were not considered during the planning phase.
- Information regarding deviations from the intended plan and/or schedule.
- Details of newly identified hazards and risks.
- Summary of the work that has been completed.
In the case of identifying issues, including potential delivery risks, it is essential to provide supervision and oversight to ensure the objectives outlined in the test plan are achieved.
Test Analysis
This stage delves into a higher level of detail, where the focus shifts to analyzing the test baseline and determining the distinctive elements that require testing.
When choosing testing methods, it is necessary to consider the different stages of product development. This includes business, functional, and system requirements, design information, module implementations, system components, databases, interfaces, and risk analysis reports. In subsequent steps, assessments are made to identify common issues, test conditions are established based on product functions, and tests are prioritized.
The test analysis stage offers numerous potential benefits. It helps identify inaccuracies or deficiencies in findings early, eliminating uncertainties during the production phase. Conducting thorough analysis ensures that the final product aligns with stakeholders’ expectations and meets the needs of end customers.
Test Design
As we progress toward a more detailed plan for the overall testing process, we enter the test design stage, where the focus shifts from “What to test?” to “How should we test?”. At this point, we already understand the purpose, scope, and object of testing. Now it is time to replace test conditions with test cases.
The key objectives of the test design stage are as follows:
- Determining the type of test cases (low-level or high-level) based on the specific product element under test.
- Selecting appropriate techniques and methodologies to be used during the tests, along with preparing the necessary test data to support the testing process.
- Designing a test environment that ensures reliable results and utilizing the tools required for effective testing.
- Prioritizing test cases based on their significance and impact.
Following these principles, test cases should be designed to be repeatable, verifiable, and closely aligned with the tested items. They should include the following elements:
- Specific objectives for each test case.
- Prerequisites, which describe the necessary environment and product state required before the test can begin.
- Expected test results, outlining the anticipated outcomes.
- Pass or fail criteria, which determine whether the test case passes or fails.
- Initial conditions, which depict the environment state after the tests, such as new records in the database.
Well-designed test cases are prepared for the subsequent stage, where they will be assigned specific data and executed.
Test Implementation
Before commencing the actual testing phase, it is essential to prioritize the test cases. Following this, the next step involves preparing the necessary data for both the test environment and the testing itself. Test cases can be organized into groups and combined to create more extensive collections (test procedures) which can later be used to create test suites.
When referring to the test environment, it is crucial to highlight that the implementation phase is the right time to fully prepare all the necessary elements vital for the start of testing. This includes:
- Configuring the servers and any peripherals connected to them, if required.
- Configuring the systems, installing the necessary software, and ensuring its proper functioning through validation.
- Provisioning plug-ins or simulators in place of modules that are not yet developed.
- Confirming the availability of individuals responsible for the test environment and its maintenance.
Once this stage is adequately prepared, it is time to initiate the testing process.
Test Execution
The test execution phase is where testers truly demonstrate their professional expertise. After completing the preceding activities and ensuring the necessary information and prepared environment, this stage marks the beginning of testing the system or its components for defects or usability.
During this phase, the primary objective is to determine whether a test case “passes” by achieving the expected behavior or state or if it fails due to unexpected behavior or inconsistencies.
Remember to acknowledge that tests are created by humans, so there is a risk of human error. Incorrect assumptions within a test case can provide inaccurate results, which, in turn, can lead to false conclusions regarding the defects in the application or system. That is why reviewing test cases for erroneous assumptions and ensuring accurate results is crucial. After executing the tests, the results are collected and compared with the expected behavior of the application or system during the execution of the test cases.
In case of any defects, their probable causes are analyzed and reported to the development team so they can verify and fix them. The next step is to confirm the resolution of prior defects or conduct regression tests. The entire stage is concluded with a report, which serves as valuable information on the condition of the tested elements.
Finalization
The final phase can be considered the culmination of all the efforts invested in preparing, executing, and documenting the entire test process. At this point, it is crucial to archive the test environment, test data used during the testing, and other relevant elements into a collection known as testalia.
Testalia can be valuable for future reference and may be passed on to maintenance teams or to the customer for their potential benefit. Finally, the documentation is updated to reflect the latest findings and outcomes, which are gathered and analyzed to improve processes in future releases or projects.
Summary
Recognizing the rule that detecting defects early leads to more cost-effective solutions, it is crucial to implement the testing process in a project as soon as possible. Identifying issues early saves time and resources, helping to address usability and functionality concerns before they escalate. Underestimating the importance of a well-executed testing process is not advisable for anyone striving to deliver a high-quality product. Instead, investing in qualified test and quality specialists is essential.
To achieve the best results, it is necessary to encourage teamwork and cooperation between the testing team and stakeholders. At Infinity Group, we prioritize software quality and have witnessed the positive outcomes of such collaboration. We are committed to delivering products that meet unique business needs and ensuring flawless implementation. If you would like to learn more about our comprehensive testing services, including Kentico testing, Sitecore testing, and other solutions we offer, contact our representative, and let’s discuss your project.
Sources
- ISTQB® Certified Tester – Basic Level 2018 – Syllabus
- ISTQB® Certified Tester – Advanced Level – Test Analyst version 3.1
- https://www.ibm.com/docs/pl/engineering-lifecycle-management-suite/lifecycle-management/6.0.3?topic=testing-developing-manual-test-scripts
- http://smurf.mimuw.edu.pl/external_slides/