Код документа: RU2719474C1
Перекрестная ссылка на связанные заявки
Настоящая заявка основана и испрашивает преимущества приоритета предварительной заявки США № 62/410,666, поданной 20 октября 2016, все содержание которой включено в настоящий документ посредством ссылки.
Область техники, к которой относится изобретение
[0001] Настоящее изобретение в общем относится к системам и способам верифицирования и подтверждения ожидаемого заинтересованными лицами значения для устройств посредством универсального автоматизированного тестирования встроенных систем.
Предшествующий уровень техники
[0002] Современные продукты для потребительского, коммерческого или промышленного использования могут иметь логику, функциональность или рабочий процесс, реализованные с использованием программного обеспечения, аппаратных средств или некоторой их комбинации. Один тип продукта, также известный как встроенная система, обычно применяет комбинацию программного обеспечения и аппаратных средств и обычно имеет специальную цель для обслуживания в контексте большего целого. Встроенные системы могут быть фиксированными по функции или программируемыми. Существует большое разнообразие встроенных систем, включая компоненты, которые работают независимо, пакеты, которые требуют специализированных сред, в которых им следует работать, и модули, которые могут быть взаимодействовать с программным обеспечением или аппаратными средствами, удовлетворяющими определенным стандартам связи или конструктивным допускам.
[0003] Верификация корректного поведения и проверка ценности для заинтересованных кругов (здесь совместно упоминаемые как тесты или тестирование) является важным этапом в проектировании и производстве встроенных систем, описанных выше. Существует множество разных категорий тестов, включая тесты напряженного состояния, тесты производительности, тесты удобства использования, тесты совместимости и функциональные тесты, среди прочего. Множество тестов в этих категориях оценивают внутреннюю организацию тестируемого продукта, такие как конкретный способ, которым продукт обрабатывает определенные задачи. Поэтому разработка таких тестов требует знания внутренней организации продукта, а выполнение таких тестов требует доступа к внутренней организации продукта.
[0004] Напротив, один тип тестирования, известный как ʺтестирование черного ящикаʺ или ʺповеденческое тестированиеʺ, является способом тестирования, который обычно не требует знания или доступа к внутренней организации продукта. Вместо этого, продукт рассматривается как ʺчерный ящикʺ, и тест оценивает то, как продукт функционирует с внешней точки зрения. Тесты черного ящика могут рассматривать такие вещи, как поведение продукта или выводы, сгенерированные продуктом, в ответ на различные вводы (или их недостаток). Поскольку оно является сфокусированным внешним образом, тестирование черного ящика имеет тенденцию быть более близко согласованным с опытом действительного использования продукта.
[0005] В общем, тестирование продукта может быть ручным или автоматизированным. Автоматизированное тестирование может приводить к меньшим ошибкам и значительно более полной документации. Автоматизированное тестирование может также быть предпочтительным для согласованного проведения повторяющихся или иных крупносерийных тестов, которые необходимо выполнять в течение длительного периода времени или по большому числу устройств. В качестве примера, автоматизированное тестирование широко используется в производстве программного обеспечения для тестирования потребительского программного обеспечения в разнообразных ситуациях и на разных платформах. В этих автоматизированных тестах, компании по программному обеспечению обычно запускают особые инструменты на компьютерах, чтобы моделировать активность пользователя в отношении конкретной программы, и затем определяют, ведет ли себя программа корректно в ответ на моделированную активность.
[0006] Более сложно моделировать активность пользователя в отношении других видов продуктов, подобно встроенным системам в потребительской электронике, бытовой технике или даже транспортных средствах. Некоторые из этих систем могут предлагать конкретную возможность соединения для тестирования и представлять внутренние процессы через некоторый тип интерфейса, чтобы обеспечить возможность моделировать действия пользователя, но тестирование на таких системах может быть громоздким и дорогим, поскольку каждый тест должен быть спроектирован и настроен для каждого интерфейса. Дополнительная проблема состоит в том, что другие встроенные системы не предоставляют этот вид тестового интерфейса и вместо этого предоставляют только интерфейс для использования конечным пользователем.
[0007] Вследствие этого, существует давно назревшая потребность в автоматизированной тестовой платформе, которая является универсальной, гибкой и достаточно мощной, чтобы проводить тесты встроенных систем (различных типов для верифицирования корректного поведения и проверки ценности для заинтересованных сторон, включая тестирование черного ящика) от разных продавцов путем взаимодействия с интерфейсами, предусмотренными в каждой системе. Более того, существует давно назревшая потребность в автоматизированной тестовой платформе, которая не требует дорогостоящего промышленного роботизированного оборудования, других типов дорогостоящих аппаратных средств или пространства для размещения больших частей оборудования. Существует давно назревшая потребность в автоматизированной тестовой платформе, которая оптимизирована для офисного использования и доступна для использования в целях тестирования, включая одновременное тестирование множества устройств.
[0008] В то же самое время, автоматизированной тестовой платформе требуется обеспечить точное измерение тестирования, включая, например, данные временной диаграммы (тайминга), связанные с возникновением определенных действий или реакций. Автоматизированная тестовая платформа должна быть способна обеспечивать высоко релевантные результаты тестирования путем, например, выполнения непрерывного тестирования всех компонентов, которые обычно приводились бы в действие при реальном взаимодействии пользователей. Наконец, автоматизированная тестовая платформа требует гибкости для разрешения создания тестов с использованием простого, структурированного языка, подходящего для человека без специализированного обучения чтению и пониманию, а не сложного компьютерного кода.
Краткое описание чертежей
[0009] Фиг. 1 является блок-схемой автоматизированной платформы тестирования, в соответствии с одним вариантом осуществления изобретения.
[0010] Фиг. 2 является диаграммой компонентов роботизированного обработчика (хэндлера) для использования в автоматизированной платформе тестирования, в соответствии с одним вариантом осуществления изобретения.
[0011] Фиг. 3 является блок-схемой компонентов управляющего приложения для использования в автоматизированной платформе тестирования, в соответствии с одним вариантом осуществления изобретения.
[0012] Фиг. 4 является диаграммой примерной схемы для базы данных для использования в автоматизированной платформе тестирования, в соответствии с одним вариантом осуществления изобретения.
[0013] Фиг. 5A является изображением экрана примерного пользовательского интерфейса для установки управляющего приложения, в соответствии с одним вариантом осуществления изобретения.
[0014] Фиг. 5B является изображением экрана примерных под-экранов пользовательского интерфейса, до которых можно доходить из пользовательского интерфейса на фиг. 5A, в соответствии с одним вариантом осуществления изобретения.
[0015] Фиг. 6 является блок-схемой последовательности операций этапов для создания нового определения продукта для тестирования в автоматизированной платформе тестирования, в соответствии с одним вариантом осуществления изобретения.
[0016] Фиг. 7 является блок-схемой последовательности операций этапов, выполняемых, чтобы откалибровать робота в автоматизированной платформе тестирования, в соответствии с одним вариантом осуществления изобретения.
[0017] Фиг. 8 является экранным изображением примерного пользовательского интерфейса калибровки, до которого можно дойти из пользовательского интерфейса на фиг. 5A.
[0018] Фиг. 9 является блок-схемой последовательности операций этапов, выполняемых в полуавтоматическом способе калибровки для проведения автоматической повторной калибровки роботизированного обработчика после первоначального прохода через поток на фиг. 7, в соответствии с одним вариантом осуществления изобретения.
[0019] Фиг. 10 является блок-схемой последовательности операций этапов, выполняемых для получения изображения и обработки в автоматизированной платформе тестирования, в соответствии с одним вариантом осуществления изобретения.
[0020] Фиг. 11 является примерным тестом, который может выполняться в автоматизированной платформе тестирования, в соответствии с одним вариантом осуществления изобретения.
Краткое описание сущности изобретения
[0021] В одном варианте осуществления изобретения, система для тестирования функционального блока встроенной системы включает в себя маломощное вычислительное устройство, связанное с возможностью взаимодействия с интерфейсом управляющего приложения, интерфейсом датчика и роботизированным интерфейсом. Маломощное вычислительное устройство выполнено с возможностью принимать от интерфейса датчика множество сигналов датчика, сгенерированных в течение теста функционального блока встроенной системы, предоставлять посредством интерфейса управляющего приложения данные датчика, соответствующие множеству сигналов датчика, принимать посредством интерфейса управляющего приложения множество команд для теста функционального блока и предоставлять по роботизированному интерфейсу множество инструкций для перемещения роботизированного обработчика в соответствии с по меньшей мере одной из множества команд для теста функционального блока. Система для тестирования функционального блока встроенной системы также включает в себя вычислительное устройство, связанное с возможностью взаимодействия с интерфейсом управляющего приложения, интерфейсом обработки изображения и интерфейсом базы данных. Вычислительное устройство выполнено с возможностью принимать от интерфейса управляющего приложения данные датчика, принимать от интерфейса обработки изображения данные изображения, соответствующие множеству изображений встроенной системы, захваченных в течение теста функционального блока, принимать от интерфейса базы данных множество тестов, приспособленных выполняться над функциональным блоком, и предоставлять посредством интерфейса управляющего приложения множество команд для теста функционального блока.
[0022] В одном варианте осуществления, вычислительное устройство соединено с сетью и выполнено с возможностью передавать данные статуса тестового и роботизированного обработчика пользователю по сети. В одном варианте осуществления, вычислительное устройство выполнено с возможностью осуществлять связь с пользователем по сети и разрешать использование или изменение приложения, выполняемого на вычислительном устройстве пользователем.
[0023] В одном варианте осуществления, маломощный вычислительный компонент выполнен с возможностью обрабатывать сигналы датчика перед предоставлением данных датчика посредством интерфейса управляющего приложения. В одном варианте осуществления, маломощный вычислительный компонент выполнен с возможностью обрабатывать множество команд перед предоставлением множества инструкций посредством роботизированного интерфейса. В одном варианте осуществления, вычислительное устройство связано с возможностью взаимодействия с интерфейсом обработки данных датчика, и вычислительное устройство принимает посредством интерфейса обработки данных датчика обработанные данные датчика, соответствующие данным датчика, захваченным в течение теста функционального блока. В одном варианте осуществления, по меньшей мере одно из маломощного вычислительного устройства и вычислительного устройства выполнено с возможностью быть синхронизированным на уровне приложения с тем же самым опорным временем, что и другое вычислительное устройство.
[0024] В одном варианте осуществления, по меньшей мере один из множества тестов содержит множество ключевых слов, и вычислительное устройство выполнено с возможностью переводить ключевые слова в команды, приспособленные выполняться роботизированным драйвером. В одном варианте осуществления, по меньшей мере один из множества тестов содержит множество ключевых слов, и вычислительное устройство выполнено с возможностью переводить ключевые слова в команды для передачи посредством интерфейса.
[0025] В одном варианте осуществления, данные датчика или данные изображения соответствуют трехмерным (3D) аспектам встроенной системы или тестового продукта, частью которого является встроенная система. В одном варианте осуществления, функциональный блок для тестирования является двумерным (2D) функциональным блоком.
[0026] В одном варианте осуществления изобретения, способ тестирования функционального блока встроенной системы, выполняемый маломощным вычислительным устройством и вычислительным устройством, включает в себя этапы приема от интерфейса датчика, маломощным вычислительным устройством, множества сигналов датчика, сгенерированных в течение теста функционального блока встроенной системы; предоставления посредством интерфейса управляющего приложения, маломощным вычислительным устройством, данных датчика, соответствующих множеству сигналов датчика; приема от интерфейса управляющего приложения, маломощным вычислительным устройством, множества команд для теста функционального блока; предоставления посредством роботизированного интерфейса, маломощным вычислительным устройством, множества инструкций для перемещения роботизированного обработчика в соответствии с по меньшей мере одной из множества команд для теста функционального блока; и приема от интерфейса управляющего приложения, вычислительным устройством, данных датчика; приема от интерфейса обработки изображения, вычислительным устройством, данных изображения, соответствующего множеству изображений встроенной системы, захваченных в течение теста функционального блока; приема от интерфейса базы данных, вычислительным устройством, множества тестов, приспособленных выполняться над функциональным блоком; и предоставления посредством интерфейса управляющего приложения, вычислительным устройством, множества команд для теста функционального блока.
[0027] В одном варианте осуществления, вычислительное устройство соединено с сетью, причем вычислительное устройство выполнено с возможностью передавать данные статуса теста и роботизированного обработчика пользователю по сети. В одном варианте осуществления, вычислительное устройство осуществляет связь с пользователем по сети, принимает запросы для использования или изменения приложения, выполняемого на вычислительном устройстве, и обрабатывает запросы.
[0028] В одном варианте осуществления, маломощный вычислительный компонент обрабатывает сигналы датчика перед предоставлением данных датчика посредством интерфейса управляющего приложения. В одном варианте осуществления, маломощный вычислительный компонент обрабатывает множество команд перед предоставлением множества инструкций посредством роботизированного интерфейса. В одном варианте осуществления, вычислительное устройство связано с возможностью взаимодействия с интерфейсом обработки данных датчика, и вычислительное устройство принимает посредством интерфейса обработки данных датчика обработанные данные датчика, соответствующие данным датчика, захваченным в течение теста функционального блока. В одном варианте осуществления, по меньшей мере одно из маломощного вычислительного устройства и вычислительного устройства синхронизируется с же самым опорным временем, что и другое вычислительное устройство, на уровне приложения.
[0029] В одном варианте осуществления, по меньшей мере один из множества тестов содержит множество ключевых слов, и вычислительное устройство переводит ключевые слова в команды, приспособленные выполняться роботизированным обработчиком. В одном варианте осуществления, по меньшей мере один из множества тестов содержит множество ключевых слов, и вычислительное устройство выполнено с возможностью переводить ключевые слова в команды для передачи посредством интерфейса.
[0030] В одном варианте осуществления, данные датчика или данные изображения соответствуют трехмерным (3D) аспектам встроенной системы или тестовому продукту, частью которого является встроенная система. В одном варианте осуществления, тестируемый функциональный блок является двумерным (2D) функциональным блоком.
Подробное описание изобретения
[0031] Фиг. 1 является блок-схемой автоматизированной платформы тестирования, в соответствии с одним вариантом осуществления изобретения, и показывает то, как каждый участок платформы соединен с другими участками. Как показано на фиг. 1, управляющее приложение 104 выполняется на вычислительном устройстве 100 и осуществляет связь с базой данных 116. Вычислительное устройство 100 может быть любым устройством, на котором может исполняться управляющее приложение, таким как персональный компьютер (PC), сервер, ноутбук, смартфон, планшет и тому подобное. Вычислительное устройство 100 будет обычно содержать процессор, осуществляющий связь с энергозависимой и/или энергонезависимой памятью, периферийным интерфейсом и сетевым интерфейсом, при помощи которого он соединяется с другими компонентами автоматизированной платформы тестирования, такими как база данных 116 и роботизированный обработчик 118. Периферийный интерфейс соединяет вычислительное устройство с различными устройствами ввода, которые могут включать в себя клавиатуру, мышь, тачскрин, механизмы ввода VR, которые могут соответствовать положению роботизированного обработчика в 3D пространстве, или любое другое подходящее устройство для ввода локальных пользовательских команд для управления вычислительным устройством 100. Следует понимать, что вычислительное устройство 100 и/или управляющее приложение 104 может содержать специализированные аппаратные средств (или может быть встроенной системой), настроенные на работу в качестве части автоматизированной платформы тестирования. Такая специализация может повысить скорость и отклик процесса тестирования. Например, специализированные аппаратные средства в вычислительном устройстве 100 могут включать в себя множество вычислительных компонентов, соединенных вместе посредством некоторого коммуникационного пути, таких как набор интерфейсов. Например, маломощный вычислительный компонент, например, потребляющий менее 25 ватт, может быть соединен с роботизированным обработчиком 118 посредством роботизированного интерфейса и/или датчиком(ами) 126 посредством интерфейса датчика, а также соединен с другими модулями поддержки, обслуживания или исполнения вычислительных компонентов в вычислительном устройстве 100 посредством интерфейса управляющего приложения. Дополнительно, множество таких маломощных вычислительных компонентов может соединяться с теми же самыми совместно используемыми модулями поддержки, обслуживания или исполнения вычислительных компонентов в вычислительном устройстве 100 по совместно используемому или индивидуальному интерфейсу управляющего приложения. Маломощные вычислительные компоненты могут обеспечивать преимущество по энергосбережению и масштабируемости над другими типами вычислительных компонентов. Отметим, что маломощный вычислительный компонент не обязательно означает вычислительный компонент ʺс низкими функциональными возможностямиʺ. Например, возможно увеличить вычислительную мощность маломощного вычислительного компонента с целевым назначением путем использования специализированных аппаратных средств, таких как специализированная схема для конкретных целей (например, обработки графики). Следует также понимать, что может иметься множество вычислительных устройств и множество управляющих приложений или множество вычислительных устройств, совместно использующих обработку одного или нескольких управляющих приложений. Дополнительно, может иметься библиотека или служба, позволяющая осуществлять упаковку и развертывание обновлений программного обеспечения по множеству вычислительных устройств и управляющих приложений для согласованности. Такая библиотека или служба позволит пользователям поддерживать разные версии программного обеспечения и обновлять эти версии в центральном местоположении.
[0032] Управляющее приложение 104 работает при помощи совместно используемых модуля 106 тестовой библиотеки, модуля 108 получения изображения и модуля 110 обработки данных датчика, чтобы осуществлять связь с роботизированным обработчиком 118. Совместно используемый модуль 106 тестовой библиотеки работает при помощи среды 112 тестирования роботизированной структуры, которая, в свою очередь, работает при помощи базы данных 116.
[0033] Следует понимать, что база данных 116 и среда 112 тестирования роботизированной структуры могут быть отдельными от вычислительного устройства 100, как в варианте осуществления, показанном на фиг. 1, и осуществлять связь посредством интерфейса базы данных, или база данных 116 и среда 112 тестирования роботизированной структуры могут быть частью вычислительного устройства 100 в других вариантах осуществления. Роботизированный обработчик 118 взаимодействует со встроенной системой 122 тестируемого продукта 120. Роботизированный обработчик 118 может выполнять взаимодействие посредством пользовательского интерфейса, такого как двумерный (2D) функциональный блок встроенной системы. 2D функциональный блоки встроенной системы включают в себя по меньшей мере интерфейсы тачскрина, но следует понимать, что 2D функциональный блоки могут также относиться к физическим аналогам этих тачскринов (например, кнопкам, круговым шкалам (лимбам) и ползункам). Следует понимать, что взаимодействие с интерфейсами тачскрина не должно быть ограничено нажатием кнопок. Роботизированный обработчик 118 может также быть способен выполнять взаимодействия, такие как те, которые требуются, чтобы взаимодействовать со следующими типами пользовательских интерфейсов: (1) тачскрины, чувствительные к усилию, приспособленные обнаруживать разные уровни нажатия, (2) тачскрин с множеством касаний, приспособленный обнаруживать одновременно активированные точки, или (3) тачскрины, которые обнаруживают выполняемые жесты, такие как направленные взмахи или прослеживаемые символы. Следует также понимать, что может существовать множество роботизированных обработчиков, управляемых одним или несколькими управляющими приложениями. Более того, может существовать множество встроенных систем или продуктов, тестируемых одним или несколькими роботизированными обработчиками. В ситуации с участием множества роботизированных обработчиков и/или множества встроенных систем или тестируемых продуктов, может иметься роботизированная система администрирования, которая координирует тестирование по всем устройствах. Такая роботизированная система администрирования разрешит множеству пользователей планировать использование роботизированных обработчиков, чтобы избежать столкновений. Роботизированная система администрирования также обеспечивает возможность приоритизации задач, чтобы позволять осуществлять гармонизированное сочетание всех роботизированных обработчиков и/или устройств тестирования, согласованных с предпочтением, таким как скорость, покрытие, минимизация затрат ресурсов или другими мерами эффективности.
[0034] Совместно используемый модуль 106 тестовой библиотеки может включать в себя или делать доступными определения различных процедур и способов выполнения разных аспектов каждого теста. В качестве одного примера, может существовать способ аутентификации с использованием номера PIN, который включает в себя этапы для приведения в действие роботизированного обработчика 118 или других роботизированных обработчиков для взаимодействия со встроенной системой 122 путем, например, нажатия кнопок, основываясь на различных потоках, определенных в базе данных 116, в результате чего роботизированный обработчик переходит к подходящему пользовательскому интерфейсу и номер PIN вводится во встроенную систему 122. Способ аутентификации с использованием номера PIN может также включать в себя этапы запрашивания обратной связи от других компонентов платформы тестирования, таких как модуль 108 получения изображения и модуль 110 обработки данных датчика, так что он может сравнивать действительную обратную связь с ожидаемой обратной связью и подготавливать подходящее возвратное значение или обновлять условие для оценивания средой 112 тестирования роботизированной структуры.
[0035] Среда 112 тестирования роботизированной структуры представляет собой приложение, которое может администрировать роботизированный обработчик 118 или другие роботизированные обработчики. Поэтому среда 112 тестирования роботизированной структуры осведомлена о статусе любых таких роботизированных обработчиков в системе и других модулях платформы тестирования, включая без ограничения модуль 114 обработки изображения и камеру(ы) 124. Среда тестирования роботизированной структуры приспособлена выполнять действия, такие как обработка тестовых запросов, бронирование роботизированных обработчиков для выполнения тестов и выполнение тестов. Среда 112 тестирования роботизированной структуры может исполнять тесты, содержащие последовательности этапов. Каждый этап может соответствовать ключевым словам или ключевым фразам. Ключевые слова или ключевые фразы могут, например, соответствовать конкретной процедуре или способу, сохраненному в совместно используемом модуле 106 тестовой библиотеки, доступному посредством упомянутого модуля или определенному в нем. Например, может существовать ключевое слово или ключевая фраза ʺАутентифицировать при помощи PINʺ, которая относится к конкретной процедуре или способу, сохраненному в совместно используемом модуле 106 тестовой библиотеки, доступному посредством него или определенному в нем, как упомянуто выше. Среда 112 тестирования роботизированной структуры может использовать ключевое слово или ключевую фразу, чтобы вызвать исполнение соответствующей процедуры или способа совместно используемого модуля 106 тестовой библиотеки и принять возвращаемое значение или оценить условие, обновленное процедурой или способом. После приема такого значения или оценивания такого условия, среда 112 тестирования роботизированной структуры может определить, следует ли остановить исполнение или приступить к исполнению другого этапа теста.
[0036] Вычислительное устройство 100 может быть соединено с сетью 128. Сеть 128 может быть любой известной сетью связи, включая Интернет, локальную сеть (LAN), глобальную сеть (WAN) и т.д. Пользователь или пользователи 130 могут соединяться через сеть 128 с вычислительным устройством 100 посредством сервера 102 и приводить в действие управляющее приложение 104. Посредством соединения и с использованием управляющего приложения пользователи могут наблюдать за активностью роботизированных обработчиков и также модифицировать программное обеспечение, управляющее ими. Сервер 102 может быть, например, сервером пересылки представляющего состояние (ʺRESTʺ) для связи с пользовательскими клиентами. Сервер 102 может также реализовывать другие механизмы для архитектуры системы услуг, включая общую архитектуру брокера объектных запросов (ʺCORBAʺ), модель распределенных компонентных объектов (ʺDCOMʺ), вызовы удаленных процедур (ʺRPCʺ) или простой протокол для доступа к объектам (ʺSOAPʺ) для связи с пользовательскими клиентами.
[0037] В одном варианте осуществления, где множество пользователей совместно используют одну автоматизированную платформу тестирования, пользователи могут ʺбронироватьʺ использование роботизированных обработчиков, чтобы избегать конфликтов, происходящих вследствие одновременных, возможно конфликтующих запросов от разных пользователей. Пользователи могут также ʺотменять бронированиеʺ роботизированного обработчика после завершения теста или после определения, что роботизированный обработчик больше не требуется. Однако следует понимать, что пользователи могут случайно оставить роботизированный обработчик в ʺзабронированномʺ состоянии, препятствуя другим пользователям взаимодействовать с роботизированным обработчиком. В таком случае, роботизированный обработчик может ʺснять бронированиеʺ самостоятельно после определенного периода неактивности, так что он становится доступным другим пользователям.
[0038] Камера 124, в качестве конкретной версии визуального датчика (см. общее описание датчиков ниже), наблюдает за встроенной системой 122 или другими участками тестового продукта 120, включая 2D функциональный блоки или 3D аспекты встроенной системы 122 или тестового продукта 120, и осуществляет связь с модулем 108 получения изображения. В качестве примера, наблюдение 3D аспектов камерой 124 может приводить к данным изображения, отражающим механические аспекты того, как встроенная система 122 или тестовый продукт 120 отвечают в течение теста 2D функционального блока встроенной системы 122. Модуль 108 получения изображения в свою очередь работает с модулем 114 обработки изображения, который дополнительно осуществляет связь с базой данных 116. Следует понимать, что модуль 114 обработки изображения может быть отдельным от вычислительного устройства 100, как в варианте осуществления, показанном на фиг. 1, и может осуществлять связь посредством интерфейса обработки изображения, или что модуль 114 обработки изображения может быть частью вычислительного устройства 100 в других вариантах осуществления. Следует также понимать, что может существовать множество камер 124, наблюдающих за встроенной системой 122 или другими участками тестового продукта 120.
[0039] Аналогичным образом, датчик 126 наблюдает за встроенной системой 122 или другими участками тестового продукта 120, включая 2D функциональный блоки или 3D аспекты встроенной системы 122 или тестового продукта 120, и осуществляет связь с модулем 110 обработки данных датчика. В качестве примера, наблюдение 3D аспектов датчиком 126 может приводить к сигналам датчика, отражающим механические аспекты того, как встроенная система 122 или тестовый продукт 120 отвечают в течение теста 2D функционального блока встроенной системы 122. Модуль 110 обработки данных датчика принимает сигналы датчика и выполняет любую обработку при необходимости, чтобы сгенерировать данные датчика. Некоторые сигналы датчика, например, сигналы, предоставленные датчиками, обнаруживающими двоичное условие или предоставляющими числовое значение, могут составлять данные датчика без любой дополнительной обработки в зависимости от теста, для которого следует интерпретировать данные датчика. Модуль 110 обработки данных датчика осуществляет связь с базой данных 116 и предоставляет данные в управляющее приложение 104, так что оно может интерпретировать данные датчика способом, соответствующим тестовому продукту. Датчик 126 может быть датчиком освещенности, визуальным датчиком, датчиком температуры, датчиком влажности, датчиком движения, механическим датчиком, датчиком давления, аудио датчиком или любым другим датчиком, подходящим для конкретных характеристик встроенной системы или оцениваемого тестового продукта. Например, в варианте осуществления, где тестовый продукт является многофункциональным печатающим устройством, и тест применяет верификацию определенных характеристик вывода печати, датчик 126 может быть оптическим/механическим датчиком для обнаружения наличия бумаги, того, является ли печатный документ двойным или одинарным, размера бумаги, веса бумаги, уровней черного распечатки или цветов распечатки, среди других аспектов вывода печати, которому может потребоваться верификация. В другом варианте осуществления, где тестовый продукт является 3D принтером, датчик 126 может быть датчиком температуры или влажности, чтобы оценивать условия печатающей камеры, или оптическим датчиком, чтобы оценивать прогресс печати. В другом варианте осуществления, где тестовый продукт включает в себя физические переключатели или другие чувствительные к нажатию вводы, датчик 126 может быть тактильным датчиком, оценивающим усилие, необходимое для активирования таких переключателей или вводов. Следует понимать, что разные варианты осуществления могут работать с более чем одним датчиком 126. Например, в варианте осуществления, где тестовый продукт представляет собой стиральную машину, первый датчик может быть датчиком температуры, чтобы оценивать температуру воды, а второй датчик может быть микрофоном, чтобы оценивать уровень шума в течение работы. Дополнительно, в некоторых вариантах осуществления, датчик 126 может быть соединен с локальным вычислительным устройством, которое может быть маломощным вычислительным устройством, таким как микрокомпьютер Raspberry PiTM, который обрабатывает ввод локально до передачи на вычислительное устройство 100. Локальное вычислительное устройство, которое может быть маломощным вычислительным устройством, может выполнять обработку сигналов, принятых от датчика 126, чтобы сгенерировать данные датчика. В таких вариантах осуществления функция модуля 110 обработки данных датчика может быть упрощена или даже исключена.
[0040] Роботизированный обработчик 118 на фиг. 1 может содержать различные компоненты. Фиг. 2 является диаграммой, иллюстрирующей компоненты примерного роботизированного обработчика 218 в физической тестовой среде в соответствии с одним вариантом осуществления изобретения. В некоторых вариантах осуществления, роботизированный обработчик 218 может использоваться как роботизированный обработчик 118, показанный и описанный во взаимосвязи с фиг. 1. Роботизированный обработчик 218 содержит по меньшей мере одно устройство 214 манипуляций, которое приводится в действие одним или несколькими сервоприводами 202, 204, 206 и 208. Число сервоприводов не ограничено четырьмя и может быть больше или меньше. Характер устройства 214 манипуляций зависит от желательного взаимодействия со встроенной системой 222 или тестовым продуктом 220. Когда встроенная система 222 является тачскрином, например, устройство 214 манипуляций может быть стилусом, подходящим для нажатия кнопок на экране. Когда встроенная система 222 является дисплеем с физическими кнопками, например, устройство 214 манипуляций может быть стилусом, подходящим для нажатия физических кнопок. Если встроенная система 222 включает в себя тачскрин в дополнение к физическим кнопкам, устройство 214 манипуляций может быть стилусом или стилусами, приспособленными нажимать как экранные, так и физические кнопки. Когда встроенная система 222 содержит другие средства взаимодействия, такие как лимбы, устройство 214 манипуляций может быть захватом, подходящим для поворота лимбов. В других вариантах осуществления, устройство 214 манипуляций может включать в себя множество стилусов, инструментов или приспособлений, из которых оно может выбирать подходящее для желательного взаимодействия с встроенной системой 222. Камера 234 может быть смонтирована на регулируемой треноге 230 на подходящем расстоянии, высоте и угле для наблюдения за встроенной системой 222 или другими частями тестового продукта 220. Хотя не проиллюстрировано на фиг. 2, следует понимать, что могут иметься тестовые среды, в которых используется множество камер.
[0041] Роботизированный обработчик 218 также включает в себя устройство 200 позиционирования, такое как регулируемая стойка, чтобы обеспечить, что он корректно размещен для взаимодействия со встроенной системой 222 и тестовым продуктом 220. Более того, может иметься один или несколько вспомогательных сервоприводов, таких как сервопривод 210, который может иметь специализированную задачу, которая может выполняться независимо от устройства манипуляций. Например, сервопривод 210 может быть выполнен с аппаратными средствами 212, позволяющими ему предоставлять карту доступа или другое устройство 216 сертификации для верификации считывателем 224 на тестовом продукте 220. Карта доступа или устройство сертификации могут быть одной картой или устройством, или эмулятором, который может представлять информацию учетной записи любой другую карту или устройство, для исключения необходимости замены карт или устройств, чтобы тестировать разные учетные записи пользователей. Вспомогательный сервопривод является опциональным и может быть заменен другими вспомогательными устройствами, которым не требуется выполнять физические действия. Например, устройство 216 сертификации может взаимодействовать со встроенной системой 222 или считывателем 224 через другие средства, в том числе через прямую электронную связь, исключая необходимость для сервопривода 210 выполнять физическое действие.
[0042] В одном варианте осуществления, когда роботизированный обработчик 218 воспринимает предопределенный, но конфигурируемый период неактивности, например, пять минут, манипулятор может переместиться в конкретное положение покоя и выключить сервоприводы 202, 204, 206 и 208. Это снижает нагрузку сервоприводов в течение таких пауз и повышает их срок службы. После приема новой команды, роботизированный обработчик 218 активируется из состояния покоя и вновь включает свои сервоприводы для исполнения команды.
[0043] Фиг. 3 является блок-схемой компонентов управляющего приложения 304 в соответствии с одним вариантом осуществления изобретения. В некоторых вариантах осуществления, управляющее приложение 304 может использоваться как управляющее приложение 104, показанное и описанное во взаимосвязи с фиг. 1. Модуль 306 управления роботом управляет установлением связи с роботизированного обработчика и общим управлением роботизированным обработчиком, таким как 118 или 218, показанным и описанным во взаимосвязи с фиг. 1 и 2, соответственно. Модуль 308 калибровки может использоваться, чтобы калибровать роботизированный обработчик, камеру, такую как 124, показанную и описанную во взаимосвязи с фиг. 1, или датчик, такой как 126, показанный и описанный во взаимосвязи с фиг. 1. Модуль 310 базы данных администрирует информацию и структуру базы данных, такой как база данных 116, показанная и описанная во взаимосвязи с фиг. 1. Модуль 310 базы данных может включать в себя пользовательские интерфейсы или другие инструменты, чтобы модифицировать информацию и/или структуру базы данных. Например, пользовательский интерфейс может предоставлять возможность обновлять разные типы полей ввода или других компонентов UI в базе данных или вводить новые экземпляры существующих типов. Наконец, сетевой модуль 312 управляет соединениями с сервером, таким как сервер 102, показанный и описанный во взаимосвязи с фиг. 1, и совместно используемым модулем тестовой библиотеки, таким как совместно используемый модуль 106 тестовой библиотеки, показанный и описанный во взаимосвязи с фиг. 1. Эти компоненты все представляются конечному пользователю посредством пользовательского интерфейса 314, возможный пример которого проиллюстрирован на фиг. 5.
[0044] Фиг. 4 является блок-схемой примерной схемы для базы 416 данных в автоматизированной платформе тестирования, в соответствии с одним вариантом осуществления изобретения. В некоторых вариантах осуществления, база 416 данных может использоваться как база данных 116, показанная и описанная во взаимосвязи с фиг. 1. Таблица ʺManufacturersʺ (производители) 420 включает в себя информацию о каждом производителе. Таблица ʺPrinterModelsʺ (модели принтеров) 422 включает в себя определения производителя и модели. Таблица ʺHwVersionsʺ (Hw-версии) 424 включает в себя записи, соответствующие версиям аппаратных средств, использованных в модели принтера. Таблица ʺFwVersionsʺ (Fw-версии) 426 включает в себя записи, соответствующие версиям прошивки, использованной в модели принтера. Таблица ʺSqVersionsʺ (Sq-версии) 428 включает в себя входы, соответствующие версиям сервера администратора печати, использованного с моделью принтера. Примерная реализация сервера администратора печати может быть сервером YSoft SafeQTM. Таблица ʺSafeQServersʺ (SafeQ-серверы) 430 включает в себя информацию для каждого сервера администратора печати, который вновь может быть сервером YSoft SafeQTM в одном варианте осуществления. Таблица ʺPathʺ (маршруты) 432 определяет постоянные для перемещения робота. Такие постоянные могут включать в себя значения, специфические для определенных типов сенсорных дисплеев, например, и без ограничения, устройств с емкостными и резистивными сенсорными дисплеями. Таблица ʺPathPartsʺ (части маршрутов) 434 определяет постоянные для скорости и пауз перемещений робота. Таблица ʺMFPsʺ (означает многофункциональные принтеры или многофункциональные устройства) 436 включает в себя определения модели принтера, версию администратора печати, версию прошивки, версию аппаратных средств и размер экрана. Таблица ʺFlowNamesʺ (имена потоков) 438 включает в себя имена определенных пользователями потоков. Каждый определенный пользователями поток может быть реализован по-разному для разных продавцов и разных устройств. Соответственно, таблица ʺFlowsʺ (потоки) 440 определяет определенные пользователями потоки для желательных действий, включая идентификацию имени из ʺИмен потоковʺ, конкретного продавца и/или устройства, для которого применяется поток, и соответствующих записей в таблице ʺFlowStepsʺ (этапы потока). Таблица ʺЭтапы потокаʺ 442 включает в себя определения этапов, которые, как указано таблицей ʺПотокиʺ 440, описывают поток для желательного действия. Каждое определение этапа может включать в себя конкретный элемент интерфейса, с которым следует взаимодействовать, желательное взаимодействие, порядок в потоке и другие связанные опции для этапов, которые могут, например, включать в себя способность пропускать верификацию экрана места назначения для более быстрого исполнения. Таблица ʺScreensʺ (экраны) 444 включает в себя определения каждого экрана в интерфейсе встроенной системы, включая, например, логический экран и главный экран. Таблица ʺScreensʺ (кнопки) 446 определяет текст, маркер, экран места назначения, начальный экран и то, является ли кнопка кнопкой аппаратных средств. Таблица ʺButton Placementʺ (размещение кнопок) 448 включает в себя определения MFP, положение, размер и кнопки. Таблица ʺFeature Regionsʺ (области признаков) 450 включает в себя определения областей на экранах, которые могут, например, использоваться службой обработки изображений. Эти определения могут включать в себя текстовые области, области изображений и другие области с конкретным назначением, такие как области всплывающих окон, или в которых могут выполняться определенные типы обработки, такие как области считывания. Таблица ʺTest Resultsʺ (результаты теста) 452 включает в себя определения результатов различных выполненных тестов, включая определения имен тестов; адреса Интернет-протокола или другие сетевые адресы; информацию тайминга, такую как начало, конец и длительность; выводы; форматы; и конечные результаты или заключения из тестов. Таблица ʺPrint Timesʺ (время печати) 454 включает в себя определения заданий печати, включая размеры заданий, форматы заданий, устройство и информацию о версии для серверов администратора печати, которые вновь могут быть сервером YSoft SafeQTM в одном варианте осуществления.
[0045] Фиг. 5A является изображением экрана примерного пользовательского интерфейса 500 для компонентов управляющего приложения на фиг. 3, в соответствии с одним вариантом осуществления изобретения. Как показано на этом изображении, пользовательский интерфейс 510 управления роботом включает в себя элементы управления для соединения с роботизированным обработчиком, например, чтобы выбрать сетевой порт для соединения, чтобы отсоединиться от роботизированного обработчика, и чтобы управлять вспомогательным сервоприводом, чтобы провести карту в тестовом продукте. Хотя кнопка обозначена ʺпровести картуʺ в этом примерном пользовательском интерфейсе, следует понимать, что устройство сертификации может быть связано со встроенной системой 222 или считывателем 224 через другие средства, которые не требуют физического проведения карты, как упомянуто ранее. В таком сценарии кнопка ʺпровести картуʺ активирует необходимый процесс сертификации, чтобы получить доступ к тестовому продукту. Пользовательский интерфейс 520 калибровки включает в себя элементы управления, чтобы калибровать робота, калибровать камеру и загружать сохраненную калибровку. Кратко, калибровка камеры гарантирует, что камера находится в наилучшем положении для съемки четких кадров и может также предоставлять пользователю способ конфигурировать параметры камеры (например, настройки экспонирования, такие как скорость затвора, скорость ISO и апертура). Калибровка робота описана более подробно в связи с фиг. 7-9. Сетевой пользовательский интерфейс 530 включает в себя элементы управления для указания порта, за который отвечает сервер REST, для указания порта, за который отвечает совместно используемый модуль тестовой библиотеки, и элементы управления для включения и выключения соединений. Пользовательский интерфейс 540 базы данных включает в себя элементы управления для администрирования каждой таблицы, описанной в схеме на фиг. 4. Элемент управления 550 позволяет обновлять версию управляющего приложения, сохраненного на сервере, и открывает диалог, где пользователь может выбрать и установить другую версию управляющего приложения.
[0046] Отметим отсутствие видимых элементов управления в этом варианте осуществления для таблицы ʺМаршрутыʺ 432, как показано и описано во взаимосвязи с фиг. 4, которая определяет постоянные для перемещения робота соответственно сенсорным дисплеям, и таблицы ʺЧасти маршрутовʺ 434, как показано и описано во взаимосвязи с фиг. 4, которая определяет постоянные для скорости и пауз перемещений робота. Обычно эти таблицы не требуется модифицировать, если только не добавляется новый тип или конфигурация роботизированного обработчика на платформу тестирования. Другие варианты осуществления могут включать в себя элементы управления для этих таблиц внизу, со специальной пометкой проявлять осторожность в модифицировании этих таблиц, или с элементом управления доступом, разрешающим изменение только определенными пользователями с корректными ролями или уровнями разрешения.
[0047] Фиг. 5B является изображением экрана примерных суб-экранов 560 и 570 пользовательского интерфейса, в которые можно перейти из пользовательского интерфейса на фиг. 5A для администрирования таблицы ʺКнопкиʺ 446 и таблицы ʺРазмещения кнопокʺ 448, как показано и описано во взаимосвязи с фиг. 4, соответственно, в соответствии с одним вариантом осуществления изобретения. В соответствии с этим вариантом осуществления, таблица ʺКнопкиʺ включает в себя определения для кнопок во встроенных системах на различных тестовых продуктах. Примерная запись в таблице ʺКнопкиʺ может включать в себя текст: ʺPINʺ, метку: ʺоткрыть клавиатуруʺ, экран места назначения: ʺPINʺ и начальный экран: ʺэкран входа в системуʺ. Это представит кнопку на встроенной системе тестового продукта, которая показывает на экране входа и, при нажатии, открывает клавиатуру на экране PIN, так что пользователь может ввести PIN. Таблица ʺРазмещения кнопокʺ может связывать кнопку, определенную в таблице ʺКнопкиʺ, с конкретным принтером. Примерная запись в таблице ʺРазмещения кнопокʺ для кнопки с меткой: ʺоткрыть клавиатуруʺ может включать в себя Принтер: ʺKonica Minolta 421ʺ, Положение ʺx:57 y:66 z:0ʺ и Размер ʺW: 33, H: 6ʺ. Это будет указывать, что, на тестовом продукте Konica MinoltaTM 421, кнопка ʺоткрыть клавиатуруʺ может быть найдена в координатах x:57, y:66, z:0, и кнопка имеет ширину 33 мм и высоту 6 мм. В этом варианте осуществления, координаты определяются соответственно для x:0 y:0 z:0, что соответствует нижнему левому углу экрана.
[0048] Фиг. 6 является блок-схемой последовательности операций этапов для создания нового определения продукта в базе данных для тестирования, в соответствии с одним вариантом осуществления изобретения. Хотя возможны другие потоки, этот примерный поток гарантирует, что все данные заполнены способом, согласованным со схемой базы данных в варианте осуществления согласно фиг. 4, и что заранее необходимые данные введены в определенные таблицы, прежде чем они потребуются для заполнения других таблиц. Этап 600 определяет записи в таблице ʺПроизводителиʺ, чтобы представить производителей тестовых продуктов. Этап 602 определяет записи в таблице ʺМодели принтеровʺ, которые представляют модели принтеров и ассоциируют их с соответствующими им производителями. Этап 604 определяет записи в таблице ʺHw-версииʺ, которая представляет версии аппаратных средств в модели принтеров. Этап 606 определяет записи в таблице ʺFw-версииʺ, которая представляет версии прошивки в моделях принтеров. Этап 608 определяет записи в таблице ʺSq-версииʺ, которые представляют версии серверов администратора печати, таких как серверы YSoft SafeQTM в одном варианте осуществления, для моделей принтеров. Этап 610 определяет записи в таблице ʺSafeQ-серверыʺ, которые соответствуют другой информации в зависимости от серверов администратора печати, которые будут использоваться для администрирования принтеров. Этап 612 определяет записи в таблице ʺMFPʺ, которые включают в себя определения модели принтера, версии сервера администратора печати, версии прошивки, версии аппаратных средств и размера экрана. Причина, по которой этап 612 для определения записей MFP происходит в указанном месте в потоке определений, состоит в том, что могут существовать разные многофункциональные принтеры одной и той же модели, но отличающейся версии сервера администратора печати, версии прошивки или версии аппаратных средств. Этап 614 определяет записи в таблице ʺЭкраныʺ, которые представляют различные экраны на интерфейсе встроенной системы в тестовом продукте. Этап 616 определяет записи в таблице ʺКнопкиʺ, которые представляют различные кнопки, соответствующие каждому экрану. Этап 618 определяет записи в таблице ʺРазмещения кнопокʺ, которые представляют положение и размер каждой кнопки на экране в каждом MFP.
[0049] В определенных вариантах осуществления поток для определения нового продукта для тестирования может выполняться вручную, но следует понимать, что поднабор этапов или даже все этапы могут поддерживаться приложениями помощника, или они могут также выполняться автоматически. Например, в одном варианте осуществления с функцией автоматического обучения, управляющее приложение может использовать роботизированный обработчик и камеру для навигации по экранам встроенной системы на новом тестовом продукте путем испытания кнопок и записи результатов и навигационного потока между экранами. Это приведет к заполнению базы данных информацией в таблицах ʺЭкраныʺ, ʺКнопкиʺ и ʺРазмещения кнопокʺ, оставляя на усмотрение человека именовать эти экраны подходящим образом позже.
[0050] Фиг. 7 является блок-схемой последовательности операций этапов, выполняемых для калибровки роботизированного обработчика, такого как 118 и 218 в автоматизированной платформе тестирования, в соответствии с одним вариантом осуществления изобретения и согласованных с примерным пользовательским интерфейсом как показано и описано во взаимосвязи с фиг. 5A. Цель калибровки состоит в обеспечении того, что роботизированный обработчик знает, где он находится по отношению к тестируемой встроенной системе. Калибровка для роботизированного обработчика может быть основной или полуавтоматической. Общий процесс, чтобы начать как основной, так и полуавтоматический способы калибровки является одним и тем же - идентифицировать три угла экрана, отображенных в соответствии с потоком на фиг. 7. Однако, в то время как основная калибровка применяет только один проход через поток калибровки, полуавтоматическая калибровка продолжает далее до фазы автоматической повторной калибровки. В одном варианте осуществления, результаты калибровки могут быть верифицированы путем использования функциональности ʺиспытанияʺ, чтобы заставить роботизированный обработчик нажать выбранную кнопку на экране встроенной системы.
[0051] Этап 700 предназначен для обеспечения того, что робот соединяется с использованием элементов управления роботом, таких как элементы управления, соответствующие 510 в примерном пользовательском интерфейсе на фиг. 5A. Этап 702 предназначен, чтобы физически расположить робота перед тестовым продуктом, так что он может дотянуться до элементов на экране встроенной системы и любых элементов аппаратных средств, таких как кнопки, которые могут требоваться для тестирования. Этап 704 предназначен активировать элемент управления ʺкалибровать роботаʺ в пользовательском интерфейсе, такой как кнопка, изображенная в секции 520 примерного пользовательского интерфейса на фиг. 5A. Этап 706 предназначен для выбора тестового продукта, который уже должен быть создан, например, в соответствии с потоком на фиг. 6. Интерфейс калибровки предоставляет последовательность подсказок на экране, которым будет следовать пользователь. Этап 708a предназначен для навигации роботизированного обработчика к нижнему левому углу экрана. Этап 708b предназначен для навигации роботизированного обработчика к верхнему левому углу экрана. Этап 708c предназначен для навигации роботизированного обработчика к верхнему правому углу экрана.
[0052] Фиг. 8 является экранным изображением примерного пользовательского интерфейса полуавтоматической калибровки, проводящего пользователя через исходную ручную калибровку, которая параллельно осуществляет этапы для основной калибровки. В этом варианте осуществления, роботизированный обработчик оснащен стилусом в качестве устройства манипуляций и управляется посредством ввода с клавиатуры. Следует понимать, что могут использоваться другие устройства манипуляций, и что также могут использоваться другие формы элементов управления, включая позиционирование вручную, где возможно для роботизированных обработчиков, которые могут принимать вводы позиционирования вручную и получать углы сервопривода с использованием инверсной кинематики.
[0053] Основная калибровка заканчивается здесь сохранением результатов калибровки; пользовательский интерфейс предоставляет уведомление, что роботизированный обработчик был откалиброван для тестового продукта. Результаты калибровки состоят из значений координат x, y, z для трех углов отображенного экрана, который определяет плоскость в 3D пространстве. В этом варианте осуществления, координаты определяются относительно x:0 y:0 z:0, что соответствует центру первого сервопривода в роботизированном обработчике.
[0054] Как указано выше, полуавтоматическая калибровка вовлекает выполнение через исходный процесс основной калибровки, за которым следует фаза автоматической повторной калибровки. Фиг. 9 является блок-схемой последовательности операций этапов, выполняемых в полуавтоматическом способе калибровки для выполнения автоматической повторной калибровки роботизированного обработчика после исходного прохождения через поток на фиг. 7, в соответствии с одним вариантом осуществления изобретения. Этап 730, который может выполняться перед потоком согласно фиг. 7, как желательно, предназначен для установления тестового продукта с терминальным соединением с управляющим приложением, которое сообщает пиксельные координаты (x, y) любого обнаруженного касания на экране встроенной системы. Этап 732 предназначен для загрузки управляющего приложения с размерностями и разрешением экрана встроенной системы, который может использоваться, чтобы переводить любую пиксельную координату (x, y) в положение (x1, y1) на экране в миллиметрах. Этап 734 предназначен для того, чтобы управляющее приложение использовало три источника информации, чтобы расположить роботизированный обработчик с использованием данных для первого отображенного угла, полученного из первого прохода через поток полу-автоматической калибровки; вместо позиционирования стилуса точно, как отображено, роботизированный обработчик первоначально запускается на удалении от экрана (то есть, немного ближе к своему исходному положению). На этапе 736 роботизированный обработчик перемещается ближе к экрану, пока не будет сообщено о касании терминальным соединением. Этап 738 обрабатывает сообщенные пиксельные координаты (x, y) и переводит их в физическое положение (x1, y1) на экране в миллиметрах. Процесс автоматической повторной калибровки повторяет этапы 734-738 для каждого из трех отображенных углов. Затем, этап 740 использует данные физического положения для трех отображенных углов экрана и, совместно с сообщенными данными пиксельных координат (x, y), повторно вычисляет скорректированные физические положения (x, y, z) трех отображенных углов экрана и заменяет ранее записанные данные в первой фазе процесса полуавтоматической калибровки. Этот новый набор данных, являющийся результатом процесса автоматической повторной калибровки, удаляет ошибку пользователя и обеспечивает абсолютную точность положения роботизированного обработчика относительно экрана встроенной системы на тестовом продукте.
[0055] Фиг. 10 является блок-схемой последовательности операций этапов, выполняемых для получения и обработки изображения в автоматизированной платформе тестирования, в соответствии с одним вариантом осуществления изобретения, согласованным с системой, показанной и описанной во взаимосвязи с фиг. 1. Автоматизированная платформа тестирования включает в себя получение и обработку изображения и имеет возможность распознавать признаки в изображении, чтобы предоставлять визуальную обратную связь на управляющее приложение, представляющую поведение тестового продукта и/или встроенной системы. В системе без способностей анализа изображения, робот может продолжать обработку своих этапов без распознавания того, что что-то пошло неверно с конкретным тестовым продуктом (например, лоток для бумаги пуст, лоток вывода заполнен, или неожиданное предупреждение/сообщение об ошибке появляется на экране.
[0056] На этапе 800, управляющее приложение 104 запрашивает анализ изображения встроенной системы 122 и/или тестового продукта 120. На этапе 802, камера 124 делает фотоснимок встроенной системы 122 и/или тестового продукта 120. На этапе 804, камера 124 передает данные изображения на модуль 108 получения изображения. На этапе 806, модуль 108 получения изображения передает информацию на модуль 114 обработки изображения, который может быть локальным или может находиться на независимом сервере, соединенном с модулем обработки изображения по сети. Затем модуль 114 обработки изображения анализирует изображение совместно с информацией, уже хранящейся в базе данных 116 (например, определение экрана, определения кнопок, определения размещения кнопок и т.д.) с использованием двух следующих методов: (1) на этапе 808, с использованием дескрипторов, которые являются истинными областями в изображении, которые могут быть вычислены путем обучения нейронной сети, чтобы распознать, сопоставить или иным образом сравнить изображение с использованием существующих данных изображения в отношении различных экранов интерфейса на встроенной системе; и (2) на этапе 810, с использованием механизма оптического распознавания знаков (ʺOCRʺ), чтобы распознавать и извлекать глифы, знаки или символы из изображения. В некоторых вариантах осуществления, этап 808 может также использовать механизм OCR, чтобы предоставлять информацию, используемую в автоматизированной идентификации дескрипторов. Механизм OCR может быть удаленным приложением, доступным по сети, и может совместно использоваться множеством запросчиков. Например, множество вычислительных компонентов может запросить механизм OCR обработать задачу OCR. В ответ, механизм OCR будет выполнять обработку, включая использование всех доступных ресурсов или выделение ограниченного набора ресурсов, таких как один узел, чтобы исполнить запрошенную задачу.
[0057] Дескрипторы для этапа 808 могут вычисляться в начале обработки изображения и дополнительно повторно вычисляться нейронной сетью при рассмотрении изменения для анализируемого изображения или для любых существующих данных изображения. Оценивание изображения может включать в себя сравнение вычисленных или повторно вычисленных дескрипторов с любыми существующими данными изображения, хранящимися в базе данных 116 или любом другом ресурсе, доступ к которому осуществляется модулем 114 обработки изображения. База данных 116 или такие другие доступные ресурсы могут включать в себя центральное приложение хранения, которое обслуживает широкодоступное хранилище данных для информации, включая, например, данные изображения. Например, множество запросчиков могут осуществлять связь с базовой данных 116 и получать информацию из базы данных 116 или таких других доступных ресурсов. Информация, хранящаяся в базе данных 116, включает в себя данные, специфические для каждого экрана интерфейса, включая изображения каждого экрана для разных моделей продуктов для каждого продавца. Оценивание может дополнительно включать в себя использование вероятностных способов анализа экрана на основе данных изображения из базы данных 116. Такие способы могут включать в себя, но без ограничения, алгоритмы BRISK или ORB, которые могут работать на дескрипторах в целях обнаружения и сопоставления. Способы могут обнаруживать конкретные дескрипторы изображений и сравнивать их с данными изображения из базы данных 116 или других ресурсов, доступ к котором осуществляется модулем 114 обработки изображения, чтобы идентифицировать соответствие на основе дескрипторов. С использованием этой информации, два метода, описанные выше, позволяют модулю обработки изображения идентифицировать экран, с которым должен взаимодействовать роботизированный обработчик, а также то, существует ли предупреждение, ошибка или другое условие, из которого роботизированный обработчик должен восстановиться. Дескрипторов может быть достаточно, чтобы идентифицировать корректный экран во множестве примеров, что означает, что поток обработки изображения может закончиться после этапа 808. Когда дескрипторов недостаточно, чтобы идентифицировать экран, поток переходит к этапу 810, на котором модуль 114 обработки изображения может использовать OCR, чтобы распознать и извлечь слова из изображения в качестве источника дополнительной информации для помощи при идентификации корректного экрана.
[0058] Фиг. 11 является примерным тестом, который может выполняться на автоматизированной платформе тестирования, в соответствии с одним вариантом осуществления изобретения. Конечному пользователю легко подготовить такие тесты, поскольку используемый язык скрипта состоит из простого, структурированного языка, подходящего для человека без специализированного обучения чтению и пониманию, вместо сложного компьютерного кода. Платформа тестирования применяет совместно используемый модуль тестовой библиотеки, чтобы перевести простой скрипт, который использует ключевые слова, определенные в совместно используемом модуле тестовой библиотеки или доступные посредством него, в конкретные команды для различных компонентов или модулей тестовой платформы, которые могут включать в себя, например, инструкции для захвата или извлечения информации из датчиков или камер; инструкции для выполнения обработки данных или анализа данных изображения, сигналов датчика или данных датчика; инструкции для предоставления информации в базу данных, извлечения информации из базы данных или манипуляции информацией в базе данных; или инструкции для роботизированного обработчика. Эти команды обрабатываются и могут передаваться на подходящий компонент или модуль тестовой платформы по соответствующему интерфейсу для этого компонента или модуля. Отметим, что перевод может отличаться для разных продавцов, моделей принтера или версий аппаратных средств/прошивки на тестовом продукте. Например, простое утверждение ʺкогда пользователь аутентифицирован при помощи PINʺ может задействовать разные экраны PIN или разные форматы PIN в зависимости от тестового продукта. Эта система имеет два основных преимущества: (1) тестировщик не обязательно должен быть инженером со специальными техническими знаниями того, как работать с конкретным тестовым продуктом, и требуется только преодолеть простую кривую обучения для понимания структурированного языка, используемого в скрипте, и (2) платформа тестирования может применять один и тот же универсальный скрипт к разным тестовым продуктам путем перевода при необходимости на основе специфической для продукта информации, хранящейся в базе данных. Система также имеет преимущество перед существующими способами тестирования в том, что она разрешает тестировщику проектировать и выполнять не только тестирование верификации, но также тестирование валидации. Тестирование верификации может включать в себя проверку конкретных функциональный блоков системы для оценки того, работают ли они подходящим образом и возвращают ожидаемый результат в соответствии со спецификациями продукта для системы. Тестирование валидации относится к другому типу тестирования, который меньше фокусируется на соответствии спецификации и больше на том, удовлетворяет ли продукт потребностям пользователя. Тестирование валидации может включать в себя оценивание характеристик более высокого уровня продукта, таких как общая скорость системы, надежность системы по времени, согласованность результатов на множестве задач и другие области, которые сложно или невозможно определить индивидуальному тестировщику на основе индивидуального тестирования вручную.
[0059] Автоматизированная платформа тестирования может приводиться в определенные условия, из которых она может пытаться восстановиться. Существуют два типа условий: (1) предполагаемые, для которых существует предназначенный путь восстановления, и (2) непредполагаемые. Одним примером предполагаемого условия может быть случай, где ввод PIN-кода для аутентификации тестового продукта был неуспешным, поскольку введенный PIN не совпал с ожидаемым форматом на тестовом продукте. В таком случае, управляющее приложение было бы осведомлено о статусе ошибки, поскольку камера сняла бы изображение окна ошибки, указывающего, что PIN-код является некорректным, неверного формата, не-распознавания и т.д. В таком случае, модуль обработки изображения распознает, что сообщение указывает недействительные учетные данные, и управляющее приложение будет инструктировать роботизированный обработчик ввести PIN-код в другом формате.
[0060] Для непредполагаемого условия, существуют снова два типа: (1) тип непредполагаемого условия, который приводит к навигации к экрану во встроенной системе, из которого управляющее приложение может возвращаться в известный экран или состояние в тестовом потоке, и (2) тип непредполагаемого условия, который оставляет управляющее приложение без каких-либо явных инструкций восстановления. Для первого случая, управляющее приложение приспособлено приводить роботизированный обработчик к нажатию подходящих кнопок на экране для навигации к подходящему экрану или состоянию, так что он может продолжить тестовый поток. В качестве примера, если управляющее приложение пытается протестировать задания #1 и #3 печати, но по некоторой причине #2 и #4 также выбраны, приложение может инструктировать роботизированный обработчик отменить выбор #2 и #4, прежде чем продолжать. Для последнего случая, управляющее приложение может инструктировать роботизированный обработчик нажать подходящие кнопки ʺOKʺ или ʺОтменитьʺ на экране, чтобы сбросить поток до известного состояния, и начать заново. После его повторной попытки с получением того же самого непредполагаемого условия ошибки, управляющее приложение может предоставлять уведомление администратору провести проверку статуса машины и, при необходимости, ввести подходящую процедуру восстановления в будущем. Следует понимать, что было бы желательно для автоматизированной платформы тестирования всегда восстанавливаться из каждого непредполагаемого условия, так как по меньшей мере некоторые из этих условий могут представлять дефект в тестовом продукте, который должен быть уведомлен и исправлен в тестовом продукте, а не в управляющем приложении.
[0061] Изобретение, путем предоставления автоматизированной платформы тестирования для встроенных систем, вносит значительный вклад в уровень техники в отношении стандартных процедур тестирования. Постоянство и скорость роботизированного обработчика позволяют проводить тестирование в расширенном объеме и на более высоком уровне точности по сравнению, например, с тестированием вручную. Дополнительно, результаты выполнения тестов могут быть более детализированными и полными. Тестовые скрипты полностью воспроизводимы с точностью не только на уровне предпринимаемых этапов, но и вплоть до уровня точного тайминга, местоположения и даже силы нажатия на кнопки. Эти тесты могут определять определенные качества продукта, которые было бы сложно или невозможно установить через другие формы тестирования, такие как чувствительность пользовательского интерфейса к конечному пользователю или количество времени, требуемое для различных задач, подлежащих завершению. Наконец, универсальность языка скрипта и способность управляющего приложения восстанавливаться из определенных непредполагаемых условий приводит к повышенной гибкости, например, по разным моделям принтеров или версиям аппаратных средств/прошивки, и меньшим полным тестовым скриптам для подготовки, чтобы достигнуть того же самого уровня охвата теста, что и ранее возможный.
[0062] В отношении определения количества времени, требуемого для различных задач, подлежащих выполнению, предпочтительным является достичь точного измерения времени и даже больше, когда множество компонентов (каждый с их собственными механизмами для отслеживания времени) вовлечены в процесс тестирования. Вместо регулирования и использования системного времени каждого компонента, может быть предпочтительным отслеживать разность между опорным временем и локальным системным временем для компонента. Отслеживание таких временных разностей делает возможным поддерживать согласованность во временных измерениях путем обеспечения того, что каждое измеренное время из локального компонента синхронизировано с одним и тем же опорным временем. Поддержание временной разности на уровне приложения, а не системы может также быть предпочтительным, так как это минимизирует разрыв для других процессов, выполняющихся в системе.
[0063] Другие цели, преимущества и варианты осуществления различных аспектов настоящего изобретения будут очевидны специалистам в данной области техники и находятся в пределах объема описания и прилагаемых чертежей. Например, но без ограничения, структурные или функциональные элементы могут быть реорганизованы, или этапы способа переупорядочены, согласно настоящему изобретению. Аналогично, принципы в соответствии с настоящим изобретением могут применяться к другим примерам, которые, даже если не описаны конкретно в настоящем документе подробно, тем не менее будут находиться в пределах объема настоящего изобретения. Например, принципы настоящего изобретения не ограничены тестированием принтеров, но могут использоваться для тестирования любого продукта со встроенной системой.
Изобретение относится к тестированию функциональных блоков встроенной системы. Технический результат – повышение точности тестирования. Для этого система включает в себя маломощное вычислительное устройство, коммуникационно связанное с интерфейсом управляющего приложения, интерфейсом датчика и роботизированным интерфейсом, которое может принимать сигналы датчика, сгенерированные в течение теста, предоставлять данные датчика, соответствующие сигналам датчика, принимать команды для теста и предоставлять инструкции для перемещения роботизированного обработчика в соответствии с по меньшей мере одной командой для теста. Система также включает в себя вычислительное устройство, коммуникационно связанное с интерфейсом управляющего приложения, интерфейсом обработки изображения и интерфейсом базы данных, которое может принимать данные датчика, принимать данные изображения, соответствующие изображениям встроенной системы, захваченным в течение теста, принимать тесты, приспособленные выполняться, и предоставлять команды для теста. 2 н. и 20 з.п. ф-лы, 12 ил.