QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops

Q
Роль
тестирования
в Devops
Вы хотите, чтобы у вас каждая
фича «протаскивалась» до
production за 3 часа? Тогда вам
нужно вывести своё
тестирование на продвинутый
уровень!
Роль
тестирования
в Devops
Вы хотите, чтобы у вас каждая
фича «протаскивалась» до
production за 3 часа? Тогда вам
нужно вывести своё
тестирование на продвинутый
уровень!
Пару слов о себе:
• Devops евангелист
• Agile Testing тренер
• Руководитель автоматизации тестирования
• В QA c 2012 года
• В IT с 2007 года
• В АльфаБанке внедряю Облака
• Немного пишу код =)
• Люблю Linux
Терминология
Что означают все эти
словечки или как меня
понимать?
Термины
Unit-тесты - тесты, которые пишутся разработчиками; 

E2E-тесты - любые интеграционные тесты, проверяющие межкомпонентное
или межсистемное взаимодействие;

Selenium-тесты - UI-тесты, эмулирующие действия пользователя в
браузере;

UI-тесты - тесты, которые проверяют то, что видит пользователь;

Test coverage - тестовое покрытие требований, в%. 

Production/бой - стенд с приложением для конечного пользователя;

Mocks - "заглушки" для внешних систем, слоев;
Супертестировщики - тестировщики, которые самостоятельно
поддерживают автотесты, и немного умеют программировать;
Пирамида
тестирования
- как способ
визуализации того, как
мы меняем тестирование
Как было:
UI-
приемка и
регресс
Автотесты
Unit-тесты
Unit-тесты: черный ящик для всех. Никто не знает что именно
покрыто юнит-тестами, а что не покрыто. Все на личном
усмотрени и разработчика. Code coverage не считается.

Автотесты: автоматизированные UI E2E сценарии,
покрывающие ТМ регресса. Не все проекты покрыты.

Отсутствие доверия к автотестам приводит к тому,  что Т.
дублирует ручным тестированием автоматизированные
проверки. 

UI-приемка: приемочное тестирование новой
функциональности. Осуществляют аналитики, в
заключительных итерациях привлекая тестера для написания
ТМ. 

Регресс:  регрессионое тестирование стабильной версии
релиза на неухудшение. Осуществляется Т. от 2 дней до 2
недель, в зависимости от системы.
Цели, которые мы поставили себе:
1. Наличие собственной экспертизы в виде “идеальных”
супертестировщиков
2. Прозрачность всех процессов тестирования в команде
3. Изменить процесс автоматизации тестирования в
соответствии с новой пирамидой тестирования
4. Изменить процесс написания документации
Стратегия
Функциональное ручное тестирование:
• Обучаем всех тестировщиков программировать. Хотим: все
становятся супертестировщиками;
• Тестировщик в паре с разработчиком пишет юнит-тесты;
• Тестировщик участвует в review юнит-тестов на полноту test coverage;
• Max время приемки - 30 минут;
Стратегия
Автоматизация:
• Весь регресс автоматизирован;
• Автоматизируем подсчет test coverage;
• Интегрируем отчеты результатов автотестов в jira pipeline;
• Автоматизируем сбор метрик с помощью jira; 
• Автоматически генерируем документацию, используя подход
Specification by Example;
Стратегия
Инженерные практики:
• Покрытие кода тестами (unit-tests, e2e);
• Code coverage не менее 25%;
• Парное программирование;
• Докерная гибридная инфраструктура для автотестов;
• Доработка фреймворка с автотестами: время прогона каждой
сборки с автотестами не должно превышать 30 минут. 
• Автоматизация тестирования адаптивности и кроссбраузерности;
Стратегия
Процессные особенности:
• Прозрачность тестирования;
• Автотесты больше не сервис для команды, а часть самого продукта;
• Учимся принимать риски;
Как сейчас:
Автотесты (e2e, UI)
e2e-тесты, компонентные тесты
Unit-тесты
Unit-тесты: тесты на ту часть кода,
которая не исполняет какую-либо
бизнес-логику. Пишутся
разработчиками. Учитываются в
подсчете code coverage. 
UI-приемка
Как сейчас:
Автотесты (e2e, UI)
e2e-тесты, компонентные тесты
Unit-тесты
E2E тесты: интеграционные тесты,
которые проверяют
взаимодействие с внешними
слоями (API, UI). Пишутся в паре
"тестер-разработчик" или
"аналитик-тестер".  Исполняются на
mocks и являются частью
документации проекта. 
UI-приемка
Как сейчас:
Автотесты (e2e, UI)
e2e-тесты, компонентные тесты
Unit-тесты
Компонентные тесты: пишутся в
паре "тестер-разработчик" или
"тестер-аналитик", проверяют
только одну компоненту внутри API
или UI. Являются частью
документации проекта.
UI-приемка
Как сейчас:
Автотесты (e2e, UI)
e2e-тесты, компонентные тесты
Unit-тесты
UI-приемка
Автотесты e2e: интеграционные UI
тесты полного цикла. Проверяют
взаимодействие всех слоев
приложения со внешними
системами. Разрабатываются в
паре "автотестер-тестер".
Как сейчас:
Автотесты (e2e, UI)
e2e-тесты, компонентные тесты
Unit-тесты
UI-приемка
Автотесты UI: компонентные тест-
кейсы на front, которые проверяют
UI с точки зрения конечного
пользователя. Исполняются на
мокированном API.
Разрабатываются в паре
"автотестер-тестер".
Как сейчас:
Автотесты (e2e, UI)
e2e-тесты, компонентные тесты
Unit-тесты
UI-приемка
UI приемка: ручное тестирование
изменения артефакта, который в
рамках новой версии был изменен.
Проводится тестировщиком и имеет
жесткое ограничение по времени. 
Идеальный
тестировщик,
кто он?
Какие люди нам
нужны для
достижения цели?
Супертестировщик – это…
• Тестировщик немножко программист:
– Обладает навыками программирования на Java или на JS;
– Понимает алгоритмы на начальном уровне;
• Тестировщик немножко аналитик:
– Знает архитектуру тестируемого приложения;
– Не тестирует «черный ящик» и может залезть в код;
– Осуществляет приемочное тестирование;
• Тестировщик крутой QA engineer:
– Владеет техниками тест-дизайна;
– Умеет проектировать тестовую модель с точки зрения используемой
пирамиды;
– Пишет/проектирует модульные тесты;
Нужны крутые тестровщики
• Подбор людей с экспертизой
• Обучение тестировщиков
• На каждую проектную команду 0.5 автотестера
• Коммуникации
• Организация и развитие community сообщества внутри Альфа Лабы;
• Выращивание собственных клонов =)
Визуализация качества продукта для команды:
• SonarQube и Zephyr автоматически проверяют code coverage и test
coverage (SonarQube контролирует SLA качества кода для проекта)
• Визуализация качества продукта с помощью дашбордов
• (Визуализировано состояние качества кода по всему проекту)
• Мониторинг производительности API
• Мониторинг производительности Front
Функциональное
тестирование
(автотесты + ручное)
80% - автотесты
20 % - ручное
тестирование
Ручное тестирование
• Тестировщик осуществляет руками только приемочное тестирование
• Тестировщик тестирует каждую стабильную версию
• Тестировщик ревьюит юнит-тесты
• На каждую проектную команду 0.5 автотестера
• Подготавливаем смоук-сеты для команды (автотесты+ручные тесты)
• Избавляемся от «балласта» /Не делаем лишнюю работу
• Коммуникации
Specification of Example:
API: Аналитик с тестировщиком генерируют два артефакта для проекта:
1. UML диаграмма. Используем для этого фреймворк, например PluntUML.
Диаграмма находится в репозитории проекта;

2. Test-case в нотации BDD в репозитории проекта - каркас для юнит-тестов.
Парная разработка с тестировщиком;

Во время сборки билда генерируется html-документ в artifactory, как документация
к релизу;

UI: Проектирование тест-кейсов происходит на user-story:
1. Тестировщик с разработчиком автотестов в паре для  user-story описывает все
возможные случаи в BDD сразу в коде проекта автотестов;

2. В тест-кейсах для автотестов всегда точное отражение того, какими
функциональными требованиями обладает US;
В итоге - чудо:
• Документация для проекта хранится в коде:
• Документация версионируется;
• Документация актуальная, потому что тестировщики и
аналитики будут вынуждены поддерживать её в актуальном
состоянии, иначе автотесты будут «ломаться»;
• Визуализация тестового покрытия (test coverege);
• Сбор статистики и метрик по тестированию и качества проекта;
Проектирование
тест-кейсов –
важнейшая часть
тестирования
Почему?
Зачем мы это делаем?
• Тестируем требования
• Проектируем тестовую модель
• Приоретизируем и категоризируем тест-кейсы
Test-case как
документация
проекта
Зачем качественно
проектировать тестовую
модель и гарантировать
тестовое покрытие 100% ?
REST-сервис
Функциональная логикаВход Выход
Внешняя БД Внешний сервис
Жизненный цикл ТМ
Проектирование	ТМ	на	APi
Парная	разработка	тест-
кейсов	с	аналитиком
Парная	доработка	тест-
кейсов	с	разработчиком
Ревью	pull	request	с	API	на	
полноту	ТМ
Проектирование	ТМ	на	UI,	
подготовка	тест.данных
Парная	разработка	
автоматизированных	тест-
кейсов	на	Ui,	с	автотестером
Автоматизация тестирования:
• Внедрение TDD
• Разработчики пишут юнит-тесты на API, UI также и на legacy системы
• Автотесты как инструмент автоматического контроля качества при
pull request
• Разработчики автотестов разрабатывают интеграционные и UI
автотесты с отставанием в один спринт
• Регрессионное тестирование 100% автоматизировано
• Инфраструктура для автотестов позволяет делать любой регресс за
30 минут
Unit-
тестирование
Тесты на API, как документация к коду
Автогенерация
спецификации на API
Автогенерация
спецификации на API
Иерархия тестовой модели
Метрики по
тестированию
Как мы измеряем, что
достигли цели?
В каждом проекте для
оценки качества должно
использоваться не менее
5 различных метрик.
Как померить качество?
… или как мы гарантируем себе, что в погоне за
быстрым деплоем мы не ухудшаем качество
продукта?
Метрики качества
• % автоматизации тестового покрытия (e2e UI, unit
тесты)
• Test coverage
• Частота проведения регрессии
• Качество исправления дефектов
• Дефекты, обнаруженные в продакшне
• Code coverege
$: есть ли выгода?
… метрики, которые мы используем для понимания
выгодно ли то, что мы делаем для Бизнеса.
Метрики “Цена/Время”
• Окно автоматизации тестирования
• Окна анализа результатов тестирования
• Время на создание автоматизированных тестов
• Время на поддержку автоматизированных
тестов
• Окно тестирования =< 30 мин.
Используемый
стек
технологий
Какие инструменты мы
используем для
достижения цели
Инструменты и технологии
• Selenium Webdriver, Selenium Grid, Jbehave
(BDD), Java, Serenity, Junit, Galen Framework,
Ansible, Docker, Mesos+marathon, Azure Pack,
Jenkins 2.0
Что хотим попробовать:
• Selenide, WebdriverIO, Allure
Целевая схема
инфраструктуры
для автотестов
…или как выжать
максимум пользы от того
что имеем.
git
Mesos
Slave
Mesos
Slave
Mesos
Slave
Mesos
Slave
CI
Pipeline
CI
Autotests
CLI Number
Of Containers
CLI Create
Selenium Grid
Repo Autotests projects
Repo Docker Images
Mesos
master
marathon
REST API
Кластер c произвольным количеством VM
c различными физ. характеристиками и в
различных VLAN,
ОС: Centos 7.2
Инфраструктурное ПО:
• ansible
• docker
• zookeeper
• mesos
• marathon
Pipeline single job autotests
Selenium
chrome
node
Selenium
firefox
node
Selenium
chrome
node
Selenium
firefox
node
Jenkins: Job1
cli Number Of
Containers
cli Create
Selenium Grid
Selenium
Hub
Maven, JDK
Selenium Grid
Mesos
master
marathon
REST API
Hub, node
запущены
в docker-
контейнерах
cli Delete
Selenium Grid
Pipeline CLI Number of Containers
git
Jenkins:
Job1
CLI Number Of
Containers
Repo Autotests projects
Входные параметры:
• Наименование проекта (git repo)
• Max время прогона автотестов - 30 мин
• Наименования docker images (необязательно)
1. Подсчитывает
количество .story файлов или
test-сетов в проекте
2. Исключает skipped тест-ы
3. Считает по формуле, какое
количество контейнеров-nodes
необходимо поднять в selenium
grid
4. Возвращает целочисленное
значение
Целевая схема
нагрузочного
тестирования
Продукт должен быть не
только без багов, но и
быстро работать
1. Разрабатываем централизованное хранилище моков, которое
переиспользуется разработчиками, тестировщиками для
автотестирования и нагрузочного тестирования.
2. Встраиваем запуск нагрузочного тестирования в Pipeliene проекта.
Нагрузочное тестирование запускается в момент запуска
регрессионных автотестов, после установки приложения на стенд.
3. Автоматизируем анализ результатов автотестов на основании
предустановленного SLA.
4. Снимает метрики: скорость загрузки страницы и время отклика REST-
сервиса (мидловая часть).
Выводы:
Артефакт доставить
до боя мы можем
даже быстрее, чем за
3 часа
И напоследок:
• Доставлять артефакты до клиента за 3 часа не так уж и сложно ;-)
• “Наполеоновские” планы должны учитывать то, что devops - это
еще история про людей
• Вы больше времени потратите на выстраивание коммуникаций
внутри команды, чем на саму техническую реализацию
• Вы больше усилий потратите на привитие культуры, чем на
изучение какого-то нового инструментария
Мои контакты:
@travieso_nastya
traviesonastya
anastasia.aseeva
1 of 54

Recommended

WP как экспериментальная платформа by
WP как экспериментальная платформаWP как экспериментальная платформа
WP как экспериментальная платформаSQALab
682 views41 slides
QA Fes 2016. Василий Сливка. 10 лучших практик для тестирования мобильных при... by
QA Fes 2016. Василий Сливка. 10 лучших практик для тестирования мобильных при...QA Fes 2016. Василий Сливка. 10 лучших практик для тестирования мобильных при...
QA Fes 2016. Василий Сливка. 10 лучших практик для тестирования мобильных при...QAFest
1.4K views18 slides
Шаблоны проектирования нагрузочных скриптов by
Шаблоны проектирования нагрузочных скриптовШаблоны проектирования нагрузочных скриптов
Шаблоны проектирования нагрузочных скриптовSQALab
810 views63 slides
QA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестирования by
QA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестированияQA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестирования
QA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестированияQAFest
1.5K views29 slides
Тестирование инсталляторов by
Тестирование инсталляторовТестирование инсталляторов
Тестирование инсталляторовSQALab
918 views22 slides
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика by
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщикаQA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщикаQAFest
3.2K views44 slides

More Related Content

What's hot

Делаем автоматизацию проектных KPIs by
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsSQALab
361 views19 slides
Внедрение тестирования в Scrum by
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в ScrumDenis Petelin
1.5K views31 slides
Гибкое тестирование by
Гибкое тестированиеГибкое тестирование
Гибкое тестированиеRina Uzhevko
2.8K views17 slides
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов by
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовНепрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовCOMAQA.BY
3.9K views19 slides
Способы организаций больших Java проектов по Автоматизированному тестированию by
Способы организаций больших Java проектов по Автоматизированному тестированиюСпособы организаций больших Java проектов по Автоматизированному тестированию
Способы организаций больших Java проектов по Автоматизированному тестированиюCOMAQA.BY
3.7K views17 slides
Как развить отдел тестирования от палки-копалки до CI by
Как развить отдел тестирования от палки-копалки до CIКак развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CICEE-SEC(R)
1.9K views31 slides

What's hot(20)

Делаем автоматизацию проектных KPIs by SQALab
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIs
SQALab361 views
Внедрение тестирования в Scrum by Denis Petelin
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в Scrum
Denis Petelin1.5K views
Гибкое тестирование by Rina Uzhevko
Гибкое тестированиеГибкое тестирование
Гибкое тестирование
Rina Uzhevko2.8K views
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов by COMAQA.BY
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовНепрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
COMAQA.BY 3.9K views
Способы организаций больших Java проектов по Автоматизированному тестированию by COMAQA.BY
Способы организаций больших Java проектов по Автоматизированному тестированиюСпособы организаций больших Java проектов по Автоматизированному тестированию
Способы организаций больших Java проектов по Автоматизированному тестированию
COMAQA.BY 3.7K views
Как развить отдел тестирования от палки-копалки до CI by CEE-SEC(R)
Как развить отдел тестирования от палки-копалки до CIКак развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CI
CEE-SEC(R)1.9K views
Повышение качества тестов и автоматическая валидация REST API документации by CEE-SEC(R)
Повышение качества тестов и автоматическая валидация REST API документацииПовышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документации
CEE-SEC(R)1.5K views
Дефицит ресурсов тестирования... или нет? by SQALab
Дефицит ресурсов тестирования... или нет?Дефицит ресурсов тестирования... или нет?
Дефицит ресурсов тестирования... или нет?
SQALab1K views
Новый процесс тестирования на "старом" проекте by SQALab
Новый процесс тестирования на "старом" проектеНовый процесс тестирования на "старом" проекте
Новый процесс тестирования на "старом" проекте
SQALab944 views
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования by SQALab
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
SQALab774 views
10 принципов автоматизации, которые я не предам by SQALab
10 принципов автоматизации, которые я не предам10 принципов автоматизации, которые я не предам
10 принципов автоматизации, которые я не предам
SQALab3.4K views
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайников by QAFest
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайниковQA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
QAFest3.4K views
Добиваемся эффективности каждого из 9000+ UI-тестов by SQALab
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестов
SQALab580 views
Quality Assurance vs Quality Control - так в чем же заключается работа специа... by COMAQA.BY
Quality Assurance vs Quality Control - так в чем же заключается работа специа...Quality Assurance vs Quality Control - так в чем же заключается работа специа...
Quality Assurance vs Quality Control - так в чем же заключается работа специа...
COMAQA.BY 4K views
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы... by WrikeTechClub
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
WrikeTechClub18.3K views
Как hh.ru дошли до 500 релизов в квартал без потери в качестве by SQALab
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
SQALab722 views
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле? by QAFest
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
QAFest13.5K views
ROCS 2 - advanced platform for automated test execution in clustered environm... by Rina Uzhevko
ROCS 2 - advanced platform for automated test execution in clustered environm...ROCS 2 - advanced platform for automated test execution in clustered environm...
ROCS 2 - advanced platform for automated test execution in clustered environm...
Rina Uzhevko2.8K views
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F... by COMAQA.BY
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
COMAQA.BY 4.3K views
Scrum глазами тестировщика или как создать стратегию для любой задачи by IT61
Scrum глазами тестировщика или как создать стратегию для любой задачиScrum глазами тестировщика или как создать стратегию для любой задачи
Scrum глазами тестировщика или как создать стратегию для любой задачи
IT61387 views

Similar to QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops

DevOps guide for awesome quality assurance by
DevOps guide for awesome quality assuranceDevOps guide for awesome quality assurance
DevOps guide for awesome quality assuranceАнастасия Асеева
349 views86 slides
Automation from the trenches by
Automation from the trenchesAutomation from the trenches
Automation from the trenchesGlobalLogic Ukraine
994 views44 slides
Роман Кокин «Организация тестирования в больших командах» by
Роман Кокин «Организация тестирования в больших командах»Роман Кокин «Организация тестирования в больших командах»
Роман Кокин «Организация тестирования в больших командах»DataArt
751 views26 slides
Automation from the trenches by
Automation from the trenchesAutomation from the trenches
Automation from the trenchesGleb Rybalko
352 views44 slides
Jubula – TDD UI QA Automation Tool by
Jubula – TDD UI QA Automation ToolJubula – TDD UI QA Automation Tool
Jubula – TDD UI QA Automation ToolCOMAQA.BY
726 views44 slides
Лучшие практики на практике by
Лучшие практики на практикеЛучшие практики на практике
Лучшие практики на практикеDenis Tuchin
1.5K views42 slides

Similar to QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops(20)

Роман Кокин «Организация тестирования в больших командах» by DataArt
Роман Кокин «Организация тестирования в больших командах»Роман Кокин «Организация тестирования в больших командах»
Роман Кокин «Организация тестирования в больших командах»
DataArt751 views
Automation from the trenches by Gleb Rybalko
Automation from the trenchesAutomation from the trenches
Automation from the trenches
Gleb Rybalko352 views
Jubula – TDD UI QA Automation Tool by COMAQA.BY
Jubula – TDD UI QA Automation ToolJubula – TDD UI QA Automation Tool
Jubula – TDD UI QA Automation Tool
COMAQA.BY 726 views
Лучшие практики на практике by Denis Tuchin
Лучшие практики на практикеЛучшие практики на практике
Лучшие практики на практике
Denis Tuchin1.5K views
Тестирование весна 2013 лекция 5 by Technopark
Тестирование весна 2013 лекция 5Тестирование весна 2013 лекция 5
Тестирование весна 2013 лекция 5
Technopark438 views
Внедрение тестирования в Scrum by Denis Petelin
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в Scrum
Denis Petelin7 views
Тестирование веб-проектов в Agile by SQALab
Тестирование веб-проектов в AgileТестирование веб-проектов в Agile
Тестирование веб-проектов в Agile
SQALab689 views
Сергей Ревко by SQALab
Сергей РевкоСергей Ревко
Сергей Ревко
SQALab393 views
Организация процесса ручного тестирования by IT61
Организация процесса ручного тестированияОрганизация процесса ручного тестирования
Организация процесса ручного тестирования
IT611.4K views
доклад на SQADays 2011 в Казани by margo-qa
доклад на SQADays  2011 в Казанидоклад на SQADays  2011 в Казани
доклад на SQADays 2011 в Казани
margo-qa720 views
Automation Overview by KiraKeiss
Automation OverviewAutomation Overview
Automation Overview
KiraKeiss413 views
Автоматическое тестирование и с чем его едят by Marina Peregud
Автоматическое тестирование и с чем его едятАвтоматическое тестирование и с чем его едят
Автоматическое тестирование и с чем его едят
Marina Peregud1.1K views
Андрей Сильчук: "Автоматическое тестирование". by Hub-IT-School
Андрей Сильчук: "Автоматическое тестирование".Андрей Сильчук: "Автоматическое тестирование".
Андрей Сильчук: "Автоматическое тестирование".
Hub-IT-School524 views
Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В... by solit
Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...
Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...
solit776 views

More from QAFest

QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилин by
QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилинQA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилин
QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилинQAFest
979 views44 slides
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The Future by
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The FutureQA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The Future
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The FutureQAFest
931 views44 slides
QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe... by
QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...
QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...QAFest
322 views131 slides
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и... by
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...QAFest
336 views92 slides
QA Fest 2019. Никита Галкин. Как зарабатывать больше by
QA Fest 2019. Никита Галкин. Как зарабатывать большеQA Fest 2019. Никита Галкин. Как зарабатывать больше
QA Fest 2019. Никита Галкин. Как зарабатывать большеQAFest
389 views40 slides
QA Fest 2019. Сергей Пирогов. Why everything is spoiled by
QA Fest 2019. Сергей Пирогов. Why everything is spoiledQA Fest 2019. Сергей Пирогов. Why everything is spoiled
QA Fest 2019. Сергей Пирогов. Why everything is spoiledQAFest
342 views33 slides

More from QAFest(20)

QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилин by QAFest
QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилинQA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилин
QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилин
QAFest979 views
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The Future by QAFest
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The FutureQA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The Future
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The Future
QAFest931 views
QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe... by QAFest
QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...
QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...
QAFest322 views
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и... by QAFest
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...
QAFest336 views
QA Fest 2019. Никита Галкин. Как зарабатывать больше by QAFest
QA Fest 2019. Никита Галкин. Как зарабатывать большеQA Fest 2019. Никита Галкин. Как зарабатывать больше
QA Fest 2019. Никита Галкин. Как зарабатывать больше
QAFest389 views
QA Fest 2019. Сергей Пирогов. Why everything is spoiled by QAFest
QA Fest 2019. Сергей Пирогов. Why everything is spoiledQA Fest 2019. Сергей Пирогов. Why everything is spoiled
QA Fest 2019. Сергей Пирогов. Why everything is spoiled
QAFest342 views
QA Fest 2019. Сергей Новик. Между мотивацией и выгоранием by QAFest
QA Fest 2019. Сергей Новик. Между мотивацией и выгораниемQA Fest 2019. Сергей Новик. Между мотивацией и выгоранием
QA Fest 2019. Сергей Новик. Между мотивацией и выгоранием
QAFest249 views
QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н... by QAFest
QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...
QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...
QAFest338 views
QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV... by QAFest
QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV...QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV...
QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV...
QAFest227 views
QA Fest 2019. Иван Крутов. Bulletproof Selenium Cluster by QAFest
QA Fest 2019. Иван Крутов. Bulletproof Selenium ClusterQA Fest 2019. Иван Крутов. Bulletproof Selenium Cluster
QA Fest 2019. Иван Крутов. Bulletproof Selenium Cluster
QAFest282 views
QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе... by QAFest
QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе...QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе...
QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе...
QAFest251 views
QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз... by QAFest
QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз...QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз...
QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз...
QAFest301 views
QA Fest 2019. Дмитрий Прокопук. Mocks and network tricks in UI automation by QAFest
QA Fest 2019. Дмитрий Прокопук. Mocks and network tricks in UI automationQA Fest 2019. Дмитрий Прокопук. Mocks and network tricks in UI automation
QA Fest 2019. Дмитрий Прокопук. Mocks and network tricks in UI automation
QAFest225 views
QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в... by QAFest
QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в...QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в...
QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в...
QAFest243 views
QA Fest 2019. Катерина Черникова. Tune your P’s: the pop-art of keeping testa... by QAFest
QA Fest 2019. Катерина Черникова. Tune your P’s: the pop-art of keeping testa...QA Fest 2019. Катерина Черникова. Tune your P’s: the pop-art of keeping testa...
QA Fest 2019. Катерина Черникова. Tune your P’s: the pop-art of keeping testa...
QAFest376 views
QA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях IT by QAFest
QA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях ITQA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях IT
QA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях IT
QAFest209 views
QA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложении by QAFest
QA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложенииQA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложении
QA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложении
QAFest607 views
QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр... by QAFest
QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр...QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр...
QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр...
QAFest321 views
QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр... by QAFest
QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр...QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр...
QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр...
QAFest296 views
QA Fest 2019. Петр Тарасенко. QA Hackathon - The Cookbook 22 by QAFest
QA Fest 2019. Петр Тарасенко. QA Hackathon - The Cookbook 22QA Fest 2019. Петр Тарасенко. QA Hackathon - The Cookbook 22
QA Fest 2019. Петр Тарасенко. QA Hackathon - The Cookbook 22
QAFest164 views

QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops

  • 1. Роль тестирования в Devops Вы хотите, чтобы у вас каждая фича «протаскивалась» до production за 3 часа? Тогда вам нужно вывести своё тестирование на продвинутый уровень!
  • 2. Роль тестирования в Devops Вы хотите, чтобы у вас каждая фича «протаскивалась» до production за 3 часа? Тогда вам нужно вывести своё тестирование на продвинутый уровень!
  • 3. Пару слов о себе: • Devops евангелист • Agile Testing тренер • Руководитель автоматизации тестирования • В QA c 2012 года • В IT с 2007 года • В АльфаБанке внедряю Облака • Немного пишу код =) • Люблю Linux
  • 4. Терминология Что означают все эти словечки или как меня понимать?
  • 5. Термины Unit-тесты - тесты, которые пишутся разработчиками; 
 E2E-тесты - любые интеграционные тесты, проверяющие межкомпонентное или межсистемное взаимодействие;
 Selenium-тесты - UI-тесты, эмулирующие действия пользователя в браузере;
 UI-тесты - тесты, которые проверяют то, что видит пользователь;
 Test coverage - тестовое покрытие требований, в%. 
 Production/бой - стенд с приложением для конечного пользователя;
 Mocks - "заглушки" для внешних систем, слоев; Супертестировщики - тестировщики, которые самостоятельно поддерживают автотесты, и немного умеют программировать;
  • 6. Пирамида тестирования - как способ визуализации того, как мы меняем тестирование
  • 7. Как было: UI- приемка и регресс Автотесты Unit-тесты Unit-тесты: черный ящик для всех. Никто не знает что именно покрыто юнит-тестами, а что не покрыто. Все на личном усмотрени и разработчика. Code coverage не считается.
 Автотесты: автоматизированные UI E2E сценарии, покрывающие ТМ регресса. Не все проекты покрыты. Отсутствие доверия к автотестам приводит к тому,  что Т. дублирует ручным тестированием автоматизированные проверки. 
 UI-приемка: приемочное тестирование новой функциональности. Осуществляют аналитики, в заключительных итерациях привлекая тестера для написания ТМ. 
 Регресс:  регрессионое тестирование стабильной версии релиза на неухудшение. Осуществляется Т. от 2 дней до 2 недель, в зависимости от системы.
  • 8. Цели, которые мы поставили себе: 1. Наличие собственной экспертизы в виде “идеальных” супертестировщиков 2. Прозрачность всех процессов тестирования в команде 3. Изменить процесс автоматизации тестирования в соответствии с новой пирамидой тестирования 4. Изменить процесс написания документации
  • 9. Стратегия Функциональное ручное тестирование: • Обучаем всех тестировщиков программировать. Хотим: все становятся супертестировщиками; • Тестировщик в паре с разработчиком пишет юнит-тесты; • Тестировщик участвует в review юнит-тестов на полноту test coverage; • Max время приемки - 30 минут;
  • 10. Стратегия Автоматизация: • Весь регресс автоматизирован; • Автоматизируем подсчет test coverage; • Интегрируем отчеты результатов автотестов в jira pipeline; • Автоматизируем сбор метрик с помощью jira;  • Автоматически генерируем документацию, используя подход Specification by Example;
  • 11. Стратегия Инженерные практики: • Покрытие кода тестами (unit-tests, e2e); • Code coverage не менее 25%; • Парное программирование; • Докерная гибридная инфраструктура для автотестов; • Доработка фреймворка с автотестами: время прогона каждой сборки с автотестами не должно превышать 30 минут.  • Автоматизация тестирования адаптивности и кроссбраузерности;
  • 12. Стратегия Процессные особенности: • Прозрачность тестирования; • Автотесты больше не сервис для команды, а часть самого продукта; • Учимся принимать риски;
  • 13. Как сейчас: Автотесты (e2e, UI) e2e-тесты, компонентные тесты Unit-тесты Unit-тесты: тесты на ту часть кода, которая не исполняет какую-либо бизнес-логику. Пишутся разработчиками. Учитываются в подсчете code coverage.  UI-приемка
  • 14. Как сейчас: Автотесты (e2e, UI) e2e-тесты, компонентные тесты Unit-тесты E2E тесты: интеграционные тесты, которые проверяют взаимодействие с внешними слоями (API, UI). Пишутся в паре "тестер-разработчик" или "аналитик-тестер".  Исполняются на mocks и являются частью документации проекта.  UI-приемка
  • 15. Как сейчас: Автотесты (e2e, UI) e2e-тесты, компонентные тесты Unit-тесты Компонентные тесты: пишутся в паре "тестер-разработчик" или "тестер-аналитик", проверяют только одну компоненту внутри API или UI. Являются частью документации проекта. UI-приемка
  • 16. Как сейчас: Автотесты (e2e, UI) e2e-тесты, компонентные тесты Unit-тесты UI-приемка Автотесты e2e: интеграционные UI тесты полного цикла. Проверяют взаимодействие всех слоев приложения со внешними системами. Разрабатываются в паре "автотестер-тестер".
  • 17. Как сейчас: Автотесты (e2e, UI) e2e-тесты, компонентные тесты Unit-тесты UI-приемка Автотесты UI: компонентные тест- кейсы на front, которые проверяют UI с точки зрения конечного пользователя. Исполняются на мокированном API. Разрабатываются в паре "автотестер-тестер".
  • 18. Как сейчас: Автотесты (e2e, UI) e2e-тесты, компонентные тесты Unit-тесты UI-приемка UI приемка: ручное тестирование изменения артефакта, который в рамках новой версии был изменен. Проводится тестировщиком и имеет жесткое ограничение по времени. 
  • 19. Идеальный тестировщик, кто он? Какие люди нам нужны для достижения цели?
  • 20. Супертестировщик – это… • Тестировщик немножко программист: – Обладает навыками программирования на Java или на JS; – Понимает алгоритмы на начальном уровне; • Тестировщик немножко аналитик: – Знает архитектуру тестируемого приложения; – Не тестирует «черный ящик» и может залезть в код; – Осуществляет приемочное тестирование; • Тестировщик крутой QA engineer: – Владеет техниками тест-дизайна; – Умеет проектировать тестовую модель с точки зрения используемой пирамиды; – Пишет/проектирует модульные тесты;
  • 21. Нужны крутые тестровщики • Подбор людей с экспертизой • Обучение тестировщиков • На каждую проектную команду 0.5 автотестера • Коммуникации • Организация и развитие community сообщества внутри Альфа Лабы; • Выращивание собственных клонов =)
  • 22. Визуализация качества продукта для команды: • SonarQube и Zephyr автоматически проверяют code coverage и test coverage (SonarQube контролирует SLA качества кода для проекта) • Визуализация качества продукта с помощью дашбордов • (Визуализировано состояние качества кода по всему проекту) • Мониторинг производительности API • Мониторинг производительности Front
  • 23. Функциональное тестирование (автотесты + ручное) 80% - автотесты 20 % - ручное тестирование
  • 24. Ручное тестирование • Тестировщик осуществляет руками только приемочное тестирование • Тестировщик тестирует каждую стабильную версию • Тестировщик ревьюит юнит-тесты • На каждую проектную команду 0.5 автотестера • Подготавливаем смоук-сеты для команды (автотесты+ручные тесты) • Избавляемся от «балласта» /Не делаем лишнюю работу • Коммуникации
  • 25. Specification of Example: API: Аналитик с тестировщиком генерируют два артефакта для проекта: 1. UML диаграмма. Используем для этого фреймворк, например PluntUML. Диаграмма находится в репозитории проекта; 2. Test-case в нотации BDD в репозитории проекта - каркас для юнит-тестов. Парная разработка с тестировщиком; Во время сборки билда генерируется html-документ в artifactory, как документация к релизу; UI: Проектирование тест-кейсов происходит на user-story: 1. Тестировщик с разработчиком автотестов в паре для  user-story описывает все возможные случаи в BDD сразу в коде проекта автотестов; 2. В тест-кейсах для автотестов всегда точное отражение того, какими функциональными требованиями обладает US;
  • 26. В итоге - чудо: • Документация для проекта хранится в коде: • Документация версионируется; • Документация актуальная, потому что тестировщики и аналитики будут вынуждены поддерживать её в актуальном состоянии, иначе автотесты будут «ломаться»; • Визуализация тестового покрытия (test coverege); • Сбор статистики и метрик по тестированию и качества проекта;
  • 28. Зачем мы это делаем? • Тестируем требования • Проектируем тестовую модель • Приоретизируем и категоризируем тест-кейсы
  • 29. Test-case как документация проекта Зачем качественно проектировать тестовую модель и гарантировать тестовое покрытие 100% ?
  • 32. Автоматизация тестирования: • Внедрение TDD • Разработчики пишут юнит-тесты на API, UI также и на legacy системы • Автотесты как инструмент автоматического контроля качества при pull request • Разработчики автотестов разрабатывают интеграционные и UI автотесты с отставанием в один спринт • Регрессионное тестирование 100% автоматизировано • Инфраструктура для автотестов позволяет делать любой регресс за 30 минут
  • 34. Тесты на API, как документация к коду
  • 38. Метрики по тестированию Как мы измеряем, что достигли цели? В каждом проекте для оценки качества должно использоваться не менее 5 различных метрик.
  • 39. Как померить качество? … или как мы гарантируем себе, что в погоне за быстрым деплоем мы не ухудшаем качество продукта?
  • 40. Метрики качества • % автоматизации тестового покрытия (e2e UI, unit тесты) • Test coverage • Частота проведения регрессии • Качество исправления дефектов • Дефекты, обнаруженные в продакшне • Code coverege
  • 41. $: есть ли выгода? … метрики, которые мы используем для понимания выгодно ли то, что мы делаем для Бизнеса.
  • 42. Метрики “Цена/Время” • Окно автоматизации тестирования • Окна анализа результатов тестирования • Время на создание автоматизированных тестов • Время на поддержку автоматизированных тестов • Окно тестирования =< 30 мин.
  • 44. Инструменты и технологии • Selenium Webdriver, Selenium Grid, Jbehave (BDD), Java, Serenity, Junit, Galen Framework, Ansible, Docker, Mesos+marathon, Azure Pack, Jenkins 2.0 Что хотим попробовать: • Selenide, WebdriverIO, Allure
  • 45. Целевая схема инфраструктуры для автотестов …или как выжать максимум пользы от того что имеем.
  • 46. git Mesos Slave Mesos Slave Mesos Slave Mesos Slave CI Pipeline CI Autotests CLI Number Of Containers CLI Create Selenium Grid Repo Autotests projects Repo Docker Images Mesos master marathon REST API Кластер c произвольным количеством VM c различными физ. характеристиками и в различных VLAN, ОС: Centos 7.2 Инфраструктурное ПО: • ansible • docker • zookeeper • mesos • marathon
  • 47. Pipeline single job autotests Selenium chrome node Selenium firefox node Selenium chrome node Selenium firefox node Jenkins: Job1 cli Number Of Containers cli Create Selenium Grid Selenium Hub Maven, JDK Selenium Grid Mesos master marathon REST API Hub, node запущены в docker- контейнерах cli Delete Selenium Grid
  • 48. Pipeline CLI Number of Containers git Jenkins: Job1 CLI Number Of Containers Repo Autotests projects Входные параметры: • Наименование проекта (git repo) • Max время прогона автотестов - 30 мин • Наименования docker images (необязательно) 1. Подсчитывает количество .story файлов или test-сетов в проекте 2. Исключает skipped тест-ы 3. Считает по формуле, какое количество контейнеров-nodes необходимо поднять в selenium grid 4. Возвращает целочисленное значение
  • 49. Целевая схема нагрузочного тестирования Продукт должен быть не только без багов, но и быстро работать
  • 50. 1. Разрабатываем централизованное хранилище моков, которое переиспользуется разработчиками, тестировщиками для автотестирования и нагрузочного тестирования. 2. Встраиваем запуск нагрузочного тестирования в Pipeliene проекта. Нагрузочное тестирование запускается в момент запуска регрессионных автотестов, после установки приложения на стенд. 3. Автоматизируем анализ результатов автотестов на основании предустановленного SLA. 4. Снимает метрики: скорость загрузки страницы и время отклика REST- сервиса (мидловая часть).
  • 52. Артефакт доставить до боя мы можем даже быстрее, чем за 3 часа
  • 53. И напоследок: • Доставлять артефакты до клиента за 3 часа не так уж и сложно ;-) • “Наполеоновские” планы должны учитывать то, что devops - это еще история про людей • Вы больше времени потратите на выстраивание коммуникаций внутри команды, чем на саму техническую реализацию • Вы больше усилий потратите на привитие культуры, чем на изучение какого-то нового инструментария