This is a practical and hands on workshop that focuses on two core Agile practices; refactoring and test driven development (TDD). Agile software development methods require a high degree of skill in keeping code robust as it evolves incrementally through iterations and changes in response to feedback from stakeholders and users.TDD is an Agile practice to support continuous testing of development code using tools such as JUnit and XUnit, which are used to develop "self-testing" code for unit testing, and FitNesse, which is used for acceptance testing. By following the principle of writing the tests first, design and development are driven to cleaner architectures that meet the user expectations and keep code clean and easier to maintain.Refactoring is the practice of keeping the code base clean and robust by changing it without harming it - changing its structure without causing unexpected changes in its functionality. Refactoring works in conjunction with TDD in the Agile methods by allowing test results from the TDD process to drive code changes and, in turn uses TDD to ensure that refactorings are robust.
Students should have experience writing C++ or Java code. Experience with testing concepts is useful but not necessary.
3 Days/Lecture & Lab
This course is designed for experienced OO programmers.