using json interface testing
Usando JSON para teste de interface:
O teste de interface verifica a comunicação entre dois sistemas diferentes. É executado no aplicativo em teste para verificar se a comunicação de ida e volta entre duas redes é realizada corretamente.
Uma interface é basicamente a conexão entre dois sistemas de software e o teste dessa conexão para transferência de dados é chamado de teste de interface. A interface cobre uma ampla gama de serviços no mundo real, ela pode ser usada para se referir a serviços da Web, API, etc.
Uma Interface contém um conjunto de regras, mensagens, comandos etc. que facilita a comunicação entre dois sistemas.
Este teste se concentra principalmente no teste de dois segmentos principais:
- Comunicação de banco de dados e servidor de aplicativos
- Comunicação do servidor Web e de aplicativos
O teste de interface é executado para avaliar os cenários mencionados acima para validar se os componentes estão passando corretamente o controle e os dados uns para os outros. Ele também verifica a interação entre os diferentes módulos.
O que você aprenderá:
- Por que o teste de interface é realizado?
- Como é realizado?
- Diferença entre teste de interface e teste de integração
- Cenário de Negócios
- Configuração do ambiente de teste
- Iniciando seu teste
- Conclusão
- Leitura recomendada
Por que o teste de interface é realizado?
É realizado para garantir:
- Se a comunicação entre os sistemas for realizada corretamente.
- Todos os softwares e hardwares usados no sistema estão funcionando corretamente.
- Todos os documentos vinculados à comunicação estão disponíveis em todas as plataformas integradas.
- Os requisitos de segurança e criptografia aderem à comunicação entre os sistemas.
- Os componentes integrados são capazes de lidar com falhas de rede e perda de comunicação.
Tipos de defeitos encontrados
A maioria dos defeitos encontrados nos testes de interface com o usuário são devidos ao mapeamento incorreto dos dados entre os sistemas. Portanto, a maioria dos bugs pode ser classificada basicamente nas seguintes categorias.
- Transmissão de dados inconsistente entre os dois sistemas.
- Um dos sistemas interpreta mal a transmissão de dados de outro sistema.
- O canal de transmissão ou interface entre os dois sistemas falha e isso restringe a transferência de dados entre os sistemas, fazendo com que toda a interface falhe.
Como é realizado?
Pode ser categorizado principalmente nas seguintes fases:
- As interfaces podem ser testadas individualmente durante teste de sistema . Este tipo de teste é realizado principalmente usando um sistema stub ou fictício. Um sistema fictício ou stub representa o comportamento de toda a interação do sistema.
- Outra instância em que o teste de interface é executado é uma junção onde dois sistemas estão se comunicando.
- Assim, testamos se os dados enviados por um sistema foram corretamente mapeados e inseridos em outro sistema ou não. Além da inserção de dados, também verificamos a integridade dos dados, ou seja, os dados, quando inseridos em outro sistema, não foram manipulados ou alterados, etc.
- O teste também pode ser realizado quando um sistema transmite dados para outro banco de dados de aplicativo. Aqui, testaremos se os dados de um sistema foram inseridos corretamente em uma determinada coluna da tabela fornecida com base no mapeamento. Também testaremos a integridade e a consistência dos dados em relação ao sistema de origem.
Em todos esses cenários de teste, o teste de interface é executado com base nos requisitos de negócios e regras de fluxo de negócios.
Diferença entre teste de interface e teste de integração
A verificação e validação da funcionalidade ponta a ponta dos componentes conectados entre si são chamadas Teste de integração ou mais popularmente como teste de integração de sistema. O teste de integração valida principalmente se dois ou mais sistemas integrados estão funcionando perfeitamente juntos ou não.
Testando Interface por outro lado concentra-se basicamente no canal de conexão entre os dois sistemas. O canal de conexão entre dois ou mais sistemas é chamado de Interface. O teste desse canal de conexão é chamado de Teste de Interface. A maioria das interfaces são APIs ou serviços da web. Ele não tem uma IU, mas recebe uma entrada e apresenta ao usuário uma saída.
Por exemplo
No exemplo acima, o site e o banco de dados compartilham uma interface para transmitir as informações de login, ou seja, nome de usuário e senha.
A interface usa serviço da web para enviar as informações de login ao banco de dados, que por sua vez valida a autenticidade da mensagem recebida (nome de usuário e senha) e retorna o valor como verdadeiro se o nome de usuário e a senha corresponderem ao registro presente no banco de dados ou falso no caso de algum deles ou o nome de usuário e a senha não corresponderem aos dados presentes nele.
Vamos discutir um exemplo de teste de interface:
Digamos que temos um aplicativo onde temos diferentes bancos de dados interagindo uns com os outros.
Nisso exemplo , consideraremos duas interações de banco de dados por meio de um canal de interface.
Vamos considerar que existem dois bancos de dados ou aplicativo, banco de dados A e B. “A” transfere alguns dados para “B”, que é então usado por B para realizar alguma operação. Depois de realizar uma determinada operação nos dados de entrada, B insere esses dados no banco de dados e cria um JSON de saída para confirmação com a lista de dados atualizados e os envia de volta para A.
Ambos A e B usam o canal de interface para comunicação entre eles.
Cenário de Negócios
“A” contém dados de funcionários para todos os funcionários pertencentes ao departamento financeiro.
Os dados precisam ser transferidos para “B ' em uma base diária. “B” contém dados sobre detalhes gerais dos funcionários. Todos os dados de “A” precisam ser transferidos para uma determinada tabela e coluna de “B”. Além dos dados de entrada, “B” também precisa classificar e organizar os dados. Ele também precisa se certificar de que os dados foram inseridos em relação ao funcionário correto.
Assim que os dados forem inseridos no sistema, “B” deve enviar um JSON de saída para confirmar se os dados foram inseridos no banco de dados.
Caso haja alguma discrepância no esquema JSON ou dados ausentes “B” não processará os dados e enviará uma mensagem Rejeitar JSON com o motivo da rejeição.
Configuração do ambiente de teste
Para testar um cenário como este, precisaremos de um stub de teste para simular o banco de dados “A”. O desenvolvedor pode fornecer um local onde você pode despejar seu JSON de teste ou uma IU simulada e colar seus dados JSON e invocar o processamento por meio da interface. Para fins de teste, também podemos ter um local de saída onde podemos receber a confirmação JSON de “B”.
Na nossa exemplo , usaremos um caminho de pasta onde colocaremos nosso JSON de teste, o serviço estará constantemente procurando o local do arquivo JSON. Assim que o arquivo estiver presente, o serviço pegará o arquivo e o enviará para “B” através da interface. Assim que o arquivo for coletado, ele será excluído do local de coleta.
Iniciando seu teste
Uma vez que o ambiente de teste foi configurado, a próxima etapa é criar os dados de teste.
Ao criar dados de teste (leia o JSON de teste), devemos ter algumas coisas em mente:
- Siga as regras de negócios.
- Verifique se os campos obrigatórios estão presentes.
- Altere o valor dos campos de acordo com as regras de negócios para cada teste.
- Certifique-se de que o esquema JSON esteja no formato correto.
- Certifique-se de que a nomenclatura para o nome do arquivo JSON foi respeitada.
Vamos dar uma olhada no JSON de teste de amostra que usaremos para o teste:
{ 'employeeID ': 2569875, 'LastName': “Jackson”, 'baseSalary': 2569, 'DesignationCode':'P102', “Expenditure”:{ 'Month':“Feb”, 'Year': 2017, 'Official':560, 'Others”:0, } }
Comece seu teste
Depois de criar seu arquivo JSON de teste, solte-o no local de retirada. O serviço pegará isso e postará no banco de dados B.
Cenários para testar:
Pode haver vários cenários que precisam ser testados para este exemplo, como:
- Trabalhar com o serviço web para enviar e receber dados.
- Integridade de dados para os dados de entrada. Isso pode ser validado consultando tabelas e colunas no banco de dados B para os dados inseridos por meio do JSON de teste.
- Cenários negativos.
A princípio, verificaremos se o arquivo JSON de teste foi retirado do local ou não está presente no local. Isso irá validar o funcionamento do serviço. Em seguida, navegaremos até a pasta de saída para visualizar o JSON de saída. Presença de saída JSON valida se os dados de entrada foram enviados para o banco de dados B e a confirmação dos mesmos foi recebida.
A próxima parte do teste consiste em validar os dados inseridos no banco de dados.
No teste acima, iremos validar se os dados enviados através do teste JSON foram inseridos corretamente no banco de dados. Iremos validar a integridade dos dados, consistência dos dados e inserção dos dados. Teremos que consultar o banco de dados B para a coluna dada em uma tabela particular para validar se os dados foram inseridos corretamente na tabela.
Digamos que temos a tabela EmpDetails onde os dados devem ser inseridos. Então, vamos executar uma consulta para validar os dados.
A consulta será mais ou menos assim:
SELECT employeeID, LastName, baseSalary, DesignationCode, Month, Year, Official, Others FROM EmpDetails Where employeeID = 2569875;
Aqui, usaremos o employeeID como a chave primária para consultar os dados na tabela EmpDetails. Faremos a consulta usando todos os nomes das colunas nas quais os dados foram inseridos. Em seguida, os dados no nome da coluna podem ser validados com os dados enviados por meio do JSON.
No caso acima, os dados do JSON estão sendo armazenados em mais de uma tabela no banco de dados, portanto, você pode usar SQL JOINS para buscar todos os dados desejados.
A terceira etapa do teste será testar os cenários negativos.
Alguns dos cenários negativos que podem ser testados são:
- O comportamento do sistema quando dados incorretos são alimentados por meio de JSON.
- Quando o JSON tem o esquema ou estrutura incorreta.
- Quando o JSON processado está faltando a chave primária ou qualquer campo obrigatório.
- A nomenclatura do arquivo JSON não é válida.
Em todos esses casos, o sistema deve ser capaz de lidar com esses cenários e nenhum dado deve ser inserido no sistema de acordo com a regra de negócios.
Conclusão
O canal de conexão entre dois sistemas por meio do qual os dados são transmitidos é chamado de Interface e o teste de interface funciona principalmente em torno do teste dessas conexões. A maioria das interfaces usa Web Service ou APIs. Nem sempre tem uma IU, mas aceita entrada e fornece saída.
c ++ inicializar variável estática
Sendo um dos formatos de transferência de dados mais amplamente usados, JSON pode ser usado para transferência de dados de interface.
Um testador precisa ter conhecimento básico de estrutura JSON para criar dados de teste (na forma de JSON) e ler dados de saída do sistema. Um testador também deve ser bem versado no mapeamento entre as chaves JSON e a coluna da tabela do banco de dados.
Qualquer testador que deseja trabalhar no teste de interface deve ter um conhecimento claro sobre as diretrizes de negócios e as regras de um aplicativo. Um testador também deve ter conhecimento adequado sobre o banco de dados e ser capaz de escrever consultas SQL simples.
Para qualquer dúvida ou esclarecimento, por favor, entre em contato conosco na seção de comentários.
Tutorial # 5: Perguntas da entrevista JSON
Leitura recomendada
- Melhores ferramentas de teste de software 2021 (QA Test Automation Tools)
- Teste de banco de dados com JMeter
- Download do e-book do Testing Primer
- Mais de 40 melhores ferramentas de teste de banco de dados - Soluções populares de teste de dados
- Tutorial de teste de GUI: um guia completo de teste de interface de usuário (IU)
- Uma abordagem simples para XML para teste de banco de dados
- Teste ETL Tutorial de teste de data warehouse (um guia completo)
- O que é teste de interface? Conheça Seus Tipos, Estratégia e Ferramentas