SlideShare ist ein Scribd-Unternehmen logo
1 von 35
Почему юнит-тесты
не работают.
История большого
проекта
Александр Мартюшев
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

Weitere ähnliche Inhalte

Was ist angesagt?

сербул по лезвию бритвы
сербул   по лезвию бритвысербул   по лезвию бритвы
сербул по лезвию бритвы
Magneta AI
 
верещак. построение культуры Dev ops. v0.5 copy
верещак. построение  культуры Dev ops. v0.5 copyверещак. построение  культуры Dev ops. v0.5 copy
верещак. построение культуры Dev ops. v0.5 copy
Magneta AI
 
бородин об эмпирической разработке
бородин   об эмпирической разработкебородин   об эмпирической разработке
бородин об эмпирической разработке
Magneta AI
 
кузнецов Dual-track agile.pptx
кузнецов   Dual-track agile.pptxкузнецов   Dual-track agile.pptx
кузнецов Dual-track agile.pptx
Magneta AI
 
Денис Тучин - Болезни 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 strategy)
безуглый   гибкая стратегия (Agile strategy)безуглый   гибкая стратегия (Agile strategy)
безуглый гибкая стратегия (Agile strategy)
Magneta AI
 

Was ist angesagt? (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 как руководители нового типа
 

Andere mochten auch

мациевский путь самурая. уволить нельзя оставить
мациевский   путь самурая. уволить нельзя оставитьмациевский   путь самурая. уволить нельзя оставить
мациевский путь самурая. уволить нельзя оставить
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 agility
Magneta AI
 

Andere mochten auch (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
 

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

Sef Streluk Agile
Sef Streluk AgileSef Streluk Agile
Sef Streluk Agile
sef2009
 
Стратегия тестирования крупного проекта в условиях Agile разработки v2
Стратегия тестирования крупного проекта в условиях Agile разработки v2Стратегия тестирования крупного проекта в условиях Agile разработки v2
Стратегия тестирования крупного проекта в условиях Agile разработки v2
Magneta AI
 
организация и проведение тестирования
организация и проведение тестированияорганизация и проведение тестирования
организация и проведение тестирования
Igor Pozumentov
 
CodeFest 2010. Емелина Т. — Trial-and-error: как мы начинали тестировать
CodeFest 2010. Емелина Т. — Trial-and-error: как мы начинали тестироватьCodeFest 2010. Емелина Т. — Trial-and-error: как мы начинали тестировать
CodeFest 2010. Емелина Т. — Trial-and-error: как мы начинали тестировать
CodeFest
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в Scrum
Denis Petelin
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в Scrum
Denis Petelin
 
Developmentmanage3.0
Developmentmanage3.0Developmentmanage3.0
Developmentmanage3.0
WRider
 

Ähnlich wie мартюшев почему юнит-тесты не работают. история большого проекта (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
 

Mehr von Magneta AI

зотин Scrum, kanban, что дальше. история nokia
зотин   Scrum, kanban, что дальше. история nokiaзотин   Scrum, kanban, что дальше. история nokia
зотин Scrum, kanban, что дальше. история nokia
Magneta AI
 
павлов все, что вы хотели знать о юнит тестах, но боялись спросить
павлов   все, что вы хотели знать о юнит тестах, но боялись спроситьпавлов   все, что вы хотели знать о юнит тестах, но боялись спросить
павлов все, что вы хотели знать о юнит тестах, но боялись спросить
Magneta AI
 
тучин как внедрить Agile, чтобы никто не заметил
тучин   как внедрить Agile, чтобы никто не заметилтучин   как внедрить Agile, чтобы никто не заметил
тучин как внедрить Agile, чтобы никто не заметил
Magneta AI
 
ткаченко качество без этапа тестирования
ткаченко   качество без этапа тестированияткаченко   качество без этапа тестирования
ткаченко качество без этапа тестирования
Magneta AI
 
сенькова разное ретро для разных команд (как провести ретро для новичков, с...
сенькова   разное ретро для разных команд (как провести ретро для новичков, с...сенькова   разное ретро для разных команд (как провести ретро для новичков, с...
сенькова разное ретро для разных команд (как провести ретро для новичков, с...
Magneta AI
 
лустин статические анализаторы систем 1с ad2015
лустин   статические анализаторы систем 1с ad2015лустин   статические анализаторы систем 1с ad2015
лустин статические анализаторы систем 1с ad2015
Magneta 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 к 9
Magneta AI
 
разумовская роль эмпатии в создании продукта. как найти реальную боль клиен...
разумовская   роль эмпатии в создании продукта. как найти реальную боль клиен...разумовская   роль эмпатии в создании продукта. как найти реальную боль клиен...
разумовская роль эмпатии в создании продукта. как найти реальную боль клиен...
Magneta AI
 
мухина коучинг на практике, рабочие примеры
мухина   коучинг на практике, рабочие примерымухина   коучинг на практике, рабочие примеры
мухина коучинг на практике, рабочие примеры
Magneta AI
 
тенишев научить и зажечь
тенишев   научить и зажечьтенишев   научить и зажечь
тенишев научить и зажечь
Magneta AI
 

Mehr von 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
 
разумовская роль эмпатии в создании продукта. как найти реальную боль клиен...
разумовская   роль эмпатии в создании продукта. как найти реальную боль клиен...разумовская   роль эмпатии в создании продукта. как найти реальную боль клиен...
разумовская роль эмпатии в создании продукта. как найти реальную боль клиен...
 
мухина коучинг на практике, рабочие примеры
мухина   коучинг на практике, рабочие примерымухина   коучинг на практике, рабочие примеры
мухина коучинг на практике, рабочие примеры
 
тенишев научить и зажечь
тенишев   научить и зажечьтенишев   научить и зажечь
тенишев научить и зажечь
 

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

Hinweis der Redaktion

  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 подход поставил нас перед необходимостью решения проблемы Кто хочет - ищет возможности, кто не хочет - ищет причины