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

Для корректной работы и выполнения всех функций мало сконструировать девайс, нужно его хорошенько протестировать. 

Теперь предположим, что вам необходимо провести проверку нагрева и кипячения чайника:

  • на объёмах от 0.5 до 1.7 литров, с шагом в 0.2 литра;

  • в диапазоне температур от 30 до 100 градусов Цельсия, с шагом в 5 градусов;

  • для диапазона напряжений 180 – 250B.  

А еще, проверить надёжность срабатывания кнопок управления, корректность световой и звуковой индикации, надёжность и долговечность работы контактной группы. Кроме этого полностью протестировать работу цепи "Прибор - Приложение - Сервер - Голосовое управление - Гейтвей - Управляющий прибор - Сценарий". При этом определить разброс фактических параметров и скрупулёзно занести все результаты в журнал, создав отчёт о тестировании. 

Конечно, такую задачу можно решить "в лоб". Взять чайник, ТЗ, смартфон и вручную всё протестировать. Для единичных тестов вполне обозримая работа. 

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

В нашем арсенале более 150SKU умной техники. Не только чайников, но и мультиварок, кофеварок, увлажнителей и многих других категорий, которые необходимо тестировать с завидной периодичностью. К примеру, при обновлении прошивки или приложения. Так какой же выход? 

Мы решили, что лучше всего создать инструмент, который позволит максимально избавить все процессы от ручных проверок. Таким инструментом стали стенды автоматического тестирования (САТы). 


Это уникальный проект компании Ready for Sky. САТы разрабатываются, чтобы значительно, в десятки или сотни раз, сэкономить рабочее время отдела тестирования (на автоматизируемых операциях) и при этом увеличить результативность и качество. 

Центральная концепция стендов - имитация работы человека с устройством. Создание условного робота, который вместо человека выполняет рутинные задачи: наливает и сливает воду, нажимает на кнопки, контролирует температуру и сравнивает ее с заданной, следит за тем, что происходит с прибором, составляет отчет, сообщает об обнаруженных проблемах и останавливает процесс тестирования в случае возникновения аварийной ситуации. 

Стоит и кратко упомянуть здесь плюсы автоматизации — работа 24/7, устранение человеческого фактора, продуктивность. А при соблюдении некоторых подходов эксплуатации и проектирования (но в этой статье мы не об этом) - повышенная надежность и экономический выигрыш. 

Первые версии наших стендов были на основе DIY (буквально "сделай сам") компонентов типа микроконтроллеров, Raspberry и им подобных одноплатников. Решения получились работоспособные, но не такие надёжные, как требуется для промышленного производства. То есть концепцию и возможности они подтвердили, свое отработали с лихвой. Но необходимо было повысить ресурс и гибкость. Более качественной реализацией стал вариант на основе промышленного логического контроллера (ПЛК). Дополнительно переход на ПЛК стал стратегическим моментом и открыл двери в новое направление развития компании - промышленную автоматизацию. 


С начала 2021 года нами велись разработка САТов на ПЛК и наработка типовых решений. 
Сейчас структурная схема работы стендов выглядит следующим образом: 

Структурная схема работы стендов
Структурная схема работы стендов

Каждый стенд автоматического тестирования уникален по своей природе и разрабатывался под группу однотипных устройств. Возможно, это не самый универсальный подход, но на данный момент самый надёжный с точки зрения снижения рисков отказа и планирования эксплуатации. В ходе проектирования стендов нами был произведен расчет стоимости вариантов с разной степенью унификации и учетом прогноза их единовременной загрузки. Выяснилось, что наиболее высокая степень универсальности, где предполагалось применять робот, уже не столь выгодна с точки зрения себестоимости, как это ожидалось изначально. Правильнее делать стенды под группы однотипных (не обязательно идентичных) товаров. 

Вот так, например, выглядит сейчас САТ для кофеварки RCM-M1518S/1527S:

САТ для кофеварки RCM-M1518S/1527S
САТ для кофеварки RCM-M1518S/1527S

Для каждой такой группы SKU создаётся специальная рама, можно сказать выстраиваются "строительные леса", на которые крепятся управляющие элементы (соленоиды, моторы, вентили, водяные насосы, сервоприводы) и элементы контроля (датчики, концевики и др.). 

САТы объединяются по 8 устройств, устанавливаются на стеллажи и подключаются к ПЛК, через специально подобранные модули. 

А так выглядят в итоге "фермы" тестирования. Три полки на которых расположены и «клетки» отдельных стендов, и вспомогательное оборудование, и все необходимые коммуникации. В перспективе добавим рекуператор и сделаем закрытый контур нагрев/охлаждение для воды. 

Ферма тестирования
Ферма тестирования

К каждой такой "ферме" подводится вода, слив, электричество. Все надежно заземляется. 
ПЛК и все его модули собраны в специальный шкаф на торце стеллажа. 

Шкаф
Шкаф

Устройства, которые тестируются на стендах используются "из коробки", то есть в их конструкцию (корпус, кнопки, дисплеи) мы вмешиваемся только в исключительном случае. Корпус не разбираем, дополнительных проводов к платам устройств не подключаем. 

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


Здесь на помощь приходят методы компьютерного зрения. Это, пожалуй, одна из самых интересных частей проекта. С помощью инструментов компьютерного зрения можно с легкостью определить простую светодиодную индикацию, так можно ещё и считать данные с сегментного индикатора. 

Компьютерное зрение
Компьютерное зрение

Для этого на каждый стенд устанавливается камера, которая позволяет видеть панель управления и элементы индикации прибора и распознавать их состояние без участия человека. Применение компьютерного зрения дало свои плоды ещё на этапе разработки стендов. Так были обнаружены редкие сбои в индикации одного из устройств, которые при ручном тестировании просто не замечали, поскольку тестировщик непрерывно и длительно смотреть на индикацию устройства просто не в состоянии. 

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

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

В ходе наращивания количества стендов нам пришлось пересмотреть свои требования к сетевому оборудованию и структуре сети. Причина в том, что мы перешли на постоянную запись видеопотока вместо его эпизодического использования, когда это требуется для проведения конкретного тест-кейса. Видеорегистрация существенно помогает восстановить условия возникновения «бага». Но из-за этого значительно изменились объемы передаваемых и хранимых данных. 

Помимо индивидуальных камер, установлено наблюдение общего вида, которое показывает, как отрабатывают разные механические узлы стендов и позволяет понять картину происходящего в целом. 


Программное управление стендами мы разделили классически — на высокоуровневое и низкоуровневое. Высокоуровневое выполнено при помощи компьютера под управлением Linux и скриптов на Python, а низкоуровневое осуществляется на уровне программ в ПЛК.  
Тут надо сразу уточнить почему именно Python, а не традиционные для промышленных применений OPC и SCADA. 

Не последнюю роль играет тот факт, что Python нашим тестировщикам привычнее и позволяет выдержать подходы CI/CD, привычные всем в нашей компании. Еще мы тестируем управление нашей продукцией через Bluetooth и WiFi. Это и протоколы, и процесс управления со смартфона, и другие варианты взаимодействия - в том числе между самими устройствами. Поэтому принятый в промышленной автоматике инструментарий сюда просто не вписывается. Наконец, это просто дешевле, если учесть весь набор пожеланий к возможностям SCADA. 

В итоге, для удобства специалистов отдела тестирования над командами ПЛК были созданы «обёртки» на Python. Компьютерное зрение, также реализовано на Python с применением OpenCV (Open Source Computer Vision Library). Таким образом, написание теста, имитирующего ручное тестирование теперь не сложнее написания автотеста программного блока. 


В разработке САТов мы придерживаемся продуктового подхода, а это значит, что мы очень внимательно относимся к обратной связи. 

В декабре 2021 года была проведена первая внутренняя презентация двух пилотных стендов. На которой были озвучены вопросы: 

  1. Возможно ли управлять стендами удаленно?

  2. Можно ли подключить Android-смартфон и управлять им?

Высказанное попало в бэклог проекта и уже в начале марта мы презентовали новые функции: 

  • дистанционное управление САТ;

  • удалённая отладка по ADB на Android-смартфоне;

  • удалённый доступ к UI Android-смартфона.

Таким образом, специалист из любой точки мира, имея доступ к Интернету, может подключиться к стенду, дистанционно установить сборку приложения на смартфон и отладить его работу так, как будто устройство у него в руках. 

На момент написания статьи (4.04.2022) нами собрано четыре стенда автоматического тестирования для двух чайников, кофеварки и увлажнителя. Они переданы специалистам отдела тестирования в опытно-промышленную эксплуатацию. 

На 2022 год запланировано дальнейшее расширение парка еще на 20 стендов. Среди которых планируются, как устройства, находящиеся в продаже, так и те, что на стадии разработки. И это вполне адекватные планы, поскольку все аппаратные и программные части стенда типизированы, и мы уже видим прирост в скорости сборки и ввода в эксплуатацию стендов под отдельные SKU. 

В нашей компании работают сотрудники по всему миру. При этом разрабатываем мы не только программную, но и аппаратную составляющие. Поэтому появление таких стендов для нас прямо-таки жизненно важно. 


Итак, подводя итог, что же нам удалось создать? 

Изначальная идея - создать инструмент автоматизации ручного тестирования - не только прошла этап proof of concept, но и пошла дальше. Благодаря живому интересу к разработке мы реализовали удаленный доступ к средствам тестирования, а еще и снабдили Android-разработчиков всем необходимым для работы и отладки своих сборок в реальном окружении. 

Для нас стенды решают логистические проблемы с образцами и сокращают их количество, снижают трудозатраты и кардинально улучшают качество и глубину регрессионного тестирования. 

Немного про экономику: 

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

По понятным соображениям привести исходные цифры мы не можем, а вот результаты приведем. 

Приведен расчет экономики проекта "Стенды автоматического тестирования" по данным 2-й очереди по ценам на 22.03.2022.

Рассчитаны сроки окупаемости по трем сценариям: 

  • оптимальный

  • позитивный 

  • негативный

Сценарий

Цены на комплектующие

Трудоемкость

Экономия  

Окупаемость, мес 

1

Оптимальный

Цены не изменяются

Трудоемкость не изменяется 

Экономия ресурса  100% 

12,98 

2

Позитивный

Цены снизятся на 20%

Трудоемкость меньше на 20% 

Экономия ресурса больше на 20% 

8,65 

3

Негативный

Цены увеличатся на 20%

Трудоемкость больше на 20% 

Экономия ресурса меньше на 20%  

19,46 

Сейчас ведутся работы над расширением функциональных возможностей и повышения удобства взаимодействия. Например, как вы могли заметить, на схеме рядом с ПК управления указано наличие веб-интерфейса, который мы сейчас активно разрабатываем. 

Также исследуем вопрос удаленной отладки микроконтроллеров наших устройств. А это новые возможности и новые горизонты.

Мы сделали это. Микроконтроллеры можно удалённо программировать, запускать, отлаживать работу их программ.

Каждая из упомянутых функций достойна отдельной статьи. Если вас заинтересует конкретная тематика, напишите в комментариях и мы раскроем её подробнее. 

Направление промышленной автоматизации нас очень сильно драйвит. Мы хотим развить его в гораздо большее. В интернет вещей для разработчиков и тестировщиков. 

Если у вас есть устройства, которые нужно подключить к интернету вещей или схожие задачи по автоматизации процесса тестирования, да ещё и через Интернет, - мы с удовольствием вам в этом поможем. Обращайтесь. 
Подписывайтесь на наш Телеграм-канал и следите за свежими новостями.
Если можете поделиться своим опытом или предложить кооперацию – тоже не стесняйтесь, пишите! 

Комментарии (16)


  1. amarao
    04.04.2022 22:01
    +1

    Выглядит круто, но что именно у вас нажимает кнопки - не совсем понятно. Манипулятор?


    1. ready_for_sky_team Автор
      06.04.2022 13:22

      Спасибо Вам за вопрос!

      Для нажатия на кнопки мы используем соленоиды. По одному на каждую кнопку.


      1. amarao
        06.04.2022 13:44

        А нажимаете чем? просто палочкой или силиконовым пальцем? Я вот замечал, что в дешёвой технике иногда кнопки формально работают, но нажимать их очень неудобно. Либо нет тактильного отклика, либо надо нереальную силу прикладывать. Или, наоборот, чрезмерно чувствительные для своего размера. У вас в нажималке тензодатчики есть?


        1. ready_for_sky_team Автор
          06.04.2022 15:05

          Для нажатия используем сам сердечник соленоида. Для смягчения нажатия на него крепим пружинку.


          1. amarao
            06.04.2022 15:08
            +1

            Попробуйте добавить силиконовый палец. Иногда нажимать не будет, и это повод поменять конструкцию.


  1. smoluks4096
    04.04.2022 22:21

    А откройте страшную тайну, зачем в SkyCenter 11S есть место под аккумулятор и цепь зарядки его разведена?


    1. ready_for_sky_team Автор
      06.04.2022 13:30

      Спасибо за интерес к SkyCenter 11S.

      Эта тайна слишком страшная, чтобы ее открывать. Но, если обратитесь с этим вопрос сюда - info@readyforsky, то Вам ответят ;)


  1. andrey_ssh
    05.04.2022 07:31
    +1

    Попридираюсь к ТЗ.

    в диапазоне температур от 30 до 100 градусов Цельсия, с шагом в 5 градусов;

    Воду из под крана заливать нельзя? Слишком холодная?

    Стенд действительно ждёт достижения 100 градусов? А если не дождётся, то какой вывод делает? Вероятность этого высока даже при исправном чайнике.

    А по достижении 100 градусов он наличие воды в чайнике проверяет? А от может она уже вся в атмосфере.


    1. ready_for_sky_team Автор
      06.04.2022 13:36

      Спасибо за вопросы!

      Изначально, вода в чайнике берется именно из под крана. Только вместо самого крана мы используем электромагнитный клапан, чтобы автоматизировать процесс налива воды.

      В диапазоне от 30 до 100 градусов, мы проверяем исключительно нагрев. То есть, холодную воду из под крана мы можем прокипятить и/или выставить нагрев 30, 35 ... 95 градусов Цельсия.

      Во время работы ПЛК контролирует наличие воды в чайнике всегда. Соответственно и при достижении 100 градусов тоже.


  1. rever50
    05.04.2022 09:07
    +1

    кто наливает и сливает воду?


    1. ready_for_sky_team Автор
      06.04.2022 13:39

      Спасибо Вам за вопрос!

      Наливает и сливает воду стенд устройства самостоятельно.

      К устройствам, которым для работы необходима вода, подведен водопровод, а также слив.

      Налив воды реализован за счет применения электромагнитного клапана. Слив воды за счет водяных насосов.


  1. vassabi
    05.04.2022 09:27

    а усилие на кнопках меряете ? А на крышках и защелках ?

    а углы видимости экранов ? При каком внешнем освещении ?

    а пробуете нажимать все кнопки сразу ? (как моя племяшка :) )

    PS: но вообще - молодцы, дорогу осилит идущий!


    1. Vasiliy_S
      05.04.2022 11:12
      +1

      А кота в микроволновках сушите? /s


      1. ready_for_sky_team Автор
        06.04.2022 13:45

        п.с. котиков не сушим в микроволновках, даже тех, которые казалось бы заслуживают ????


    1. ready_for_sky_team Автор
      06.04.2022 13:43

      Спасибо за вопросы!

      Стенды автоматического тестирования - это инструмент, в первую очередь, тестирования, т.е. проверки сценариев и алгоритмов работы. Измерение усилий, углов видимости - это испытание другого вида. Их мы на стендах не измеряем.

      А вот нажимать все кнопки сразу мы, конечно же, пробовали! Чуть ли не для этого и разрабатывались стенды :)

      Спасибо за напутствие! Мы будем стараться и далее.


  1. Moondown
    06.04.2022 15:18

    Я сначала прочел и понял, что тема моя и я хочу обучаться "Ферма для чайников" А тут и правда чайники :)