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

Unit testing and TDD

crdoo
September 02, 2018
14

Unit testing and TDD

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

crdoo

September 02, 2018
Tweet

More Decks by crdoo

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  6. 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

    View Slide

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

    View Slide

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

    View Slide

  9. TDD algorithm

    View Slide

  10. Demo

    View Slide

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

    View Slide

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

    View Slide