cовременный контроль качества: давай сделаем это...
TRANSCRIPT
Современный контроль качества: давай сделаем это по-быстрому…
Игорь Хролhttp://www.wargaming.net
http://www.khroliz.com
О себе• Игорь Хрол• БГУ ФПМИ• QA Automation Team Lead в
Wargaming• Восемь лет в отрасли• Десятки проектов• Инженер, тренер, консультант,
менеджер, докладчик• Мой блог: http://ru.khroliz.com
О чём говорим?
О чём говорим?
• Что такое «контроль качества» сегодня?• Почему это важно-сложно-интересно-…?
Основано на личном мироощущении
Начнём с проблем…
Начнём с проблем…
Скопировать идею очень легко
Копирование идей и их реализаций
Копирование идей и их реализаций
А при чём здесь тестирование?
Классическая модель разработки
Что в ней плохого?
Продукт уже
реализован
Это еще полбеды…
Что происходит на длительных проектах?
Нельзя сделать всё «за раз»
Требования меняются вместе с окружающим
миром
Будем делать по чуть-чуть!
• Итерация 1: функциональность #1• Итерация 2: функциональность #2• Итерация 3: функциональность #3
Требования на следующую итерацию
корректируются
А что в тестировании?
• Итерация 1: функциональность #1• Итерация 2: функциональность #2
функциональность #1• Итерация 3: функциональность #3
функциональность #2функциональность #1
Тестирование тормозит новые версии
Каждый раз всё больше и больше…
«Дорогое» тестирование не позволяет делать короткие итерации
Регрессионная спираль смерти
Вариант 1
Нанять еще людей
Проблемы «Варианта 1»
• Требуется больше организационных усилий• Не решает проблему в долгосрочной
перспективе
На этом можно зарабатывать
Вариант 2
Автоматизация тестирования
Вместе с кодом продукта пишем код, который тестирует продукт (автотесты)
Как ведут себя роботы?
Делают работу по тестированию, но самостоятельно
Какие есть проблемы у роботов?
Немного о другом
1 2 3 4 50
1
2
3
4
5
6
7
8
9
Стоимость дефекта
Время
Деньги
Выводы
• Чем раньше нашли дефект, тем лучше• Роботы-автотесты должны работать быстро
Как выглядят современные системы?
Как выглядят современные системы?
Модель задачи по тестированию
5 8 2 1 10
5×8×2×1×10=800
Модель задачи по тестированию
𝑉 1 𝑉 2 𝑉 3 𝑉 4 𝑉 5
𝑉 1×𝑉 2×𝑉 3×𝑉 4×𝑉 5
Сложность тестирования
𝑉 1 𝑉 2 𝑉 3 … 𝑉 𝑛
∏𝑖=1
𝑛
𝑉 𝑖≈𝑉𝑛
Сложность:
Экспоненциальная сложность
http://ru.wikipedia.org/wiki/Экспоненциальный_рост
Чёрный ящик = Экспонента
Автоматизация тестирования - борьба с экспонентой
• Параллельные запуски не помогают– – количество потоков– Сложность:
Разделяй и властвуй
Модель задачи по тестированию
5 8 2 1 10
5×8×2×1×10=8005+8+2+1+10=2626+4+1=31
Модель задачи по тестированию
5 8 2 1 10
800 vs 31
Модель задачи по тестированию
𝑉 1 𝑉 2 𝑉 3 𝑉 4 𝑉 5
𝑉 1+𝑉 2+𝑉 3+𝑉 4+𝑉 5+5
Сложность тестирования
𝑉 1 𝑉 2 𝑉 3 … 𝑉 𝑛
∑𝑖=1
𝑛
𝑉 𝑖+𝑛≈𝑉 ×𝑛+𝑛
Сложность:
Сложность тестирования
𝑉 1 𝑉 2 𝑉 3 … 𝑉 𝑛
vs
Пирамида автоматизации
UI
API
Unit Tests
Вариант 3
Автоматическое тестирование
1. Постепенный контроль качества на всех этапах разработки
2. Декомпозиция сложных систем на составляющие и проверка их по отдельности
3. Разработка через тестирование (TDD)
Контроль качества на всех этапах
Декомпозиция
Разработка через тестирование
Разработка через тестирование
Разработка через тестирование
• Автотесты лежат на «критическом пути» выпуска продукта
• Новая функциональность не выпускается без автотестов
«У вас нет времени писать автотесты? А у нас нет времени тестировать одно и то же два раза»
Подводя итоги…
Современный контроль качества
• Максимально проводится автоматическими средствами
• Требуется на всех уровнях архитектуры системы
• Обеспечивается глубоким пониманием технологий и бизнес-требований
Спасибо!Вопросы?
Игорь Хрол[email protected] / [email protected]://ru.khroliz.com