2. О себе
• QA с 2009, Automation QA с 2011.
• Перебежчик из вражеского стана: в
прошлом Java Developer.
• Инструментарий: Java, Ruby, Borland
SilkTest.
• Место работы: Компания EPAM, проект
Thomson Reuters.
• Личная информация: барабанщик, граммар-наци, Android-гик, бла-бла-бла,
никому не интересно.
2 AUTOMATED-
TESTING.INFO
3. Зачем Dev уходят в QA?
• Проявляем перфекционизм.
• Делаем мир лучше.
• …идём куда пошлют.
3 AUTOMATED-
TESTING.INFO
4. Тестируемый проект
Новость Валидатор
(XML-документ
или бинарный FTP- Пациент
файл) сервер жив?
База
Файло-
хранилище
(MySQL)
Java Помойка
Новостные
каналы
4 AUTOMATED-
TESTING.INFO
6. Решение: новый проект
Устранение хард-кода.
Создание системы повторно
используемых функций.
Уменьшение времени выполнения
тестов.
Обеспечение масштабируемости.
6 AUTOMATED-
TESTING.INFO
7. Реализация: шаг 1.1
Базовые функции:
• работа с окружением и тестовыми данными
XML
connect / query
Project
7 AUTOMATED-
TESTING.INFO
8. Реализация: шаг 1.2
Базовые функции:
• работа со структурой проекта
case/suite
setup/teardown
test data folder
Project: structure
configuration files
8 AUTOMATED-
TESTING.INFO
9. Реализация: шаг 2
Первородные тест-кейсы:
Создать файл по Обновить файл Подключиться к
шаблону серверу и базе
Проверить Найти результат Загрузить файл
выходные данные
9 AUTOMATED-
TESTING.INFO
10. Реализация: шаг 3
Промежуточный уровень функций:
инициализация ftp + отправка на сервер;
поиск файла в базе + скачивание;
скачивание + проверка структуры файла
10 AUTOMATED-
TESTING.INFO
11. Реализация: шаг 4
Распределение функций промежуточного уровня по
модулям и классам
xml_updater File VS DB
Test Item Management:
Validator:
1) get original file
1) parse xml
db_utils 2) get resulting file
2) query db
3) get log file
3) compare
4) run validation
ftp_utils results
11 AUTOMATED-
TESTING.INFO
12. Реализация: шаг N
• Пересмотр старых функций:
Это делается постоянно:
– рефакторинг;
– сокращение количества подобных функций;
• Добавление нового функционала:
– шаг 2 (первичные тест-кейсы);
– шаг 3 (выделение функций промежуточного уровня).
method_type :testcase
test_tags "positive" Так выглядит типичный кейс:
def verify_random_opt_against_db
profile = 'SNEP-External'
news_item = NewsItemEntity.new
news_item.create_from_random_opt(profile)
snep_news_item.run_news_message_structure_validation
snep_news_item.run_nml2_to_db_validation
end
12 AUTOMATED-
TESTING.INFO
13. Это всё, можно выдыхать
Спасибо за внимание!
13 AUTOMATED-
TESTING.INFO