Qa Automation - отбрасываем лишнее и тестируем суть

62
QA Automation: отбрасываем лишнее и тестируем суть Игорь Хрол http://www.wargaming.net http://www.khroliz.com

description

Мой доклад на SQA Days 15

Transcript of Qa Automation - отбрасываем лишнее и тестируем суть

Page 1: Qa Automation - отбрасываем лишнее и тестируем суть

QA Automation: отбрасываем лишнее и тестируем суть

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

http://www.khroliz.com

Page 2: Qa Automation - отбрасываем лишнее и тестируем суть

О себе• Игорь Хрол• QA Automation Team Lead в

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

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

Page 3: Qa Automation - отбрасываем лишнее и тестируем суть

Всё плохо

Page 4: Qa Automation - отбрасываем лишнее и тестируем суть

Замкнутый круг

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

Неопытные люди

Сложную работу некому

делать

Работа несложная

Платят меньше, чем в

разработке

Page 5: Qa Automation - отбрасываем лишнее и тестируем суть

В результате...

• Если в тестирование попадают талантивые люди, то случайно

http://artkoshelev.github.io/posts/random-tester/

• Но после этого всё равно уходят в разработку

• Тестирование считается простой и неинтересной IT-профессией

• Качество тестирования оставляет желать лучшего

Page 6: Qa Automation - отбрасываем лишнее и тестируем суть
Page 7: Qa Automation - отбрасываем лишнее и тестируем суть

Вспомним, кто мы…

Page 8: Qa Automation - отбрасываем лишнее и тестируем суть

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

Неопытные люди

Сложную работу некому

делать

Платят меньше, чем в

разработке

Работа несложная

Page 9: Qa Automation - отбрасываем лишнее и тестируем суть

Как корабль назовёшь...

Page 10: Qa Automation - отбрасываем лишнее и тестируем суть

Как корабль назовёшь...

• «Если бы я спросил людей, чего они хотят, они бы попросили более быструю лошадь.» Генри Форд

• Доклад от @adzynia: http://goo.gl/W2tCj6

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

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

• Эффективное автоматическое тестирование

Page 11: Qa Automation - отбрасываем лишнее и тестируем суть

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

5 8 2 1 10

5×8×2×1×10=800

Page 12: Qa Automation - отбрасываем лишнее и тестируем суть

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

𝑉 1 𝑉 2 𝑉 3 𝑉 4 𝑉 5

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

Page 13: Qa Automation - отбрасываем лишнее и тестируем суть

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

𝑉 1×𝑉 2×…×𝑉𝑛

𝑉 𝑛

Page 15: Qa Automation - отбрасываем лишнее и тестируем суть

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

Page 16: Qa Automation - отбрасываем лишнее и тестируем суть

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

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

Page 17: Qa Automation - отбрасываем лишнее и тестируем суть
Page 18: Qa Automation - отбрасываем лишнее и тестируем суть

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

Page 19: Qa Automation - отбрасываем лишнее и тестируем суть

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

5 8 2 1 10

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

Page 20: Qa Automation - отбрасываем лишнее и тестируем суть

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

5 8 2 1 10

800 vs 31

Page 21: Qa Automation - отбрасываем лишнее и тестируем суть

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

𝑉 1 𝑉 2 𝑉 3 𝑉 4 𝑉 5

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

Page 22: Qa Automation - отбрасываем лишнее и тестируем суть

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

𝑉 1 𝑉 2 𝑉 3 … 𝑉 𝑛

∑𝑖=1

𝑛

𝑉 𝑖+𝑛≈𝑉 ×𝑛+𝑛

Сложность:

Page 23: Qa Automation - отбрасываем лишнее и тестируем суть

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

𝑉 1 𝑉 2 𝑉 3 … 𝑉 𝑛

vs

Page 24: Qa Automation - отбрасываем лишнее и тестируем суть
Page 25: Qa Automation - отбрасываем лишнее и тестируем суть

Срезаем углы

1 1 1 1 10

1×1×1×1×10=101+1+1+1+10=1414+4+1=19

Page 26: Qa Automation - отбрасываем лишнее и тестируем суть

Срезаем углы

1 1 1 1 10

10 vs 19

Page 27: Qa Automation - отбрасываем лишнее и тестируем суть

Срезаем углы

Тестов не только меньше, но они и проще

1 1 1 1 10

10 vs 19

Page 28: Qa Automation - отбрасываем лишнее и тестируем суть

Что-то там говорили о «пирамиде»

UI

API

Unit Tests

Главное – декомпозиция задачи

Page 29: Qa Automation - отбрасываем лишнее и тестируем суть
Page 30: Qa Automation - отбрасываем лишнее и тестируем суть

Проект из жизни

Page 31: Qa Automation - отбрасываем лишнее и тестируем суть

Проект из жизни

Page 32: Qa Automation - отбрасываем лишнее и тестируем суть

Начало...

Page 33: Qa Automation - отбрасываем лишнее и тестируем суть
Page 34: Qa Automation - отбрасываем лишнее и тестируем суть

Ограничение UI-тестов• Долгие• Нестабильные• Задача: оптимизировать предусловия,

которые делаются часами

Page 35: Qa Automation - отбрасываем лишнее и тестируем суть
Page 36: Qa Automation - отбрасываем лишнее и тестируем суть
Page 37: Qa Automation - отбрасываем лишнее и тестируем суть
Page 38: Qa Automation - отбрасываем лишнее и тестируем суть

Отказ от браузера

• Плюсы– Тесты работают быстрее– Нет проблем с синхронизацией– Надёжны– Легко запускаются параллельно

• Минусы– Не видно, как работают– Нет доверия– Выше порог вхождения

Page 39: Qa Automation - отбрасываем лишнее и тестируем суть

Не видно как работаютНет доверия

Page 40: Qa Automation - отбрасываем лишнее и тестируем суть

Структура решения

• Технологии– Java– TestNG– Maven– HttpClient

Page 41: Qa Automation - отбрасываем лишнее и тестируем суть
Page 42: Qa Automation - отбрасываем лишнее и тестируем суть

Возврат к браузеру

Page 43: Qa Automation - отбрасываем лишнее и тестируем суть

Браузер

• Запускается только тогда, когда реально нужен (около 3% сценариев)

• Реиспользуется headless-сессия с безбраузерного взаимодействия

Page 45: Qa Automation - отбрасываем лишнее и тестируем суть

API всё равно лучше!

Page 46: Qa Automation - отбрасываем лишнее и тестируем суть

База данных

Page 47: Qa Automation - отбрасываем лишнее и тестируем суть

База данных

• Самый быстрый способ работы с системой• Лучше туда напрямую не писать– Cпециально выверенные stored procedures

• Хорошо подходит для проверок

Page 48: Qa Automation - отбрасываем лишнее и тестируем суть

Web-сервисы

Page 49: Qa Automation - отбрасываем лишнее и тестируем суть

Web-сервисы

• Взаимодействие с другими системами– Эмуляция внешних запросов– Проверки исходящей инфорации

Page 50: Qa Automation - отбрасываем лишнее и тестируем суть
Page 51: Qa Automation - отбрасываем лишнее и тестируем суть

Application server

Page 52: Qa Automation - отбрасываем лишнее и тестируем суть

Web-server vs App-server• Web:– Вёрстка– Отсылка ответов

• App:– Логика приложения

Page 53: Qa Automation - отбрасываем лишнее и тестируем суть

Siebel Java Data Bean

http://docs.oracle.com/cd/E14004_01/books/OIRef/Customizing_Siebel_Object_Interfaces12.html

Полный програмный интерфейс для создания логики приложения из Java

Page 54: Qa Automation - отбрасываем лишнее и тестируем суть

Правильные оракулы

Задача: протестировать правила

Проблема: ожидаемая вычисленная дата• зависит от календаря• зависит от текущего времени

Page 55: Qa Automation - отбрасываем лишнее и тестируем суть

Правильные оракулы

• Создаём заявку под правило• Отправляем на Siebel дельту и дату• Берём из Siebel’a вычисленную нам дату• Сравниваем с датой на созданной заявке

Page 56: Qa Automation - отбрасываем лишнее и тестируем суть

Тесты производительности

Page 57: Qa Automation - отбрасываем лишнее и тестируем суть

Тесты производительности

• Традиционный подход:– Нужно переписывать скрипты для каждого

билда– Отдельные скрипты

• Jmeter-based:– Реиспользование кода функциональных тестов– Тесты поддерживаются для новых версий

вместе с функциональными тестами

Page 58: Qa Automation - отбрасываем лишнее и тестируем суть
Page 59: Qa Automation - отбрасываем лишнее и тестируем суть
Page 60: Qa Automation - отбрасываем лишнее и тестируем суть

Итоговые результаты

• Быстрые тесты• Предсказуемые результаты• Легко масштабируются• Возможность взаимодействия с Siebel на

любом уровне

Page 61: Qa Automation - отбрасываем лишнее и тестируем суть

Взгляд на тестирование со стороны реализации системы позволяет

• Уменьшить сложность самой задачи тестирования

• Уменьшить сложность и длину сценариев• Увеличить скорость и стабильность работы• Найти новые области применения

автотестов

Page 62: Qa Automation - отбрасываем лишнее и тестируем суть

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

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