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

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

  • Upload
    sqalab

  • View
    1.415

  • Download
    2

Embed Size (px)

DESCRIPTION

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

Citation preview

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