Автоматизация тестирования: отбрасываем лишнее и...

Post on 16-Nov-2014

928 Views

Category:

Education

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

Доклад Игоря Хрола на SQA Days-15. 18-19 апреля, 2014, Москва. www.sqadays.com

TRANSCRIPT

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

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

http://www.khroliz.com

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

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

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

Всё плохо

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

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

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

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

делать

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

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

разработке

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

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

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

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

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

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

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

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

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

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

делать

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

разработке

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

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

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

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

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

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

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

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

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

5 8 2 1 10

5×8×2×1×10=800

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

𝑉 1 𝑉 2 𝑉 3 𝑉 4 𝑉 5

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

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

𝑉 1×𝑉 2×…×𝑉𝑛

𝑉 𝑛

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

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

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

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

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

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

Срезаем углы

1 1 1 1 10

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

Срезаем углы

1 1 1 1 10

10 vs 19

Срезаем углы

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

1 1 1 1 10

10 vs 19

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

UI

API

Unit Tests

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

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

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

Начало...

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

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

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

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

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

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

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

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

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

Браузер

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

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

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

База данных

База данных

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

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

Web-сервисы

Web-сервисы

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

Application server

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

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

Siebel Java Data Bean

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

любом уровне

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

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

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

автотестов

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

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

top related