How can testing be performed?
Formal Methods to reason about correctness
Statistical analysis or simulation to investigate complex systems.
Random interaction with the system.
Manual Testing?
Perform some task and check output
Automated Testing
Automated tests are programmed to reduce effort.
Define Refactoring
Change code that improves its structure but does not affect its behaviour.
Give examples of bad coding practices.
JUnit features
What does TDD provide?