Jeffrey Fredrick


Improving Quality Assurance through Developer Testing

  The recent rise of Agile software development and the increased focus on shortening cycle times has put a spotlight on automated testing practices of all kinds. For traditional development teams the new emphasis on automated testing by developers has lead to a certain amount of confusion among both developers and QA professionals. Developers may wonder why they are now being asked to test when there is a separate testing department, and some software testers fear the developers writing tests may leave them disenfranchised. These concerns reflect a lack of understanding of the difference in purpose between the testing done by developers and the testing done by a quality assurance organization. Rather than posing a threat to external testing groups, developer testing offers them a tremendous opportunity to improve their effectiveness and efficiency, while at same time shedding the stigma of being the release bottleneck.

This presentation covers the differing goals of developer tests and those created by a QA team, the benefits of developer testing during the feature development phase, the role of developer testing in reducing system test cycle-time, how to use continuous integration to maximize the impact of developer testing, and a practical example of linking developer and qa testing harnesses for improved effectiveness. Data supporting these points will come from published studies, Agitar customer case studies, and the firsthand experience of the Agitar development organization.

This topic is appropriate for both programming and testing professionals in software development organizations who are struggling to achieve shorter cycle times, who have difficulty in clean phase containment between feature development and system testing, or who find the QA end-game to be a bottleneck for their releases. The intent of the talk is to arm them with the information to persuade their organizations to adopt developer testing as well as some best practices that maximize the value of the technique.

Examples of benefits from case studies include:

  • 80% reductions in bugs reported during system test
  • 50% reduction in system test cycle time
  • Increased responsiveness (adding features late without slipping the schedule)
  • Increased quality in production (first quarter with zero system downtime)

Speaker's Background

Jeffrey Fredrick is a 14-year veteran of the software industry with a mission to change the way oftware is created. From his varied career Jeffrey brings the perspective of having performed virtually every role in the software development lifecycle including product conception, coding, testing, documentation, technical support and management of all of these functions. A founding member of the JBuilder development team, he has been involved in Java tool development since before its 1.0 release. Jeffrey is an experienced speaker and trainer on development techniques and process, having spoken at Gartner Application Development Summits, JavaPolis, Software Development Best Practices, EclipseCon, Better Software, and the Continuous Integration and Testing Conference. He is currently indulging his passion for development tools as Chief Architect, Solutions at Agitar Software, and as the top committer for CruiseControl. Jeffrey's blog is available at