Most companies today accept that quality needs to be inherent throughout the entire application development process. However, recognising the importance of providing code that has been tested for a basic level of functionality and quality requires a cultural shift, for developers, testers and business managers. Developers and testers have traditionally had little in common, sitting on two very different sides of the fence. As such, one approach to encouraging this cultural shift is to get the two to work more closely together by placing testers in the development team to help them run continuous testing cycles throughout the development process. By taking this approach developers will benefit from the wealth of knowledge and experience testers have; likewise testers will understand the many challenges faced by software developers.
As with any cultural change though, much of the impetus must come from the top, otherwise software quality will continue to be a problem for the next 50 years. Developers and testers need to see that quality, not just cost, is a big priority for the company. Business managers can demonstrate this by introducing rewards for the quality of code, not just delivering code on time. In addition, managers cannot expect developers and testers to automatically embrace the change, and understand the role of the other. Few testers or developers have any great knowledge of the way the other works, and most developers will have attended courses that barely touched on the subject of testing. As such, managers must recognise the need for education – giving developers and testers an insight into the role and working practices of the other. Finally, managers must make sure staff are provided with the relevant tools to objectively assess the quality of an application.
Another important change needed to encourage developers to prioritise quality is the introduction of quality gates, or some kind of service level agreement (SLA). A quality gate is a process through which a deliverable must pass before it is accepted by developers as ready for systems testing. Developers need to assess the code they are delivering against quality targets to see if it can pass through the quality gate. If it does not meet the quality targets then the developer needs to take it back for further work, otherwise it can be passed on for systems testing. By implementing this kind of system, businesses are putting in place a formalised process for ensuring the quality of applications, and giving developers the message that they must deliver code written and tested to a basic, pre-agreed standard.
Essentially we are talking about a continuous approach to quality; rather than quality being an afterthought it needs to be a forethought. Quality needs to be written into requirements, and development teams must be given the tools, skills or resources to ensure that testing is integrated into what they do. This isn‘t something that can happen overnight, but with sponsorship and commitment from the top of the organisation, and changes to the way developers are rewarded, businesses should be able to finally get a handle on the software quality problem.
Further articles of the testing experience magazine
Adopt Your Local Professor: The Need for Industry and Academia to Work Together
By Patricia A. McQuaid
Putting the ‘Analysis’ in a Test Analyst
By Mike Smith