Автоматизация тестирования как способ получения...

43
Автоматизация тестирования как способ получения знаний Артем Семенов Align Technology, Inc.

description

SQA Days 11. День 2. Cекция AАртем СеменовAlign Technology, Inc.Москва, Россия

Transcript of Автоматизация тестирования как способ получения...

Page 1: Автоматизация тестирования как способ получения знаний

Автоматизация тестирования как способ получения знанийАртем Семенов

Align Technology, Inc.

Page 2: Автоматизация тестирования как способ получения знаний

Обо мне

Артем Семенов

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

Align Technology, Inc.

[email protected]@gmail.com

2

Page 3: Автоматизация тестирования как способ получения знаний

Предметная область

• Стоматология и ортодонтия

3

Page 4: Автоматизация тестирования как способ получения знаний

Предметная область

• Стоматология и ортодонтия

4

Page 5: Автоматизация тестирования как способ получения знаний

Предметная область

• Стоматология и ортодонтия

5

Page 6: Автоматизация тестирования как способ получения знаний

Обычная автоматизация

- Опыт работы с системой- Документация- Эксперт

Знание о системе

Автоматизация

6

Page 7: Автоматизация тестирования как способ получения знаний

У нас

• Приобретена компания

7

Page 8: Автоматизация тестирования как способ получения знаний

Ситуация

• Все, что мы знаем:

- Тестировщики тратят > 50% времени на подготовку данных

- Частые проблемы с конфигурацией тестовых стендов

- Отсутствует автоматизация тестирования

Нужна автоматизация

8

Page 9: Автоматизация тестирования как способ получения знаний

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

9

Page 10: Автоматизация тестирования как способ получения знаний

Начало

© 2012 Align Technology, Inc. All rights reserved10

Page 11: Автоматизация тестирования как способ получения знаний

Сложная система

11

Page 12: Автоматизация тестирования как способ получения знаний

План

• Автоматизируем прохождение E2E

• Используем для подготовки данных

-Получим знания

12

Page 13: Автоматизация тестирования как способ получения знаний

Научный подход

13

Page 14: Автоматизация тестирования как способ получения знаний

Начальные знания

• Документация

- Корректная, полная, непротиворечивая?

- Нет

• Имеющаяся информация

- Сложно получаема

- Вводит в заблуждение

• Изучим систему сами

- Составим общее описание системы

- Опишем прохождение E2E

14

Page 15: Автоматизация тестирования как способ получения знаний

Целесообразность автоматизации

• время тестировщика (опрос)

• сложность автоматизации (прототип)

• проблемные области (опрос)

• экспертное мнение (опрос)

• наш опыт (интуиция)

Какие знания вы используете для оценки целесообразности автоматизации тестирования?

Какие знания вы используете для оценки целесообразности автоматизации тестирования?

15

Page 16: Автоматизация тестирования как способ получения знаний

Приоритезация задач автоматизации

• Ожидаемый профит

• Сложность автоматизации и поддержки

- Прототип шагов E2E на HP QTP

- Выявление проблем автоматизируемости

• «Тестовая» коммуникация

- Как быстро тестировщики и разработчики смогут реагировать на

наши запросы

• Экспертное мнение

- Не всегда отражает реальное состояние дел

16

Page 17: Автоматизация тестирования как способ получения знаний

Решение проблем автоматизируемости

• По результатам работы над прототипом

- Wishlist для девелоперов с 3 приоритетами

- Обговорены сроки для каждого приоритета

- Пока ждем результат - workarounds

• Новые тулы для нашей команды

- Auto IT X

- Selenium Webdriver

Бесконечная горизонтальная масштабируемость

17

Page 18: Автоматизация тестирования как способ получения знаний

Автоматизируем

• Подготовка данных через E2E

• Оценка работоспособности тестовых стендов

• Smoke тест для тестовых стендов

•Почему

• Снизим затраты на подготовку данных

• Комплексная работа с системой

• Быстрая имплементация

18

Page 19: Автоматизация тестирования как способ получения знаний

Скрипты - требования

• Быстро разрабатываемые

19

• Гибкие

• Расширяемые

• Интегрированные

Page 20: Автоматизация тестирования как способ получения знаний

<coding>

20

Page 21: Автоматизация тестирования как способ получения знаний

Инфаструктура «по быстрому»

•Кластер разнородных машин

21

Page 22: Автоматизация тестирования как способ получения знаний

Кластер разнородных машин

• Машины

- Автоконфигурация

- Доступ по VNC

- Централизованное обновление скриптов - Git

- Отдельные микрокластеры для каждого тестового стенда

22

Page 23: Автоматизация тестирования как способ получения знаний

Особенности решения

•Данные передаются через файлы- Data driven

•Синхронный и асинхронный вызов машин- Синхронный вызов – Psexec- Асихронный – Очередь задач с приоретизацией

•Отчет о выполнении формируется Manager машиной

- Каждая машина пишет свой лог- Manager агрегирует логи- Email отчет по выполнении задачи- Manager тоже выполняет задачи

23

Page 24: Автоматизация тестирования как способ получения знаний

Логгер

•Единый формат лога для python, vbs

•Данные для отчетов

•Статистическая информация в DB

•Скриншоты (используем pil)

24

Page 25: Автоматизация тестирования как способ получения знаний

25-й слайд

Отправь резюме : [email protected]

© 2012 Align Technology, Inc. All rights reserved25

Page 26: Автоматизация тестирования как способ получения знаний

Логгер

•Email отчеты- Фильтры- Скриншоты- Вложенные файлы

- Понятны обычному пользователю

26

Page 27: Автоматизация тестирования как способ получения знаний

Интерфейс для знаний

• Пользователю доступны- Web UI- Отчеты- Документация

Это обобщенные знания!

Know how to do → Know what to do

27

Page 28: Автоматизация тестирования как способ получения знаний

Результаты – что получилось

• Автоматизация подготовки данных- Полная параметризация- Экономит время тестировщиков

• Непрерывные автоматические отчеты о состоянии тестового стенда

- В любой момент времени мы знаем, можно ли проводить тестирование

• Автоматизированные интеграционные тесты• Приемочные• Регрессионные• Запуск в один клик

28

Page 29: Автоматизация тестирования как способ получения знаний

Побочные эффекты

• Автоконфигурация машин для ручного тестирования• Мини фреймворк

• Узнали, как снизить количество машин необходимых для тестирования

• С 40 до 6

• Служебные инструменты для ручных тестировщиков

• Узнали, чего не хватает• Пользователям• Нашему репозиторию знаний

29

Page 30: Автоматизация тестирования как способ получения знаний

Результаты – использование

• Двойной чистый профит в течение 3 месяцев

• Поддержка финансового UAT

• Ручное прохождение E2E только для валидации обнаруженных дефектов

• Знания о проблемах тестовых стендов и способах их решения

• Задокументированные знания о системе

30

Page 31: Автоматизация тестирования как способ получения знаний

Получение знаний - результаты

• Получены знания о тестовой системе в процессе автоматизации тестирования

• Наши знания широко используются в компании - от разработчиков до менеджмента

• Знания постоянно верифицируются и дополняются

•Мы узнали, что делать дальшеМы узнали, что делать дальше

31

Page 32: Автоматизация тестирования как способ получения знаний

Что можно улучшить?

• Использовать BDD фреймворк- Позволить сблизить тесты и документацию- Не всегда хорошо на начальном этапе

• Связать результаты выполнения скрипта с документацией

- Если скрипт перестал работать – помечаем вики страницу как потенциально не актуальную

- Не разрешать коммитить скрипты без документации

• Тестирование через сервисы/api

• Автоматизировать конфигурацию серверной части системы

32

Page 33: Автоматизация тестирования как способ получения знаний

Автоматизация конфигурации серверной части

• Скрипты часто фейлятся

• Почему? - Неудачное развертование новой версии на сервер- Неверная server side конфигурация- Хаотичное изменение параметров системы- Недостаточно знаний о системе

• Решение- Автоматизируем деплойменты и конфигурацию- Централизованное управление параметрами системы- Мониторинг

33

Page 34: Автоматизация тестирования как способ получения знаний

Научный подход к получению знаний через автоматизацию

тестирования (П34АТ©)

© 2012 Align Technology, Inc. All rights reserved34

Page 35: Автоматизация тестирования как способ получения знаний

П34АТ©

Верификация знаний

Верификация знаний

Получение знаний

Получение знаний

Разработка скриптов

Разработка скриптов

НаблюдениеНаблюдение

ДокументацияДокументация

35

Распространение

Page 36: Автоматизация тестирования как способ получения знаний

Итеративное использование П34АТ

• Знаем контрольные точки- Не все

• Знаем о существовании переходов между ними

36

Этап 1 Этап 1 Этап n Этап n

Этап 2 Этап 2

Этап 3 Этап 3

Этап 4 Этап 4

Этап n-1 Этап n-1

Page 37: Автоматизация тестирования как способ получения знаний

Преимущества использования П34АТ©

© 2012 Align Technology, Inc. All rights reserved37

Page 38: Автоматизация тестирования как способ получения знаний

Преимущества П34АТ©

• Хорошо написанные скрипты

- Способ формального описания ожидаемого

поведения системы

- Самоверифицирующиеся

- Существенно снижают влияние человеческого фактора

• Оставляет историю в виде логов и статистики

• Создают высокоуровневый интерфейс для знаний

38

Page 39: Автоматизация тестирования как способ получения знаний

Верификация знаний

• Используем написанные скрипты- Скрипт автоматизации – форма храния знаний о системе

• Если скрипт успешно выполнился – знания корректны

• Больше скриптов – больше знаний- Не забываем негативные сценарии- Workarounds так же могут хранить знания о системе

• Непрерывная бесплатная верификация• Ежедневные автоматические запуски• Случайная выборка E2E сценариев

39

Page 40: Автоматизация тестирования как способ получения знаний

Верификация знаний

• А если скрипт выполнился неуспешно?- И это не проблема программирования- И это не проблема тестового стенда

• Наши знания не прошли проверку- Дополним их на следующей итерации

• Каждую итерацию мы узнаем о системе что-то новое- Что мы хотели узнать- О чем мы даже не подозревали- Что мы хотим узнать в будущем

40

Page 41: Автоматизация тестирования как способ получения знаний

Выводы

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

• получения

• хранения

• верификации

• распространения

знаний о системе

41

Page 42: Автоматизация тестирования как способ получения знаний

Контакты

• Артем Семенов

- Skype: SW.Peewee

- E-Mail: [email protected]

42

Page 43: Автоматизация тестирования как способ получения знаний

•Вопросы?

43