cовременный контроль качества: давай сделаем это...

53
Современный контроль качества: давай сделаем это по-быстрому… Игорь Хрол http://www.wargaming.net http://www.khroliz.com

Upload: igor-khrol

Post on 12-Jun-2015

11.676 views

Category:

Education


1 download

TRANSCRIPT

Page 1: Cовременный контроль качества: давай сделаем это по-быстрому

Современный контроль качества: давай сделаем это по-быстрому…

Игорь Хролhttp://www.wargaming.net

http://www.khroliz.com

Page 2: Cовременный контроль качества: давай сделаем это по-быстрому

О себе• Игорь Хрол• БГУ ФПМИ• QA Automation Team Lead в

Wargaming• Восемь лет в отрасли• Десятки проектов• Инженер, тренер, консультант,

менеджер, докладчик• Мой блог: http://ru.khroliz.com

Page 3: Cовременный контроль качества: давай сделаем это по-быстрому

О чём говорим?

Page 4: Cовременный контроль качества: давай сделаем это по-быстрому

О чём говорим?

• Что такое «контроль качества» сегодня?• Почему это важно-сложно-интересно-…?

Основано на личном мироощущении

Page 5: Cовременный контроль качества: давай сделаем это по-быстрому

Начнём с проблем…

Page 6: Cовременный контроль качества: давай сделаем это по-быстрому

Начнём с проблем…

Скопировать идею очень легко

Page 7: Cовременный контроль качества: давай сделаем это по-быстрому

Копирование идей и их реализаций

Page 8: Cовременный контроль качества: давай сделаем это по-быстрому

Копирование идей и их реализаций

Page 9: Cовременный контроль качества: давай сделаем это по-быстрому

А при чём здесь тестирование?

Page 10: Cовременный контроль качества: давай сделаем это по-быстрому

Классическая модель разработки

Page 11: Cовременный контроль качества: давай сделаем это по-быстрому

Что в ней плохого?

Продукт уже

реализован

Page 12: Cовременный контроль качества: давай сделаем это по-быстрому

Это еще полбеды…

Что происходит на длительных проектах?

Page 13: Cовременный контроль качества: давай сделаем это по-быстрому

Нельзя сделать всё «за раз»

Требования меняются вместе с окружающим

миром

Page 14: Cовременный контроль качества: давай сделаем это по-быстрому

Будем делать по чуть-чуть!

• Итерация 1: функциональность #1• Итерация 2: функциональность #2• Итерация 3: функциональность #3

Требования на следующую итерацию

корректируются

Page 15: Cовременный контроль качества: давай сделаем это по-быстрому

А что в тестировании?

• Итерация 1: функциональность #1• Итерация 2: функциональность #2

функциональность #1• Итерация 3: функциональность #3

функциональность #2функциональность #1

Page 16: Cовременный контроль качества: давай сделаем это по-быстрому

Тестирование тормозит новые версии

Каждый раз всё больше и больше…

Page 17: Cовременный контроль качества: давай сделаем это по-быстрому

«Дорогое» тестирование не позволяет делать короткие итерации

Page 18: Cовременный контроль качества: давай сделаем это по-быстрому

Регрессионная спираль смерти

Page 19: Cовременный контроль качества: давай сделаем это по-быстрому
Page 20: Cовременный контроль качества: давай сделаем это по-быстрому

Вариант 1

Нанять еще людей

Page 21: Cовременный контроль качества: давай сделаем это по-быстрому

Проблемы «Варианта 1»

• Требуется больше организационных усилий• Не решает проблему в долгосрочной

перспективе

На этом можно зарабатывать

Page 22: Cовременный контроль качества: давай сделаем это по-быстрому

Вариант 2

Автоматизация тестирования

Вместе с кодом продукта пишем код, который тестирует продукт (автотесты)

Page 23: Cовременный контроль качества: давай сделаем это по-быстрому

Как ведут себя роботы?

Делают работу по тестированию, но самостоятельно

Page 24: Cовременный контроль качества: давай сделаем это по-быстрому

Какие есть проблемы у роботов?

Page 25: Cовременный контроль качества: давай сделаем это по-быстрому

Немного о другом

1 2 3 4 50

1

2

3

4

5

6

7

8

9

Стоимость дефекта

Время

Деньги

Page 26: Cовременный контроль качества: давай сделаем это по-быстрому

Выводы

• Чем раньше нашли дефект, тем лучше• Роботы-автотесты должны работать быстро

Page 27: Cовременный контроль качества: давай сделаем это по-быстрому

Как выглядят современные системы?

Page 28: Cовременный контроль качества: давай сделаем это по-быстрому

Как выглядят современные системы?

Page 29: Cовременный контроль качества: давай сделаем это по-быстрому

Модель задачи по тестированию

5 8 2 1 10

5×8×2×1×10=800

Page 30: Cовременный контроль качества: давай сделаем это по-быстрому

Модель задачи по тестированию

𝑉 1 𝑉 2 𝑉 3 𝑉 4 𝑉 5

𝑉 1×𝑉 2×𝑉 3×𝑉 4×𝑉 5

Page 31: Cовременный контроль качества: давай сделаем это по-быстрому

Сложность тестирования

𝑉 1 𝑉 2 𝑉 3 … 𝑉 𝑛

∏𝑖=1

𝑛

𝑉 𝑖≈𝑉𝑛

Сложность:

Page 33: Cовременный контроль качества: давай сделаем это по-быстрому

Чёрный ящик = Экспонента

Page 34: Cовременный контроль качества: давай сделаем это по-быстрому

Автоматизация тестирования - борьба с экспонентой

• Параллельные запуски не помогают– – количество потоков– Сложность:

Page 35: Cовременный контроль качества: давай сделаем это по-быстрому
Page 36: Cовременный контроль качества: давай сделаем это по-быстрому

Разделяй и властвуй

Page 37: Cовременный контроль качества: давай сделаем это по-быстрому

Модель задачи по тестированию

5 8 2 1 10

5×8×2×1×10=8005+8+2+1+10=2626+4+1=31

Page 38: Cовременный контроль качества: давай сделаем это по-быстрому

Модель задачи по тестированию

5 8 2 1 10

800 vs 31

Page 39: Cовременный контроль качества: давай сделаем это по-быстрому

Модель задачи по тестированию

𝑉 1 𝑉 2 𝑉 3 𝑉 4 𝑉 5

𝑉 1+𝑉 2+𝑉 3+𝑉 4+𝑉 5+5

Page 40: Cовременный контроль качества: давай сделаем это по-быстрому

Сложность тестирования

𝑉 1 𝑉 2 𝑉 3 … 𝑉 𝑛

∑𝑖=1

𝑛

𝑉 𝑖+𝑛≈𝑉 ×𝑛+𝑛

Сложность:

Page 41: Cовременный контроль качества: давай сделаем это по-быстрому

Сложность тестирования

𝑉 1 𝑉 2 𝑉 3 … 𝑉 𝑛

vs

Page 42: Cовременный контроль качества: давай сделаем это по-быстрому
Page 43: Cовременный контроль качества: давай сделаем это по-быстрому

Пирамида автоматизации

UI

API

Unit Tests

Page 44: Cовременный контроль качества: давай сделаем это по-быстрому

Вариант 3

Автоматическое тестирование

1. Постепенный контроль качества на всех этапах разработки

2. Декомпозиция сложных систем на составляющие и проверка их по отдельности

3. Разработка через тестирование (TDD)

Page 45: Cовременный контроль качества: давай сделаем это по-быстрому

Контроль качества на всех этапах

Page 46: Cовременный контроль качества: давай сделаем это по-быстрому
Page 47: Cовременный контроль качества: давай сделаем это по-быстрому

Декомпозиция

Page 48: Cовременный контроль качества: давай сделаем это по-быстрому

Разработка через тестирование

Page 49: Cовременный контроль качества: давай сделаем это по-быстрому

Разработка через тестирование

Page 50: Cовременный контроль качества: давай сделаем это по-быстрому

Разработка через тестирование

• Автотесты лежат на «критическом пути» выпуска продукта

• Новая функциональность не выпускается без автотестов

«У вас нет времени писать автотесты? А у нас нет времени тестировать одно и то же два раза»

Page 51: Cовременный контроль качества: давай сделаем это по-быстрому

Подводя итоги…

Page 52: Cовременный контроль качества: давай сделаем это по-быстрому

Современный контроль качества

• Максимально проводится автоматическими средствами

• Требуется на всех уровнях архитектуры системы

• Обеспечивается глубоким пониманием технологий и бизнес-требований

Page 53: Cовременный контроль качества: давай сделаем это по-быстрому

Спасибо!Вопросы?

Игорь Хрол[email protected] / [email protected]://ru.khroliz.com