This is a crash course on unit-testing. It was developed with the intent of allowing professional developers who are not yet acquainted with the topic to quickly ramp up and start implementing unit-testing in their day-to-day tasks.
The talk (PDF slides
) discusses the following questions:
- What is a unit test?
- What makes even simple tests so successful in finding bugs?
- Do I really need to write tests?
- Writing test takes time. How come people are saying that tests *save* time?
- What are the fundamental difference between integration, system, functional and unit-test?
- Is Test Driven Design (TDD) just another name for unit-testing?
- What is Behavior Driven Design (BDD)?
- What are the practices related to unit-testing?
- Is there such a thing as "too much testing"?
- What are the characteristics of a good testing suite?
- High level tests vs. low level tests: pros and cons.
- Mock objects, what are they good for?
- How much testing code am I "supposed" to write?
- Why can't we ask QA engineers to write the tests for the developers?