Definition • Модульное тестирование (англ. unit testing) — процесс в программировании, позволяющий проверить на корректность отдельные модули исходного кода программы.
Benefits • Поощрение изменений • Упрощение интеграции • Документирование кода • Отделение интерфейса от реализации • Быстрое регрессионное тестирование
What is more effective? • Unit testing (модульное тестирование) • Тестирование программистами (по завершении написания кода) • Тестирование при помощи команды QA • Code review (with team lead, colleagues) • Automated testing (with Silktest, Selenium, Sailfish, etc.)
Google philosophy • тестирование нужно не для качества • тестирование - это часть инженерной культуры • тестирование - это часть разработки По мотивам статьи «How Google Tests Software»
Code coverage • Покрытие кода — мера, используемая при тестировании программного обеспечения. Она показывает процент, насколько исходный код программы был протестирован. Code coverage tools in Java: • Emma (open source) • Cobertura (open source) • Sonar (commercial)
Test driven development • TDD предполагает использование инструментов автоматического модульного тестирования • В TDD модульные тесты используются для разработки, сначала пишутся тесты – потом код
Conclusion • Unit тесты - один из важнейших инструментов в борьбе за повышение качества продукта • Unit тесты экономят время, а значит и деньги • Unit testing frameworks существуют во всех языках и платформах разработки • Unit тесты можно использовать при разработке через тестирование (TDD)