-
Автоматизация. Начало
-
Причина автоматизации
- Регрессионное тестирование занимало высокий % времени
- Индикатор состояния работоспособности проекта на настоящий момент
-
Детальное изучение структуры/архитектуры проекта
- SFDiPOT
- Доп. требования
-
Состояние тестирования
- Фиксированный регрессионный тест-план
- Фиксированные тест-кейсы/чек-листы для каждой ЮС
- Исследовательское тестирование
-
Выбор средств автоматизация, основываясь на имеющихся ресурсах
- Разработка ведется на C#
-
Этап 00. SoapUI
-
Было сделано
-
Исполнитель
- Сотрудник команды тестирования
- Созданы тесты для 90% методов
-
Использование
- Ручной запуск в процессе регресса итерации
-
Проблемы
- Смена приоритетов проекта с добавлением веб-интерфейса
-
Поддержка
- Ресурсозатратно поддерживать разработанные тестовые сценарии при постоянно меняющемся проекте
-
Этап 0. Обучение
- Создание автотестов на С#
- Selenium
-
Этап 1. Автоматизация GUI
-
Было сделано
-
GUI Tests
- TFS, Git, VS, C#, NUnit, PageObject, Selenium
- Основные пользовательские сценарии (часть регрессионный тест-кейсов)
- Работа над тестами велась имеющейся командой тестирования
-
Выводы
-
Работа с автотестами это полная занятость
- Необходим специалист по автоматизациии, который будет заниматься только автотестами
- Участие программистов в разработке автотестов
-
Автотесты- это самостоятельный програмный продукт
- Необходимо поддерживать
- Использовать best-practise для его создания и улучшения
- Необходимы code review, CI,...
- Работа с багами
- ....
-
Избегать UI автоматизацию, если это возможно
- Автотесты не стабильны, если проект находится в стадии разработки
- Ресурсозатратны
-
Используемые ручные тест-кейсы не всегда подходят для автоматизации в том виде, в котором они есть
- Применяем техники тест-дизайна для проектирования тест-кейсов
-
Четко зафиксировать тест- кейсы, которые будут автоматизированы
- Пройти их перед началом работ по автоматизации
- Часто позволяет выловить баги
-
Использовать Data-driven подход
- Создавать набор тестов не только с валидными типичными значения, но и другими положительными и негативными
-
Этап 2. Нагрузочное тестирование
-
Обучение
- Jmeter
-
Спроектированы сценарии тестов
- Сотрудник команды тестирования
-
Согласованы
- Сценарии
-
Цели испытаний
- Профили нагрузки
- Расписание испытаний
- Вид предоставляемой отчетности
-
Разработаны сценарии нагрузочного тестирования
- Сотрудник команды тестирования
-
Поддержка
-
При планировании итерации учитываются работы по нагрузочному тестированию
- Изменение имеющихся
- Создание новых
- Проведение тестовых испытаний
-
Этап 3. Автоматизация API
-
Специалист по автоматизированному тестированию
- Полная занятость
-
Специалист по тестированию
-
Подготовил
- Четко прописанные сценарии
- Набор тестовых данных
-
Итеративная разработка
- TFS
- Самостоятельный проект
-
Стэк технологий
- Nunit, REST API, EntityFramework Core
-
Архитектура
- Разделение функционала на небольшие модули, взаимодействующие с контекстом тестовых данных, предоставляющие действия для совершения шага теста, ожидаемые и актуальные тестовые данные
-
Структура теста
- Тест представляет собой набор сценариев, каждый сценарий реализовывает 1 действие и 1 проверку, на основе одних сценариев можно строить другие сценарии
-
Поддержка
- Сотрудники команды тестирования
- Своевременное обновление тестовых сценариев
-
Использование
- Регресионное тестирование (ручной запуск тестов)
- Ночной автозапуск
-
Этап 4. Автоматизация GUI....
-
Исполнители
-
Специалист по автоматизированному тестированию
- Полная занятость
- Разработчики основного проекта
- Специалисты по тестированию текущего проекта
-
Модель разработки
- Итеративная разработка
-
Спринт
- 2 недели
- Четкое формулирование цели
- Планирование и оценка трудозатрат
-
Подготовка
- Разработаны и четко прописаны автоматизируемые сценарии
- Для стабильности тестов веб-элементам добавлены тестовые классы
-
Стэк технологий
- Nunit, Selenium, EntityFrameworkCore, Dependency Injection (Autofac)
-
Архитектура
- Уникальная архитектура, полученная за счет использования особенностей паттернов MVC и PageObject, использование слоев UI Map, сервисы для взаимодействия с UI, данные, обработчики данных, тесты, система легко расширяется и поддерживается
-
Структура теста
- Тест представляет собой набор сценариев, каждый сценарий реализовывает 1 действие и 1 проверку, на основе одних сценариев можно строить другие сценарии
-
Помним
- Нельзя автоматизировать все, что только возможно
- Выбранные средства автоматизации, не решат все проблемы
- Только Юнит тесты и TDD не позволяют обеспечить высокое качества выпускаемого продукта
-
Автоматизацию можно применять не только для этапа непосредственно выполнения тестов, но и для
- Подготовки тестовых данных
- Автоматического развертывания тестовых стендов
- Обработки полученных данных
- Генерации тест-кейсов
- Подготовка начальных условий
- ....
- Средст Record and Run недостаточно для создания полноценных проектов
-
Последовательность создания автотестов
- Unit
- API
- GUI