SlideShare una empresa de Scribd logo
1 de 19
Юнит тестирование
Прукс Александр
aprooks@live.ru
Обо мне
• Тимлид в СТ
• 10 лет разработки с применением ЮТ
• .Net/JavaScript
Для кого
• Менеджменту: как и зачем внедрять, с кого требовать
• Тестировщикам: как отмазаться
• Разработчикам: для расширения кругозора
Структура
• Определения
• Отличие от других методик
• Вопросы/ответы
Что это?
• процесс в программировании, позволяющий проверить на
корректность отдельные модули (юниты) исходного кода
программы
Анатомия ЮТ
• Юнит – минимальная, неделимая часть кода
• Тест – программный код
• начальное состояния
• вызов юнита в изоляции
• проверка
• Тест фреймворк – набор библиотек, облегчающих написание
теста.
Изолированность?!
• На результат теста не влияют внешние модули
• В тестах: подменяем зависимости на заглушки
Зачем?
• Быстро
• Предсказуемо
• Легко
Профит?
• Не боимся менять код
• Меньше алгоритмических ошибок
• Если падает, то точно знаем где
Методика
• Пишут/используют ВСЕ разработчики
• Только свой код
• Обязательно CI
• Метрики?
• Скорость
• Покрытие
Unit vs *
+ Мгновенный фидбек
+Точность
+/- Близость к коду
- Порог вхождения
Итог
• Предсказуемая разработка
• Пороги вхождения:
• Квалификация разработчиков
• Менеджмент
• Говнокод
Порог №1
Check list
• Хотите попробовать?
• А вам разрешат?
• Владеете кодом?
• Проект с нуля?
• Как с DI/SOLID/GoF?
Вопросы и ответы
• aprooks@live.ru

Más contenido relacionado

La actualidad más candente

Высоцкий Неортодоксальный дизайн тестов
Высоцкий Неортодоксальный дизайн тестовВысоцкий Неортодоксальный дизайн тестов
Высоцкий Неортодоксальный дизайн тестов
qasib
 
ковалев нестандатное нт
ковалев    нестандатное нтковалев    нестандатное нт
ковалев нестандатное нт
Alexei Lupan
 
Evelina Tananaeva
 Evelina Tananaeva Evelina Tananaeva
Evelina Tananaeva
Alexei Lupan
 
андрей дмитриев взгляд со стороны разработчика
андрей дмитриев взгляд со стороны разработчикаандрей дмитриев взгляд со стороны разработчика
андрей дмитриев взгляд со стороны разработчика
Alexei Lupan
 
Обучение тестированию
Обучение тестированиюОбучение тестированию
Обучение тестированию
APostovalova
 
Обучение тестированию
Обучение тестированиюОбучение тестированию
Обучение тестированию
APostovalova
 

La actualidad más candente (19)

Высоцкий Неортодоксальный дизайн тестов
Высоцкий Неортодоксальный дизайн тестовВысоцкий Неортодоксальный дизайн тестов
Высоцкий Неортодоксальный дизайн тестов
 
Пользователи в помощь тестировщику
Пользователи в помощь тестировщикуПользователи в помощь тестировщику
Пользователи в помощь тестировщику
 
Мир тестирования глазами джуниора
Мир тестирования глазами джуниораМир тестирования глазами джуниора
Мир тестирования глазами джуниора
 
ковалев нестандатное нт
ковалев    нестандатное нтковалев    нестандатное нт
ковалев нестандатное нт
 
Грабли автоматизации. Учимся на чужих ошибках
Грабли автоматизации. Учимся на чужих ошибкахГрабли автоматизации. Учимся на чужих ошибках
Грабли автоматизации. Учимся на чужих ошибках
 
Метод No-Tests-Cases: избавьтесь от тест-кейсов в тестировании
Метод No-Tests-Cases: избавьтесь от тест-кейсов в тестированииМетод No-Tests-Cases: избавьтесь от тест-кейсов в тестировании
Метод No-Tests-Cases: избавьтесь от тест-кейсов в тестировании
 
Severity и Priority для неначинающих: очевидное и невероятное
Severity и Priority для неначинающих: очевидное и невероятноеSeverity и Priority для неначинающих: очевидное и невероятное
Severity и Priority для неначинающих: очевидное и невероятное
 
лившиц владимир - независимое тестирование миф
лившиц владимир - независимое тестирование мифлившиц владимир - независимое тестирование миф
лившиц владимир - независимое тестирование миф
 
Есть фича. Помогите протестировать
Есть фича. Помогите протестировать Есть фича. Помогите протестировать
Есть фича. Помогите протестировать
 
Автоматизированное тестирование не-тестировщиками
Автоматизированное тестирование не-тестировщикамиАвтоматизированное тестирование не-тестировщиками
Автоматизированное тестирование не-тестировщиками
 
Ярослав Пернеровский (QA Factory/GlobalLogic):"Рукописи не горят, но и не тон...
Ярослав Пернеровский (QA Factory/GlobalLogic):"Рукописи не горят, но и не тон...Ярослав Пернеровский (QA Factory/GlobalLogic):"Рукописи не горят, но и не тон...
Ярослав Пернеровский (QA Factory/GlobalLogic):"Рукописи не горят, но и не тон...
 
Evelina Tananaeva
 Evelina Tananaeva Evelina Tananaeva
Evelina Tananaeva
 
План тестирования
План тестированияПлан тестирования
План тестирования
 
андрей дмитриев взгляд со стороны разработчика
андрей дмитриев взгляд со стороны разработчикаандрей дмитриев взгляд со стороны разработчика
андрей дмитриев взгляд со стороны разработчика
 
Шагнуть на встречу тестированию требований. Советы тестировщика
Шагнуть на встречу тестированию требований. Советы тестировщикаШагнуть на встречу тестированию требований. Советы тестировщика
Шагнуть на встречу тестированию требований. Советы тестировщика
 
Юнит тестирование
Юнит тестированиеЮнит тестирование
Юнит тестирование
 
Обучение тестированию
Обучение тестированиюОбучение тестированию
Обучение тестированию
 
Обучение тестированию
Обучение тестированиюОбучение тестированию
Обучение тестированию
 
Держим дизайн системы под контролем, используя изолированное юнит-тестировани...
Держим дизайн системы под контролем, используя изолированное юнит-тестировани...Держим дизайн системы под контролем, используя изолированное юнит-тестировани...
Держим дизайн системы под контролем, используя изолированное юнит-тестировани...
 

Destacado

Аналитик, ты кто такой? Давай, добро пожаловать!
Аналитик, ты кто такой? Давай, добро пожаловать!Аналитик, ты кто такой? Давай, добро пожаловать!
Аналитик, ты кто такой? Давай, добро пожаловать!
ForkConf
 
Разработка мобильных приложений на BitrixMobile 2.0
Разработка мобильных приложений на BitrixMobile 2.0Разработка мобильных приложений на BitrixMobile 2.0
Разработка мобильных приложений на BitrixMobile 2.0
ForkConf
 
Александр Белов. Основы управления распределенными программными проектами на ...
Александр Белов. Основы управления распределенными программными проектами на ...Александр Белов. Основы управления распределенными программными проектами на ...
Александр Белов. Основы управления распределенными программными проектами на ...
ForkConf
 
Разработка мобильных приложений на Qt
Разработка мобильных приложений на QtРазработка мобильных приложений на Qt
Разработка мобильных приложений на Qt
ForkConf
 
Мегатекстуры (Александр Тужик)
Мегатекстуры (Александр Тужик)Мегатекстуры (Александр Тужик)
Мегатекстуры (Александр Тужик)
ForkConf
 
Calinin Yuri "MMO content"
Calinin Yuri "MMO content"Calinin Yuri "MMO content"
Calinin Yuri "MMO content"
ForkConf
 
Datamining – что это?
Datamining – что это?Datamining – что это?
Datamining – что это?
ForkConf
 
Олег Антонян. Квантовые компьютеры и квантовая механика
Олег Антонян. Квантовые компьютеры и квантовая механикаОлег Антонян. Квантовые компьютеры и квантовая механика
Олег Антонян. Квантовые компьютеры и квантовая механика
ForkConf
 
Алексей Барбашин. Лояльная модификация типовой конфигурации 1С.
Алексей Барбашин. Лояльная модификация типовой конфигурации 1С.Алексей Барбашин. Лояльная модификация типовой конфигурации 1С.
Алексей Барбашин. Лояльная модификация типовой конфигурации 1С.
ForkConf
 
Xamarin. Кроссплатформенная разработка на C#
Xamarin. Кроссплатформенная разработка на C#Xamarin. Кроссплатформенная разработка на C#
Xamarin. Кроссплатформенная разработка на C#
ForkConf
 
how to_make_games Михайлов Антон
how to_make_games Михайлов Антонhow to_make_games Михайлов Антон
how to_make_games Михайлов Антон
ForkConf
 
Дизайн и верстка мобильного приложения
Дизайн и верстка мобильного приложенияДизайн и верстка мобильного приложения
Дизайн и верстка мобильного приложения
ForkConf
 

Destacado (20)

Серверная архитектура высоконагруженных веб-приложений
Серверная архитектура высоконагруженных веб-приложений	Серверная архитектура высоконагруженных веб-приложений
Серверная архитектура высоконагруженных веб-приложений
 
Аналитик, ты кто такой? Давай, добро пожаловать!
Аналитик, ты кто такой? Давай, добро пожаловать!Аналитик, ты кто такой? Давай, добро пожаловать!
Аналитик, ты кто такой? Давай, добро пожаловать!
 
Разработка мобильных приложений на BitrixMobile 2.0
Разработка мобильных приложений на BitrixMobile 2.0Разработка мобильных приложений на BitrixMobile 2.0
Разработка мобильных приложений на BitrixMobile 2.0
 
Александр Белов. Основы управления распределенными программными проектами на ...
Александр Белов. Основы управления распределенными программными проектами на ...Александр Белов. Основы управления распределенными программными проектами на ...
Александр Белов. Основы управления распределенными программными проектами на ...
 
Кэширование в Веб разработке на серверном и клиентском уровнях
Кэширование в Веб разработке на серверном и клиентском уровняхКэширование в Веб разработке на серверном и клиентском уровнях
Кэширование в Веб разработке на серверном и клиентском уровнях
 
Разработка мобильных приложений на Qt
Разработка мобильных приложений на QtРазработка мобильных приложений на Qt
Разработка мобильных приложений на Qt
 
Мегатекстуры (Александр Тужик)
Мегатекстуры (Александр Тужик)Мегатекстуры (Александр Тужик)
Мегатекстуры (Александр Тужик)
 
Calinin Yuri "MMO content"
Calinin Yuri "MMO content"Calinin Yuri "MMO content"
Calinin Yuri "MMO content"
 
Игорь Батраков
Игорь Батраков Игорь Батраков
Игорь Батраков
 
(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...
(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...
(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...
 
Datamining – что это?
Datamining – что это?Datamining – что это?
Datamining – что это?
 
Олег Антонян
Олег АнтонянОлег Антонян
Олег Антонян
 
Михаил Кузьмин. Рынок мобильных приложений и игр.
Михаил Кузьмин.  Рынок мобильных приложений и игр.Михаил Кузьмин.  Рынок мобильных приложений и игр.
Михаил Кузьмин. Рынок мобильных приложений и игр.
 
Анатолий Федченко "Бояться глупо..."
Анатолий Федченко "Бояться глупо..."Анатолий Федченко "Бояться глупо..."
Анатолий Федченко "Бояться глупо..."
 
Олег Антонян. Квантовые компьютеры и квантовая механика
Олег Антонян. Квантовые компьютеры и квантовая механикаОлег Антонян. Квантовые компьютеры и квантовая механика
Олег Антонян. Квантовые компьютеры и квантовая механика
 
Владимир Гордеев
Владимир ГордеевВладимир Гордеев
Владимир Гордеев
 
Алексей Барбашин. Лояльная модификация типовой конфигурации 1С.
Алексей Барбашин. Лояльная модификация типовой конфигурации 1С.Алексей Барбашин. Лояльная модификация типовой конфигурации 1С.
Алексей Барбашин. Лояльная модификация типовой конфигурации 1С.
 
Xamarin. Кроссплатформенная разработка на C#
Xamarin. Кроссплатформенная разработка на C#Xamarin. Кроссплатформенная разработка на C#
Xamarin. Кроссплатформенная разработка на C#
 
how to_make_games Михайлов Антон
how to_make_games Михайлов Антонhow to_make_games Михайлов Антон
how to_make_games Михайлов Антон
 
Дизайн и верстка мобильного приложения
Дизайн и верстка мобильного приложенияДизайн и верстка мобильного приложения
Дизайн и верстка мобильного приложения
 

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

Ошибки начинающих Tdd практиков, плюсы применения
Ошибки начинающих Tdd практиков, плюсы примененияОшибки начинающих Tdd практиков, плюсы применения
Ошибки начинающих Tdd практиков, плюсы применения
zheldak
 
Test Driven Development in .NET Applications
Test Driven Development in .NET ApplicationsTest Driven Development in .NET Applications
Test Driven Development in .NET Applications
Anton Vidishchev
 
Automation Overview
Automation OverviewAutomation Overview
Automation Overview
KiraKeiss
 
Sef Streluk Agile
Sef Streluk AgileSef Streluk Agile
Sef Streluk Agile
sef2009
 
Юнит тестирование в Web. Как получать пользу и удовольствие.
Юнит тестирование в Web. Как получать пользу и удовольствие.Юнит тестирование в Web. Как получать пользу и удовольствие.
Юнит тестирование в Web. Как получать пользу и удовольствие.
Sergey Ryabenko
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в Scrum
Denis Petelin
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в Scrum
Denis Petelin
 

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

Виталий Стрелюк
Виталий СтрелюкВиталий Стрелюк
Виталий Стрелюк
 
Test driven development in net
Test driven development in netTest driven development in net
Test driven development in net
 
Ошибки начинающих Tdd практиков, плюсы применения
Ошибки начинающих Tdd практиков, плюсы примененияОшибки начинающих Tdd практиков, плюсы применения
Ошибки начинающих Tdd практиков, плюсы применения
 
Test Driven Development in .NET Applications
Test Driven Development in .NET ApplicationsTest Driven Development in .NET Applications
Test Driven Development in .NET Applications
 
Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?
 
XP Days Ukraine 2014 - Refactoring legacy code
XP Days Ukraine 2014 - Refactoring legacy codeXP Days Ukraine 2014 - Refactoring legacy code
XP Days Ukraine 2014 - Refactoring legacy code
 
«Я спросил у сервера...», Илья Пастушков
«Я спросил у сервера...», Илья Пастушков«Я спросил у сервера...», Илья Пастушков
«Я спросил у сервера...», Илья Пастушков
 
Automation Overview
Automation OverviewAutomation Overview
Automation Overview
 
Sef Streluk Agile
Sef Streluk AgileSef Streluk Agile
Sef Streluk Agile
 
Постановка процесса тестирования в Agile
Постановка процесса тестирования в AgileПостановка процесса тестирования в Agile
Постановка процесса тестирования в Agile
 
Юнит тестирование в Web. Как получать пользу и удовольствие.
Юнит тестирование в Web. Как получать пользу и удовольствие.Юнит тестирование в Web. Как получать пользу и удовольствие.
Юнит тестирование в Web. Как получать пользу и удовольствие.
 
Roman Marinsky "Ретроспектива вивчення UI автоматизації"
Roman Marinsky "Ретроспектива вивчення UI автоматизації"Roman Marinsky "Ретроспектива вивчення UI автоматизації"
Roman Marinsky "Ретроспектива вивчення UI автоматизації"
 
Solid code via tdd
Solid code via tddSolid code via tdd
Solid code via tdd
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в Scrum
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в Scrum
 
Лучшие практики на практике
Лучшие практики на практикеЛучшие практики на практике
Лучшие практики на практике
 
Экономически эффективный процесс тестирования
Экономически эффективный процесс тестированияЭкономически эффективный процесс тестирования
Экономически эффективный процесс тестирования
 
Советы бывалого тестировщика менеджеру проектов
Советы бывалого тестировщика менеджеру проектовСоветы бывалого тестировщика менеджеру проектов
Советы бывалого тестировщика менеджеру проектов
 
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenches
 
Виталий Стрелюк, Постановка процесса тестирования в Agile
Виталий Стрелюк, Постановка процесса тестирования в AgileВиталий Стрелюк, Постановка процесса тестирования в Agile
Виталий Стрелюк, Постановка процесса тестирования в Agile
 

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