Most people agree that locating and fixing defects early in the System Development Life Cycle (SDLC) will result in higher quality software and lower costs. Moving more testing into an automated process means problems can be corrected earlier. But the need for balance between developers and testers is crucial. Both Software Developers and Software Testers have a fundamentally different mindset, but ultimately one goal – to deliver top quality products and services that meet or exceed the customers’ needs.
A developer’s job is to build. A tester’s job is to tear down. Opposite ends of the spectrum, yet interdependent. The challenge for developers testing their own work, rather than handing it off to a tester, is the possibility they might overlook errors, forget to make changes, or generally feel too optimistic. Because a tester’s job is to look for snags, the work will be scrutinized objectively.
A mature testing strategy requires an interaction between stakeholders, developer and tester, with managers playing an active role to guide and mediate. And it goes without saying that every project is different. If you calculate the risk of a project on the basis of the impact of failure to the business, you can construct a feasible strategy. Some companies spend more on testing than development if there is a high safety or business risk, while other projects may only require half as much testing as development.
By looking at your processes from a perspective of testing maturity, you will be better able to adopt new tools. Think about the current state of your processes and consider these ideas for improving the speed and quality of new releases.
- Devise a process to easily communicate what needs fixing.
- Manage how code is deployed to ensure repeatable results.
- Construct a testing strategy before committing your testing resources which may only find a portion of potential bugs.
- Put an infrastructure in place for managing information about incidents and configurations.
- Establish techniques to generate test data so that you can confirm that various testing scenarios work correctly.
From a Team Approach, helping developers and testers work more collaboratively together builds success and boosts production. Here are a few suggestions to help build this important symbiotic relationship:
Learn about customers together. Bring clarity to the situation by taking the entire team to see your product, app, or web, first hand, being used by your customer.
Build stories that focus on value. By shifting focus to the user, the team will better the value of what we are building. Encourage developers and testers to write acceptance criteria together.
Redefine “Done”. Your definition of the finish line might need some attention. Only by revisiting your team’s definition of ‘done’ will you ever be able to create more stringent criteria to generate higher quality.
Create unit tests together. What would happen if a tester and a developer were to write a suite of unit tests – together? The quality perspective from the tester and the extra set of eyes could yield a positive outcome.
Ultimately, the goal of the software developer and the software tester are the same, although the roles differ. But with a united focus on reaching the customers’ needs and working in a spirit of collaboration, the end result is achieving greater efficiencies with happier, empowered teams.