Robert Sabourin, Mónica Wodzislawski – AmiBug.Com, Inc. and McGill University
Rob and Monica share over three quarters of a century of experience teaching programmers about software testing. There is a lot of interest in teaching programming skills to testers, but Rob and Monica suggest that it is even more important to teach testing skills to programmers. Corporate initiatives to “shift left” and agile development “test driven” approaches are only effective if a skilled programmer is also a skilled tester. Preventative testing is prevalent in many fields of endeavour such as science and medicine. Preventative testing is a natural fit in software engineering.
A lot of agile training emphasizes soft skills to support collaboration between team members with diverse skills. Rob and Monica praise such training, but emphasize the need for pragmatic hard skill development. Programming skills, test design skills, troubleshooting and debugging must be taught. Great testing does not naturally follow from team building exercises.
As test service professionals, Rob and Monica have observed two phenomenons. First, teams deliver poor quality applications preventing test effort from finding important, critical and severe bugs. Secondly, teams lack knowledge of a wide range of testing activities and possibilities which could have been accomplished during development.
Programmers are encouraged to have shared commitment towards quality. Training programmers involves building testing technical skills and testing cultural awareness. Programmers must learn to permeate testing into their development insights, process, methods, techniques and tools.
Different instructional techniques and approaches will be explored. Impactful methods, that stick, will contrast ineffective methods which are quickly discarded. Rob and Monica compare and contrast training approaches used in many different corporate and academic programs. Custom training based on skill assessment and task analysis will be compared with generic courses. The lessons learned may be interesting to organizations and development professionals to help identify methods to apply testing skills very early in development activities.