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

Post on 12-Jun-2015

11.677 Views

Category:

Education

1 Downloads

Preview:

Click to see full reader

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

𝑛

𝑉 𝑖≈𝑉𝑛

Сложность:

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

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

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

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

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

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)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Игорь Хролi_khrol@wargaming.net / khroliz@gmail.comhttp://ru.khroliz.com

top related