Slide 1

Slide 1 text

Unit testing and TDD Заводчиков Дмитрий 2-я встреча Костромского клуба тестировщиков

Slide 2

Slide 2 text

Definition • Модульное тестирование (англ. unit testing) — процесс в программировании, позволяющий проверить на корректность отдельные модули исходного кода программы.

Slide 3

Slide 3 text

Benefits • Поощрение изменений • Упрощение интеграции • Документирование кода • Отделение интерфейса от реализации • Быстрое регрессионное тестирование

Slide 4

Slide 4 text

What is more effective? • Unit testing (модульное тестирование) • Тестирование программистами (по завершении написания кода) • Тестирование при помощи команды QA • Code review (with team lead, colleagues) • Automated testing (with Silktest, Selenium, Sailfish, etc.)

Slide 5

Slide 5 text

Google philosophy • тестирование нужно не для качества • тестирование - это часть инженерной культуры • тестирование - это часть разработки По мотивам статьи «How Google Tests Software»

Slide 6

Slide 6 text

Unit testing frameworks Java PHP .Net Javascript Junit http://www.junit.or g/ SimpleTest http://www.simple test.org/ Xunit http://xunit.codepl ex.com/ JsUnit http://www.jsunit. net/ TestNG http://www.testng. org PHPUnit https://github.com /sebastianbergma nn/phpunit/ Nunit http://www.nunit.o rg/ D.O.H http://dojotoolkit.o rg

Slide 7

Slide 7 text

Code coverage • Покрытие кода — мера, используемая при тестировании программного обеспечения. Она показывает процент, насколько исходный код программы был протестирован. Code coverage tools in Java: • Emma (open source) • Cobertura (open source) • Sonar (commercial)

Slide 8

Slide 8 text

Test driven development • TDD предполагает использование инструментов автоматического модульного тестирования • В TDD модульные тесты используются для разработки, сначала пишутся тесты – потом код

Slide 9

Slide 9 text

TDD algorithm

Slide 10

Slide 10 text

Demo

Slide 11

Slide 11 text

Conclusion • Unit тесты - один из важнейших инструментов в борьбе за повышение качества продукта • Unit тесты экономят время, а значит и деньги • Unit testing frameworks существуют во всех языках и платформах разработки • Unit тесты можно использовать при разработке через тестирование (TDD)

Slide 12

Slide 12 text

Post scriptum • Изучайте Java • Используйте Unit testing в ваших проектах