Елена Пьянкова

Project coordinator,
Space Research Institute

Тренер курсов:
Основы автоматизированного тестирования (Python, Selenium)


Можете своими словами описать важность автоматизации процессов разработки ПО, в частности тестирования?

Работа, связанная с IT сферой, у меня началась с работы Manual тестировщика. Я помню очень интересное погружение в познание информационных технологий, творческий и одновременно - логический и конкретный процесс составления тестов… Первая прогонка своих тестов… Какие проблемы я помог устранить… Вторая прогонка тестов... Третья… Не успеваем все перетестировать перед релизом… Разработчики всё сломали после фикса баги!.. Почему так поздно выявлены дефекты?.. Первый баг в продакшене…

Хм, наверно, можно улучшить процессы разработки ПО, особенно тестирование? Как оставить только творческую часть в работе тестировщика (тест дизайн), а большую часть рутины и стрессов устранить?

Или по-другому: как эффективнее использовать дорогостоящий ресурс – человека и его время? В разработке и тестировании очень много похожих задач, которые не требуют высокой квалификации, но отнимают много времени.

Ответ прост: максимально переложить на компьютер повторяющиеся процессы. Всю рутину, которую можно отдать компьютеру, нужно отдать компьютеру. Автоматизировать!

Ещё что-то надо объяснять?

Можно поподробнее, как вы познакомились с распространенными способами автоматизации процессов разработки и тестирования ПО?

Позже я сама участвовала в организации процесса разработки с нуля: командная работа + развертывание веб-системы в продакшн. Понимаете, мне хотелось спать спокойно после очередного коммита или фикса кода программистами. А значит нужно было организовать, чтоб после коммита автоматически проходили все остальные ступени: разворачивался тестовый сервер, запускались тесты, отправлялся отчет, и, если все хорошо, – изменения накатывались в продакшн и ещё раз запускались acceptance тесты, чтоб подтвердить, что продакшн не сломан. Плюс: автоматически получать отчеты о возникших ошибках пользователей.

Вот тут я и стала знакома с организацией Continues Integration (непрерывная интеграция изменений) с системами автоматической сборки и автодеплоя. И осталось ещё чуть-чуть: автоматизировать тестирование и подключить его к автодеплою. В своем курсе я расскажу об этом поподробней.

Почему вы выбрали Python для автоматизации тестирования?

Ну, во-первых, я влюблена в Python!

Во-вторых, Python - интерпретируемый мультипарадигменный язык программирования общего назначения со строгой динамической типизацией, автоматическим управлением памятью и удобными высокоуровневыми структурами данных… Ой, не хотела вас пугать ☺ Python как раз не страшный и в него легко въехать ☺

Поэтому перефразирую: Python нацелен в первую очередь на повышение продуктивности самого программиста, нежели кода, который он пишет. А для разработки автоматических тестов скорость и простота имеют большое значение.