Software QA Process
Setup Plan, Required Team and Cost Factors
Having 35 years of experience in software testing and 22 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. |
|
|
Benefits of a Well-Organized QA Process
Establishing a QA process takes time and effort, but what you get – software quality – is worth the investments. Have a look at some of the key benefits of an effective QA process:
Fewer software defects
QA activities such as software requirements analysis, regular code reviews and unit testing help prevent bugs from arising in the first place or detect all severe software defects at the earliest stages of the development process.
Faster on the market
Accurate implementation of shift-left practices and pragmatic test automation helps optimize testing duration, make the whole development process more time-effective and deliver software on the market within deadlines.
Better customer experience
A properly developed and rigorously tested software with neither critical nor minor defects drives the best user experience and leaves your end users satisfied.
QA Process Setup Plan
Below, we describe typical steps to implementing a stable and effective QA process. Yet, when it comes to your project, we align the QA process activities with your specific needs.
1.
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.
There exist several models to evaluate a QA maturity level: globally recognized TMMi and TPI models and customized ones. A customized option is good for software development initiatives that have development and testing in-house. TMMi is suitable for large initiatives, while the TPI model will suit any initiative.
2.
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.
- 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.
- 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.
It’s important to accurately define the degree of automation. Frequently executed test cases that do not change much with each iteration are good candidates for this.
3.
Software testing
As a part of an effective QA process, ScienceSoft implements software testing. QA testing process includes:
- Designing test scenarios and test cases.
- Setting up test environment and preparing test data.
- (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.
- Conducting release testing.
Tip #1. I recommend 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.
Tip #2. To make regressing testing less time-consuming in our projects by Agile methodologies, we choose to combine partial and full regression testing, prioritizing tests according to risks and increasing the share of automated testing.
4.
QA process monitoring and improvement
- Monitoring flow of quality assurance process activities at all SDLC stages.
- Collecting and analyzing KPIs (test coverage, requirements coverage, etc.).
- Continuously improving the QA process (e.g. adjusting the test automation share, conducting root cause analysis, etc.)
Setup an Efficient QA Process with ScienceSoft
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.
Typical Roles on a QA Team
The size and composition of the QA team depends on the project’s size and complexity. The following roles are generally present within ScienceSoft’s QA team:
QA Consultant
- 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.
QA Manager
- 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.
Sourcing Models for QA Process Setup
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.
ScienceSoft Recommends: Software for QA Process Automation
As a part of QA activities, ScienceSoft uses the following tools for test automation:
Selenium
Description
- 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.
Best for
Automated web application testing.
Pricing
Open-source.
Apache JMeter
Description
- 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.
Best for
Automated performance/load testing.
Pricing
Open-source.
Jenkins
Description
- 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.
Best for
Running automated tests along the CI pipeline.
Pricing
Open-source.
Cost Factors of QA Process Setup
|
|
|
|
|
|
About ScienceSoft
Founded in 1989, ScienceSoft is a global IT consulting, software development, and QA company headquartered in McKinney, TX, with a corporate presence in the Gulf Cooperation Council and Europe. Relying on our 35-year experience in software testing and 22-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.