The Roles Of Developers And Test Analysts
During development of a software component, the developers should implement, as automated tests, all the tests that the team has agreed to be Unit Tests. Depending on the team, the developers ideally also would implement the Integration Tests as automated tests. However, team composition and other delivery practicalities can dictate otherwise, and perhaps there might be other test automation engineers available to implement the automated Integration Tests.
Regardless of whether the developers implement both the Unit and Integration Tests as automated tests, test analysts still play a vital role in team. Below is a list of some of the important activities that test analysts perform.
- Behaviour Specification writing – during the Behaviour Specification writing sessions, the test analysts provide their unique, test-focused perspective, which helps the team to ensure that all the positive and negative behaviours have been identified;
- Test analysis — determining the types and structure of the test data that will be required and helping the developers understand that for mocking data in Unit Tests, or for dynamically setting up and tearing down test data as part of automated Integration Tests;
- Reviewing test output — as each developer finishes implementing an automated test, a test analyst should sit down with the developer and peer review the test output. During this review, the test analyst is ensuring that they understand the output and can agree that the test has been performed just as if they would have performed it. Thus the test analyst can, with their hand on their heart, record in the Test Management tool that the Behaviour Specification is complete;
- Verifying that the automated tests are actually doing what they are supposed to do in a specific environment, by picking a couple of automated Integration Tests on an adhoc basis, performing them manually and comparing the output of the automated test with the results of the manual execution. This type of adhoc manual testing can, for instance, highlight issues where some of the configuration of the automated tests might be incorrectly pointing to a wrong environment;
- Setting up test data for manual Integration Tests or manual End-to-End Tests;
- Performing manual Integration Tests — depending on the situation, there could be quite a few Behaviour Specifications that the team has tagged to be tested manually;
- Performing manual End-to-End Tests;
- Performing higher-value, adhoc, exploratory testing;
- Performing test management activities;
- Gently assisting developers to remain focused and on-track; and
- Performing analysis in preparation for the next sprint.
As you can see, there is plenty of work for everyone in the team!