on request
Price
2 days
Duration
/ Training & Consulting / Training / Unit Testing Deep Dive
UNIT TESTING DEEP DIVE
Description
The subjects of unit testing and test-driven development (TDD) are important in nearly every software project. This training course briefly imparts the required fundamental knowledge to enable participants to dive more deeply into the various issues that are relevant for successful unit testing. Test-driven development will raise the awareness of the difficulties and challenges involved also for didactic reasons. Numerous techniques will be taught and practised, such as explanation tests, learning tests and triangulation, so that they can be applied later also beyond the TDD context.
The participants will learn how to utilize unit tests to achieve a good design in the productive code. They are enabled to specifically deal with seams, enabling and interception points in their software code. This will produce more flexible code which is not only easier to test but also easier to maintain and understand.
In addition to plain transfer of knowledge, the participants will actively practice the training content using sample exercises. They will do this with their preferred programming language and test environment so that they stay as close as possible to their everyday development tasks. During the exercises, the participants are free to apply the lessons learnt also in their own projects and, if possible, discuss their findings gathered from the process.
The training course will be rounded off taking a special glance at the problems of unit testing in a legacy code environment. While TDD is usually preferred to begin without existing code, the large volumes of existing source code are often an additional challenge in everyday work. This source code is often difficult to test, very complex, and modifications made to it involve a high risk of errors. The major difficulty involved is the high degree of coupling, i.e. dependencies with many other parts of the source code, which thwarts the attempts to isolate the code to be tested. To enable participants to handle this, the training course teaches helpful dependency breaking techniques and fundamental methods for such tasks.
Requirements
Participants need their own computer with a working unit testing environment for the exercises. (create tests and productive code, execute tests, view outcomes). Their own project environment and source code will also be used for the exercises and the participants are encouraged to already transfer the contents of the training to their everyday working environment. However, any questions arising can only be addressed and support from the trainers can only be offered if this is permitted under the project-specific agreements (NDA). For this reason, the participants should inform themselves about their project-specific restrictions before the beginning of training.
Objectives
Participants in the training acquire the necessary knowledge about techniques and methods to enable them to develop easy-to-maintain and efficient unit tests. They experience the interrelation between unit tests and good design and become also ready to test existing legacy source code.
Target Group
The training course is primarily intended for software developers but also interested testers who want to learn more about the interrelation between unit tests and code design.
Training Content (Excerpt)
- Advantages and disadvantages of unit tests
- Important terms (coverage, seams, dependency breaking)
- Test-driven development (definition and techniques)
- TDD patterns (explanation test, self shunt, crash test dummy, …)
- Dependency breaking techniques
- Testing legacy code
- Best practices
YOU NEED HELP OR HAVE QUESTIONS ABOUT YOUR BOOKING?
Dr. Frank Raiser
+49 731 1403434-51
schulung@konzept-is.de