The QA Process: how a QA team tests your software

A well defined QA and testing process should be integral to your development process

Software development is more than creating solutions that run needed functions. For business, a new software product is a way to change the operational status quo or make a leap in processes optimization in order to ensure better business results. It requires writing high-quality code and delivering a reliable solution that operates seamlessly and doesn’t have flaws.

Quality Assurance and software testing are more than finding bugs. The QA and testing team’s mission is to help web developers deliver the best possible product within the estimated timeline, detecting any issues that might block the successful operation of the software or even affect the user experience.

QA Process and Development Steps

Initially, QA helps design and control the software development process in a way that helps prevent serious issues during the project. To make this happen, QA engineers work on the project as an integral part of the software development team, together with other specialists such as product owner, project manager, business analyst, and developers, throughout the complete software development cycle. The number and the order of QA activities may vary from project to project, depending heavily on the scope of the work and the project’s aims.

Development process

  • Analysis of requirements
  • Design
  • Implementation
  • Verification or testing
  • Maintenance

QA process

  • Review of requirements
  • Test planning/writing test cases
  • Unit testing
  • Integration testing
  • System testing
  • Performance testing
  • Security testing
  • Cross-browser testing / cross-platform testing
  • Updating test cases
  • Regression testing
Connecting the Dev and QA processes

Let’s have a deeper look at QA processes and how they are connected with the development steps.

Step one: review requirements and documentation

QA engineers start their work on the project in parallel with documentation generation. They review the requirements and documentation for:

  • completeness
  • redundancies
  • clarity
  • consistency
  • executability
  • verifiability

The aim is to analyze system architecture and technologies for discrepancies.

Key benefits for the development process:

  • Errors cost less when detected at an early stage
  • Improved documentation means a higher quality project for lower labour input and more accurate estimates.

For this step, think about using specialized software for documentation review, like Confluence. You can gather all related documentation that is used throughout the whole project, and maintain an internal knowledge base. Every team member can see any changes as soon as any requirements or documents are changed, added, updated, or deleted.

Step two: plan and prepare test cases

When the requirements have been established, it is time to start planning test cases, i.e. – describe the actions QA engineers perform to make sure the piece of software functions as planned. In case the volume of such cases turns to be really significant, you can also use special tools like TestRail or Zephyr for writing test cases. Both pieces of software allow for the creation and modification of tests and track results using metrics.

Step three: design test cases

When the development stage is finished, the QA team starts running the test cases. The main goal of this stage is to check whether the solution is developed properly from the technical perspective and meets the initial product owner’s requirements.

Below are the main QA activities and their aims:

Smoke testing

QA engineers lightly check that the software, or its module, functions as planned. When passed, the further investigation begins.

Integration testing

Verification that different components work as a single system.

Performance testing

Load testing – check system behavior for normal and expected peak load

Stress testing – determine critical load after which the system breaks down

Security testing

Ensuring the solution has a sufficient level of protection.

Cross-browser testing/cross-platform testing

Checking that an application works smoothly on different browsers (Chrome, Mozilla, Safari) or platforms (Android, iOS, Windows Phone). This is especially important for web and hybrid apps.

Regression testing

Detecting bugs in the code that was tested previously. Usually needed when adding new features or making any updates to an existing system. Again, you can choose to automate testing (e.g., unit testing, regression testing). The general rule: the longer a project lasts, the more important is automated testing.

Step four: report and measure

When a QA engineer discovers a bug, he/she records it in a bug tracking system which is also a project management system. For this purpose, you may use Jira or Redmine, both being highly configurable software. They enable easy tracking of issues of any level, from a broken login form to security problems, and all team members can see real-time task updates. This simplifies communication inside the team and helps keep a clear overview of the improvement process.

Each issue gets a priority level from urgent to low, which the development team then resolves based on time and people available.

Step five: verifying fixes

When a developer fixes an issue he/she informs the responsible QA engineers, who verify it. The ticket in the bug tracking system is closed when no issue is detected. This rule applies: no bug can be marked as fixed until it is verified.

Hints and tips to improve your QA process

All the above-mentioned testing steps apply to a Waterfall development methodology. QA steps like Review of Requirements or Test planning/writing test cases are mostly used in complex, long-term projects and/or sensitive industries like healthcare or logistics, where bugs or errors are likely to justify spending time on preparing thorough documentation.

For projects limited by time and budget, it is better to spend time on stabilizing and polishing a software product in favour of preparing extensive documentation and scrupulous test planning.

When taking an Agile approach to application development (the majority of cases), for the short-term web development projects you can skip the steps of reviewing requirements and test planning as time-to-market is more important than perfect documentation. Consequently, QA engineers can start testing immediately from step three using very simple tools like Google Docs.

Also, some stages of the development and QA processes can be performed simultaneously. For example, Analysis and Review of requirements, Implementation & Test planning, or even Running different types of tests during development. In these parallel stages, the testing activities help measure the success of the corresponding development tasks.

If you are in the process of putting QA processes in place and hiring a team, you might also be interested in our analysis of international QA engineer salary ranges.

Featured blog posts