Елена Пьянкова
Project coordinator, automated tester
Space Research Institute
Тренер курсов:
Основы автоматизированного тестирования (Python, Selenium)
Можете своими словами описать важность автоматизации процессов разработки ПО, в частности тестирования?
Работа, связанная с IT сферой, у меня началась с работы Manual тестировщика. Я помню очень интересное погружение в познание информационных технологий, творческий и одновременно - логический и конкретный процесс составления тестов… Первая прогонка своих тестов… Какие проблемы я помог устранить… Вторая прогонка тестов... Третья… Не успеваем все перетестировать перед релизом… Разработчики всё сломали после фикса баги!.. Почему так поздно выявлены дефекты?.. Первый баг в продакшене…
Хм, наверно, можно улучшить процессы разработки ПО, особенно тестирование? Как оставить только творческую часть в работе тестировщика (тест дизайн), а большую часть рутины и стрессов устранить?
Или по-другому: как эффективнее использовать дорогостоящий ресурс – человека и его время? В разработке и тестировании очень много похожих задач, которые не требуют высокой квалификации, но отнимают много времени.
Ответ прост: максимально переложить на компьютер повторяющиеся процессы. Всю рутину, которую можно отдать компьютеру, нужно отдать компьютеру. Автоматизировать!
Ещё что-то надо объяснять?
Можно поподробнее, как вы познакомились с распространенными способами автоматизации процессов разработки и тестирования ПО?
Позже я сама участвовала в организации процесса разработки с нуля: командная работа + развертывание веб-системы в продакшн. Понимаете, мне хотелось спать спокойно после очередного коммита или фикса кода программистами. А значит нужно было организовать, чтоб после коммита автоматически проходили все остальные ступени: разворачивался тестовый сервер, запускались тесты, отправлялся отчет, и, если все хорошо, – изменения накатывались в продакшн и ещё раз запускались acceptance тесты, чтоб подтвердить, что продакшн не сломан. Плюс: автоматически получать отчеты о возникших ошибках пользователей.
Вот тут я и стала знакома с организацией Continues Integration (непрерывная интеграция изменений) с системами автоматической сборки и автодеплоя. И осталось ещё чуть-чуть: автоматизировать тестирование и подключить его к автодеплою. В своем курсе я расскажу об этом поподробней.
Почему вы выбрали Python для автоматизации тестирования?
Ну, во-первых, я влюблена в Python!
Во-вторых, Python - интерпретируемый мультипарадигменный язык программирования общего назначения со строгой динамической типизацией, автоматическим управлением памятью и удобными высокоуровневыми структурами данных… Ой, не хотела вас пугать ☺ Python как раз не страшный и в него легко въехать ☺
Поэтому перефразирую: Python нацелен в первую очередь на повышение продуктивности самого программиста, нежели кода, который он пишет. А для разработки автоматических тестов скорость и простота имеют большое значение.