Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Unit testing and TDD

Unit testing and TDD

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

5206c19df417b8876825b5561344c1a0?s=128

Exactpro
PRO

February 11, 2012
Tweet

Transcript

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

    тестировщиков
  2. Definition • Модульное тестирование (англ. unit testing) — процесс в

    программировании, позволяющий проверить на корректность отдельные модули исходного кода программы.
  3. Benefits • Поощрение изменений • Упрощение интеграции • Документирование кода

    • Отделение интерфейса от реализации • Быстрое регрессионное тестирование
  4. What is more effective? • Unit testing (модульное тестирование) •

    Тестирование программистами (по завершении написания кода) • Тестирование при помощи команды QA • Code review (with team lead, colleagues) • Automated testing (with Silktest, Selenium, Sailfish, etc.)
  5. Google philosophy • тестирование нужно не для качества • тестирование

    - это часть инженерной культуры • тестирование - это часть разработки По мотивам статьи «How Google Tests Software»
  6. Unit testing frameworks Java PHP .Net Javascript Junit http://www.junit.org/ SimpleTest

    http://www.simpletest.org/ Xunit http://xunit.codeplex.com/ JsUnit http://www.jsunit.net/ TestNG http://www.testng.org PHPUnit https://github.com/sebastianbergmann/phpunit/ Nunit http://www.nunit.org/ D.O.H http://dojotoolkit.org
  7. Code coverage • Покрытие кода — мера, используемая при тестировании

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

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

  10. Demo

  11. Conclusion • Unit тесты - один из важнейших инструментов в

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

    ваших проектах