Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Unit Testing

1,810 views

Published on

Published in: Technology
  • Be the first to comment

Unit Testing

  1. 1. Unit Testing Модульное тестирование — приведите свой код в порядок
  2. 2. Unit testing — (рус. модульное тестирование) создание специальной логики, которая демонстрирует правильную работу отдельных индивидуальных частей программного компонента
  3. 3. Тестовый вариант — предположение о работе некоторого участка программы, включающее в себя описание, условия запуска, набор исходных данных и ожидаемый результат.
  4. 4. Юнит-тесты на фоне общего тестирования программного продукта Системный анализ СА Анализ требований АТ Проектирование П Кодирование К Тестирование элементов ТЭ Тестирование интеграции ТИ Тестирование правильности ТП Системное тестирование СТ С. А. Орлов, «Технологии конструирования ПО», опорный конспект лекций, часть 2 (2006 г.), стр. 22
  5. 5. Применение юнит-тестов • Независимые маршруты • Операторы отношений • Прогон циклов • Граничные значения • Обработка ошибок • Валидация ввода
  6. 6. Миф: на написание тестов уходит слишком много времени
  7. 7. Миф: на написание тестов уходит слишком много времени • Скорость набора кода не является ограничивающим фактором производительности программиста
  8. 8. Миф: на написание тестов уходит слишком много времени • Скорость набора кода не является ограничивающим фактором производительности программиста • Поиск неизвестных ошибок может занять гораздо больше времени
  9. 9. Миф: на написание тестов уходит слишком много времени • Скорость набора кода не является ограничивающим фактором производительности программиста • Поиск неизвестных ошибок может занять гораздо больше времени • Проверенные модули облегчают процесс интеграции
  10. 10. Миф: тесты отвлекают от размышлений над логикой
  11. 11. Миф: тесты отвлекают от размышлений над логикой • Тесты способствуют частому рефакторингу и хорошему дизайну
  12. 12. Миф: тесты отвлекают от размышлений над логикой • Тесты способствуют частому рефакторингу и хорошему дизайну • Тесты документируют приложение
  13. 13. Миф: тесты отвлекают от размышлений над логикой • Тесты способствуют частому рефакторингу и хорошему дизайну • Тесты документируют приложение • Пропадает необходимость постоянно держать в голове описанное тестами поведение кода
  14. 14. Миф: всё и так работает
  15. 15. Миф: всё и так работает
  16. 16. Миф: тестировать слишком сложно
  17. 17. Миф: тестировать слишком сложно • Проще, чем писать реализацию
  18. 18. Миф: тестировать слишком сложно • Проще, чем писать реализацию • Проще писать реализацию, если есть тесты
  19. 19. Миф: тестировать слишком сложно • Проще, чем писать реализацию • Проще писать реализацию, если есть тесты • Появляется уверенность в надёжности нового кода и исправности старого
  20. 20. red/green/refactor
  21. 21. Создание тестов !"# $%&'( Тестирование )*+,-+ Кодирование )*+,-+ Тестирование Типичный !"# $%&'( цикл TDD Рефакторинг
  22. 22. Out of scope • пользовательские интерфейсы • работа с базами данных • потоки с долгим временем выполнения
  23. 23. Фреймворки для юнит-тестов на ваших языках PHP PHPUnit C# NUnit Java JUnit Ruby Test::Unit C++ Google Test

×