Dmitriy Kovalenko: Minimization of manual QA

19
или как получить максимальное качество с минимальными усилиями Минимизация мануального тестирования

Transcript of Dmitriy Kovalenko: Minimization of manual QA

Page 1: Dmitriy Kovalenko: Minimization of manual QA

или как получить максимальное качество с минимальными усилиями

Минимизация мануального тестирования

Page 2: Dmitriy Kovalenko: Minimization of manual QA

Вопросы на которые ответит выступление:

1. Как минимизировать ручную работу без потери качества?

2. Как реализовать трудно автоматизируемые сценарии?

3. Чем в итоге заниматься мануальный тестировщик?

4. Какой profit?

Page 3: Dmitriy Kovalenko: Minimization of manual QA

Зачем уменьшать количестов ручного тестирования?

Для того чтобы:

1. Сократить цикл тестирования релиза

2. Увеличить колличество свободных рук для Progression тестирования

3. Исключить человеческий фактор

4. Избежать “замыливания взгляда” при многократном регрессионном тестировании

Page 4: Dmitriy Kovalenko: Minimization of manual QA

Два слона, на которых основано уменьшение ручного тестирования:

Подготовка автотестов еще до финального тестирования версии1 2

Практически полное покрытие функциональности автотестами (E2E + Integration automation)

Page 5: Dmitriy Kovalenko: Minimization of manual QA

Manual QA sprint

Планирование

Разработка продукта

Progression тестирование

Ознакомление с документацией

Создание тест плана Сценарии для Integration тестовCценарии для E2E автоматизацииСценарии для мануальных тестов

Релиз кандидат

Выполнение progression тестовЗаведение баговСоздание отчета

Regressionтестирование

Анализ результатов автотестов Верификация багов

QA

Page 6: Dmitriy Kovalenko: Minimization of manual QA

E2E automation sprint

Планирование

Разработка продукта

Прогрессивное Тестирование

Ознакомление с документацией

Проработка и оценка тестовых сценариевСоздание логики автотестов

Релиз кандидат

Добавление GUI селекторов в тест и отладка теста

Регрессивное Тестирование

Запуск готовых тестов!QA

Page 7: Dmitriy Kovalenko: Minimization of manual QA

Что такое Integration тесты?

1. Под интеграционными тестами имеется виду не классические тесты на проверку взаимодействия различных частей системы между собой, а BDD фреймворк (Behavior-Driven Development — Разработка на Основе Поведений) для тестирования JavaScript кода

2. Интеграционное тестирование позволяет выполнять тестовые сценарии, через выполнение команд на языке разработчика.

3. Они являются промежуточным звеном между Unit и E2E тестами.

4. В нашем случае используется JasmineJS фреймворк для интеграционных тестов

Page 8: Dmitriy Kovalenko: Minimization of manual QA

Особенности Integration тестов

1. Являются неотрывной частью процесса разработки2. Разрабатаваются паралельно с основным функционалом3. В зависимости от функционала и сложности могут писатсья автоматизаторами4. Заменяют большое количество E2E тестов5. Покрывают ту функциональность которую нет возможности (рациональности) покрыть E2E тестами

Page 9: Dmitriy Kovalenko: Minimization of manual QA

Чем отличаются Integration тесты, от Unit тестов?

Integration тесты E2E тесты

Тестирование GUI Не используется используется

Применение Клиент Клиент + сервер

Область тестирования Один фрейм много фреймов + БД

Используется Developer/Automation QA Automation QA

Скорость Очень быстрая Средняя

Модульного тестирования функциональности

используется нет

Язык Тот же что и основной код (напр. JavaScipt)

Любой высокооуровневый (напр. Java/Python)

Платформа JasmineJS Selenium

Page 10: Dmitriy Kovalenko: Minimization of manual QA

Классический QA Спринт

Планирование

Создание Тест кейсов

Прием билда

Running testcases/ bug

reporting

Bug verification

Автоматизация

Отчет

Page 11: Dmitriy Kovalenko: Minimization of manual QA

Спринт с оптимизированной автоматизацией

Создание Tест плана

E2E automation(Selenium)

Создание manual Тест кейсов

Integration automation

Запуск автоматизации

Bug verification

Отчет

Прохождение тест-кейсов и

анализ автоматизации

Page 12: Dmitriy Kovalenko: Minimization of manual QA

Многопоточная разработка и тестирование

Цикл 0 Анализ документации и планирование, проработка стратегии и пр.

Developer QA automation Manual QA

Разработка Создание тест плана

Создание логики автотестов

Цикл 1

Цикл 2Создание прогрешен тест кейсов

Цикл 3 BugFix

Cоздание Integration тестов

Отладка и запуск автотестов

Выполнение тестов

BugFixВерификация

багов

Цикл nЗапуск, анализ автотестов

...

Page 13: Dmitriy Kovalenko: Minimization of manual QA

Classic Test sprint

Regression cycle

Progression cycle

Release

Стандартное время

до недели

Automated Test sprint

Progression cycle

Release

Automationcycle

4 - 8 рабочих часов

стандартное время на тестирование - свободные руки

Page 14: Dmitriy Kovalenko: Minimization of manual QA

Задача QA эксперта:

- Создание тест плана, которым будут руководствоваться все команды - Проработка тестовых сценариев, которые покроют весь функционал - Разделение тестовых сценариев для E2E и integration тестов- Закрепление написания автотестов за разными командами и включить их в процесс разработки продукта- Создание тест кейсов для мануального тестирования (все, что останется не покрытым)- Создание тесткейсов для приемочного тестирования- Дополнительные средства верификации (Нагрузочное тестирование, кросс-платформенное, безопастность и пр. )

Page 15: Dmitriy Kovalenko: Minimization of manual QA

- Создать логику тестов еще до выпуска первого релиз кандидата по usecases- Добавить селекторы в автотесты сразу после релиза- Отладить автотесты- Завести баги найденные при автоматизации- Запустить их во время регрессионного цикла- Модифицировать/поддерживать тесты

Задачи E2E Automation QA:

Page 16: Dmitriy Kovalenko: Minimization of manual QA

Задачи разработчика:

- Написать integration тесты по usecases созданным тест менеджером- Модифицировать/поддерживать тесты- Дать отчет по прохождению integration тестов- Пофиксить баги и выпустить релиз

Page 17: Dmitriy Kovalenko: Minimization of manual QA

Задачи manual QA:

- Ознакомится с тест планом и спецификацией - Выполнить тест кейсы для прогрессивного тестирования- Завести баги / верифицировать баги- Проанализировать результаты E2E автотестов- Создать отчет версии

Page 18: Dmitriy Kovalenko: Minimization of manual QA

Какой Profit в результате?

- Значительная экономия времени при финальном регресионном тестировании - Улучшения качества кода- Минимизация рисков- Отсутвие ручного регресивного тестирования при запуске HotFix- Оптимизация рабочего процесса автотестировщиков- Максимальное покрытие проекта автотестами

Page 19: Dmitriy Kovalenko: Minimization of manual QA

Спасибо за внимание!