Разделы

ПО Цифровизация Импортонезависимость

Евгений Заяц: Появился тренд на максимизацию эффективности внутренних процессов

В мае 2023 года ВОЗ объявил об отмене статуса пандемии для коронавируса. Но ее итоги, особенно в сфере различных отраслей промышленности, еще только предстоит проанализировать. Так, за время изоляции активно возрос спрос на ИТ-продукты, и как следствие, проблема быстрого тестирования новых разработок стала еще актуальней. Как инженеры-тестировщики справились с новым вызовом, мы поговорили с консультантом в области автоматического тестирования программного обеспечения Евгением Зайцем. Евгений разработал подход к средам интеграционного тестирования, суть которого – решение для оптимизации количества запускаемых тестовых сценариев по изменениям в кодовой базе.

CNews: Евгений, насколько пандемия сказалась на отрасли ИТ? Верно я понимаю, что всеобщая изоляция стала толчком к ее развитию вообще, и области тестирования в частности?

Евгений Заяц: Нельзя сказать, что до пандемии ИТ стагнировала и изоляция стала каким-то прорывом. Но тем не менее, неоспорим тот факт, что люди, сидя дома, стали активнее потреблять ИТ-услуги. Что в свою очередь послужило триггером к тому, что в отрасль ИТ, и без того успешную, стало вливаться еще больше ресурсов. Часть компаний, как тот же Zoom, действительно пережили взрывной рост за время пандемии. На другие компании и их сотрудников также кратно возросла нагрузка, появился тренд на максимизацию эффективности внутренних процессов, с целью минимизировать эффект от увеличения количества задач. А итоговой задачей всегда является выпуск готового продукта и сокращение сроков на его производство, а значит встал вопрос о качестве и скорости тестирования.

Евгений Заяц: Вероятность получить успешный продукт без тестирования и продолжать его развивать минимальна

CNews: Насколько сильно качество тестирования влияет на скорость выпуска релизов?

Евгений Заяц: Зависимость прямо пропорциональная. Вероятность получить успешный продукт без тестирования и продолжать его развивать минимальна. Нередки случаи, когда из-за рекомендаций отделов по обеспечению качества релиз может отложиться на неопределенный срок или вовсе быть отменен. В зависимости от того, как реализованы процессы внутри тестирования — зависит и скорость предоставления обратной связи для остальной команды продукта. При наличии хорошего уровня автоматизации, при правильных процессах — такая обратная связь постоянна и предоставляется после каждого изменения в исходном коде. От скорости выдачи этой обратной связи зависит то, как быстро новое изменение будет добавлено в итоговую версию продукта. Соответственно, минимизация времени выдачи обратной связи является одной из важнейших задач в рамках отделов по автоматизации тестирования.

CNews: Вы занимались автоматизацией тестирования в таких известных компаниях, как Яндекс и Yadro, в последней кампании были на позиции главы отдела. На ваш взгляд, почему даже в крупных и передовых компаниях редко ищут новые подходы и используют текущие наработки в области автоматизации тестирования?

Евгений Заяц: Причин много. В первую очередь, это ограниченность в ресурсах, как ни странно — временных, человеческих. В условиях непрекращающихся релизов очень сложно выделить ресурсы на разработку каких-то новых подходов, без гарантий, что эти подходы могут реально что-то улучшить. Зачастую свои, новые, на коленке собранные «велосипеды» работают хуже, чем то, что можно найти в открытом доступе. К тому же, автоматизация тестирования весьма консервативная область и у многих есть ощущение, что все хорошее и правильное уже придумали, и ничего лучше сделать не получится. Другая проблема состоит в том, что автоматизация тестирования во многих компаниях испытывает нехватку квалифицированных программистов, часто их забирают в другие отделы — непосредственно создавать продукт, а автоматизацию отодвигают на второй план. Могу рассказать о своем кейсе: я начинал свою карьеру с позиции разработчика, но по прошествии трех лет решил перейти в автоматизацию, в связи с тем, что автоматизация открывала больше возможностей для развития и давала большую свободу действий — можно попробовать много нового, не бояться менять технологии, подходы. Разработчики очень часто сильно привязаны к технологическому стеку продукта и уровень свободы в разы меньше.

CNews: Но вы все же изобрели свой «велосипед». Когда вы работали в Yadro, ваш авторский метод позволил вам в разы увеличить скорость обработки пул-реквестов. Команда из 10 человек смогла «выдавать» до 20 пул-реквестов, вместо 3-5, как было раньше. Как удалось достичь таких результатов?

Евгений Заяц: Во-первых, благодаря хорошему менеджменту в компании. Все осознавали важность автоматизации и повышения скорости выдачи обратной связи от тестов. Была предоставлена полная свобода действий — все ради результата. Потратив существенное количество времени на изучение узких мест в системе и поиск возможных готовых решений или подходов, ко мне пришло осознание, что решать проблему придется самому. Одним из найденных узких мест был запуск полного регрессионного набора тестов на каждое изменение со стороны тестов. В условиях ограниченных инфраструктурных ресурсов — это создавало очереди на эти самые ресурсы. И увеличивалось время на обработку пул-реквестов — как со стороны разработчиков, так и со стороны отдела автоматизации. Очевидного решения, как не запускать полный набор тестов и при этом обеспечивать валидность этого набора тестов, не было. Но где-то за месяц, используя различные инструменты и технологии, мне удалось собрать такое решение. Технические детали можно будет увидеть в моей будущей статье на codeproject.com — «Как избежать проведения ненужных тестов». Естественно, на обкатку подхода ушло определенное время, но в итоге — компания получила отличный способ оптимизации, что и вылилось в очень хорошие результаты сразу после его внедрения.

CNews: В результате вашего инновационного метода срок подготовки релизов сократился с 3–6 месяцев до одного, это серьезное достижение. Но вы работали только c Python. Можно ли применять этот подход в других языках программирования?

Евгений Заяц: Упомяну, что срок подготовки релизов — очень комплексное понятие, в котором много составляющих, в том числе и не всегда технических. Мой метод оптимизации, безусловно, один из важных факторов того, что релизы стали идти быстрее, но будет неверным сказать, что единственный. Тем не менее, отвечая на второй вопрос — подход достаточно общий для того, чтобы реализовать его на других языках. Используемые мной библиотеки существуют не только для Python, но и, например, для Java. Таким образом, подход можно адаптировать, под любой технологический стек и продукт.

CNews: Вы упомянули свою статью. Зная, что вы ведете научную деятельность, собираетесь публиковаться в специализированных изданиях, например, в moofrnk.com, держите руку на пульсе и ориентируетесь в передовых разработках отрасли, не могу не спросить: появились ли новые, прорывные решения за время пандемии?

Евгений Заяц: Одно из самых заметных, что зацепило всех — это развитие AI, в частности, появление ChatGPT. Я в свою очередь также уделял внимание вопросу AI в рамках возможностей его применения в сфере автоматизации тестирования, в связи с чем и появилось несколько научных статей на этот счет.

CNews: На ваш взгляд, отрасль в целом смогла ответить на вызов, связанный с ростом спроса на ИТ-продукты?

Евгений Заяц: Как мы могли заметить, все крупные ИТ компании продолжили работу, проблем из-за возросшего спроса я не припомню, поиск и реклама в интернете работали без сбоев. Сервисы видеоконференций также показали себя с лучшей стороны, обеспечив миру инструменты для взаимодействия даже в сложное пандемийное время. Рост спроса, безусловно, был вызовом, но на мой взгляд, ИТ продукты зарекомендовали себя как гибкие и устойчивые к меняющимся условиям окружающей среды.

Алексей Петров