2. О себе
• Игорь Хрол
• QA Automation Team Lead в
Wargaming.NET
• 9 лет в отрасли
• Инженер, архитектор,
менеджер, консультант, тренер
• Докладчик на SQA Days 12 и 15
• www.khroliz.com
3. О чём говорим сегодня?
• QA – инженерная специальность
продолжение к SQA Days 15
http://sqadays.com/ru/talk/19552
• Пример Wargaming’a в доказательство
реализуемости на практике
4.
5. О чём говорим сегодня?
1. Проблемы в конце 2013
2. Организационные изменения
3. Технологические изменения
4. «Пирамидальные» подходы
5. Стало ли лучше?
7. Проблемы в конце 2013
Отделённость автоматизации тестирования:
• Организационно (отдельная команда)
• Технологически (тесты на Java, а 80%
разработки – на Python)
Много различных подходов
Слабое межофисное взаимодействие
8. Проблемы в конце 2013
Типичные проблемы с автотестами:
• Долгие
• Нестабильные
• Низкое покрытие
• Мало используются
12. …и получала она на вход задачи
…а отдавала в статусе Resolved
JIRA-1
Created
JIRA-2
Created
JIRA-3
Created
JIRA-1
Resolved
JIRA-2
Resolved
JIRA-3
Resolved
20. Орден: результаты
• Community по автоматизации тестирования
внутри Wargaming
• Включает всех, кто пишет автотесты
• Обмен опытом большого числа людей из
разных офисов
23. Переход с Java на Python
• Тестирование ближе к разработке
• Изучение автотестов толкает к изучению
тестируемого приложения
• Обмен знаниями с другими
27. Как обычно выглядит процесс
написания автотестов…
«Ручной»
QA Тест Кейс Auto QA
Тест
Скрипт
28. Test Case vs Test Script
Step 1: login to application def login_to_application():
…
Step 2: verify user is logged in def verify_user_is_logged_in():
…
Step 3: do some important thing def do_some_important_thing():
…
Как-то оно похоже..
Надо писать два раза…
И исправлять в двух местах…
29. Как решить?
А давайте генерировать тест-кейс из кода!
«Ручной»
QA
Тест Скрипт Auto QA
Реализация
Шагов
30. Плюсы подхода
• Нет дублирования работы
• Повышается технический уровень QA
• Нет новых «языков» вроде BDD-style,
Keyword Driven и прочего…
31.
32. Внедрение автотестов в
массы: обучение
• Python
– http://www.codecademy.com/en/tracks/python
– Grail
– Код приложения
• Автоматизация тестирования
– Внутренняя программа обучения
33. Внедрение автотестов в массы
• Интеграция с TestRail
– Автотесты выглядят, как ручные
– Одна кнопка для запуска
38. Разделяй и властвуй
Задача
Подзадача Подзадача
Решение
подзадачи
Решение
подзадачи
Решение
подзадачи
Решение
подзадачи
Подзадача
Задача
Разделяем
РазделяемРазделяем
Соединяем Соединяем
Соединяем
Подзадача
48. Фокус на компонентах без UI
• Начинаем с бизнес-логики
• По максимуму проверяем через API
• End-to-end сценарии и пользовательский
интерфейс можно проверять и руками
49. Что же дальше?
• Знаем Python
• Знаем программные интерфейсы
Логичный следующий шаг –
читать код проектов
50. Белый ящик
• Незаменимо для проектов с недостатком
документации
• Выявляет спектр новых проблем
• Позволяет не писать лишние тесты
• При необходимости можно помогать в
разработке
51. Запуск тестов по комитам
• Работает, если тесты быстрые
– До 5-10 минут
• …и стабильные
• Максимальная отдача от автоматических
тестов
54. Текущие успехи
Стабильные и быстрые тесты
– В идеале до 5-10 мин
– Запуск по «комитам»
– Красные тесты исправляются в процессе
разработки функциональности
– Быстро находятся дефекты
55. Текущие успехи
Проекты в состоянии выпускать новые версии
• без ручного тестирования
• в течение дня