We do not have to convince developers about the importance of writing tests anymore. We do, however, need to educate them on
how to do it properly.
In this lab, we'll discuss how to properly engineer test code. More specifically, we'll discuss:
- Test code best practices
- Code coverage and how to use it to guide testing
- Proper unit testing and mock objects
- Design for testability
- Property-based testing (a hype in modern languages, such as Closure; finally!) and design-by-contracts
These engineering practices will be accompanied by testing techniques, such as category/partition, boundary analysis, and model-based testing. After all, test code is only as good as its tests. The lab will mix theory and practice, and will be full of source code examples.
Required Skills: Basic knowledge in Software Engineering
Maximal number of participants: 25
Maurício Aniche is an Assistant Professor in Software Engineering at Delft University of Technology, The Netherlands. Maurício's line of work focuses on how to make developers more productive during maintenance and testing. His research has been published in top-tier conferences (ICSE, FSE, ASE) and journals (TSE, EMSE). Maurício always had a foot in industry. Maurício has given training and consultancy on software development and testing to 27 different companies, from 2010 to 2015. Moreover, he published three books focused on practitioners ("OOP and SOLID for ninjas", "Test-Driven Development in the real world", and "A Practical Guide on Software Testing"), which, altogether, have sold 10k copies. All these activities have given him a very particular vision on software engineering should be done in practice.