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

Contenu connexe

Tendances

Высоцкий Неортодоксальный дизайн тестов
Высоцкий Неортодоксальный дизайн тестовВысоцкий Неортодоксальный дизайн тестов
Высоцкий Неортодоксальный дизайн тестовqasib
 
Пользователи в помощь тестировщику
Пользователи в помощь тестировщикуПользователи в помощь тестировщику
Пользователи в помощь тестировщикуRina Uzhevko
 
Мир тестирования глазами джуниора
Мир тестирования глазами джуниораМир тестирования глазами джуниора
Мир тестирования глазами джуниораRina Uzhevko
 
ковалев нестандатное нт
ковалев    нестандатное нтковалев    нестандатное нт
ковалев нестандатное нтAlexei Lupan
 
Грабли автоматизации. Учимся на чужих ошибках
Грабли автоматизации. Учимся на чужих ошибкахГрабли автоматизации. Учимся на чужих ошибках
Грабли автоматизации. Учимся на чужих ошибкахSQALab
 
Метод No-Tests-Cases: избавьтесь от тест-кейсов в тестировании
Метод No-Tests-Cases: избавьтесь от тест-кейсов в тестированииМетод No-Tests-Cases: избавьтесь от тест-кейсов в тестировании
Метод No-Tests-Cases: избавьтесь от тест-кейсов в тестированииDeutsche Post
 
Severity и Priority для неначинающих: очевидное и невероятное
Severity и Priority для неначинающих: очевидное и невероятноеSeverity и Priority для неначинающих: очевидное и невероятное
Severity и Priority для неначинающих: очевидное и невероятноеDeutsche Post
 
лившиц владимир - независимое тестирование миф
лившиц владимир - независимое тестирование мифлившиц владимир - независимое тестирование миф
лившиц владимир - независимое тестирование мифMagneta AI
 
Есть фича. Помогите протестировать
Есть фича. Помогите протестировать Есть фича. Помогите протестировать
Есть фича. Помогите протестировать Rina Uzhevko
 
Автоматизированное тестирование не-тестировщиками
Автоматизированное тестирование не-тестировщикамиАвтоматизированное тестирование не-тестировщиками
Автоматизированное тестирование не-тестировщикамиSQALab
 
Ярослав Пернеровский (QA Factory/GlobalLogic):"Рукописи не горят, но и не тон...
Ярослав Пернеровский (QA Factory/GlobalLogic):"Рукописи не горят, но и не тон...Ярослав Пернеровский (QA Factory/GlobalLogic):"Рукописи не горят, но и не тон...
Ярослав Пернеровский (QA Factory/GlobalLogic):"Рукописи не горят, но и не тон...GTestClub
 
Evelina Tananaeva
 Evelina Tananaeva Evelina Tananaeva
Evelina TananaevaAlexei Lupan
 
андрей дмитриев взгляд со стороны разработчика
андрей дмитриев взгляд со стороны разработчикаандрей дмитриев взгляд со стороны разработчика
андрей дмитриев взгляд со стороны разработчикаAlexei Lupan
 
Шагнуть на встречу тестированию требований. Советы тестировщика
Шагнуть на встречу тестированию требований. Советы тестировщикаШагнуть на встречу тестированию требований. Советы тестировщика
Шагнуть на встречу тестированию требований. Советы тестировщикаSQALab
 
Юнит тестирование
Юнит тестированиеЮнит тестирование
Юнит тестированиеTatiana Borolyuk
 
Обучение тестированию
Обучение тестированиюОбучение тестированию
Обучение тестированиюAPostovalova
 
Обучение тестированию
Обучение тестированиюОбучение тестированию
Обучение тестированиюAPostovalova
 
Держим дизайн системы под контролем, используя изолированное юнит-тестировани...
Держим дизайн системы под контролем, используя изолированное юнит-тестировани...Держим дизайн системы под контролем, используя изолированное юнит-тестировани...
Держим дизайн системы под контролем, используя изолированное юнит-тестировани...Ontico
 

Tendances (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
 
План тестирования
План тестированияПлан тестирования
План тестирования
 
андрей дмитриев взгляд со стороны разработчика
андрей дмитриев взгляд со стороны разработчикаандрей дмитриев взгляд со стороны разработчика
андрей дмитриев взгляд со стороны разработчика
 
Шагнуть на встречу тестированию требований. Советы тестировщика
Шагнуть на встречу тестированию требований. Советы тестировщикаШагнуть на встречу тестированию требований. Советы тестировщика
Шагнуть на встречу тестированию требований. Советы тестировщика
 
Юнит тестирование
Юнит тестированиеЮнит тестирование
Юнит тестирование
 
Обучение тестированию
Обучение тестированиюОбучение тестированию
Обучение тестированию
 
Обучение тестированию
Обучение тестированиюОбучение тестированию
Обучение тестированию
 
Держим дизайн системы под контролем, используя изолированное юнит-тестировани...
Держим дизайн системы под контролем, используя изолированное юнит-тестировани...Держим дизайн системы под контролем, используя изолированное юнит-тестировани...
Держим дизайн системы под контролем, используя изолированное юнит-тестировани...
 

En vedette

Серверная архитектура высоконагруженных веб-приложений
Серверная архитектура высоконагруженных веб-приложений	Серверная архитектура высоконагруженных веб-приложений
Серверная архитектура высоконагруженных веб-приложений ForkConf
 
Аналитик, ты кто такой? Давай, добро пожаловать!
Аналитик, ты кто такой? Давай, добро пожаловать!Аналитик, ты кто такой? Давай, добро пожаловать!
Аналитик, ты кто такой? Давай, добро пожаловать!ForkConf
 
Разработка мобильных приложений на BitrixMobile 2.0
Разработка мобильных приложений на BitrixMobile 2.0Разработка мобильных приложений на BitrixMobile 2.0
Разработка мобильных приложений на BitrixMobile 2.0ForkConf
 
Александр Белов. Основы управления распределенными программными проектами на ...
Александр Белов. Основы управления распределенными программными проектами на ...Александр Белов. Основы управления распределенными программными проектами на ...
Александр Белов. Основы управления распределенными программными проектами на ...ForkConf
 
Кэширование в Веб разработке на серверном и клиентском уровнях
Кэширование в Веб разработке на серверном и клиентском уровняхКэширование в Веб разработке на серверном и клиентском уровнях
Кэширование в Веб разработке на серверном и клиентском уровняхForkConf
 
Разработка мобильных приложений на Qt
Разработка мобильных приложений на QtРазработка мобильных приложений на Qt
Разработка мобильных приложений на QtForkConf
 
Мегатекстуры (Александр Тужик)
Мегатекстуры (Александр Тужик)Мегатекстуры (Александр Тужик)
Мегатекстуры (Александр Тужик)ForkConf
 
Calinin Yuri "MMO content"
Calinin Yuri "MMO content"Calinin Yuri "MMO content"
Calinin Yuri "MMO content"ForkConf
 
Игорь Батраков
Игорь Батраков Игорь Батраков
Игорь Батраков ForkConf
 
(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...
(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...
(1 часть) 1С-Битрикс. Как настроить двухуровневую конфигурацию веб-приложения...ForkConf
 
Datamining – что это?
Datamining – что это?Datamining – что это?
Datamining – что это?ForkConf
 
Олег Антонян
Олег АнтонянОлег Антонян
Олег АнтонянForkConf
 
Михаил Кузьмин. Рынок мобильных приложений и игр.
Михаил Кузьмин.  Рынок мобильных приложений и игр.Михаил Кузьмин.  Рынок мобильных приложений и игр.
Михаил Кузьмин. Рынок мобильных приложений и игр.ForkConf
 
Анатолий Федченко "Бояться глупо..."
Анатолий Федченко "Бояться глупо..."Анатолий Федченко "Бояться глупо..."
Анатолий Федченко "Бояться глупо..."ForkConf
 
Олег Антонян. Квантовые компьютеры и квантовая механика
Олег Антонян. Квантовые компьютеры и квантовая механикаОлег Антонян. Квантовые компьютеры и квантовая механика
Олег Антонян. Квантовые компьютеры и квантовая механика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
 

En vedette (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 Михайлов Антон
 
Дизайн и верстка мобильного приложения
Дизайн и верстка мобильного приложенияДизайн и верстка мобильного приложения
Дизайн и верстка мобильного приложения
 

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

Виталий Стрелюк
Виталий СтрелюкВиталий Стрелюк
Виталий СтрелюкSQALab
 
Test driven development in net
Test driven development in netTest driven development in net
Test driven development in netAlex Tumanoff
 
Ошибки начинающих 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 ApplicationsAnton Vidishchev
 
Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Dmitry Buzdin
 
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 codeDmytro Mindra
 
«Я спросил у сервера...», Илья Пастушков
«Я спросил у сервера...», Илья Пастушков«Я спросил у сервера...», Илья Пастушков
«Я спросил у сервера...», Илья ПастушковDevDay
 
Automation Overview
Automation OverviewAutomation Overview
Automation OverviewKiraKeiss
 
Sef Streluk Agile
Sef Streluk AgileSef Streluk Agile
Sef Streluk Agilesef2009
 
Постановка процесса тестирования в Agile
Постановка процесса тестирования в AgileПостановка процесса тестирования в Agile
Постановка процесса тестирования в AgileSQALab
 
Юнит тестирование в Web. Как получать пользу и удовольствие.
Юнит тестирование в Web. Как получать пользу и удовольствие.Юнит тестирование в Web. Как получать пользу и удовольствие.
Юнит тестирование в Web. Как получать пользу и удовольствие.Sergey Ryabenko
 
Roman Marinsky "Ретроспектива вивчення UI автоматизації"
Roman Marinsky "Ретроспектива вивчення UI автоматизації"Roman Marinsky "Ретроспектива вивчення UI автоматизації"
Roman Marinsky "Ретроспектива вивчення UI автоматизації"Dakiry
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в ScrumDenis Petelin
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в ScrumDenis Petelin
 
Лучшие практики на практике
Лучшие практики на практикеЛучшие практики на практике
Лучшие практики на практикеDenis Tuchin
 
Экономически эффективный процесс тестирования
Экономически эффективный процесс тестированияЭкономически эффективный процесс тестирования
Экономически эффективный процесс тестированияCodeFest
 
Советы бывалого тестировщика менеджеру проектов
Советы бывалого тестировщика менеджеру проектовСоветы бывалого тестировщика менеджеру проектов
Советы бывалого тестировщика менеджеру проектовSQALab
 
Виталий Стрелюк, Постановка процесса тестирования в Agile
Виталий Стрелюк, Постановка процесса тестирования в AgileВиталий Стрелюк, Постановка процесса тестирования в Agile
Виталий Стрелюк, Постановка процесса тестирования в AgileSQADays_2009_Piter
 

Similaire à Юнит тестирование, Александр Прукс, 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