USA & Canada: +1 240-200-6131 International Call: +1 240-391-8360
9am-6pm DC time or 1pm-10pm GMT
Test Driven Development and Refactoring Legacy Code Using Java
Course Code: hsts-c35
What is included in this course
This course provides students with hands-on experience learning Test Driven Development (TDD) using JUnit. Students will build unit tests using mocks, fakes, stubs and drivers, and address issues working with databases and other systems. Student will create tests and code that will be more likely to meet and exceed requirements. Code that receives “test coverage” will not break existing systems, because tests are passed before code is checked in.
Students will spend time working with the issues involved in refactoring legacy code, safely cutting into an already deployed system. Students will work on looking for, or creating “seams” to more safely improve code or add features, and work on identifying “code smells” that need attention in a productive system.
Finally, students will explore dependency issues as well as techniques to better understand and improve complex systems.
Students will also examine TDD and refactoring legacy code in other languages like C# to gain a broader view of options and issues working in a multi-language shop. Comprehensive labs using Java provide facilitated hands-on practice crucial to developing competence and confidence with the new skills being learned.
You will learn:
Agile development and the test-driven development paradigm
Creating tests from use cases and/or Agile methodology
Unit testing using JUnit
Testing code that interacts with databases
Using mocks, fakes, and stubs
Automating tests, builds and check-ins using a continuous integration server
Refactoring existing code to improve clarity, readability and maintainability
Identifying patterns useful in TDD including the SOLID principles
Identifying and eliminating dependencies that make code difficult to maintain and extend
Tracking code coverage and analyzing other code metrics to improve code maintainability
Using the seam model to identify appropriate places in the code to make changes safely
Identifying and correcting various types of code smells
Using effect sketches and pinch points to identify optimal places for tests
Using feature sketches to identify opportunistic refactoring