As experts in QA, we often receive questions from founders, developers, team leads, and testers about QA. To address these burning questions, we've conjured up a brand new series – the QA FAQ! In our first episode, we will talk about ..
..When is the right time to include QA in a project?
If we lived in a perfect world, we would confidently claim – Include QA from the very beginning! Setting up clear documentation and establishing QA processes from the start will help you mitigate risks, avoid bugs, and fasten time to market. But we don’t live in a perfect world, and QA may not be on the list of priorities in the early stages, we get that.
So, at what stages of the software development lifecycle can you involve QA?
QA can be integrated into each stage of the Software Development Lifecycle, performing a variety of functions. Let's explore them all.
Requirements Analysis
At this stage, QA can be engaged in the processes of verification and validation of the project documentation.
Benefits of QA at this stage:
- Risk analysis and forecasting, prevention, and elimination of errors;
- Identification of missed product requirements and functionality;
- Working with documentation according to the main aspects of product requirements;
- Preparation of a high-level test plan, including risks and tools used in the project;
- Determination of the types and types of testing to be performed in the project;
- Development of testing methodology and management (identifying test design techniques).
Design and Planning
This stage for QA involves checking the prototypes and mockups to ensure their correctness and compliance with the client’s expectations.
Benefits of QA at this stage:
- Analysis of time costs for testing and the possibility of testing itself, according to the developed product design and architecture;
- Confirmation that the architecture satisfies all non-functional requirements;
- Analysis or development of the project's Data Flow Diagram (DFD) and preparation of documentation for it;
- Review and verification of ER diagrams (Entity relationship), Workflow process diagrams, User cases/User stories;
- Verifying consistency of the specification with the design layout and user interfaces;
- Outlinement of a low-level test plan.
Development
At the development stage, testers act as a link in testing the finished prototype, its modules and establishing efficient communication with the development teams.
Benefits of QA at this stage:
- Performing unit testing and creating a list of test cases describing the steps to be done and the expected results. If a problem is found, this approach helps redesign or re-code only the tested module instead of working with the entire code base;
- The tester designs BDD (Behavior Driven Development) cases for subsequent work with the product prototype (if this type of case is relevant to the project);
- The test environment is also prepared according to the developed product prototype, using known input data.
Testing
During the testing cycle, QA should conduct tests regardless of whether they were run in previous phases.
Benefits of QA at this stage:
- Preparation of necessary test documentation for subsequent testing (analysis of current requirements, test plan, test design techniques, checklist, and test scenarios);
- Conducting the necessary activities for risk analysis and design of metrics to cover functional requirements with tests;
- Detailed evaluation of the product according to the product requirements analysis;
- Conducting comprehensive testing using all types of testing according to client and product requirements;
- Ensuring all defects, bugs, and problems found have been verified, tested, and fixed;
- Including the Automation team in the process in case there is a need for specific tests (regression testing, repetitive functional testing);
- Providing additional testing activities for non-functional requirements (UI/UX testing);
- Participation in UAT testing upon completion of the testing phase and transition of the product to the go-to-market stage (to the end user, customer);
- Preparation of the final testing report, including results and activities performed during the testing phase.
Implementation and PostProduction
Even after the product reaches the release stage, there is still a need for testing during the operation and support phase.
Benefits of QA at this stage:
- Preparing a standard user manual (User cases, User stories);
- Analysis of risks and missing requirements and/or defects in the product. Suggestions to improve the quality of the application in subsequent phases of development.
Let's Sum it Up
It is never too late to include QA in your Software Development Lifecycle since it can be beneficial all along the way in developing your product. If you're seeking a reliable QA services provider to assist you in ensuring the highest possible quality of your software, we can help. Contact us for a tailored testing solution that meets your specific requirements.