SlideShare a Scribd company logo
1 of 35
Download to read offline
Почему юнит-тесты
не работают.
История большого
проекта
Александр Мартюшев
agile.fellow@gmail.com
Александр Мартюшев
Внедряю и использую Agile с 2008 года
Вырос в компании АСКОН
Расту в компании SEMrush.com
Представитель ScrumTrek в Питере
Renga Architecture
2011
2012
2013
Старт проекта
Мы тут
мартюшев   почему юнит-тесты не работают. история большого проекта
Проблема:
Появляются регрессионные
ошибки
Мы не знаем где и когда
отвалилось
Unit-тесты не помогают
Нет стабильной сборки
Тестируют в изоляции
Почему Unit-тесты не помогли
мартюшев   почему юнит-тесты не работают. история большого проекта
Интеграционные тесты
Укрупняйте System Under Test
Что это?
[0,0,0] [0,100,0]
[1000,0,0] [1000,100,0]
[0,0,300] [0,100,300]
[1000,0,300] [1000,100,300]
Простейший 3D объект
[0,0,0] [0,100,0]
[1000,0,0] [1000,100,0]
[0,0,300] [0,100,300]
[1000,0,300] [1000,100,300]
Нечитаемые данные
[0,0,0] [0,100,0]
[1000,0,0] [1000,100,0]
[0,0,300] [0,100,300]
[1000,0,300] [1000,100,300]
Очень сложно писать
Ещё тяжелее поддерживать
Тестировать через UI
Тестировать через UI
Идея: Snapshot’ы
Специальная кнопка – F2
Модель, 3D сцена, DirectX, состояние UI
Реализовать сравнение snapshot’ов
Зачем нам Test Complete/Squish?
Архитектура
U
I
Model
3D SceneDirectX
Архитектура
U
I
Model
3D SceneDirectX
2 программиста сделали за 1
месяц
Не нужно программировать
чтобы создать тест
Встроено и работает у всех
Легко отлаживать
Запись/воспроизведение
сценариев для других нужд
Требует поддержки
Как же изменился наш процесс
Конец спринта
Запускаем тесты
Тесты красные
Теперь мы точно знаем: что то сломалось
Нет стабильной сборки
Давайте прикрутим к CI
Тесты запускаются после
вливания в master
Отчет приходит всем
разработчикам
Давайте прикрутим к CI
Тесты запускаются после
вливания в master
Отчет приходит всем
разработчикам
Всем пофиг
Нет стабильной сборки
Закрутим гайки (DoD)
Разъяснительная работа с
разработчиками
Запуск на master + на ветках команд
Закрутим гайки (DoD)
Авторы тестовой системы
превратились в поддержку
Не успевали исправлять
Нет стабильной сборки
Разъяснительная работа с
разработчиками
Запуск на master + на ветках команд
Обучить всех
Обучающий семинар для
разработчиков
Авторы не исправляют, а обучают
Начало легчать
Как сейчас
Запуск на всех CI после commit’а
Каждая фича «бетонируется» тестами
сразу после разработки (DoD)
Полный регресс 5000 тестов занимает
один час
Регрессия замкнута на программистах
Все участники проекта просто счастливы
Чему этот кейс нас научил?
Unit тестов недостаточно
Не зацикливайтесь на
unit тестах
В унаследованных
системах начинайте
сверху
Стоимость ошибки
Разработчики, помогайте!
Автотесты ближе к
программированию чем
к тестированию
Только программисты
знают как лучше
Встраивание в процесс
Автотесты - часть процесса
Запуск на CI
Все умеют запускать тесты
Все знают как они устроены
Умеют починить
Работа с ветками
Код и тесты в одном
репо, а не отдельно
Текстовые snapshot’ы –
отличная идея
Автотесты это не бесплатно
Трудоёмкий процесс
В фоновом режиме
неэффективно
Особенно если нет
опыта
Выгодное вложение
При чём тут Agile?
Выявил проблему
Заставил её решать
Renga Architecture

More Related Content

What's hot

Agile Vector - внедрение agile разработки в Райффайзенбанке
Agile Vector - внедрение agile разработки в РайффайзенбанкеAgile Vector - внедрение agile разработки в Райффайзенбанке
Agile Vector - внедрение agile разработки в РайффайзенбанкеAlexey Deryushkin
 
Инструменты гибкого управления: Agile / Kanban / Scrum
Инструменты гибкого управления: Agile / Kanban / ScrumИнструменты гибкого управления: Agile / Kanban / Scrum
Инструменты гибкого управления: Agile / Kanban / ScrumDenis Tuchin
 
Почему Agile больше не работает
Почему Agile больше не работаетПочему Agile больше не работает
Почему Agile больше не работаетCEE-SEC(R)
 
Процесс Mindbox 2015
Процесс Mindbox 2015Процесс Mindbox 2015
Процесс Mindbox 2015Alexander Gornik
 
как убить поставку скрамом
как убить поставку скрамомкак убить поставку скрамом
как убить поставку скрамомAlexey Ilyichev
 
сербул по лезвию бритвы
сербул   по лезвию бритвысербул   по лезвию бритвы
сербул по лезвию бритвыMagneta AI
 
верещак. построение культуры Dev ops. v0.5 copy
верещак. построение  культуры Dev ops. v0.5 copyверещак. построение  культуры Dev ops. v0.5 copy
верещак. построение культуры Dev ops. v0.5 copyMagneta AI
 
бородин об эмпирической разработке
бородин   об эмпирической разработкебородин   об эмпирической разработке
бородин об эмпирической разработкеMagneta AI
 
Как мы меняли процесс maintenance для b2b-клиентов
Как мы меняли процесс maintenance для b2b-клиентовКак мы меняли процесс maintenance для b2b-клиентов
Как мы меняли процесс maintenance для b2b-клиентовCEE-SEC(R)
 
Управление зависимостями между командами
Управление зависимостями между командамиУправление зависимостями между командами
Управление зависимостями между командамиAskhat Urazbaev
 
кузнецов Dual-track agile.pptx
кузнецов   Dual-track agile.pptxкузнецов   Dual-track agile.pptx
кузнецов Dual-track agile.pptxMagneta AI
 
Обзор Agile - эволюция процессов
Обзор Agile - эволюция процессовОбзор Agile - эволюция процессов
Обзор Agile - эволюция процессовNikita Filippov
 
Михаил Лукьянов, Дмитрий Шайхатаров, Agile среди водопадов. Использование SCR...
Михаил Лукьянов, Дмитрий Шайхатаров, Agile среди водопадов. Использование SCR...Михаил Лукьянов, Дмитрий Шайхатаров, Agile среди водопадов. Использование SCR...
Михаил Лукьянов, Дмитрий Шайхатаров, Agile среди водопадов. Использование SCR...ScrumTrek
 
Денис Тучин - Болезни Agile ретроспектив и как их лечить (2016 AgileTour.By)
Денис Тучин - Болезни Agile ретроспектив и как их лечить (2016 AgileTour.By)Денис Тучин - Болезни Agile ретроспектив и как их лечить (2016 AgileTour.By)
Денис Тучин - Болезни Agile ретроспектив и как их лечить (2016 AgileTour.By)Denis Tuchin
 
пылаева дана, шоколад лего-скрам
пылаева дана, шоколад лего-скрампылаева дана, шоколад лего-скрам
пылаева дана, шоколад лего-скрамMagneta AI
 
зимин метрики в стиле Heart - как понять, что продукт хороший и нравится по...
зимин   метрики в стиле Heart - как понять, что продукт хороший и нравится по...зимин   метрики в стиле Heart - как понять, что продукт хороший и нравится по...
зимин метрики в стиле Heart - как понять, что продукт хороший и нравится по...Magneta AI
 
Обязательные практики Agile-проекта и правило ППП
Обязательные практики Agile-проекта и правило ПППОбязательные практики Agile-проекта и правило ППП
Обязательные практики Agile-проекта и правило ПППPavel Gabriel
 
безуглый гибкая стратегия (Agile strategy)
безуглый   гибкая стратегия (Agile strategy)безуглый   гибкая стратегия (Agile strategy)
безуглый гибкая стратегия (Agile strategy)Magneta AI
 
Agile Coach и Scrum Master как руководители нового типа
Agile Coach и Scrum Master как руководители нового типаAgile Coach и Scrum Master как руководители нового типа
Agile Coach и Scrum Master как руководители нового типаAskhat Urazbaev
 

What's hot (20)

Agile Vector - внедрение agile разработки в Райффайзенбанке
Agile Vector - внедрение agile разработки в РайффайзенбанкеAgile Vector - внедрение agile разработки в Райффайзенбанке
Agile Vector - внедрение agile разработки в Райффайзенбанке
 
Инструменты гибкого управления: Agile / Kanban / Scrum
Инструменты гибкого управления: Agile / Kanban / ScrumИнструменты гибкого управления: Agile / Kanban / Scrum
Инструменты гибкого управления: Agile / Kanban / Scrum
 
Почему Agile больше не работает
Почему Agile больше не работаетПочему Agile больше не работает
Почему Agile больше не работает
 
Процесс Mindbox 2015
Процесс Mindbox 2015Процесс Mindbox 2015
Процесс Mindbox 2015
 
как убить поставку скрамом
как убить поставку скрамомкак убить поставку скрамом
как убить поставку скрамом
 
сербул по лезвию бритвы
сербул   по лезвию бритвысербул   по лезвию бритвы
сербул по лезвию бритвы
 
верещак. построение культуры Dev ops. v0.5 copy
верещак. построение  культуры Dev ops. v0.5 copyверещак. построение  культуры Dev ops. v0.5 copy
верещак. построение культуры Dev ops. v0.5 copy
 
бородин об эмпирической разработке
бородин   об эмпирической разработкебородин   об эмпирической разработке
бородин об эмпирической разработке
 
Как мы меняли процесс maintenance для b2b-клиентов
Как мы меняли процесс maintenance для b2b-клиентовКак мы меняли процесс maintenance для b2b-клиентов
Как мы меняли процесс maintenance для b2b-клиентов
 
Управление зависимостями между командами
Управление зависимостями между командамиУправление зависимостями между командами
Управление зависимостями между командами
 
кузнецов Dual-track agile.pptx
кузнецов   Dual-track agile.pptxкузнецов   Dual-track agile.pptx
кузнецов Dual-track agile.pptx
 
Обзор Agile - эволюция процессов
Обзор Agile - эволюция процессовОбзор Agile - эволюция процессов
Обзор Agile - эволюция процессов
 
Михаил Лукьянов, Дмитрий Шайхатаров, Agile среди водопадов. Использование SCR...
Михаил Лукьянов, Дмитрий Шайхатаров, Agile среди водопадов. Использование SCR...Михаил Лукьянов, Дмитрий Шайхатаров, Agile среди водопадов. Использование SCR...
Михаил Лукьянов, Дмитрий Шайхатаров, Agile среди водопадов. Использование SCR...
 
Денис Тучин - Болезни Agile ретроспектив и как их лечить (2016 AgileTour.By)
Денис Тучин - Болезни Agile ретроспектив и как их лечить (2016 AgileTour.By)Денис Тучин - Болезни Agile ретроспектив и как их лечить (2016 AgileTour.By)
Денис Тучин - Болезни Agile ретроспектив и как их лечить (2016 AgileTour.By)
 
пылаева дана, шоколад лего-скрам
пылаева дана, шоколад лего-скрампылаева дана, шоколад лего-скрам
пылаева дана, шоколад лего-скрам
 
Lean And Agile
Lean And AgileLean And Agile
Lean And Agile
 
зимин метрики в стиле Heart - как понять, что продукт хороший и нравится по...
зимин   метрики в стиле Heart - как понять, что продукт хороший и нравится по...зимин   метрики в стиле Heart - как понять, что продукт хороший и нравится по...
зимин метрики в стиле Heart - как понять, что продукт хороший и нравится по...
 
Обязательные практики Agile-проекта и правило ППП
Обязательные практики Agile-проекта и правило ПППОбязательные практики Agile-проекта и правило ППП
Обязательные практики Agile-проекта и правило ППП
 
безуглый гибкая стратегия (Agile strategy)
безуглый   гибкая стратегия (Agile strategy)безуглый   гибкая стратегия (Agile strategy)
безуглый гибкая стратегия (Agile strategy)
 
Agile Coach и Scrum Master как руководители нового типа
Agile Coach и Scrum Master как руководители нового типаAgile Coach и Scrum Master как руководители нового типа
Agile Coach и Scrum Master как руководители нового типа
 

Viewers also liked

мациевский путь самурая. уволить нельзя оставить
мациевский   путь самурая. уволить нельзя оставитьмациевский   путь самурая. уволить нельзя оставить
мациевский путь самурая. уволить нельзя оставитьMagneta AI
 
абраменко как сделать нужный людям продукт
абраменко   как сделать нужный людям продуктабраменко   как сделать нужный людям продукт
абраменко как сделать нужный людям продуктMagneta AI
 
абилов а зачем нам функциональное программирование
абилов   а зачем нам функциональное программированиеабилов   а зачем нам функциональное программирование
абилов а зачем нам функциональное программированиеMagneta AI
 
кривошеев архитектура как функция от . или как недостаток здравого смысла у...
кривошеев   архитектура как функция от . или как недостаток здравого смысла у...кривошеев   архитектура как функция от . или как недостаток здравого смысла у...
кривошеев архитектура как функция от . или как недостаток здравого смысла у...Magneta AI
 
лобасев паттерны Agile-трансформации ит крупных компаний
лобасев   паттерны Agile-трансформации ит крупных компанийлобасев   паттерны Agile-трансформации ит крупных компаний
лобасев паттерны Agile-трансформации ит крупных компанийMagneta AI
 
филиппов интрапренерство и стартап-культура как инструменты для инноваций
филиппов   интрапренерство и стартап-культура как инструменты для инновацийфилиппов   интрапренерство и стартап-культура как инструменты для инноваций
филиппов интрапренерство и стартап-культура как инструменты для инновацийMagneta AI
 
филиппов Material design для проектирования продуктов
филиппов   Material design для проектирования продуктовфилиппов   Material design для проектирования продуктов
филиппов Material design для проектирования продуктовMagneta AI
 
лобасев 3 ключевых навыка успешной agile-команды
лобасев   3 ключевых навыка успешной agile-командылобасев   3 ключевых навыка успешной agile-команды
лобасев 3 ключевых навыка успешной agile-командыMagneta AI
 
виноградова внедрение изменений без длинных документов, долгих согласований...
виноградова   внедрение изменений без длинных документов, долгих согласований...виноградова   внедрение изменений без длинных документов, долгих согласований...
виноградова внедрение изменений без длинных документов, долгих согласований...Magneta AI
 
Ewan developing the agile mindset for organizational agility
Ewan   developing the agile mindset for organizational agilityEwan   developing the agile mindset for organizational agility
Ewan developing the agile mindset for organizational agilityMagneta AI
 

Viewers also liked (10)

мациевский путь самурая. уволить нельзя оставить
мациевский   путь самурая. уволить нельзя оставитьмациевский   путь самурая. уволить нельзя оставить
мациевский путь самурая. уволить нельзя оставить
 
абраменко как сделать нужный людям продукт
абраменко   как сделать нужный людям продуктабраменко   как сделать нужный людям продукт
абраменко как сделать нужный людям продукт
 
абилов а зачем нам функциональное программирование
абилов   а зачем нам функциональное программированиеабилов   а зачем нам функциональное программирование
абилов а зачем нам функциональное программирование
 
кривошеев архитектура как функция от . или как недостаток здравого смысла у...
кривошеев   архитектура как функция от . или как недостаток здравого смысла у...кривошеев   архитектура как функция от . или как недостаток здравого смысла у...
кривошеев архитектура как функция от . или как недостаток здравого смысла у...
 
лобасев паттерны Agile-трансформации ит крупных компаний
лобасев   паттерны Agile-трансформации ит крупных компанийлобасев   паттерны Agile-трансформации ит крупных компаний
лобасев паттерны Agile-трансформации ит крупных компаний
 
филиппов интрапренерство и стартап-культура как инструменты для инноваций
филиппов   интрапренерство и стартап-культура как инструменты для инновацийфилиппов   интрапренерство и стартап-культура как инструменты для инноваций
филиппов интрапренерство и стартап-культура как инструменты для инноваций
 
филиппов Material design для проектирования продуктов
филиппов   Material design для проектирования продуктовфилиппов   Material design для проектирования продуктов
филиппов Material design для проектирования продуктов
 
лобасев 3 ключевых навыка успешной agile-команды
лобасев   3 ключевых навыка успешной agile-командылобасев   3 ключевых навыка успешной agile-команды
лобасев 3 ключевых навыка успешной agile-команды
 
виноградова внедрение изменений без длинных документов, долгих согласований...
виноградова   внедрение изменений без длинных документов, долгих согласований...виноградова   внедрение изменений без длинных документов, долгих согласований...
виноградова внедрение изменений без длинных документов, долгих согласований...
 
Ewan developing the agile mindset for organizational agility
Ewan   developing the agile mindset for organizational agilityEwan   developing the agile mindset for organizational agility
Ewan developing the agile mindset for organizational agility
 

Similar to мартюшев почему юнит-тесты не работают. история большого проекта

SoapUI one key to all doors
SoapUI one key to all doorsSoapUI one key to all doors
SoapUI one key to all doorsYegor Maksymchuk
 
Sef Streluk Agile
Sef Streluk AgileSef Streluk Agile
Sef Streluk Agilesef2009
 
Постановка процесса тестирования в Agile
Постановка процесса тестирования в AgileПостановка процесса тестирования в Agile
Постановка процесса тестирования в AgileSQALab
 
Стратегия тестирования крупного проекта в условиях Agile разработки v2
Стратегия тестирования крупного проекта в условиях Agile разработки v2Стратегия тестирования крупного проекта в условиях Agile разработки v2
Стратегия тестирования крупного проекта в условиях Agile разработки v2Magneta AI
 
Ярослав Пернеровский (QA Factory/GlobalLogic):"Рукописи не горят, но и не тон...
Ярослав Пернеровский (QA Factory/GlobalLogic):"Рукописи не горят, но и не тон...Ярослав Пернеровский (QA Factory/GlobalLogic):"Рукописи не горят, но и не тон...
Ярослав Пернеровский (QA Factory/GlobalLogic):"Рукописи не горят, но и не тон...GTestClub
 
Автоматизированное тестирование не-тестировщиками
Автоматизированное тестирование не-тестировщикамиАвтоматизированное тестирование не-тестировщиками
Автоматизированное тестирование не-тестировщикамиSQALab
 
"Outside In". Web application testing.
"Outside In". Web application testing."Outside In". Web application testing.
"Outside In". Web application testing.Mad Devs
 
организация и проведение тестирования
организация и проведение тестированияорганизация и проведение тестирования
организация и проведение тестированияIgor Pozumentov
 
CodeFest 2010. Емелина Т. — Trial-and-error: как мы начинали тестировать
CodeFest 2010. Емелина Т. — Trial-and-error: как мы начинали тестироватьCodeFest 2010. Емелина Т. — Trial-and-error: как мы начинали тестировать
CodeFest 2010. Емелина Т. — Trial-and-error: как мы начинали тестироватьCodeFest
 
Getting maximum from testing automation
Getting maximum from testing automationGetting maximum from testing automation
Getting maximum from testing automationAnton Sirota
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в ScrumDenis Petelin
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в ScrumDenis Petelin
 
How to setup TDD in a service company
How to setup TDD in a service companyHow to setup TDD in a service company
How to setup TDD in a service companyAlexander Babko
 
Developmentmanage3.0
Developmentmanage3.0Developmentmanage3.0
Developmentmanage3.0WRider
 
Jbreak 2016: Твой личный Spring Boot Starter
Jbreak 2016: Твой личный Spring Boot StarterJbreak 2016: Твой личный Spring Boot Starter
Jbreak 2016: Твой личный Spring Boot StarterAleksandr Tarasov
 
Do you know what you are testing?
Do you know what you are testing?Do you know what you are testing?
Do you know what you are testing?Mikalai Alimenkou
 
А вы знаете что тестируют ваши тесты?
А вы знаете что тестируют ваши тесты?А вы знаете что тестируют ваши тесты?
А вы знаете что тестируют ваши тесты?SQALab
 

Similar to мартюшев почему юнит-тесты не работают. история большого проекта (20)

SoapUI one key to all doors
SoapUI one key to all doorsSoapUI one key to all doors
SoapUI one key to all doors
 
Sef Streluk Agile
Sef Streluk AgileSef Streluk Agile
Sef Streluk Agile
 
Постановка процесса тестирования в Agile
Постановка процесса тестирования в AgileПостановка процесса тестирования в Agile
Постановка процесса тестирования в Agile
 
Стратегия тестирования крупного проекта в условиях Agile разработки v2
Стратегия тестирования крупного проекта в условиях Agile разработки v2Стратегия тестирования крупного проекта в условиях Agile разработки v2
Стратегия тестирования крупного проекта в условиях Agile разработки v2
 
Ярослав Пернеровский (QA Factory/GlobalLogic):"Рукописи не горят, но и не тон...
Ярослав Пернеровский (QA Factory/GlobalLogic):"Рукописи не горят, но и не тон...Ярослав Пернеровский (QA Factory/GlobalLogic):"Рукописи не горят, но и не тон...
Ярослав Пернеровский (QA Factory/GlobalLogic):"Рукописи не горят, но и не тон...
 
Автоматизированное тестирование не-тестировщиками
Автоматизированное тестирование не-тестировщикамиАвтоматизированное тестирование не-тестировщиками
Автоматизированное тестирование не-тестировщиками
 
"Outside In". Web application testing.
"Outside In". Web application testing."Outside In". Web application testing.
"Outside In". Web application testing.
 
организация и проведение тестирования
организация и проведение тестированияорганизация и проведение тестирования
организация и проведение тестирования
 
CodeFest 2010. Емелина Т. — Trial-and-error: как мы начинали тестировать
CodeFest 2010. Емелина Т. — Trial-and-error: как мы начинали тестироватьCodeFest 2010. Емелина Т. — Trial-and-error: как мы начинали тестировать
CodeFest 2010. Емелина Т. — Trial-and-error: как мы начинали тестировать
 
Getting maximum from testing automation
Getting maximum from testing automationGetting maximum from testing automation
Getting maximum from testing automation
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в Scrum
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в Scrum
 
What Tests Are For?
What Tests Are For?What Tests Are For?
What Tests Are For?
 
How to setup TDD in a service company
How to setup TDD in a service companyHow to setup TDD in a service company
How to setup TDD in a service company
 
Developmentmanage3.0
Developmentmanage3.0Developmentmanage3.0
Developmentmanage3.0
 
Jbreak 2016: Твой личный Spring Boot Starter
Jbreak 2016: Твой личный Spring Boot StarterJbreak 2016: Твой личный Spring Boot Starter
Jbreak 2016: Твой личный Spring Boot Starter
 
Qt tool evaluation
Qt tool evaluationQt tool evaluation
Qt tool evaluation
 
Do you know what you are testing?
Do you know what you are testing?Do you know what you are testing?
Do you know what you are testing?
 
А вы знаете что тестируют ваши тесты?
А вы знаете что тестируют ваши тесты?А вы знаете что тестируют ваши тесты?
А вы знаете что тестируют ваши тесты?
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 

More from Magneta AI

From outsource to productsource!
From outsource to productsource!From outsource to productsource!
From outsource to productsource!Magneta AI
 
BDD test structure
BDD test structureBDD test structure
BDD test structureMagneta AI
 
AgileCamp15. Процессный трек
AgileCamp15. Процессный трекAgileCamp15. Процессный трек
AgileCamp15. Процессный трекMagneta AI
 
Как создать концепцию продукта в виде Lean Canvas
Как создать концепцию продукта в виде Lean CanvasКак создать концепцию продукта в виде Lean Canvas
Как создать концепцию продукта в виде Lean CanvasMagneta AI
 
Эффективные ретроспективы
Эффективные ретроспективыЭффективные ретроспективы
Эффективные ретроспективыMagneta AI
 
зотин Scrum, kanban, что дальше. история nokia
зотин   Scrum, kanban, что дальше. история nokiaзотин   Scrum, kanban, что дальше. история nokia
зотин Scrum, kanban, что дальше. история nokiaMagneta AI
 
павлов все, что вы хотели знать о юнит тестах, но боялись спросить
павлов   все, что вы хотели знать о юнит тестах, но боялись спроситьпавлов   все, что вы хотели знать о юнит тестах, но боялись спросить
павлов все, что вы хотели знать о юнит тестах, но боялись спроситьMagneta AI
 
тучин как внедрить Agile, чтобы никто не заметил
тучин   как внедрить Agile, чтобы никто не заметилтучин   как внедрить Agile, чтобы никто не заметил
тучин как внедрить Agile, чтобы никто не заметилMagneta AI
 
ткаченко качество без этапа тестирования
ткаченко   качество без этапа тестированияткаченко   качество без этапа тестирования
ткаченко качество без этапа тестированияMagneta AI
 
сенькова разное ретро для разных команд (как провести ретро для новичков, с...
сенькова   разное ретро для разных команд (как провести ретро для новичков, с...сенькова   разное ретро для разных команд (как провести ретро для новичков, с...
сенькова разное ретро для разных команд (как провести ретро для новичков, с...Magneta AI
 
лустин статические анализаторы систем 1с ad2015
лустин   статические анализаторы систем 1с ad2015лустин   статические анализаторы систем 1с ad2015
лустин статические анализаторы систем 1с ad2015Magneta AI
 
лосев контрольные карты шухарта в анализе деятельности Scrum команд
лосев   контрольные карты шухарта в анализе деятельности Scrum командлосев   контрольные карты шухарта в анализе деятельности Scrum команд
лосев контрольные карты шухарта в анализе деятельности Scrum командMagneta AI
 
корецкий как мы улучшили экспертную оценку проектов
корецкий   как мы улучшили экспертную оценку проектовкорецкий   как мы улучшили экспертную оценку проектов
корецкий как мы улучшили экспертную оценку проектовMagneta AI
 
зиновьева повышение эффективности команды. ретроспектива как инструмент
зиновьева   повышение эффективности команды. ретроспектива как инструментзиновьева   повышение эффективности команды. ретроспектива как инструмент
зиновьева повышение эффективности команды. ретроспектива как инструментMagneta AI
 
богуславский Agile days непрерывное качество в непрерывной разработке
богуславский   Agile days непрерывное качество в непрерывной разработкебогуславский   Agile days непрерывное качество в непрерывной разработке
богуславский Agile days непрерывное качество в непрерывной разработкеMagneta AI
 
атлыгина чеклисты для всех-всех-всех
атлыгина   чеклисты для всех-всех-всехатлыгина   чеклисты для всех-всех-всех
атлыгина чеклисты для всех-всех-всехMagneta AI
 
арефьева пошаговая инструкция по переходу на спринты 16 к 9
арефьева   пошаговая инструкция по переходу на спринты 16 к 9арефьева   пошаговая инструкция по переходу на спринты 16 к 9
арефьева пошаговая инструкция по переходу на спринты 16 к 9Magneta AI
 
разумовская роль эмпатии в создании продукта. как найти реальную боль клиен...
разумовская   роль эмпатии в создании продукта. как найти реальную боль клиен...разумовская   роль эмпатии в создании продукта. как найти реальную боль клиен...
разумовская роль эмпатии в создании продукта. как найти реальную боль клиен...Magneta AI
 
мухина коучинг на практике, рабочие примеры
мухина   коучинг на практике, рабочие примерымухина   коучинг на практике, рабочие примеры
мухина коучинг на практике, рабочие примерыMagneta AI
 
тенишев научить и зажечь
тенишев   научить и зажечьтенишев   научить и зажечь
тенишев научить и зажечьMagneta AI
 

More from Magneta AI (20)

From outsource to productsource!
From outsource to productsource!From outsource to productsource!
From outsource to productsource!
 
BDD test structure
BDD test structureBDD test structure
BDD test structure
 
AgileCamp15. Процессный трек
AgileCamp15. Процессный трекAgileCamp15. Процессный трек
AgileCamp15. Процессный трек
 
Как создать концепцию продукта в виде Lean Canvas
Как создать концепцию продукта в виде Lean CanvasКак создать концепцию продукта в виде Lean Canvas
Как создать концепцию продукта в виде Lean Canvas
 
Эффективные ретроспективы
Эффективные ретроспективыЭффективные ретроспективы
Эффективные ретроспективы
 
зотин Scrum, kanban, что дальше. история nokia
зотин   Scrum, kanban, что дальше. история nokiaзотин   Scrum, kanban, что дальше. история nokia
зотин Scrum, kanban, что дальше. история nokia
 
павлов все, что вы хотели знать о юнит тестах, но боялись спросить
павлов   все, что вы хотели знать о юнит тестах, но боялись спроситьпавлов   все, что вы хотели знать о юнит тестах, но боялись спросить
павлов все, что вы хотели знать о юнит тестах, но боялись спросить
 
тучин как внедрить Agile, чтобы никто не заметил
тучин   как внедрить Agile, чтобы никто не заметилтучин   как внедрить Agile, чтобы никто не заметил
тучин как внедрить Agile, чтобы никто не заметил
 
ткаченко качество без этапа тестирования
ткаченко   качество без этапа тестированияткаченко   качество без этапа тестирования
ткаченко качество без этапа тестирования
 
сенькова разное ретро для разных команд (как провести ретро для новичков, с...
сенькова   разное ретро для разных команд (как провести ретро для новичков, с...сенькова   разное ретро для разных команд (как провести ретро для новичков, с...
сенькова разное ретро для разных команд (как провести ретро для новичков, с...
 
лустин статические анализаторы систем 1с ad2015
лустин   статические анализаторы систем 1с ad2015лустин   статические анализаторы систем 1с ad2015
лустин статические анализаторы систем 1с ad2015
 
лосев контрольные карты шухарта в анализе деятельности Scrum команд
лосев   контрольные карты шухарта в анализе деятельности Scrum командлосев   контрольные карты шухарта в анализе деятельности Scrum команд
лосев контрольные карты шухарта в анализе деятельности Scrum команд
 
корецкий как мы улучшили экспертную оценку проектов
корецкий   как мы улучшили экспертную оценку проектовкорецкий   как мы улучшили экспертную оценку проектов
корецкий как мы улучшили экспертную оценку проектов
 
зиновьева повышение эффективности команды. ретроспектива как инструмент
зиновьева   повышение эффективности команды. ретроспектива как инструментзиновьева   повышение эффективности команды. ретроспектива как инструмент
зиновьева повышение эффективности команды. ретроспектива как инструмент
 
богуславский Agile days непрерывное качество в непрерывной разработке
богуславский   Agile days непрерывное качество в непрерывной разработкебогуславский   Agile days непрерывное качество в непрерывной разработке
богуславский Agile days непрерывное качество в непрерывной разработке
 
атлыгина чеклисты для всех-всех-всех
атлыгина   чеклисты для всех-всех-всехатлыгина   чеклисты для всех-всех-всех
атлыгина чеклисты для всех-всех-всех
 
арефьева пошаговая инструкция по переходу на спринты 16 к 9
арефьева   пошаговая инструкция по переходу на спринты 16 к 9арефьева   пошаговая инструкция по переходу на спринты 16 к 9
арефьева пошаговая инструкция по переходу на спринты 16 к 9
 
разумовская роль эмпатии в создании продукта. как найти реальную боль клиен...
разумовская   роль эмпатии в создании продукта. как найти реальную боль клиен...разумовская   роль эмпатии в создании продукта. как найти реальную боль клиен...
разумовская роль эмпатии в создании продукта. как найти реальную боль клиен...
 
мухина коучинг на практике, рабочие примеры
мухина   коучинг на практике, рабочие примерымухина   коучинг на практике, рабочие примеры
мухина коучинг на практике, рабочие примеры
 
тенишев научить и зажечь
тенишев   научить и зажечьтенишев   научить и зажечь
тенишев научить и зажечь
 

мартюшев почему юнит-тесты не работают. история большого проекта

Editor's Notes

  1. Проект с нуля Работаем уже год 2 SCRUM команды – растём Agile – накоплен опыт Unit тестирование Внимание к качеству
  2. Завершили эксперименты и прототипы – техническая определенность Спринты по 2 недели – в конце сборка для аналитиков Встали на рельсы Стадия надувания функционалом
  3. “Там Undo не так отрабатывает” “Здесь привязочка не так отработала” “А тут вдруг теперь падает”
  4. Для примера рассмотрим 2 персонажа Подумайте, как работает их мозг (пауза) На уровне отдельных нейронов – всё ок. А где проблема? (работа с залом) – в связях Очень важно чтобы отдельные нейроны работали хорошо – иначе смерть Но этого недостаточно Чем больше система – тем больше роль связей
  5. Тестируйте подсистемы. И у нас были такие тесты. Но их было очень мало, недостаточно. И сейчас я расскажу почему
  6. Что тут описано? (работа с залом)
  7. Простейший объект. Без проемов! Без подсвечиваний. Не описаны видимые рёбра. Просто стена! А теперь представьте простейший тест. Вы двигаете мышкой в координатах экрана, кликаете – и создаются определенные объекты в 3D пространстве. А теперь представьте тесты на дуговые объекты, на вырезание дырок, на сопряжение стен,
  8. Криптография какая-то. Ну упал тест. Идите разберитесь в чём дело  Для тех кто думает что мы не пробовали. У нас были такие тесты. В этом проекте их просто мало писали. Кейс АС/АР – аналитик рисовал в 2D кейсы, выкладывали в Wiki, в тесте писали ссылку на Wiki
  9. Зайдем с другой стороны – с пользователя Test Complete – был опыт Squish – попробовали Особенность: мало контролов, основной ввод – движения мыши
  10. Картинки?
  11. Зачем 4 среза? Как писать такие тесты? Идея встраивания ушей в приложение
  12. Всё равно встраиваем тестовые инструменты Логика оторвана от слоя UI (писать тесты, +мода на UI меняется, + пробовали QT и WPF) Мы легко было встроили прослойку
  13. 3 режима
  14. Сколько стоит 1 лицензия (900 евро TestComplete) Инструмент замечательный Как мы его использовали
  15. Что делать???
  16. Жизнь ребят круто изменилась :) Они взвыли «За что нам это проклятие???» Ломают все – исправляют только они
  17. Жизнь ребят круто изменилась :) Они взвыли «За что нам это проклятие???» Ломают все – исправляют только они
  18. Жизнь ребят круто изменилась :) Они взвыли «За что нам это проклятие???»
  19. Когда проект уже существует - лучше начать с верха пирамиды, так как это не требует реинжиниринга внутренней архитектуры
  20. Найти баг через 1 час или через 1 неделю? Правило “1 багфикс => 2 новых бага” работает когда время измеряется неделями Автотестирование это: Явная экономия на тестеро-часах Неявная на скорости и качестве исправления багов Разработчики должны осознать что они основные выгодоприобретатели от создания автотестов Кейсы когда тесты запускаются долго
  21. Никакой тестер никогда бы не создал такую тестовую систему Только разработчики знают как эффективно протестировать их систему, чтобы тесты были быстрыми, необходимыми и достаточными “Плохие” кейсы, когда автотестеры сидят отдельно от разработчиков
  22. Нужно вовлекать программистов. Тогда они меньше ломают тесты, раньше узнают об ошибках, и вообще не мешают тестерам работать Антипаттерн – тесты у Пети
  23. Когда тесты часть процесса и DoD – только в общем репо
  24. Agile подход поставил нас перед необходимостью решения проблемы Кто хочет - ищет возможности, кто не хочет - ищет причины