daria chernishova test automation story
TRANSCRIPT
A U T O M AT E D -T E S T I N G . I N F O
Мой опыт автоматизации,
или проект с нуля
Дарья Чернышёва2012
A U T O M AT E D -T E S T I N G . I N F O
О себе
• QA с 2009, Automation QA с 2011.• Перебежчик из вражеского стана:
в прошлом Java Developer.• Инструментарий: Java, Ruby,
Borland SilkTest.• Место работы: Компания EPAM,
проект Thomson Reuters.• Личная информация: барабанщик, граммар-наци, Android-гик,
бла-бла-бла, никому не интересно.
2
A U T O M AT E D -T E S T I N G . I N F O
Зачем Dev уходят в QA?
• Проявляем перфекционизм.• Делаем мир лучше.• …идём куда пошлют.
3
A U T O M AT E D -T E S T I N G . I N F O
Java
Тестируемый проект
4
Новость (XML-
документ или бинарный
файл)
FTP-сервер
Пациент
жив?
Валидатор
Помойка
Файло-
хранилище
База (MySQL)
Новостные каналы
A U T O M AT E D -T E S T I N G . I N F O
Дано:
Это ужасно.
5
A U T O M AT E D -T E S T I N G . I N F O
Решение: новый проект
Устранение хард-кода.
Создание системы повторно используемых функций.
Уменьшение времени выполнения тестов.
Обеспечение масштабируемости.
6
A U T O M AT E D -T E S T I N G . I N F O
Реализация: шаг 1.1
Базовые функции:• работа с окружением и тестовыми данными
7
Project
XML
DB (MySQL
)
parse /
update
connect / query
Remote file
server
upload / download
A U T O M AT E D -T E S T I N G . I N F O
Project:
Реализация: шаг 1.2
8
case/suite setup/teardown
test data folder structure
configuration files
Базовые функции:• работа со структурой проекта
A U T O M AT E D -T E S T I N G . I N F O
Реализация: шаг 2
9
Создать файл по шаблону
Обновить файл Подключиться к серверу и
базе
Проверить выходные
данные
Найти результат
Загрузить файл
Первородные тест-кейсы:
A U T O M AT E D -T E S T I N G . I N F O
Реализация: шаг 3
Промежуточный уровень функций:
инициализация ftp + отправка на сервер;
поиск файла в базе + скачивание;
скачивание + проверка структуры файла
10
A U T O M AT E D -T E S T I N G . I N F O
Реализация: шаг 4
11
db_utils
ftp_utils
xml_updater File VS DB
Validator:1) parse xml2) query db3) compare
results
Test Item Management:1) get original file2) get resulting file3) get log file4) run validation
Распределение функций промежуточного уровня по модулям и классам
A U T O M AT E D -T E S T I N G . I N F O
Реализация: шаг N• Пересмотр старых функций:
– рефакторинг;– сокращение количества подобных функций;
• Добавление нового функционала:– шаг 2 (первичные тест-кейсы);– шаг 3 (выделение функций промежуточного уровня).
12
method_type :testcase test_tags "positive" def verify_random_opt_against_db
profile = 'SNEP-External' news_item = NewsItemEntity.newnews_item.create_from_random_opt(profile)snep_news_item.run_news_message_structure_validationsnep_news_item.run_nml2_to_db_validation end
Это делается постоянно:
Так выглядит типичный кейс:
A U T O M AT E D -T E S T I N G . I N F O
Это всё, можно выдыхать
Спасибо за внимание!
13