19
Юнит тестирование Прукс Александр [email protected]

Юнит тестирование, Александр Прукс, 30 Марта 2014

Embed Size (px)

DESCRIPTION

Модульное тестирование, или юнит-тестирование (англ. unit testing) — процесс в программировании, позволяющий проверить на корректность отдельные модули исходного кода программы. Идея состоит в том, чтобы писать тесты для каждой нетривиальной функции или метода. Это позволяет достаточно быстро проверить, не привело ли очередное изменение кода к регрессии, то есть к появлению ошибок в уже оттестированных местах программы, а также облегчает обнаружение и устранение таких ошибок.

Citation preview

Page 1: Юнит тестирование, Александр Прукс, 30 Марта 2014

Юнит тестированиеПрукс Александр

[email protected]

Page 2: Юнит тестирование, Александр Прукс, 30 Марта 2014

Обо мне

• Тимлид в СТ

• 10 лет разработки с применением ЮТ

• .Net/JavaScript

Page 3: Юнит тестирование, Александр Прукс, 30 Марта 2014

Для кого

• Менеджменту: как и зачем внедрять, с кого требовать

• Тестировщикам: как отмазаться

• Разработчикам: для расширения кругозора

Page 4: Юнит тестирование, Александр Прукс, 30 Марта 2014

Структура

• Определения

• Отличие от других методик

• Вопросы/ответы

Page 5: Юнит тестирование, Александр Прукс, 30 Марта 2014

Что это?

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

Page 6: Юнит тестирование, Александр Прукс, 30 Марта 2014

Анатомия ЮТ

•Юнит – минимальная, неделимая часть кода

• Тест – программный код

• начальное состояния

• вызов юнита в изоляции

• проверка

• Тест фреймворк – набор библиотек, облегчающих написание теста.

Page 7: Юнит тестирование, Александр Прукс, 30 Марта 2014

Изолированность?!

• На результат теста не влияют внешние модули

• В тестах: подменяем зависимости на заглушки

Page 8: Юнит тестирование, Александр Прукс, 30 Марта 2014
Page 9: Юнит тестирование, Александр Прукс, 30 Марта 2014

Зачем?

• Быстро

• Предсказуемо

• Легко

Page 10: Юнит тестирование, Александр Прукс, 30 Марта 2014
Page 11: Юнит тестирование, Александр Прукс, 30 Марта 2014

Профит?

• Не боимся менять код

• Меньше алгоритмических ошибок

• Если падает, то точно знаем где

Page 12: Юнит тестирование, Александр Прукс, 30 Марта 2014

Методика

• Пишут/используют ВСЕ разработчики

• Только свой код

• Обязательно CI

• Метрики?

• Скорость

• Покрытие

Page 13: Юнит тестирование, Александр Прукс, 30 Марта 2014
Page 14: Юнит тестирование, Александр Прукс, 30 Марта 2014

Unit vs *

+ Мгновенный фидбек

+ Точность

+/- Близость к коду

- Порог вхождения

Page 15: Юнит тестирование, Александр Прукс, 30 Марта 2014
Page 16: Юнит тестирование, Александр Прукс, 30 Марта 2014

Итог

• Предсказуемая разработка

• Пороги вхождения:

• Квалификация разработчиков

• Менеджмент

• Говнокод

Page 17: Юнит тестирование, Александр Прукс, 30 Марта 2014

Порог №1

Page 18: Юнит тестирование, Александр Прукс, 30 Марта 2014

Check list

• Хотите попробовать?

• А вам разрешат?

• Владеете кодом?

• Проект с нуля?

• Как с DI/SOLID/GoF?

Page 19: Юнит тестирование, Александр Прукс, 30 Марта 2014

Вопросы и ответы

[email protected]