Инженер по качеству Артём Трегуб об автоматизации тестирования и будущем электромобилей
05.03.24, Вт, 12:30, Мск,
Артём занимает должность старшего инженера по контролю качества в компании Arrival, которая специализируется на разработке электромобилей для коммерческого использования. Он руководит командами тестирования и обладает глубокими знаниями в области PyTest, CI/CD, DevOps, автоматизации, а также определения и настройки качества продукта. Артём повышает эффективность работы компаний за счет автоматизации задач и процессов, экономя ресурсы и время на разработку продуктов. В последние несколько лет он активно развивает профессиональное сообщество и делится своим опытом со специалистами в IT-сфере.
Основная статья: Электромобили
В вашей работе большую роль играет автоматизация процессов. Какие инструменты и технологии вы считаете самыми эффективными для автоматизации тестирования и почему?
Система автоматизированного тестирования всегда разрабатывается с учетом особенностей конкретного проекта. При этом технологии, такие как язык программирования, система контроля версий или платформа для сборки и развертывания кода, играют второстепенную роль. Гораздо важнее правильно определить цели и строить систему, ориентируясь на лучшие практики.
Например, для меня важно, чтобы тесты позволяли легко и прозрачно отлаживать систему, что позволяет глубже исследовать её без значительных временных затрат. Не менее важной является система логирования и хранения результатов тестирования: это помогает точнее определять результаты тестов и в будущем быстрее находить и исправлять ошибки, что существенно снижает затраты на поиск проблемных версий программного обеспечения.Обзор российского рынка банковской цифровизации: импортозамещение, искусственный интеллект и собственные экосистемы
Тестовый фреймворк должен быть прост в освоении, чтобы даже инженеры по качеству, не имеющие опыта в автоматизации и программировании, могли быстро начать работу и эффективно выполнять свои задачи.
Отвечая на ваш вопрос, могу сказать, что я предпочитаю Python и Pytest за их простоту и гибкость. Этот язык программирования позволяет решать задачи с минимальными затратами кода, обладает огромной базой готовых библиотек и относительно легко осваивается. Он также широко распространен среди QA-инженеров, что облегчает поиск новых специалистов.
Можете рассказать о вашем текущем проекте в Arrival? Какие ключевые задачи вы решаете как старший инженер по качеству и QA-лидер?
На данный момент я сфокусирован на разработке зарядного контроллера для электромобиля Arrival. Это система, которая управляет всем процессом зарядки аккумуляторов электромобилей. Контроллер взаимодействует с различными зарядными станциями для обеспечения безопасной, эффективной и надежной зарядки, независимо от типа станции.
С технической точки зрения основными задачами являются:
- Общее улучшение качества и стабильности продукта.
- Углубление процесса тестирования, его автоматизация и оптимизация.
- Применение новых практик и технологий.
- Разработка инструментов и процессов в команде для соответствия стандартам разработки автомобильного ПО, таким как ISO 26262 и ASPICE.
Как ваш опыт в тестировании и автоматизации процессов помог при разработке контроллера зарядки для электромобилей?
Мой опыт помог мне быстро сориентироваться в ситуации и первым делом внедрить самые быстрые и легкие решения, снижая рутинную нагрузку на команду, получив тем самым быстрый первый результат. Первоочередные вещи, которые были сделаны:
- Автоматизация рутинных процессов в трекинговой системе.
- Согласование и закрепление документа с описанием конвейера разработки и тестирования продукта.
- Четкое распределение обязанностей членов команды, что исключило неопределенности.
Половина нашей команды располагается в Великобритании, но нам всё равно удалось преодолеть возникающие из-за этого трудности.
Вы занимались проектом системы управления батареями в Arrival. Какие инновации вам удалось внедрить в этот проект?
Удалось создать и внедрить набор внутренних библиотек для тестирования, избегая внешнего лицензирования. Это позволило активизировать использование внутренних аппаратных решений и улучшить "тестовый режим" системы управления батареями. Также была автоматизирована значительная часть тестовых сценариев в связке с системой непрерывной интеграции. Таким образом мы сократили время предрелизных проверок на 4 недели, что позволило нам выпустить 10 крупных релизов за короткий промежуток времени, подняв при этом качество продукта.
Расскажите о самых значимых вызовах, с которыми вы столкнулись при работе над проектами в Arrival, и как вы их преодолели?
Пожалуй, самым сложным проектом стал контроллер заряда. Тут было всё и сразу:
- Невысокое качество программного обеспечения.
- Невысокая производительность команды, ее демотивированность в виду слабой положительной обратной связи от проделанной работы.
- Отсутствие легкой и быстрой возможности отладки софта. Исследование проблем занимало большое количество времени и включало в себя множество итераций проб и ошибок.
- Работа с высоким напряжением, что накладывало ограничения на то, кто может выполнять эту работу и как быстро она может выполняться.
Для решения этих проблем были внедрены:
- Система приоритезации багов и задач.
- Унифицированный эмулятор зарядной станции, поддерживающий AC и DC коммуникацию, что ускорило разработку и повысило безопасность.
- Автоматизация рутинных операций в трекинговой системе и подготовки релизной документации.
Эти меры позволили улучшить процессы разработки и повысить мотивацию команды.
Я считаю, что инструменты разработки должны быть удобными, процессы должны служить людям, а счастливые и заинтересованные коллеги могут принести куда больше пользы. Очень важно подходить к этим вопросам с человеческим лицом, не закрывать их формально, проводя встречи один-на-один и ретроспективу один раз в месяц. Успехи ваших коллег будут положительно влиять и на вас, придавая сил и мотивируя.
Верите ли вы в будущее электромобилей?
Работа в Arrival — поистине уникальный опыт. Мне удалось разработать систему автоматизированного тестирования, выстроить процессы и по-новому подойти к разработке и тестированию двух ключевых компонентов любого электромобиля — системы управления батареей и зарядного контроллера.
Я искренне верю в будущее электромобилей. Хотя их массовое распространение сейчас немного задерживается, именно поэтому так важно продолжать развивать это направление. Это принесет глобальную пользу. Человечество уже научилось вырабатывать электричество множеством способов и продолжает находить новые. Со временем электричество станет дешевле, что является естественным процессом развития любой технологии и отрасли. Вполне возможно, что мы станем свидетелями значительного скачка в ближайшем будущем с приходом термоядерной энергетики.
Какие изменения и тенденции в области разработки электрических автомобилей вы считаете самыми важными в ближайшие несколько лет?
В сфере электрического транспорта перед нами стоят несколько ключевых задач:
- Увеличение дальности пробега электромобилей на одном заряде
- Значительное сокращение времени зарядки
- Расширение сети надежных зарядных станций
- Снижение стоимости производства и утилизации тяговых батарей
Индустрия активно работает над решением этих задач, особенно в области разработки новых конструкций и химических составов тяговых батарей. Прорывы в плотности хранения энергии также необходимы для электроавиации.
Большой интерес вызывает разработка твердотельных (solid-state) батарей, которые обещают повысить безопасность, энергоемкость и скорость зарядки. Я вижу потенциал в их производстве, возможно даже с использованием литографических технологий. Хотя сейчас технология твердотельных батарей дорогая, ситуация должна измениться в будущем.
Кроме того, продолжается развитие литий-ионных аккумуляторов, где главная задача – адаптировать прорывные идеи для массового производства. Это сложная, наукоемкая задача для всех изделий с химическим компонентом.
На данный момент наиболее распространенными и безопасными являются LFP (литий-железо-фосфат) батареи, особенно популярные в Китае. Они обладают повышенной пожаробезопасностью и относительно низкой стоимостью, хотя и уступают по плотности хранения энергии. Однако, разработка продолжается, и уже к 2025-2026 годам автопроизводители премиум-сегмента обещают электромобили с пробегом 1000 км на одном заряде. Я считаю, что это правильное направление, и такие показатели должны стать нормой и для массового сегмента, что значительно ускорит переход на электрический транспорт и расширение инфраструктуры.
В каких направлениях вы планируете развиваться дальше? Какие проекты или технологии вас особенно интересуют?
Я верю в огромный потенциал электромобилей для гражданского применения. Наша задача как разработчиков — сделать их такими же удобными в использовании, как смартфоны. Это требует создания батарей и систем зарядки, которые позволят проезжать 1000 км без компромиссов в комфорте, с возможностью заряжаться до 80% за 30-40 минут или даже быстрее. Важно также сделать их доступными с экономической точки зрения, чтобы это перестало быть привилегией только люксовых автомобилей.
Исследования показывают, что большинство водителей проезжают не более 50 километров в день. Автомобили с такими характеристиками позволят заряжаться всего раз в неделю, обеспечивая достаточный запас хода для длительных поездок.
Кроме того, я активно изучаю и применяю возможности AI-инструментов. Уже сейчас они позволяют нам разрабатывать продукты по-новому: быстрее, с меньшими затратами и с большим количеством новых функций. Я считаю, что машинное обучение идеально подходит для задач уточнения оценки состояния батареи, что позволит максимально раскрыть её потенциал и улучшить характеристики даже без существенных конструктивных изменений.
Какие из ваших публикаций или докладов вы считаете самыми важными для развития индустрии QA?
Я бы порекомендовал статью с советами и рекомендациями для построения фреймворка и статью о создании HTTP-сервера для быстрого прототипирования.
В первой статье я собрал советы, которыми сам постоянно пользуюсь при разработке систем автоматизированного тестирования. Это практические примеры, которые упрощают создание и поддержку автотестов на Python и Pytest.
Во второй статье я показал, как можно быстро и эффективно создать эмуляторы для тестового окружения с одним или несколькими API. Я предлагаю скачать, модифицировать и использовать пример сервера с моего GitHub, где также можно найти примеры unit-тестов. Надеюсь, этот подход облегчит внедрение системного тестирования в проекты.
Сейчас я исследую возможности последней версии ChatGPT 4o для использования в повседневной работе тестировщика. Пока нейросеть кажется многообещающей для задач тест-дизайна, преобразования данных и упрощения рутинных процессов. Надеюсь вскоре поделиться своими результатами.
Какие советы вы могли бы дать молодым специалистам, которые только начинают свою карьеру в сфере QA и автоматизации?
Не бойтесь погружаться в новое. Один из самых ценных навыков тестировщика — быстрая обучаемость. Вникайте в проекты, собирайте и структурируйте знания о продукте: часто хорошие специалисты по тестированию имеют более полное представление о продукте, чем продуктовая команда или разработчики.
Упрощайте сложное. Разбивайте системы на части, выделяйте наиболее критичные и важные элементы, и в первую очередь фокусируйтесь на них. Это позволит глубже и эффективнее проводить тестирование и строить систему тестирования.
Если внешняя среда для вашего продукта нестабильна и мешает тестированию — эмулируйте её.
В баг-менеджменте всегда учитывайте бизнес-цели продукта и компании. Не зацикливайтесь только на технических и архитектурных ошибках. Понимайте своего пользователя, старайтесь собрать информацию об их опыте использования вашего продукта или аналогичных решений. Пользователи часто являются лучшими тестировщиками end-to-end процессов.