BR112019008074B1 - Sistema e método para testar um recurso de um sistema integrado - Google Patents

Sistema e método para testar um recurso de um sistema integrado Download PDF

Info

Publication number
BR112019008074B1
BR112019008074B1 BR112019008074-0A BR112019008074A BR112019008074B1 BR 112019008074 B1 BR112019008074 B1 BR 112019008074B1 BR 112019008074 A BR112019008074 A BR 112019008074A BR 112019008074 B1 BR112019008074 B1 BR 112019008074B1
Authority
BR
Brazil
Prior art keywords
computing device
interface
fact
testing
resource
Prior art date
Application number
BR112019008074-0A
Other languages
English (en)
Other versions
BR112019008074A2 (pt
Inventor
Václav Novotný
Jiri Kyzlink
Jakub Pavlák
Ales Pernikár
Ondrej KRAJICEK
Original Assignee
Y Soft Corporation, A.S
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Y Soft Corporation, A.S filed Critical Y Soft Corporation, A.S
Priority claimed from PCT/EP2017/076802 external-priority patent/WO2018073395A1/en
Publication of BR112019008074A2 publication Critical patent/BR112019008074A2/pt
Publication of BR112019008074B1 publication Critical patent/BR112019008074B1/pt

Links

Abstract

Trata-se de um sistema e método para testar recursos de um sistema integrado. O sistema inclui um dispositivo de computação de baixa potência comunicativamente acoplado a uma interface de aplicativo de controle, uma interface de sensor e uma interface robótica. O dispositivo de computação de baixa potência pode receber sinais de sensor gerados durante um teste, fornecer dados de sensor que correspondem aos sinais de sensor, receber comandos para o teste, e fornecer instruções para movimento de um manipulador robótico que corresponde a pelo menos um dentre os comandos para o teste. O sistema também inclui um dispositivo de computação comunicativamente acoplado à interface de aplicativo de controle, uma interface de processamento de imagem e uma interface de banco de dados. O dispositivo de computação pode receber dados de sensor, receber dados de imagem que correspondem a imagens do sistema integrado capturado durante o teste, receber testes que podem ser realizados e fornecer comandos para o teste.

Description

REFERÊNCIA CRUZADA A PEDIDOS RELACIONADOS
[001]Este pedido baseia-se e reivindica o benefício de prioridade do pedido de patente n° JP 62/410.666, depositado em 20 de outubro de 2016, cujo conteúdo integral está incorporado ao presente documento a título de referência.
CAMPO DA INVENÇÃO
[002]Esta invenção refere-se, de modo geral, a sistemas e métodos para verificar e validar o valor esperado pelo participante dos dispositivos por meio de teste automatizado universal de sistemas integrados.
ANTECEDENTES DA INVENÇÃO:
[003]Os produtos modernos para uso de consumidor, comercial ou industrial podem ter lógica, funcionalidade ou fluxo de trabalho implementado com o uso de software, hardware ou alguma combinação dos mesmos. Um tipo de produto, também conhecido como um sistema integrado, normalmente envolve uma combinação de software e hardware e geralmente tem um propósito dedicado para servir no contexto de um todo maior. Os sistemas integrados podem ser fixos em função ou programáveis. Existe uma grande variedade de sistemas integrados, incluindo componentes que operam independentemente, pacotes que exigem ambientes especializados para operar e módulos que podem interoperar com software ou hardware que atendem a certos padrões de comunicação ou tolerâncias de projeto.
[004]A verificação do comportamento correto e validação de valores das partes interessadas (aqui chamados conjuntamente de teste ou testes) é uma etapa importante no projeto e na fabricação de sistemas integrados descritos acima. Existem muitas categorias de teste diferentes, incluindo testes de estresse, testes de desempenho, testes de usabilidade, testes de compatibilidade e testes funcionais, entre outros. Muitos dos testes nessas categorias avaliam as estruturas internas do produto que está sendo testado, tal como a maneira específica na qual o produto manipula determinadas tarefas. Desenvolver tais testes, portanto, exige conhecimento das estruturas internas, e conduzir tais testes exige o acesso às estruturas internas do produto.
[005]Em contrapartida, um tipo de teste conhecido como “teste de caixa-preta” ou “teste comportamental” é um modo de teste que tipicamente não exige conhecimento ou acesso às estruturas internas do produto. Em vez disso, o produto é tratado como uma “caixa preta” e o teste avalia como o produto funciona a partir de uma perspectiva externa. Os testes de caixa preta podem considerar coisas, tal como o comportamento do produto, ou saídas geradas pelo produto, em resposta a várias entradas (ou a falta das mesmas). À medida que focado externamente, o teste de caixa preta, portanto, tende a ser mais estritamente alinhado à experiência de realmente usar o produto.
[006]Em geral, o teste de produto pode ser manual ou automatizado. O teste automatizado pode resultar em menos erros e documentação significativamente mais completa. O teste automatizado também pode ser vantajoso para manipular consistentemente testes repetitivos ou, de outro modo, com alto volume, que precisam ser executados em um período de tempo mais longo ou um grande número de dispositivos. Como um exemplo, o teste automatizado é amplamente usado na indústria de para testar software de consumo em uma variedade de situações e através de diferentes plataformas. Nesses testes automatizados, as empresas de software executam geralmente tarefas especiais nos computadores para simular a atividade de usuário em relação a um programa particular e, então determinar se o programa está se comportando corretamente em resposta à atividade simulada.
[007]É mais complicado simular a atividade em relação a outros tipos de produtos como sistemas integrados em eletrônicos de consumo, eletrodomésticos ou até mesmo veículos. Alguns desses sistemas podem oferecer conectividade especial para testar e expor processos internos através de algum tipo de interface para permitir a simulação de ações de usuário, porém o teste em tais sistemas pode ser complicado e dispendioso à medida que cada teste precisa ser especificamente projetado e personalizado para cada interface. Um problema adicional consiste no fato de que outros sistemas integrados não fornecem esse tipo de interface de teste e, em vez disso, fornecem apenas uma interface para uso por um usuário final.
[008]Portanto, há muito tempo existe uma necessidade de uma plataforma de teste automatizada que seja universal, flexível e potente o suficiente para conduzir testes de sistemas integrados (de vários tipos para verificar o comportamento e validar valores de participante, incluindo teste de caixa preta) a partir de diferentes fornecedores ao interagir com as interfaces fornecidas em cada sistema. Além disso, há muito tempo existe uma necessidade de uma plataforma de teste automatizada que não exija equipamento robótico industrial dispendioso, outros tipos de hardware dispendioso ou espaço para alojar grandes peças de equipamento. há muito tempo existe uma necessidade de uma plataforma de teste automatizada que seja otimizada para uso em escritório e acessível para uso para propósitos de testes, incluindo testes simultâneos de múltiplos dispositivos.
[009]Ao mesmo tempo, a plataforma de teste automatizada precisa fornecer medição de teste precisa, incluindo, por exemplo, dados de temporização relacionados à ocorrência de determinadas ações ou reações. A plataforma de teste automatizada precisa ter capacidade de fornecer resultados de teste relevantes, por exemplo, ao realizar teste de extremidade a extremidade de todos os componentes que normalmente podem estar envolvidos em uma interação com o usuário genuína. Finalmente, a plataforma de teste automatizada precisa da flexibilidade para permitir a criação de testes com o uso de linguagem estruturada simples adequada para uma pessoa sem treinamento especializado para ler e entender, em vez de código de computador complexo.
BREVE DESCRIÇÃO DAS FIGURAS
[010]A Figura 1 é um diagrama de blocos de uma plataforma de testes automatizada, de acordo com uma modalidade da invenção.
[011]A Figura 2 é um diagrama dos componentes de um manipulador robótico para uso em uma plataforma de testes automatizada, de acordo com uma modalidade da invenção.
[012]A Figura 3 é um diagrama de blocos dos componentes de um aplicativo de controle para uso em uma plataforma de testes automatizada, de acordo com uma modalidade da invenção.
[013]A Figura 4 é um diagrama de um esquema exemplificativo para um banco de dados para uso em uma plataforma de testes automatizada, de acordo com uma modalidade da invenção.
[014]A Figura 5A é uma imagem de tela de uma interface de usuário exemplificativa para configurar um aplicativo de controle, de acordo com uma modalidade da invenção.
[015]A Figura 5B é uma imagem de tela de subtelas de interface de usuário exemplificativas que podem ser alcançadas a partir da interface de usuário da Figura. 5A, de acordo com uma modalidade da invenção.
[016]A Figura 6 é um fluxograma de etapas para criar uma nova definição de um produto para teste em uma plataforma de testes automatizada, de acordo com uma modalidade da invenção.
[017]A Figura 7 é um fluxograma de etapas realizadas para calibrar um robô em uma plataforma de testes automatizada, de acordo com uma modalidade da invenção.
[018]A Figura 8 é uma imagem de tela de uma interface de usuário de calibração exemplificativa que pode ser alcançada a partir da interface de usuário da Figura 5A.
[019]A Figura 9 é um fluxograma de etapas realizadas em um método de calibração semiautomática para conduzir a recalibração automática de um manipulador robótico após uma passagem inicial através do fluxo da Figura 7, de acordo com uma modalidade da invenção.
[020]A Figura 10 é um fluxograma de etapas realizadas para aquisição e processamento de imagem em uma plataforma de testes automatizada, de acordo com uma modalidade da invenção.
[021]A Figura 11 é um teste de amostra que pode ser executado em uma plataforma de testes automatizada, de acordo com uma modalidade da invenção.
SUMÁRIO
[022]Em uma modalidade da invenção, um sistema para testar um recurso de um sistema integrado inclui um dispositivo de computação de baixa potência comunicativamente acoplado a uma interface de aplicativo de controle, uma interface de sensor e uma interface robótica. O dispositivo de computação de baixa potência é configurado para receber a partir da interface de sensor uma pluralidade de sinais de sensor gerados durante um teste do recurso do sistema integrado, fornecer através da interface de aplicativo de controle, dados de sensor que correspondem à pluralidade de sinais de sensor, receber através da interface de aplicativo de controle uma pluralidade de comandos para o teste do recurso, e fornecer através da interface robótica uma pluralidade de instruções para movimento de um manipulador robótico que corresponde a pelo menos um dentre a pluralidade de comandos para o teste do recurso. O sistema para testar um recurso de um sistema integrado também inclui um dispositivo de computação comunicativamente acoplado à interface de aplicativo de controle, uma interface de processamento de imagem e uma interface de banco de dados. O dispositivo de computação é configurado para receber a partir da interface de aplicativo de controle os dados de sensor, receber a partir da interface de processamento de imagem, dados de imagem que que correspondem a uma pluralidade de imagens do sistema integrado capturado durante o teste do recurso, receber a partir da interface de banco de dados uma pluralidade de testes que podem ser realizados no recurso, e fornecer através da interface de aplicativo de controle uma pluralidade de comandos para o teste do recurso.
[023]Em uma modalidade, o dispositivo de computação é conectado a uma rede, e é configurado para transmitir dados de situação de um teste um um manipulador robótico para um usuário através da rede. Em uma modalidade, o dispositivo de computação é configurado para se comunicar com um usuário através da rede e permitir o uso ou modificação de um aplicativo que executa no dispositivo de computação por meio do usuário.
[024]Em uma modalidade, o componente de computação de baixa potência é configurado para processar os sinais de sensor antes de fornecer os dados de sensor através da interface de aplicativo de controle. Em uma modalidade, o componente de computação de baixa potência é configurado para processar a pluralidade de comandos para fornecer a pluralidade de instruções através da interface robótica. Em uma modalidade, o dispositivo de computação é comunicativamente acoplado a uma interface de processamento de dados de sensor, e o dispositivo de computação recebe através da interface de processamento de dados de sensor, dados de sensor processados que correspondem aos dados de sensor capturados durante o teste do recurso. Em uma modalidade, pelo menos um dentre o dispositivo de computação de baixa potência e o dispositivo de computação é configurado para ser sincronizado em um nível de aplicativo com o mesmo tempo de referência que outro dispositivo de computação.
[025]Em uma modalidade, pelo menos um dentre a pluralidade de testes compreende uma pluralidade de palavras-chave, e o dispositivo de computação é configurado para converter as palavras-chave em comandos que podem ser realizados pelo manipulador robótico. Em uma modalidade, pelo menos um dentre a pluralidade de testes compreende uma pluralidade de palavras-chave, e o dispositivo de computação é configurado para converter as palavras-chave em comandos para transmissão através de uma interface.
[026]Em uma modalidade, os dados de sensor ou dados de imagem correspondem a aspectos tridimensionais (3D) do sistema integrado ou um produto de teste cujo sistema integrado é uma parte. Em uma modalidade, o recurso para teste é um recurso bidimensional (2D).
[027]Em uma modalidade da invenção, um método para testar um recurso de um sistema integrado realizado por um dispositivo de computação de baixa potência e um dispositivo de computação inclui as etapas de receber a partir de uma interface de sensor, por meio do dispositivo de computação de baixa potência, uma pluralidade de sinais de sensor gerados durante um teste do recurso do sistema integrado; fornecer através de uma interface de aplicativo de controle, por meio do dispositivo de computação de baixa potência, dados de sensor que correspondem à pluralidade de sinais de sensor; receber a partir de uma interface de aplicativo de controle, por meio do dispositivo de computação de baixa potência, uma pluralidade de comandos para o teste do recurso; fornecer através de uma interface robótica, por meio do dispositivo de computação de baixa potência, uma pluralidade de instruções para movimento de um manipulador robótico que corresponde a pelo menos um dentre a pluralidade de comandos para o teste do recurso; e receber a partir da interface de aplicativo de controle, por meio do dispositivo de computação, os dados de sensor; receber a partir de uma interface de processamento de imagem, por meio do dispositivo de computação, dados de imagem que correspondem a uma pluralidade de imagens do sistema integrado capturado durante o teste teste do recurso; receber a partir de uma interface de banco de dados, por meio do dispositivo de computação, uma pluralidade de testes que podem ser realizados no recurso; e fornecer através da interface de aplicativo de controle, por meio do dispositivo de computação, uma pluralidade de comandos para o teste do recurso.
[028]Em uma modalidade, o dispositivo de computação é conectado a uma rede, em que o dispositivo de computação é configurado para transmitir dados de situação do teste e do manipulador robótico para um usuário através da rede. Em uma modalidade, o dispositivo de computação se comunica com um usuário através da rede, recebe solicitações para o uso ou modificação de um aplicativo que executa no dispositivo de computação, e processa as solicitações.
[029]Em uma modalidade, o componente de computação de baixa potência processa os sinais de sensor antes de fornecer os dados de sensor através da interface de aplicativo de controle. Em uma modalidade, o componente de computação de baixa potência processa a pluralidade de comandos antes de fornecer a pluralidade de instruções através da interface robótica. Em uma modalidade, o dispositivo de computação é comunicativamente acoplado a uma interface de processamento de dados de sensor, e o dispositivo de computação recebe através da interface de processamento de dados de sensor, dados de sensor processados que correspondem aos dados de sensor capturados durante o teste do recurso. Em uma modalidade, pelo menos um dentre o dispositivo de computação de baixa potência e o dispositivo de computação sincroniza com o mesmo tempo de referência que o outro dispositivo de computação, em um nível de aplicativo.
[030]Em uma modalidade, pelo menos um dentre a pluralidade de testes compreende uma pluralidade de palavras-chave, e o dispositivo de computação converte as palavras-chave em comandos que podem ser realizados pelo manipulador robótico. Em uma modalidade, pelo menos um dentre a pluralidade de testes compreende uma pluralidade de palavras-chave, e o dispositivo de computação é configurado para converter as palavras-chave em comandos para transmissão através de uma interface.
[031]Em uma modalidade, os dados de sensor ou dados de imagem correspondem a aspectos tridimensionais (3D) do sistema integrado ou um produto de teste cujo sistema integrado é uma parte. Em uma modalidade, o recurso testado é um recurso bidimensional (2D).
DESCRIÇÃO DETALHADA DA INVENÇÃO
[032]A Figura 1 é um diagrama de blocos de uma plataforma de testes automatizada, de acordo com uma modalidade da invenção, e mostra como cada porção da plataforma é conectada às porções. Conforme mostrado na Figura 1, o aplicativo de controle 104 executa no dispositivo de computação 100, e se comunica com o banco de dados 116. O dispositivo de computação 100 pode ser qualquer dispositivo que possa executar um aplicativo de controle, tal como um computador pessoal (PC), servidor, computador do tipo laptop, telefone inteligente, computador do tipo tablet e similares. O dispositivo de computação 100 irá compreender normalmente um processador em comunicação com memória volátil e/ou não volátil, uma interface periférica, e uma interface de rede com qual se conecta a outros componentes da plataforma de testes automatizada, tal como o banco de dados 116 e o manipulador robótico 118. A interface periférica conecta o dispositivo de computação a vários dispositivos de entrada que podem incluir um teclado, um mouse, uma tela sensível ao toque, mecanismos de entrada VR que podem corresponder a uma posição do manipulador robótico no espaço 3D, ou qualquer outro dispositivo adequado para inserir comandos de usuário local no dispositivo de computação de controle 100. Deve-se compreender que o dispositivo de computação 100 e/ou aplicativo de controle 104 pode compreender hardware especializado (ou pode ser um sistema integrado) ajustado para operar como parte da plataforma de testes automatizada. Tal especialização pode aumentar a velocidade e a resposta do processo de teste. Por exemplo, o hardware especializado dentro do dispositivo de computação 100 pode incluir múltiplos componentes de computação conectados em conjunto através de algum caminho de comunicação, tal como um conjunto de interfaces. Por exemplo, um componente de computação de baixa potência, por exemplo, que consome menos que 25 watts, pode ser conectado ao manipulador robótico 118 através de uma interface robótica e/ou sensor (sensores) 126 através de uma interface de sensor, enquanto também é conectado a outros componentes de computação que suportam, atendem ou executam módulos no dispositivo de computação 100 através de uma interface de aplicativo de controle. De modo adicional, múltiplos tais componentes de computação de baixa potência podem se conectar aos mesmos componentes de computação compartilhados que suportam, atendem ou executam módulos no dispositivo de computação 100 através de uma interface de aplicativo de controle individual ou compartilhada. Os componentes de computação de baixa potência podem fornecer um uma vantagem de escalabilidade e economia de recurso em relação a outros tipos de componentes de computação. Note que o componente de computação de baixa potência não precisa significar componente de computação de “baixa capacidade”. Por exemplo, é possível aumentar a potência computacional de um componente de computação de baixa potência com um propósito direcionado usando-se hardware especializado, tal como conjunto de circuitos dedicado para propósitos específicos (por exemplo, processamento gráfico). Deve-se compreender também que pode haver múltiplos dispositivos de computação e múltiplos aplicativos de controle, ou múltiplos dispositivos de computação que compartilham o processamento de um ou mais aplicativos de controle. Adicionalmente, pode haver uma biblioteca ou serviço que permite o empacotamento e implantação de atualização de software através de múltiplos dispositivos de computação e aplicativos de controle por uma questão de consistência. Tal biblioteca ou serviço pode permitir que os usuários mantenham diferentes versões de software e atualizam essas versões em uma localização central.
[033]O aplicativo de controle 104 funciona com o módulo de biblioteca de teste compartilhado 106, módulo de aquisição de imagem 108 e módulo de processamento de dados de sensor 110 para se comunicar com o manipulador robótico 118. O módulo de biblioteca de teste compartilhado 106 funciona com ambiente de teste de estrutura robótica 112 que, por sua vez, funciona com o banco de dados 116.
[034]Deve-se compreender que o banco de dados 116 e o ambiente de teste de estrutura robótica 112 podem ser separados do dispositivo de computação 100 como na modalidade mostrada na Figura 1, e se comunicar através de uma interface de banco de dados, ou que o banco de dados 116 e o ambiente de teste de estrutura robótica 112 podem fazer parte do dispositivo de computação 100 em outras modalidades. O manipulador robótico 118 interage com o sistema integrado 122 do produto 120 que está sendo testado. O manipulador robótico 118 pode realizar a interação através de uma interface de usuário, tal como um recurso bidimensional (2D) de um sistema integrado. Os recursos 2D do sistema integrado incluem pelo menos interfaces sensíveis ao toque, porém, deve-se compreender que os recursos 2D também podem se referir a análogos físicos dessas telas sensíveis ao toque (por exemplo, botões, discos e controles deslizantes). Deve-se compreender que a interação com as interfaces sensíveis ao toque não precisa se limitar a botões de pressionamento. O manipulador robótico 118 também pode realizar interações, tais como aquelas necessárias para interagir com os seguintes tipos de interfaces de usuário: (1) telas sensíveis ao toque sensíveis à força que podem detectar diferentes níveis de pressão, (2) tela sensível ao toque multitoques que pode detectar pontos simultaneamente ativados, ou (3) telas sensíveis ao toque que detectam gestos realizados, tais como toques direcionais ou símbolos rastreados. Deve-se compreender, também, que pode haver múltiplos manipuladores robóticos controlados por um ou mais aplicativos de controle. Além disso, pode haver múltiplos sistemas integrados ou produtos que são testados pelo um ou mais manipuladores robóticos. Em uma situação que envolve múltiplos manipuladores robóticos e/ou múltiplos sistemas integrados ou produtos que são testados, pode haver um sistema de gerenciamento robótico que coordena o teste através de todo os dispositivos. Tal sistema de gerenciamento robótico pode permitir que múltiplos usuários programem o uso de manipuladores robóticos para evitar colisões. O sistema de gerenciamento robótico também permite a priorização de tarefas para permitir a orquestração de todos os manipuladores robóticos de teste e/ou dispositivos consistentes com uma preferência, tal como velocidade, cobertura, minimização de custo de recurso ou outras medidas de eficiência.
[035]O módulo de biblioteca de teste compartilhado 106 pode incluir ou realizar definições acessíveis de vários procedimentos e métodos para realizar diferentes aspectos de cada teste. Como um exemplo, pode haver um método para autenticação usando um número PIN, que inclui etapas para operar o manipulador robótico 118 ou outros manipuladores robóticos para interagir com o sistema integrado 122, por exemplo, tocando-se os botões com base em vários fluxos definidos no banco de dados 116, que resulta no manipulador robótico navegar até a interface de usuário adequada e inserir um número PIN no sistema integrado 122. O método para autenticação com o uso de um número PIN também pode incluir etapas para solicitar retroalimentação de outros componentes da plataforma de testa, tal como o módulo de aquisição de imagem 108 e o módulo de processamento de dados de sensor 110 de modo que o mesmo possa comparar a retroalimentação real com a retroalimentação esperada e preparar um valor de retorno adequado ou atualizar uma condição para avaliação pelo ambiente de teste de estrutura robótica 112.
[036]O ambiente de teste de estrutura robótica 112 é um aplicativo que pode gerenciar o manipulador robótico 118 ou outros manipuladores robóticos. O ambiente de teste de estrutura robótica 112 está, portanto, ciente da situação de qualquer um desses manipuladores robóticos no sistema e outros módulos da plataforma de teste que incluem, sem limitação, o módulo de processamento de imagem 114 e a câmera (ou câmeras) 124. O ambiente de teste de estrutura robótica tem capacidade para realizar ações, tal como processar solicitações de teste, reservar manipuladores robóticos para executar testes e executar testes. O ambiente de teste de estrutura robótica 112 pode executar testes que compreendem uma série de etapas. Cada etapa pode corresponder a palavras-chave ou frases-chave. As palavras-chave ou frases-chave podem, por exemplo, corresponder a procedimentos ou métodos específicos armazenados em, acessíveis por, ou definidos no módulo de biblioteca de teste compartilhado 106. Por exemplo, pode haver uma palavra-chave ou frase-chave “Autenticar com o PIN” que se refere ao procedimento ou método específico armazenado em, acessível por, ou definidos no módulo de biblioteca de teste compartilhado 106 citado no parágrafo anterior. O ambiente de teste de estrutura robótica 112 pode usar a palavra-chave ou frase-chave para causar a execução do respectivo procedimento ou método do módulo de biblioteca de teste compartilhado 106 e receber um valor de retorno ou avaliar uma condição atualizada pelo procedimento ou método. Mediante o recebimento de tal valor ou avaliação de tal condição, o ambiente de teste de estrutura robótica 112 pode determinar se deve parar a execução ou prosseguir a execução de outra etapa de teste.
[037]O dispositivo de computação 100 pode ser conectado a uma rede 128. A rede 128 pode ser qualquer rede de comunicações conhecida, incluindo a Internet, uma Rede Local (LAN), uma Rede de Longa Distância (WAN), etc. Um usuário ou usuários 130 podem se conectar através da rede 128 ao dispositivo de computação 100 por meio do servidor 102 e operar o aplicativo de controle 104. Através da conexão, e com o uso do aplicativo de controle, usuários podem monitorar a atividade de manipuladores robóticos e também modificar o software que controla os mesmos. O servidor 102 pode ser, por exemplo, um servidor de Transferência de Estado Representacional (“REST”) para comunicação com clientes usuários . O servidor 102 também pode implementar outros mecanismos para arquitetura de sistema de serviço, incluindo Arquitetura de Agente de Solicitação de Objeto Comum (“CORBA”), Modelo de Objeto de Componente Distribuído (“DCOM”), Chamada de Procedimento Remoto (“RPC”) ou Protocolo Simples de Acesso a Objetos (“SOAP”) para comunicação com clientes usuários .
[038]Em uma modalidade, em que múltiplos usuários compartilham uma única plataforma de testes automatizada, os usuários podem “reservar” o uso de manipuladores robóticos para evitar colisões que resultam de solicitações simultâneas possivelmente conflitantes dentre diferentes usuários. Os usuários também podem “cancelar a reserva” do manipulador robótico após concluir um teste ou após determinar que o manipulador robótico não é mais necessário. Entretanto, deve-se compreender que os usuários podem deixar um manipulador robótico em um estado “reservado”, impedindo que outros usuários engatem o manipulador robótico. Em tal caso, o manipulador robótico pode “cancelar a reserva” propriamente após um determinado de inatividade de modo que se torne disponível para outros usuários.
[039]A câmera 124, como uma versão específica de um sensor visual (consulte a descrição geral de sensores abaixo), observa o sistema integrado 122 ou outras porções do produto de teste 120, incluindo recursos 2D ou aspectos 3D do sistema integrado 122 ou produto de teste 120, e se comunica com o módulo de aquisição de imagem 108. A título de exemplo, a observação de aspectos 3D pela câmera 124 pode resultar em dados de imagem que refletem os aspectos mecânicos de como o sistema integrado 122 ou produto de teste 120 responde durante um teste de um recurso 2D do sistema integrado 122. O módulo de aquisição de imagem 108, por sua vez, funciona com o módulo de processamento de imagem 114, que se comunica adicionalmente com o banco de dados 116. Deve-se compreender que o módulo de processamento de imagem 114 pode ser separado do dispositivo de computação 100, como na modalidade mostrada na Figura 1, e se comunicar através de uma interface de processamento de imagem, ou que o módulo de processamento de imagem 114 pode fazer parte do dispositivo de computação 100, em outras modalidades. Deve-se compreender também que pode haver múltiplas câmeras 124 que observam o sistema integrado 122 ou outras porções do produto de teste 120.
[040]De uma maneira similar, o sensor 126 observa o sistema integrado 122 ou outras porções do produto de teste 120, incluindo recursos 2D ou aspectos 3D do sistema integrado 122 ou produto de teste 120, e se comunica com o módulo de processamento de dados de sensor 110. A título de exemplo, a observação de aspectos 3D pelo sensor 126 pode resultar em sinais de sensor que refletem os aspectos mecânicos de como o sistema integrado 122 ou produto de teste 120 responde durante um teste de um recurso 2D do sistema integrado 122. O módulo de processamento de dados de sensor 110 recebe os sinais de sensor e realiza qualquer processamento, se necessário, para gerar os dados de sensor. Alguns sinais de sensor, por exemplo aqueles fornecidos por sensores que detectam uma condição binária ou fornecem um valor numérico, podem constituir dados de sensor sem qualquer processamento adicional dependendo do teste para o qual os dados de sensor devem ser interpretados. O módulo de processamento de dados de sensor 110 se comunica com o banco de dados 116 e fornece dados para o aplicativo de controle 104 de modo que possa interpretar os dados de sensor de uma maneira correspondente ao produto de teste. O sensor 126 pode ser um sensor de luz, sensor visual, sensor de temperatura, sensor de umidade, sensor de movimento, sensor mecânico, sensor de pressão, sensor de áudio, ou qualquer outro sensor adequado às características específicas do sistema integrado ou produto de teste que está sendo avaliado. Por exemplo, em uma modalidade em que o produto de teste é um dispositivo de impressora multifuncional e o teste envolve verificar determinadas características da saída impressa, o sensor 126 pode ser um sensor óptico/mecânico para detectar a presença de papel, se o papel impresso é duplex ou único, o tamanho do papel, o peso do papel, níveis de preto da impressão, ou cores da impressão, entre outros aspectos de saída impressa que podem necessitar de verificação. Em outra modalidade, em que o produto de teste é uma impressora 3D, o sensor 126 pode ser um sensor de temperatura ou umidade para avaliar as condições da câmara de impressão ou um sensor óptico para avaliar o progresso da impressão. Em outra modalidade, em que o produto de teste inclui comutadores físicos ou outras entradas sensíveis à pressão, o sensor 126 pode ser um sensor tátil que avalia a força necessária para ativar tais comutadores ou entradas. Deve-se compreender que modalidades diferentes podem operar com mais de um sensor 126. Por exemplo, em uma modalidade em que o produto de teste é uma máquina de lavar, um primeiro sensor pode ser um sensor de temperatura para avaliar a temperatura da água, e um segundo sensor pode ser um microfone para avaliar o nível de ruído durante a operação. Adicionalmente, em algumas modalidades, o sensor 126 pode ser conectado a um dispositivo de computação local, que pode ser um dispositivo de computação de baixa potência, tal como um microcomputador Raspberry PiTM, que processa entrada localmente antes da transmissão para o dispositivo de computação 100. O dispositivo de computação local, que pode ser um dispositivo de computação de baixa potência, pode realizar processamento de sinais recebidos do sensor 126 para gerar dados de sensor. Em tais modalidades, a função do módulo de processamento de dados de sensor 110 pode ser simplificada ou mesmo eliminada.
[041]O manipulador robótico 118 da Figura 1 pode compreender vários componentes. A Figura 2 é um diagrama que ilustra os componentes de um manipulador robótico exemplificativo 218 no ambiente de teste físico, de acordo com uma modalidade da invenção. Em algumas modalidades, o manipulador robótico 218 pode ser usado como o manipulador robótico 118 mostrado e descrito em conjunto com a Figura 1. O manipulador robótico 218 compreende pelo menos um dispositivo de manipulação 214 que é acionado por um ou mais servomotores 202, 204, 206 e 208. O número de servomotores não é restrito a quatro e pode ser mais ou menos. A natureza do dispositivo de manipulação 214 depende da interação desejada com o sistema integrado 222 ou produto de teste 220. Quando o sistema integrado 222 é uma tela sensível ao toque, por exemplo, dispositivo de manipulação 214 pode ser uma caneta stylus adequada para pressionar botões na tela. Quando o sistema integrado 222 é um visor com botões físicos, por exemplo, dispositivo de manipulação 214 pode ser uma caneta stylus adequada para pressionar botões físicos. Se o sistema integrado 222 incluir uma tela sensível ao toque além de botões físicos, o dispositivo de manipulação 214 pode ser uma caneta ou canetas stylus com capacidade para pressionar tanto na tela como em botões físicos. Quando o sistema integrado 222 contêm outros métodos de interação, tais como discos, o dispositivo de manipulação 214 pode ser uma garra adequada para girar discos. Em outras modalidades, o dispositivo de manipulação 214 pode incluir múltiplas canetas stylus, ferramentas ou anexos a partir dos quais o mesmo pode selecionar um adequado para a interação desejada com o sistema integrado 222. A câmera 234 pode ser montada em um tripé ajustável 230 a uma distância, altura e ângulo adequados para observar o sistema integrado 222 ou outras porções do produto de teste 220. Embora não ilustrados na Figura 2, deve-se compreender que pode haver ambientes de teste nos quais múltiplas câmeras são usadas.
[042]O manipulador robótico 218 também inclui um dispositivo de posicionamento 200, tal como um suporte ajustável, para assegurar que o mesmo seja corretamente posicionado para interagir com o sistema integrado 222 e o produto de teste 220. Além disso, pode haver um ou mais servomotores auxiliares, tal como o servomotor 210, que pode ter uma tarefa especializada que pode ser efetuada independentemente do dispositivo de manipulação. Por exemplo, o servomotor 210 pode ser configurado com o hardware 212 que permite que o mesmo envie um cartão de acesso ou outro dispositivo de certificação 216 para verificação pelo leitor 224 no produto de teste 220. O cartão de acesso ou dispositivo de certificação pode ser um único cartão ou dispositivo, ou um emulador que pode representar as informações de conta de qualquer outro cartão ou dispositivo, para remover a necessidade de trocar cartões ou dispositivos para testar contas de usuário diferentes. O servomotor auxiliar é opcional e pode ser substituído por outros dispositivos auxiliares que não precisam realizar ações físicas. Por exemplo, o dispositivo de certificação 216 pode fazer interface com o sistema integrado 222 ou leitor 224 através de outros meios, incluindo através de enlace eletrônico direto, removendo a necessidade de um servomotor 210 para realizar uma ação física.
[043]Em uma modalidade, quando o manipulador robótico 218 experimenta um período de inatividade predefinido, porém configurável, por exemplo, cinco minutos, o manipulador pode se mover até uma posição de repouso específica e desligar os servomotores 202, 204, 206 e 208. Isso reduz a carga dos servomotores durante tais pausas e aumenta sua vida útil. Mediante a recepção de um novo comando, o manipulador robótico 218 desperta do repouso e liga seus servomotores novamente para executar o comando.
[044]A Figura 3 é um diagrama de blocos dos componentes do aplicativo de controle 304, de acordo com uma modalidade da invenção. Em algumas modalidades, o aplicativo de controle 304 pode ser usado como o aplicativo de controle 104 mostrado e descrito em conjunto com a Figura 1. O módulo de controle de robô 306 rege a conectividade e o controle geral de um manipulador robótico, tal como 118 ou 218 mostrado e descrito em conjunto com as Figuras 1 e 2, respectivamente. O módulo de calibração 308 pode ser usado para calibrar o manipulador robótico, uma câmera, tal como 124 mostrada e descrita em conjunto com a Figura 1, ou um sensor, tal como 126 mostrado e descrito em conjunto com a Figura 1. O módulo de banco de dados 310 gerencia as informações e a estrutura de um banco de dados, tal como o banco de dados 116 mostrado e descrito em conjunto com a Figura 1. O módulo de banco de dados 310 pode incluir interfaces de usuário ou outras ferramentas para modificar as informações e/ou estrutura do banco de dados. Por exemplo, uma interface de usuário pode proporcionar a capacidade de atualizar diferentes tipos de campos de entrada ou outros componentes UI no banco de dados ou inserir novas instâncias de tipos existentes. Finalmente, o módulo de rede 312 gerencia conexões com um servidor, tal como o servidor 102 mostrado e descrito em conjunto com a Figura 1, e um módulo de biblioteca de teste compartilhado, tal como o módulo de biblioteca de teste compartilhado 106 mostrado e descrito em conjunto com a Figura 1. Esses componentes são todos expostos para um usuário final através da interface de usuário 314, uma possível instância do qual é ilustrada na Figura 5.
[045]A Figura 4 é um diagrama de blocos um esquema exemplificativo para um banco de dados 416 em uma plataforma de testes automatizada, de acordo com uma modalidade da invenção. Em algumas modalidades, o banco de dados 416 pode ser usado como o banco de dados 116 mostrado e descrito em conjunto com a Figura 1. A tabela “Manufacturers” 420 inclui informações sobre cada fabricante. A tabela “PrinterModels” 422 inclui definições do fabricante e modelo. A tabela “HwVersions” 424 inclui entradas que correspondem às versões do hardware usado em um modelo de impressora. A tabela “FwVersions” 426 inclui entradas que correspondem às versões do firmware usado em um modelo de impressora. A tabela “SqVersions” 428 inclui entradas que correspondem às versões de um servidor de gerenciador de impressão usado em um modelo de impressora. Uma implementação exemplificativa de um servidor de gerenciador de impressão pode ser o servidor YSoft SafeQTM. A tabela “SafeQServers” 430 inclui informações para cada servidor de gerenciador de impressão, que novamente pode ser o servidor YSoft SafeQTM em uma modalidade. A tabela “Paths” 432 define constantes para mover o robô. Tais constantes podem incluir valores específicos para determinados tipos de visores sensíveis ao toque, por exemplo, e sem limitação, dispositivos com visores sensíveis ao toque capacitivos e resistivos. A tabela “PathParts” 432 define constantes para velocidade e pausas de movimentos de robô. A tabela “MFPs” (que significa impressoras multifuncionais ou dispositivos multifuncionais) 436 inclui definições de um PrinterModel, versão de gerenciador de impressão, versão de firmware, versão de hardware e tamanho de tela. A tabela “FlowNames” 438 inclui nomes de fluxos definidos pelo usuário. Cada fluxo definido pelo usuário pode ser implementado de modo diferente ao longo de diferentes vendedores e diferentes fornecedores e diferentes dispositivos. Consequentemente, a tabela “Flows” 440 define fluxos definidos pelo usuário para ações desejadas, incluindo uma identificação do nome a partir do “FlowNames”, um fornecedor e/ou dispositivo particular ao qual o fluxo é aplicável, e entradas correspondentes na tabela “FlowSteps”. A tabela “FlowSteps” 442 inclui definições de etapas que, conforme citado pela tabela “Flows” 440, descrevem um fluxo para uma ação desejada. Cada definição de uma etapa pode incluir um elemento de interface particular com o qual interagir, a interação desejada, uma ordem em um fluxo, e outras opções relacionadas às etapas, que podem incluir, por exemplo, a capacidade de ignorar a verificação de uma tela de destino para execução mais rápida. A tabela “Screens” 444 inclui definições de cada tela na interface de um sistema integrado, que inclui, por exemplo, uma tela de logon e uma tela principal. A tabela “Buttons” 446 define texto, uma etiqueta, tela de destino, tela de origem, e se um botão é um botão de hardware. A tabela “Button Placement” 448 inclui definições de MFPs, posição, tamanho e botões. A tabela “Feature Regions” 450 inclui definições de áreas nas telas que podem ser, por exemplo, usadas pelo serviço de processamento de imagens. Essas definições podem incluir regiões de texto, regiões de imagem e outras áreas com propósitos específicos, tais como regiões de janela pop-up ou em que determinados tipos de processamento podem ser efetuados, tais como regiões de leitura. A tabela “Test Results” 452 inclui definições dos resultados de vários testes realizados, incluindo definições de nomes de teste; Protocole de Internet ou outros endereços de rede; informações de temporização, tais como início, fim e duração; saídas; formatos; e resultados finais ou conclusões dos testes. A tabela “Print Times” 454 inclui definições de trabalhos de impressão, incluindo tamanhos de trabalho, formatos de trabalho, dispositivo e informações de versão para servidores de gerenciador de impressão, que novamente podem ser o servidor YSoft SafeQTM em uma modalidade.
[046]A Figura 5A é uma imagem de tela de uma interface de usuário exemplificativa 500 para componentes do aplicativo de controle da Figura 3, de acordo com uma modalidade da invenção. Conforme mostrado nessa imagem, a interface de usuário de controle de robô 510 inclui controles para se conectar a um manipulador robótico, tal como escolher uma porta de rede para a conexão, para se desconectar do manipulador robótico e para controlar um servomotor auxiliar, tal como passar um cartão no produto de teste. Embora o botão seja identificado “passe o cartão” nessa interface de usuário exemplificativa, deve-se compreender que um dispositivo de certificação pode ser vinculado ao sistema integrado 222 ou leitor 224 através de outros meios que não exigem passar um cartão físico, conforme anteriormente mencionado. Em tal cenário, o botão “passar cartão” pode ativar o processo de certificação necessário para obter acesso ao produto de teste. A interface de usuário de calibração 520 inclui controle para calibrar um robô, para calibrar uma câmera e carregar uma calibração salva. Em resumo, a calibração de câmera assegura que a câmera está na melhor posição para tirar fotos nítidas, e também podem fornecer um meio para um usuário configurar propriedades de uma câmera (por exemplo, configurações de exposição, tais como velocidade do obturador, velocidade ISO e abertura). A calibração de robô é descrita em mais detalhes em conjunto com as Figuras 7 a 9. A interface de usuário de rede 530 inclui controles para indicar a porta na qual um servidor REST é responsivo, para indicar a porta na qual um módulo de biblioteca de teste compartilhado é responsivo e controles para ativar e desativar as conexões. A interface de usuário de banco de dados 540 inclui controles para gerenciar cada tabela descrita no esquema da Figura 4. O controle 550 permite a atualização da versão de um aplicativo de controle armazenado em um servidor, e abre um diálogo em que um usuário pode selecionar e instalar uma versão diferente de um aplicativo de controle.
[047]Note que a falta de controles visíveis nessa modalidade para a tabela “Paths” 432, conforme mostrado e descrito em conjunto com a Figura 4, que define constantes para mover o robô que corresponde a visores sensíveis ao toque, e a tabela “PathParts” 434, conforme mostrado e descrito em conjunto com a Figura 4, que define constantes para velocidade e pausas de movimentos de robô. Normalmente, essas tabela não precisam ser modificadas, exceto se um novo tipo de manipulador robótico for adicionado à plataforma de teste. Outras modalidades podem incluir controles para essas tabelas no fundo, com uma observação especial para tomar cuidado ao modificar essas tabelas, ou com controle de acesso que permite a modificação apenas por determinados usuários com funções ou níveis de permissão corretos.
[048]A Figura 5B é uma imagem de tela de subtelas de interface de usuário exemplificativas 560 e 570 que podem ser alcançadas a partir da interface de usuário da Figura 5A para gerenciar a tabela “Button” 446 e a tabela “Button Placement” 448, conforme mostrado e descrito em conjunto com a Figura 4, respectivamente, de acordo com uma modalidade da invenção. De acordo com essa modalidade, a tabela “Buttons” inclui definições para botões em sistemas integrados em vários produtos de teste. Um exemplo de entrada na tabela “Buttons” pode incluir Texto: Etiqueta “PIN”: “openKeyboard”, Tela de destino: “PIN”, e Tela de origem: “Login screen”. Isso pode representar um botão de um sistema integrado de um produto de teste que mostra na tela de logon e, quando pressionado, abre um teclado na tela PIN, então o usuário pode inserir um PIN. A tabela “Button Placement” pode vincular um botão definido na tabela “Buttons” a uma impressora específica. Um exemplo de entrada na tabela “Button Placement” para o botão com a Etiqueta: “openKeyboard” pode incluir a Impressora: “Konica Minolta 421”, Posição “x:57 y:66 z:0” e Tamanho “W: 33, H: 6”. Isso pode indicar que, no produto de teste Konica MinoltaTM 421, um botão openKeyboard pode ser encontrado nas coordenadas x:57, y:66, z:0 e o botão tem 33 mm de largura e 6 mm de altura. Nessa modalidade, as coordenadas são definidas em relação a x:0 y:0 z:0, que corresponde ao canto esquerdo inferior da tela.
[049]A Figura 6 é um fluxograma de etapas para criar uma nova definição de um produto em um banco de dados para teste, de acordo com uma modalidade da invenção. Embora outros fluxos sejam possíveis, esse fluxo exemplificativo assegura que todos os dados sejam preenchidos de uma maneira consistente com o esquema de banco de dados na modalidade da Figura 4 e que os dados de pré-requisito sejam inseridos em determinadas tabelas antes que seja necessário preencher outras tabelas. A etapa 600 define entradas na tabela “Manufacturers” para representar os fabricantes do produto de testes. A etapa 602 define entradas na tabela “PrinterModels” que representam modelos de impressoras e associa as mesmas a seus fabricantes correspondentes. A etapa 604 define entradas na tabela “HwVersions” que representam versões de hardware nos modelos de impressora. A etapa 606 define entradas na tabela “FwVersions” que representam versões de firmware nos modelos de impressora. A etapa 608 define entradas na tabela “SqVersions” que representam versões de servidores de gerenciador de impressão, tais como servidores YSoft SafeQTM em uma modalidade, para os modelos de impressora. A etapa 610 define entradas na tabela “SafeQServers” que correspondem a outras informações relacionadas aos servidores de gerenciador de impressão que serão usados para gerenciar as impressoras. A etapa 612 define entradas na tabela “MFPs” que incluem definições de um modelo de impressora, versão de servidor de gerenciador de impressão, versão de firmware, versão de hardware e tamanho de tela. A razão pela qual a etapa 612 para definir entradas MFP ocorre no fluxo de definição é que pode haver diferentes impressoras multifuncionais com o mesmo modelo, porém com versão de servidor de gerenciador de impressão, versão de firmware ou versão de hardware diferente. A etapa 614 define entradas na tabela “Screens” que representam as várias telas na interface do sistema integrado no produto de teste. A etapa 616 define entradas na tabela “Buttons” que representam os vários botões que correspondem a cada tela. A etapa 618 define entradas na tabela “Button Placement” que representam a posição e o tamanho de cada botão em uma tela em cada MFP.
[050]Em determinadas modalidades, o fluxo para definir um novo produto para teste pode ser realizado manualmente, porém deve-se compreender que um subconjunto das etapas ou mesmo todas as etapas podem ser assistidas por aplicativos auxiliares ou realizadas automaticamente, também. Por exemplo, em uma modalidade com uma função de treinamento automático, o aplicativo de controle pode usar o manipulador robótico e a câmera para navegar nas telas de um sistema integrado em um novo produto de teste ao experimentar botões e registrar os resultados e o fluxo navegacional entre telas. Isso irá preencher o banco de dados com informações nas tabelas “Screens”, “Buttons” e “Button Placement”, deixando que uma pessoa nomeie as telas adequadamente em um momento posterior.
[051]A Figura 7 é um fluxograma de etapas realizadas para calibrar um manipulador robótico, tal como 118 e 218 na plataforma de testes automatizada, de acordo com uma modalidade da invenção e consistente com a interface de usuário exemplificativa, conforme mostrado e descrito em conjunto com a Figura 5A. O propósito de calibração é assegurar que o manipulador robótico saiba onde está em relação ao sistema integrado que está sendo testado. A calibração para um manipulador robótico pode ser básica ou semiautomática. O processo geral para iniciar tanto os métodos de calibração básicos como semiautomáticos é o mesmo - identificar os três cantos da tela mapeada de acordo com o fluxo da Figura 7. Entretanto, embora a calibração básica envolva apenas uma única passagem através do fluxo de calibração, a calibração semiautomática continua em direção a uma fase de recalibração automática. Em uma modalidade, os resultados de calibração podem ser verificados com o uso de uma funcionalidade “experimentar” para que o manipulador robótico toque um botão selecionado na tela do sistema integrado.
[052]A etapa 700 consiste em assegurar que o robô seja conectado com o uso de controles de robô, tais como aqueles que correspondem a 510 na interface de usuário exemplificativa da Figura 5A. A etapa 702 consiste em posicionar fisicamente o robô na frente do produto de teste, de modo que possa alcançar os elementos na tela do sistema integrado e quaisquer elementos de hardware, tais como botões, que podem ser necessários para o teste. A etapa 704 consiste em ativar o controle “Calibrate Robot” na interface de usuário, tal como o botão mostrado na seção 520 da interface de usuário exemplificativa da Figura 5A. A etapa 706 consiste em selecionar o produto de teste, que já deve ter sido criado, por exemplo de acordo com o fluxo da Figura 6. A interface de calibração fornece uma série de avisos na tela para o usuário seguir. A etapa 708a consiste em navegar o manipulador robótico até o canto esquerdo inferior da tela. A etapa 708b consiste em navegar o manipulador robótico até o canto esquerdo superior da tela. A etapa 708c consiste em navegar o manipulador robótico até o canto direito superior da tela.
[053]A Figura 8 é uma imagem de tela de uma interface de calibração de usuário semiautomática exemplificativa que guia um usuário através da calibração manual inicial que se assemelha às etapas para calibração básica. Nessa modalidade, o manipulador robótico é equipado com uma caneta stylus como um dispositivo de manipulação e controlado por meio de uma entrada de teclado. Deve-se compreender que outros dispositivos de manipulação podem ser usados, e que outras formas de controle podem ser saídas também, incluindo posicionamento manual, onde possível, para manipuladores robóticos que podem aceitar entradas de posicionamento manual e derivar ângulos de servomotor com o uso de cinemática inversa.
[054]A calibração básica termina aqui salvando-se os resultados de calibração; a interface de usuário fornece uma notificação que o manipulador robótico foi calibrado para o produto de teste. Os resultados de calibração consistem em valores de coordenadas x, y, z para os três cantos da tela mapeada, o que define um plano no espaço 3D. Nessa modalidade, as coordenadas são definidas em relação a x:0 y:0 z:0, o que corresponde ao centro do primeiro servomotor no manipulador robótico.
[055]Conforme estabelecido acima, a calibração semiautomática envolve a execução através do processo de calibração básico inicial seguida por uma fase de recalibração automática. A Figura 9 é um fluxograma de etapas realizadas em um método de calibração semiautomática para conduzir a recalibração automática de um manipulador robótico após uma passagem inicial através do fluxo da Figura 7, de acordo com uma modalidade da invenção. A etapa 730, que pode ser realizada antes do fluxo da Figura 7, conforme desejado, deve-se configurar o produto de teste com uma conexão de terminal para o aplicativo de controle que relata as coordenadas de pixel (x, y) de qualquer toque detectado na tela de um sistema integrado. A etapa 732 consiste em carregar o aplicativo de controle com as dimensões de tela e a resolução da tela do sistema integrado, que pode ser usada para converter qualquer coordenada de pixel (x, y) em uma posição (x1, y1) na tela em milímetros. A etapa 734 consiste no aplicativo de controle usar essas fontes de informações para posicionar o manipulador robótico com o uso dos dados para o primeiro canto derivado da primeira passagem através do fluxo de calibração semiautomática; em vez de posicionar a caneta stylus exatamente conforme mapeada, o manipulador robótico começa inicialmente longe da tela (ou seja, ligeiramente mais próximo à sua posição de origem). Na etapa 736 o manipulador robótico se move mais próximo à tela até que um toque seja relatado pela conexão de terminal. A etapa 738 processa as coordenadas de pixel relatadas (x, y) e converte as mesmas em uma posição física (x1, y1) na tela em milímetros. O processo de recalibração automática repete as etapas 734 a 738 para cada um dos três cantos mapeados. Então, a etapa 740 usa os dados de posição física para os três cantos mapeados da tela e, em conjunto com os dados de coordenada de pixel relatados (x, y), recalcula as posições físicas corrigidas (x, y, z) dos três cantos mapeados da tela e substitui os dados anteriormente registrados na primeira fase do processo de calibração semiautomática. Esse novo conjunto de dados que resultam do processo de recalibração automática remove o erro de usuário e fornece precisão absoluta para posicionar o manipulador robótico em relação à tela do sistema integrado no produto de teste.
[056]A Figura 10 é um fluxograma de etapas realizadas for aquisição e processamento de imagem em uma plataforma de testes automatizada, de acordo com uma modalidade da invenção, consistente com o sistema mostrado e descrito em conjunto com a Figura 1. A plataforma de testes automatizada inclui aquisição e processamento de imagem, e tem a capacidade de reconhecer recursos na imagem, para fornecer retroalimentação visual para o aplicativo de controle que representa o comportamento do produto de teste e/ou sistema integrado. Em um sistema sem capacidades de análise de imagens, um robô pode continuar processando suas etapas sem reconhecer que algo deu errado com um produto de teste particular (por exemplo, uma bandeja de papel está vazia, uma bandeja de saída está cheia ou uma mensagem de aviso/erro inesperada aparece em uma tela.
[057]Na etapa 800, o aplicativo de controle 104 solicita uma análise de imagens do sistema integrado 122 e/ou produto de teste 120. Na etapa 802, a câmera 124 captura uma imagem do sistema integrado 122 e/ou produto de teste 120. Na etapa 804, a câmera 124 transmite os dados de imagem para o módulo de aquisição de imagem 108. Na etapa 806, o módulo de aquisição de imagem 108 transmite as informações para o módulo de processamento de imagem 114 que podem ser locais ou se situar em um servidor independente conectado ao módulo de processamento de imagem através de uma rede. Então, o módulo de processamento de imagem 114 analisa a imagem em conjunto com informações já armazenadas no banco de dados 116 (por exemplo, definição de tela, definições de botão, definições de posicionamento de de botão, etc.) com o uso das duas técnicas a seguir: (1) na etapa 808, usar descritores, que são áreas intrínsecas em uma imagem que podem ser calculadas por um treinamento de uma rede neural para reconhecer, correlacionar ou, de outro modo, comparar uma imagem com o uso de dados de imagem existentes relacionados a várias telas da interface em um sistema integrado; e (2) na etapa 810, usar um mecanismo de reconhecimento de caractere óptico (“OCR”) para reconhecer e extrair glifos, caracteres ou símbolos da imagem. Em algumas modalidades, a etapa 808 também pode usar um mecanismo OCR para fornecer informações usadas na identificação automatizada de descritores. O mecanismo OCR pode ser um aplicativo remoto acessível através de uma rede, e pode ser compartilhado por múltiplos solicitantes. Por exemplo, múltiplos componentes de computação podem solicitar o mecanismo OCR para processar uma tarefa OCR. Em resposta, o mecanismo OCR pode lidar com o processamento, incluindo ao usar todos os recursos disponíveis ou dedicar um conjunto de recursos limitado, tal como um único nó, para executar a tarefa solicitada.
[058]Os descritores para a etapa 808 podem ser computados no início do processamento de imagens, e adicionalmente recalculados por uma rede neural pendente de alterações na imagem que está sendo analisada ou em quaisquer dados de imagem existentes. A avaliação da imagem pode incluir a comparação dos descritores computados ou recalculados com quaisquer dados de imagem existentes armazenados no banco de dados 116 ou qualquer outro recurso acessível pelo módulo de processamento de imagem 114. O banco de dados 116 ou outros recursos acessíveis podem incluir um aplicativo de armazenamento central que serve como um repositório de dados amplamente acessível para informações que incluem, por exemplo, dados de imagem. Desse modo, múltiplos solicitantes podem se comunicar e obter informações do banco de dados 116 ou tais outros recursos acessíveis. As informações armazenadas no banco de dados 116 incluem dados específicos para cada tela de uma interface, incluindo imagens de cada tela para diferentes modelos de produto para cada fornecedor. A avaliação pode incluir adicionalmente o uso de métodos probabilísticos para analisar a tela com base nos dados de imagem do banco de dados 116. Tais métodos podem incluir, porém sem limitação, algoritmos BRISK ou ORB que podem operar nos descritores para os propósitos de detecção e correlacionamento. Os métodos podem detectar descritores de imagens particulares e comparar os mesmos com os dados de imagem do banco de dados 116 ou outros recursos acessíveis pelo módulo de processamento de imagem 114 para identificar uma correlação baseada nos descritores. Com o uso dessas informações, as duas técnicas acima permitem que o módulo de processamento de imagem identifique a tela com a qual o manipulador robótico precisa interagir e, também se há um aviso, erro ou outra condição a partir da qual o manipulador robótico precisa se recuperar. Os descritores podem ser suficientes para identificar a tela correta em muitas instâncias, o que significa que o fluxo de processamento de imagens pode terminar após a etapa 808. Quando os descritores não suficientes para identificar a tela, o fluxo progride para a etapa 810, na qual o módulo de processamento de imagem 114 pode usar OCR para reconhecer e extrair palavras da imagem como uma fonte de informações adicionais para auxiliar na identificação da tela correta.
[059]A Figura 11 é um teste de amostra que pode ser executado em uma plataforma de testes automatizada, de acordo com uma modalidade da invenção. É fácil para um usuário final preparar tais testes, devido ao fato de que a linguagem de scripts usada consiste em linguagem estruturada simples adequada para uma pessoa sem treinamento especializado para ler e entender, em vez de código de computador complexo. A plataforma de teste usa o módulo de biblioteca de teste compartilhado para converter o script simples, que usa palavras-chave definidas ou acessíveis pelo módulo de biblioteca de teste compartilhado, em comandos específicos para vários componentes ou módulos da plataforma de teste, que podem incluir, por exemplo, instruções para capturar ou recuperar informações dos sensores ou câmeras; instruções para realizar processamento de dados ou análise de dados de imagem, sinais de sensor, ou dados de sensor; instruções para enviar informações para, recuperar informações de, ou manipular informações dentro de um banco de dados; ou instruções para um manipulador robótico. Esses comandos são processados e podem ser transmitidos para o componente ou módulo adequado da plataforma de teste em relação à interface correspondente a esse componente ou módulo. Note que tradução pode diferir para fornecedores diferentes, modelos de impressora ou versões de hardware/firmware em um produto de teste. Por exemplo, a declaração simples “Quando o usuário é autenticado com “PIN” pode envolver diferentes telas de PIN ou diferentes formatos de PIN dependendo do produto de teste. Esse sistema tem duas vantagens principais: (1) um testador não precisa ser um engenheiro com conhecimento técnico específico de como trabalhar com um determinado produto de teste, e precisa apenas superar uma curva de aprendizado simples para entender a linguagem estruturada usada no script e (2) a plataforma de teste pode aplicar o mesmo script universal a diferentes produtos de teste ao converter conforme necessário com base nas informações específicas de produto armazenadas no banco de dados. O sistema também é vantajoso em relação aos métodos de teste existentes, pelo fato de que permite que o testador projete e conduza não apenas o teste de verificação, mas também o teste de validação. O teste de verificação pode incluir verificar recursos específicos de um sistema para avaliar se eles executam adequadamente e retornar o resultado esperado de acordo com as especificações de produto para o sistema. O teste de validação se refere a um tipo diferente de teste que foca menos na conformidade de especificação e mais em se o produto satisfaz as necessidades de um usuário. O teste de validação pode incluir avaliar características de nível mais alto de produto, tal como a velocidade total de um sistema, confiabilidade de um sistema ao longo do tempo, consistência de resultados ao longo de múltiplas tarefas, e outras áreas que tendam a ser difíceis ou impossíveis para que um testador individual determine com base no teste manual individual.
[060]A plataforma de testes automatizada pode executar em determinadas condições a partir das quais a mesma pode tentar se recuperar. Existem dois tipos de condições: (1) antecipada, para a qual há uma rota de recuperação designada, e (2) não antecipada. Um exemplo de uma condição antecipada pode ser um caso em que a entrada de um código PIN para autenticação para o produto de teste não foi bem- sucedida, porque o PIN inserido não correspondeu ao formato esperado no produto de teste. Em tal caso, o aplicativo de controle pode estar ciente da situação de erro porque a câmera pode ter capturado uma imagem da janela de erro que indica que o código PIN está incorreto, do formato errado, não reconhecido, etc. Nesse caso, o módulo de processamento de imagem pode reconhecer que a mensagem indica credenciais válidas, e o aplicativo de controle pode instruir o manipulador robótico a inserir um código PIN em um formato diferente.
[061]Para uma condição antecipada, existem novamente dois tipos: (1) o tipo de condição não antecipada que resulta na navegação em uma tela no sistema integrado a partir da qual o aplicativo de controle pode retornar para uma tela ou estado conhecido no fluxo de teste, e (2) o tipo de condição não antecipada que deixa o aplicativo de controle sem quaisquer instruções de recuperação explícitas. Para o caso anterior, o aplicativo de controle pode guiar o manipulador robótico para pressionar os botões adequados na tela para navegar até a tela ou estado adequado, de modo que possa continuar o fluxo de teste. Como um exemplo, se o aplicativo de controle estiver tentando testar trabalhos de impressão n°1 e n° 3, mas por alguma razão n° 2 e n° 4 também são selecionados, o aplicativo pode instruir o manipulador robótico a cancelar a seleção n° 2 e n° 4 antes de prosseguir. Para o último caso, o aplicativo de controle pode instruir o manipulador robótico a pressionar os botões “OK” ou “Cancel” adequados em uma tela para reinicializar o fluxo para um estado conhecido, e começar novamente. Após tentar novamente, apenas para enfrentar a mesma condição de erro imprevista, o aplicativo de controle pode enviar uma notificação para um administrador verificar a situação da máquina e, se necessário, inserir um procedimento de recuperação adequado no futuro. Deve-se compreender que pode ser desejável que a plataforma de testes automatizada sempre se recupere de cada condição imprevista, à medida que algumas dessas condições pode representar um defeito no produto de teste que precisa ser percebido e fixado no produto de teste, não no aplicativo de controle.
[062]A invenção, ao fornecer uma plataforma de testes automatizada para sistemas integrados, aprimora significativamente o estado da técnica em relação aos procedimentos de teste padrão. A consistência e velocidade de um manipulador robótico permite que o teste seja conduzido a um volume e nível mais altos de precisão em comparação ao teste manual, por exemplo. Adicionalmente, os resultados de realização dos testes podem ser mais granulares e completos. Os scripts de teste são completamente reproduzíveis em um nível exato, não somente em termos de etapas adotadas, mas até o nível de temporização precisa, localização e até mesmo força de pressionamentos de botões. Esses testes podem determinar determinadas qualidades de produto que podem ser difíceis ou impossíveis de verificar através de outras formas de teste, tal como a capacidade de resposta de uma interface de usuário a um usuário final ou o tempo necessário para que várias tarefas sejam executadas. Finalmente, a universalidade da linguagem de script e a capacidade de o aplicativo de controle se recuperar de determinadas condições imprevistas resulta em flexibilidade aumentada, por exemplo através de diferentes modelos de impressora ou versões de hardware/firmware, e menos scripts de teste totais para preparar para obter o mesmo nível de cobertura de teste que era possível anteriormente..
[063]em relação a detectar a quantidade de tempo necessário para que várias tarefas sejam realizadas, é preferível alcançar uma medição de tempo precisa, e ainda mais quando múltiplos componentes (cada um com seus próprios mecanismos para rastrear tempo) estão envolvidos em um processo de teste. Em vez de ajustar e usar o tempo do sistema de cada componente, pode ser vantajoso acompanhar a diferença entre o tempo de referência e o tempo de sistema local para um componente. O acompanhamento de tais diferenças torna possível manter a consistência nas medições de tempo assegurando-se que cada tempo medido a partir de um componente local seja sincronizado com o mesmo tempo de referência. A manutenção da diferença de tempo no aplicativo, em vez do nível de sistema também pode ser vantajosa à medida que minimiza a interrupção de outros processos em execução no sistema. Outros objetos, vantagens e modalidades dos vários aspectos da presente invenção serão evidentes para aqueles que são versados no campo da Invenção e são abrangidos pelo escopo da descrição e das Figuras anexas. Por exemplo, porém, sem limitação, elementos estruturais ou funcionais podem ser reorganizados, ou as etapas de método reordenadas, consistentes com a presente invenção. De modo similar, os princípios de acordo com a presente invenção poderiam ser aplicados a outros exemplos, que, mesmo se não especificamente descritos aqui em detalhes, poderiam, todavia, ser abrangidos pelo escopo da presente invenção. Por exemplo, os princípios da presente invenção não se limitam a testar impressoras, mas poderiam ser usados para testar qualquer produto com um sistema integrado.

Claims (24)

1. Sistema para testar um recurso de um sistema integrado (122) CARACTERIZADO pelo fato de que compreende: um dispositivo de computação de baixa potência (100, 102, 110) comunicativamente acoplado a uma interface de aplicativo de controle (104), uma interface de sensor (126) e uma interface robótica (118), em que o dispositivo de computação de baixa potência é configurado para: receber, a partir da interface de sensor, uma pluralidade de sinais de sensor (126) gerados durante um teste do recurso do sistema integrado, fornecer, através da interface de aplicativo de controle, dados de sensor que correspondem à pluralidade de sinais de sensor, receber, através da interface de aplicativo de controle, uma pluralidade de comandos para o teste do recurso, e fornecer, através da interface robótica, uma pluralidade de instruções para movimento de um manipulador robótico (118) que corresponde a pelo menos um dentre a pluralidade de comandos para o teste do recurso; e consumir menos que 25W; e um dispositivo de computação (112) comunicativamente acoplado à interface de aplicativo de controle, uma interface de processamento de imagem (114) e uma interface de banco de dados (116), em que o dispositivo de computação é configurado para: receber, a partir da interface de aplicativo de controle, os dados de sensor, receber, a partir da interface de processamento de imagem, dados de imagem que correspondem a uma pluralidade de imagens do sistema integrado capturadas durante o teste do recurso, receber, a partir da interface de banco de dados, uma pluralidade de testes que podem ser realizados no recurso, fornecer, através da interface de aplicativo de controle, uma pluralidade de comandos para o teste do recurso.
2. Sistema, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o dito dispositivo de computação é conectado a uma rede (128), em que o dito dispositivo de computação é configurado para transmitir dados de situação do dito teste e do dito manipulador robótico para um usuário através da rede.
3. Sistema, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que o dito dispositivo de computação é configurado para se comunicar com um usuário (130) através da rede e permitir o uso ou modificação de um aplicativo que executa no dispositivo de computação pelo usuário.
4. Sistema, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o componente de computação de baixa potência é configurado para processar os sinais de sensor antes de fornecer os dados de sensor através da interface de aplicativo de controle.
5. Sistema, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o componente de computação de baixa potência é configurado para processar a pluralidade de comandos antes de fornecer a pluralidade de instruções através da interface robótica.
6. Sistema, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o dispositivo de computação é comunicativamente acoplado a uma interface de processamento de dados de sensor (110), em que o dispositivo de computação recebe, através da interface de processamento de dados de sensor, dados de sensor processados que correspondem a dados de sensor capturados durante o teste do recurso.
7. Sistema, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que pelo menos um dentre o dispositivo de computação de baixa potência e o dispositivo de computação é configurado para ser sincronizado em um nível de aplicativo com o mesmo tempo de referência que outro dispositivo de computação.
8. Sistema, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que pelo menos um dentre a pluralidade de testes compreende uma pluralidade de palavras-chave, e o dispositivo de computação é configurado para converter as palavras-chave em comandos que podem ser realizados pelo manipulador robótico.
9. Sistema, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que pelo menos um dentre a pluralidade de testes compreende uma pluralidade de palavras-chave, e o dispositivo de computação é configurado para converter as palavras-chave em comandos para transmissão através de uma interface.
10. Sistema, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que os dados de sensor ou dados de imagem correspondem a aspectos tridimensionais (3D) do sistema integrado ou a um produto de teste cujo sistema integrado é uma parte.
11. Sistema, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o recurso é um recurso bidimensional (2D).
12. Sistema, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o dispositivo de computação de baixa potência e o dispositivo de computação são componentes separados.
13. Método para testar um recurso de um sistema integrado (122) realizado por um dispositivo de computação de baixa potência (128), que consome menos que 25W, e um dispositivo de computação (112), sendo que o método é CARACTERIZADO pelo fato de que compreende: receber, a partir de uma interface de sensor (126), por meio do dispositivo de computação de baixa potência, uma pluralidade de sinais de sensor gerados durante um teste do recurso do sistema integrado, fornecer, através de uma interface de aplicativo de controle (104), por meio do dispositivo de computação de baixa potência, dados de sensor que correspondem à pluralidade de sinais de sensor, receber, a partir de uma interface de aplicativo de controle, por meio do dispositivo de computação de baixa potência, uma pluralidade de comandos para o teste do recurso, fornecer, através de uma interface robótica (104, 118), por meio do dispositivo de computação de baixa potência, uma pluralidade de instruções para movimento de um manipulador robótico (118) que corresponde a pelo menos um dentre a pluralidade de comandos para o teste do recurso; e receber, a partir da interface de aplicativo de controle, por meio do dispositivo de computação, os dados de sensor, receber, a partir de uma interface de processamento de imagem (114), por meio do dispositivo de computação, dados de imagem que correspondem a uma pluralidade de imagens do sistema integrado capturadas durante o teste do recurso, receber, a partir de uma interface de banco de dados (116), por meio do dispositivo de computação, uma pluralidade de testes que podem ser realizados no recurso, fornecer, através da interface de aplicativo de controle, por meio do dispositivo de computação, uma pluralidade de comandos para o teste do recurso.
14. Método, de acordo com a reivindicação 13, CARACTERIZADO pelo fato de que o dito dispositivo de computação é conectado a uma rede (128), em que o dito dispositivo de computação é configurado para transmitir dados de situação do dito teste e do dito manipulador robótico para um usuário (130) através da rede.
15. Método, de acordo com a reivindicação 14, CARACTERIZADO pelo fato de que o dito dispositivo de computação se comunica com um usuário através da rede, recebe solicitações para o uso ou modificação de um aplicativo que executa no dispositivo de computação, e processa as solicitações.
16. Método, de acordo com a reivindicação 13, CARACTERIZADO pelo fato de que o componente de computação de baixa potência processa os sinais de sensor antes de fornecer os dados de sensor através da interface de aplicativo de controle.
17. Método, de acordo com a reivindicação 13, CARACTERIZADO pelo fato de que o componente de computação de baixa potência processa a pluralidade de comandos antes de fornecer a pluralidade de instruções através da interface robótica.
18. Método, de acordo com a reivindicação 13, CARACTERIZADO pelo fato de que o dispositivo de computação é comunicativamente acoplado a uma interface de processamento de dados de sensor (110), em que o dispositivo de computação recebe, através da interface de processamento de dados de sensor, dados de sensor processados que correspondem a dados de sensor capturados durante o teste do recurso.
19. Método, de acordo com a reivindicação 13, CARACTERIZADO pelo fato de que pelo menos um dentre o dispositivo de computação de baixa potência e o dispositivo de computação sincroniza com o mesmo tempo de referência que outro dispositivo de computação, em um nível de aplicativo.
20. Método, de acordo com a reivindicação 13, CARACTERIZADO pelo fato de que pelo menos um dentre a pluralidade de testes compreende uma pluralidade de palavras-chave, e o dispositivo de computação converte as palavras-chave em comandos que podem ser realizados pelo manipulador robótico.
21. Método, de acordo com a reivindicação 13, CARACTERIZADO pelo fato de que pelo menos um dentre a pluralidade de testes compreende uma pluralidade de palavras-chave, e o dispositivo de computação é configurado para converter as palavras-chave em comandos para transmissão através de uma interface.
22. Método, de acordo com a reivindicação 13, CARACTERIZADO pelo fato de que os dados de sensor ou dados de imagem correspondem a aspectos tridimensionais (3D) do sistema integrado ou a um produto de teste cujo sistema integrado é uma parte.
23. Método, de acordo com a reivindicação 13, CARACTERIZADO pelo fato de que o recurso é um recurso bidimensional (2D).
24. Método, de acordo com a reivindicação 13, CARACTERIZADO pelo fato de que o dispositivo de computação de baixa potência e o dispositivo de computação são dispositivos separados.
BR112019008074-0A 2016-10-20 2017-10-19 Sistema e método para testar um recurso de um sistema integrado BR112019008074B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662410666P 2016-10-20 2016-10-20
US62/410,666 2016-10-20
PCT/EP2017/076802 WO2018073395A1 (en) 2016-10-20 2017-10-19 Universal automated testing of embedded systems

Publications (2)

Publication Number Publication Date
BR112019008074A2 BR112019008074A2 (pt) 2019-07-02
BR112019008074B1 true BR112019008074B1 (pt) 2023-08-15

Family

ID=

Similar Documents

Publication Publication Date Title
US10997045B2 (en) Universal automated testing of embedded systems
US11934301B2 (en) System and method for automated software testing
US20240037020A1 (en) System and Method for Automated Software Testing
CN108959068B (zh) 软件界面测试方法、设备及存储介质
US8549478B2 (en) Graphical user interface input element identification
WO2016206113A1 (en) Technologies for device independent automated application testing
CN109669873B (zh) 用户界面自动测试方法及装置、电子设备及存储介质
US10679060B2 (en) Automatic generation of user interfaces using image recognition
US11094082B2 (en) Information processing apparatus, information processing method, robot system, and non-transitory computer-readable storage medium
US20100312541A1 (en) Program test device and program
CN113934630A (zh) 基于图像识别的软件测试方法、装置、设备及介质
US10146331B2 (en) Information processing system for transforming coordinates of a position designated by a pointer in a virtual image to world coordinates, information processing apparatus, and method of transforming coordinates
WO2017049649A1 (en) Technologies for automated application exploratory testing
JP2018034441A (ja) 情報処理装置、制御方法、およびプログラム
BR112019008074B1 (pt) Sistema e método para testar um recurso de um sistema integrado
US20230230337A1 (en) A Method for Testing an Embedded System of a Device, a Method for Identifying a State of the Device and a System for These Methods
US20230065800A1 (en) Method and test assembly for testing an autonomous behavior controller for a technical system
US10798181B2 (en) Storage medium containing a program, information processing device, and processing method for deploying an application generated to a cloud environment
CN106951347B (zh) 在线诊断方法及在线诊断装置
TWI842931B (zh) 自動判別處理裝置、自動判別處理方法、檢查系統、程式、及記錄媒體
US20230311325A1 (en) Apparatus and method for providing development environment for functional modules of robot
Paštyka Kamerová kontrola funkčnosti elektronických systémů
Samhitha et al. Framework for Near Field Communication Controller Interface Protocol over Virtual IC
JP2023073429A (ja) 情報処理装置、その処理方法及びプログラム
WO2024072445A1 (en) Machine learning-based conversion of schematic diagrams