Software QA Process
Setup Plan, Required Team and Cost Factors
Having 33 years of experience in software testing and 20 years of experience in QA consulting, ScienceSoft helps companies establish and maintain an efficient QA process throughout the entire software development lifecycle.
QA Process: the Essence
An effective QA process runs along all stages of software development lifecycle, from requirements gathering to maintenance.
- QA process setup timing: 2-6 weeks.
- Key steps: analysis of software requirements and existing QA process, QA process (re)design, software testing, QA process monitoring and improvement.
- Possible team members: QA consultant, QA manager, testing engineer, test automation engineer.
Are you interested in improving the existing QA process? We invite you to check the QA improvement guide by ScienceSoft’s QA experts.
Analysis of software requirements and existing QA process
A QA consultant analyzes functional and non-functional software requirements to get an understanding of the project’s scope and software specifics to outline a path for establishing the QA process. In case the QA process is already established, a QA consultant analyzes it, evaluates the QA maturity level, points out QA flaws (e.g., tests planning and scheduling problems, management problems), and outlines a path for the QA process improvement or redesign.
Best practice: There exist several models to evaluate a QA maturity level: globally recognized TMMi and TPI maturity models and customized maturity models. ScienceSoft recommends opting for the customized option for software development initiatives that have development and testing in-house. TMMi is most suitable for large software development initiatives, whereas the TPI model will suite any type of initiative.
QA process (re)design
- Reviewing functional and non-functional software requirements to improve their consistency and completeness for the development process and future testing activities. Creating requirements traceability matrix.
- Analyzing potential risks (e.g. tight timelines, changing requirements, etc.) and creating a risk mitigation plan.
- Planning regular and systematic design reviews to spot logical errors and start creating a test plan earlier.
- Taking a shift-left approach to testing and moving testing activities closer to the beginning of the software development process.
Best practice: As a part of a shift-left approach, ScienceSoft recommends conducting regular code reviews and unit testing, as well as establishing close collaboration between testers and the development team to immediately validate and improve the system.
- Outlining the test strategy and test plan that include:
- Testing scope (software components and functions to be tested) at both integration and system levels.
- Manual and automated testing ratio.
Best practice: Accurately defined degree of automation will reduce the overall testing time and improve the quality of tested software. To achieve that, ScienceSoft recommends automating frequently executed test cases that do not change much with each iteration.
- Optimal testing team structure, the need for additional team training.
- Testing schedule.
- General test entry and test exit criteria (conditions required to be achieved before and after testing).
- Suitable testing environment.
- Test metrics (e.g., test coverage, total number of executed test cases per period, reopened and rejected defects rate, defects leakage, etc.) and the procedures for collecting and tracking test metrics. Test metrics are always predefined according to your project’s specifics.
- Designing test scenarios and test cases.
- Setting up test environment and preparing test data.
Best practice: ScienceSoft recommends implementing cloud-based testing for mobile (e.g., with App Center) and web application testing (e.g. with Selenium Grid). Cloud-based testing environments allow for a wider choice of device and browser combinations, require less investment and are more economically feasible compared to on-premises testing devices.
- (optional) Writing test scripts for automated testing.
- Executing manual and automated tests.
- Incorporating automated tests into CI/CD pipeline to speed up the testing process.
- Reporting on the detected issues in the preferred defect tracking system and reporting results of the executed tests on the agreed schedule.
- Conducting regression testing to validate that no related functionality has been broken within the new development iteration.
Best practice: To make regressing testing less time-consuming in projects by Agile methodologies, ScienceSoft recommends combining partial and full regression testing, prioritizing tests according to risks and increasing the share of automated testing.
QA process monitoring and improvement
Establishing a QA process from scratch or redesigning the existing one can be an effort- and time-consuming task. In quality assurance since 1989, ScienceSoft knows all QA intricacies and is ready to help you set up an effective QA process.
Entrusting the QA process to ScienceSoft, you get:
- A pragmatic QA strategy.
- (Re)designed QA process.
- End-to-end software testing process (from a test plan and scenarios design to reporting on testing results).
- Continuous monitoring of QA process efficiency and implementation of improvements.
Having doubts where to start with your QA process?ScienceSoft’s QA consultants are ready to help you design a pragmatic QA and software testing strategy and calculate QA process setup costs. We will also provide you with a detailed action plan, a test plan with the optimal test automation share, and recommend the test team structure.
A real-life project example by ScienceSoft
QA Process Improvement for a Global Provider of Security Audit and Compliance Services
ScienceSoft helped improve the Customer’s QA process and migrate its product from Oracle to IBM database on time by creating and implementing an effective QA strategy, providing risk analysis and delivering training materials on software testing for a new IBM testing team.
- Analyzes software requirements
- Analyzes the existing QA process, assesses its maturity level.
- Works out a plan to solve problems in the QA process.
- Designs a new QA process and its setup plan.
- Analyzes risks bound to changes in the existing QA process or new QA process setup and creates a risk mitigation plan.
- Builds QA activities into all SDLC stages and controls their execution.
- Works out the scope of testing activities.
- Defines the testing plan and manages testing resources.
- Controls test design and test execution.
- Ensures that the planned goals are met and delivered on a daily basis.
QA Test Engineer
- Writes test cases.
- Creates test data and executes tests.
- Reports defects and performs re-testing after the defects are fixed.
QA Automation Test Engineer
- Writes and executes automated test scripts.
- Reports and validates that the defects are fixed.
A QA manager and a QA team are in-house
The whole QA process and project-related documentation are under the customer’s control. However, an in-house QA team may lack experience in establishing a QA process, which entails hiring and training expenses, as well as more time on QA process establishment and implementation.
A QA manager is in-house and a QA team is partially or fully outsourced
Partial or full QA team outsourcing reduces QA implementation expenses. Yet, an in-house QA manager has to be skilled in creating a QA process from scratch or planning and introducing necessary improvements to the existing QA process. In addition, a QA manager should establish an effective communication with an outsourced team to ensure swift and easy cooperation.
A QA manager and a QA team are outsourced
An experienced vendor takes care of the whole QA setup and implementation, which saves QA process setup time and costs. Still, companies should be careful when choosing a QA partner due to security and confidentiality risks.
A reliable vendor should have
A reliable vendor should have:
- ISTQB-certified professionals on board.
- Experience in the customer’s industry (e.g. manufacturing, retail, wholesale, healthcare, financial services, telecommunications, etc.).
- International certifications (e.g., ISO 13498, ISO 27001 or ISO 9001 certificates).
- Works across major web browsers (Chrome, Explorer, Firefox, Opera, Safari).
- Runs across multiple operating systems (Windows, Mac, Linux).
- Selenium Grid enables testing on multiple machines and manage different environments from a central point.
- Requires good programming skills to install and work with.
- Lacks advanced reporting capabilities.
Automated web application testing.
- Used for load and performance testing.
- Can run on multiple platforms (Linux, Windows, iOS).
- User-friendly UI: easy to adopt and operate.
- Ability to test many protocol types: HTTP, HTTPS, POP, IMAP, LDAP, SOAP and FTP.
- Allows concurrent sampling by many threads and simultaneous sampling of different functions by separate thread groups.
Automated performance/load testing.
- Offers plugins for test frameworks like Selenium, Cucumber, Appium, etc.
- Supports on-demand and scheduled tests.
- Summarizes test results and displays them as an HTML page.
- Contains configurations that can be complicated to handle.
Running automated tests along the CI pipeline.
Founded in 1989, ScienceSoft is a global IT consulting, software development, and QA company headquartered in McKinney, TX, with a corporate presence in the Middle East and Europe. Relying on our 33-year experience in software testing and 20-year experience in QA consulting, we help our clients establish effective quality assurance processes and improve the quality of software. Being ISO 27001 and ISO 9001 certified, ScienceSoft guarantees the security of customers’ data and the high quality of the delivered services. If you need to establish an effective QA process, contact us for more detailed information.