tap|QA is excited to welcome Raj Subrameyer as our consulting Quality Evangelist. Raj is an internationally renowned speaker, writer and tech career coach, with an expertise in many areas of Software Testing. More info about him can be found at – www.rajsubra.com
Gone are the days where testers are involved only in the testing phase of the software development lifecycle (SDLC). With teams becoming more agile, testers have started to get involved early in the SDLC, starting from the requirements phase. During the feature development process, testers perform multiple tasks in parallel – setting up test data, writing test cases, designing test strategies, identifying risks and much more. In addition to this, there are several ways testers can impact the development process and make valuable contributions. These contributions often get forgotten in the plethora of other activities that take place during feature development. Below are five ways testers can help in the development process:
1) Pairing up with Developers
Having more information about the feature helps testers to come up with more test scenarios and better test coverage. One way to get information is to pair up with developers during the development process. This is a great opportunity to understand what exactly is being developed, identify different vulnerabilities that could be introduced through the new code, find out areas that are covered by unit tests and those that need more coverage during the testing phase, and finally, get a chance to learn the programming language used to develop the feature and the activities involved in the overall development process. Pairing can happen irrespective of a tester’s technical skill set.
2) Participating in Code Reviews
Once a feature is developed, code reviews are performed to ensure the developed feature meets requirements and coding standards. These reviews ensure features are built with less complexity and do not break existing functionality. Participating in these meetings can help testers understand various vulnerabilities in the new code and gives an opportunity to get more clarifications on – testability of the feature, test data setup needed and any other factor that could affect testing. Also, testers get more insights into the working of the code from a unit level and how it fits with the overall product functionality.
3) Being a Developer Advocate
The software development process is a whole team approach. The success and failure of a product reflects on the entire team not an individual team member. This being the case, why not help Developers as much as possible and be a team player? There are different ways testers can aid developers in performing their job better by being a developer advocate:
- Be a liaison between the business and developer; get clarity in requirements to prevent unnecessary rework
- Ensure the mock ups used for feature development is clear and understandable
- Offer to do quick tests to help developers exercise different programming logic and find the best solution for feature development
- Help by creating required test data for developers to ensure their implemented features is working as expected in the development environment before they are pushed to the test environments
- Testers can even write unit tests for the developers to help in saving development time and effort
4) Educate developers on testing activities
One of the biggest causes of friction between developers and testers is neither of them have insights into each other’s activities. There are many assumptions and different expectations from each other. One way to reduce this friction is to educate developers on the testing process, automation framework and anything that could speak to how the testing team is providing value to the project. This does not mean that you need to prove the worth of testing but think of this as opening the doors for others to get insights into why features need to be developed in a certain way to help in the testing phase.
5) Be information brokers
In many organizations, testers tend to have more domain knowledge than others on the team. The reason behind this is, either they have been in the organization for a while or their experience doing integration testing helps to view the product through the lens of an end user. This being the case, testers can help developers by answering questions related to the product, addressing how a feature being developed could have dependencies on other parts of the application and affect end user experience. They can serve as information brokers by providing as much information about the product, defects that are posted and any other information that could help in speeding up the development process, while building high quality features with lesser defects.
In this era where DevOps and Continuous Testing is becoming the norm, we need to figure out different ways software testers can get involved in the SDLC and make an impact.