simple guide interoperability testing
Antes de entender a técnica de “Teste de interoperabilidade” , Vamos primeiro entender o termo “Interoperabilidade”.
Interoperabilidade é a capacidade de um sistema interagir com outro sistema. Essa interação é entre 2 sistemas diferentes ou 2 aplicativos diferentes todos juntos.
Muitas vezes, a interoperabilidade é confundida com Integração , compatibilidade e portabilidade. Bem, existem diferenças entre essas técnicas.
Deixe-me começar explicando as diferenças.
Integração - É uma técnica em que os componentes de um mesmo sistema interagem entre si. Portanto, no mundo dos testes, quando fazemos o teste de integração, estamos, na verdade, testando o comportamento de 2 ou mais níveis inferiores de componentes do mesmo sistema.
Compatibilidade - É uma técnica pela qual 2 ou mais aplicativos interagem no mesmo ambiente. Portanto, no mundo dos testes, quando fazemos testes de compatibilidade; validamos se 2 ou mais aplicativos ou sistemas se comportam conforme o esperado no mesmo ambiente.
perguntas da entrevista sql com 5 anos de experiência
A intenção aqui é verificar se os dois sistemas realizam as tarefas esperadas, sem interferir no funcionamento um do outro, no mesmo ambiente. Como - MS Word e Calculadora são 2 aplicativos diferentes e executam o comportamento esperado de forma independente no mesmo sistema operacional. Portanto, dizemos que esses 2 aplicativos são compatíveis entre si.
Portabilidade - É uma técnica quando um aplicativo ou sistema se comporta conforme o esperado quando é movido para outro ambiente. Então em Portabilidade teste, exportamos o aplicativo para algum outro ambiente e testamos seu comportamento. Por exemplo, se existe um aplicativo que funciona bem no Windows XP, também deve funcionar bem no Windows 10.
Interoperabilidade - É uma técnica de como um aplicativo interage com outro aplicativo. Portanto, quando fazemos o teste de interoperabilidade, verificamos como os dados de um aplicativo são transferidos para outro aplicativo sem aviso prévio, de maneira significativa, e posteriormente processados para fornecer a saída aceita.
Este artigo específico se concentra em testes de interoperabilidade (IOT), então vamos manter nosso foco na interoperabilidade. :)
O que você aprenderá:
- Teste de interoperabilidade - uma breve introdução
- Como fazer o teste de interoperabilidade?
- Os 5 ½ Passos:
- Desafios:
- Teste de interoperabilidade em dispositivos móveis:
- Conclusão:
- Leitura recomendada
Teste de interoperabilidade - uma breve introdução
Interoperabilidade = Inter + operável
Inter - significa 'entre nós', 'um dentro do outro', 'mútuo'
Operável - significa 'capaz de realizar a tarefa dada'
Assim, combinando os 2 termos juntos - Interoperabilidade significa 2 (ou mais) sistemas, capazes de realizar suas tarefas alocadas de forma independente e capazes de se comunicarem entre si conforme o esperado, sem afetar sua funcionalidade individual atribuída.
Exemplo 1:Veja um exemplo de reserva de voo. Considere que você precisa viajar de Nova Deli para Nova York. Agora você não tem um vôo direto. Você tem que viajar de Nova Deli a Londres e depois pegar o vôo de conexão de Londres a Nova York. Como você tem algumas restrições de tempo, você reserva seu voo de Nova Deli para Londres na “Jet Airways” e de Londres para Nova York na “Virgin Atlantic”. Isso significa que todos os detalhes do passageiro foram transferidos da Jet Airways para a Virgin Atlantic. Portanto, aqui, Jet Airways e Virgin Atlantic, ambos são aplicativos independentes juntos e, ao reservar o seu voo, os detalhes da reserva foram trocados da Jet Airways para a Virgin Atlantic de maneira completa, sem aviso prévio.
Exemplo # 2:Em linhas semelhantes, pense no sistema de administração hospitalar, onde os registros dos pacientes são trocados entre 1 departamento para outro departamento. Portanto, aqui o departamento pode ser vinculado a um aplicativo. Os detalhes do paciente são trocados entre 1 aplicação e outra aplicação sem qualquer aviso prévio.
Então, por que precisamos fazer o IOT?
Precisaríamos fazer o teste de interoperabilidade para garantir que
- Os aplicativos na rede executam seu comportamento esperado de forma independente,
- Pode trocar informações sem aviso prévio
- As informações / dados são trocados sem interromper o comportamento individual esperado
- Os dados / informações que são trocados não são modificados ou alterados
Como fazer o teste de interoperabilidade?
Podemos seguir a roda do Deeming (o ciclo PDCA) para realizar o teste de interoperabilidade.
# 1) Plano
O planejamento é a fase mais importante para determinar a estratégia de fazer quase tudo no desenvolvimento de software. Antes de realmente planejarmos a determinação do procedimento para fazer a IOT, é fundamental que entendamos cada aplicativo ou sistema implantado na rede.
Devemos saber para todos os aplicativos - sua funcionalidade, comportamento, entrada e saída que revela.
Eu também recomendaria que cada aplicativo seja totalmente testado funcionalmente, sem defeitos, antes de prepará-lo para o teste de interoperabilidade. Então, quando você planeja, não pense apenas em 1 ou 2 aplicativos, pense em todos os aplicativos como uma única unidade. Você precisa ter uma visão panorâmica ao planejar esta técnica de teste. Não é preciso dizer isso - documente seu plano.
Podemos usar nosso documento padrão de plano de teste e adapte-o um pouco de acordo com a necessidade de documentar o planejamento da IOT. Depois que seu plano de teste estiver estabelecido, prossiga para derivar suas condições de teste.
O foco de derivar sua condição de teste não deve ser limitado aos aplicativos individuais; em vez disso, deve ser baseado no fluxo de dados por meio de todos os aplicativos. As condições devem ser projetadas de forma que, senão todos, mas a maioria dos aplicativos na rede sejam percorridos.
Assim que as condições de teste forem identificadas, prossiga para projetar ou criar um script (caso planeje automatizar) seus casos de teste. Você pode criar um RTM (Matriz de rastreabilidade de requisitos) para mapear seus casos de teste com condições de teste e suas condições de teste com condições / requisitos de teste de aceitação.
Quando você está trabalhando em uma rede, é importante planejar também as atividades de teste não funcionais. Isso pode não ser escrito ou documentado em qualquer lugar, mas é obrigatório verificar os aspectos não funcionais do sistema como um todo. Essas áreas não funcionais incluiriam desempenho e segurança. Se necessário, você pode criar um plano separado para testes funcionais, testes de desempenho e testes de segurança; ou crie um único plano e um documento diferente de condições de teste para cada um desses tipos de teste.
#faça 2
Do - é o intervalo de tempo em que você realmente executa sua execução. Planeje seu tempo adequadamente para executar os testes funcionais e não funcionais. Acompanhamos o ciclo de testes nesta fase de execução dos casos, logando os defeitos, acompanhando a equipe de desenvolvimento para resolvê-los, fazendo o reteste e teste de regressão do sistema como um todo, reportando os resultados dos testes e passando para fecho.
# 3) Verifique
Verificar - é a fase em que revisamos nossos resultados de teste e tentamos mapear aqueles com os RTMs e validar se todos os requisitos esperados foram atendidos e se todos os aplicativos foram percorridos. Verificamos se os dados são percorridos e trocados de forma correta e sem problemas entre os aplicativos / sistemas. Também precisaríamos validar se os dados que são percorridos não são modificados.
Considere também fazer uma retrospectiva de todo o processo de teste de interoperabilidade. Identifique as áreas que funcionaram bem, as que não deram certo e os itens de ação que precisam ser cuidados.
# 4) Agir
Agir - É agir sobre os itens retrospectivos. Os pontos que foram identificados como “boas práticas”, continuar a executá-los e os pontos que poderiam ser melhor trabalhados, identificar as etapas para retificá-los e agir em conformidade. Tenha em mente que as áreas ou etapas que não funcionaram bem NÃO devem ser repetidas. Afinal, devemos aprender com nossos erros e não repeti-los.
Os 5 ½ Passos:
- Identifique todos os aplicativos que fazem parte da rede.
- Identifique suas respectivas funcionalidades.
- Para cada aplicação, identifique a entrada que ela recebe e a saída que retorna.
- Identifique os dados que atravessariam todos / a maioria dos aplicativos.
- Identifique o comportamento esperado para cada combinação de aplicação e data que precisa ser validada
½ Documente.
Considere a figura abaixo:
Com base na figura, vamos tentar replicar as 5 ½ etapas:
- Aplicação 1, Aplicação 2, Aplicação 3 e Aplicação 4 são 4 sistemas diferentes.
- Cada um desses sistemas possui o conjunto definido de funcionalidade que precisa ser identificado.
- As entradas e saídas de cada sistema precisam ser identificadas.
- No caso de Application1, ele renderiza 2 saídas. 1 saída forma a entrada do Aplicativo 3 e 1 saída forma a entrada do Aplicativo 2. A saída do Aplicativo 2 forma a entrada do Aplicativo 3 e do Aplicativo 4 e assim por diante.
- A validade de cada entrada e saída é verificada. O principal ponto a considerar aqui é que os dados que estão passando na forma de entrada e saída não são modificados E toda a aplicação é coberta.
½ Este número na vida real pode não parecer tão simples. Na verdade, isso resulta em uma estrutura mais complexa com n números de condições de entrada e saída.
Desenhar este tipo de figura daria uma melhor imagem para identificar os dados e informações que estariam passando por diferentes sistemas. Isso nos ajudaria a derivar as condições e casos de teste.
Um exemplo:
Vamos considerar um exemplo de realização de testes de interoperabilidade para um 'Sistema de gestão hospitalar'
Um hospital consiste nos departamentos e subdepartamentos abaixo;
Aqui, cada departamento é um aplicativo em si. Cada departamento (aplicativo) tem seu próprio sub departamento (módulos) e cada módulo tem suas próprias unidades.
Portanto, agora para considerar o escopo da IOT, aqui estão algumas condições de teste:
- Paciente que atendeu acidente de viação (Serviço OPD - Acidente), necessita ser submetido a cirurgia na perna (Otorrinolaringologia - Cirurgia Geral), depois faz fisioterapia (Serviço de Apoio - Fisioterapia) e depois obtém alta (Serviço de Apoio - Encerramento)
- Uma criança internada em cuidados intensivos (Pediatria - Cuidados Críticos) precisa ser submetida a uma cirurgia (Pediatria / Otorrinolaringologia - Cirurgia Geral) e, em seguida, recebe alta (Departamento de Apoio - Encerramento / PR)
- Um paciente externo consulta um clínico geral (departamento de OPD); pega os medicamentos prescritos (Departamento de Apoio - Farmácia) e vai embora.
- Uma gestante vem fazer check-ups regulares (Serviço de Ginecologia - Puericultura), leva o medicamento prescrito (Serviço de Apoio - Farmácia) e vai embora.
- O paciente odontológico faz o canal radicular (Departamento de Odontologia), pega o medicamento prescrito (Serviço de Apoio - Farmácia) e vai embora.
- Um paciente chega no OPD (clínico geral), faz um tratamento no (Serviço de Obstetrícia e Ginecologia - Obstetrícia de Alto Risco) toma o medicamento prescrito (Serviço de Apoio - Farmácia) e recebe alta
Assim, identificamos todas as condições de teste; tendo em mente que a maior parte do departamento precisa ser coberta.
Podemos desenhar um RTM para mostrar a cobertura como:
Dessa forma, podemos identificar mais condições de teste e desenhar o RTM para ver nosso escopo exato. Também podemos determinar a profundidade de nossos esforços de teste com base no RTM.
Como neste exemplo, vemos que o “Departamento de Suporte” é o aplicativo que é o ponto de saída para todos (a maioria) do aplicativo, portanto, o esforço de teste para este aplicativo em particular é um pouco maior em comparação com outro aplicativo.
Desafios:
- É difícil testar todo o aplicativo com todas as permutações e combinações.
- Os aplicativos são desenvolvidos em diferentes combinações de hardware / software e são instalados em ambientes diferentes, portanto, se algum dos ambientes estiver inativo, isso afetará o teste.
- Por causa dos diferentes softwares e ambientes, determinar a estratégia de teste e executá-la é uma grande tarefa.
- Estimular o ambiente para a realização do teste, é um grande desafio.
- Em caso de algum defeito, fazer a Análise de Causa Raiz é um grande desafio.
- Como os aplicativos estão em uma rede, pode haver momentos em que a rede ficará inativa. Por causa disso, o teste também é afetado.
Como posso mitigar esses desafios?
1) Tente usar as técnicas de teste avançadas como:
- OATS (técnica de teste de matriz ortogonal)
- Diagramas de transição de estado,
- Gráficos de causa e efeito
- Porcionamento de equivalência e análise de valor limite.
Essas técnicas ajudariam a identificar a interdependência entre o aplicativo e a identificar os casos / condições de teste que garantiriam a cobertura máxima.
dois) Tente identificar alguns dados históricos, como - sob quais circunstâncias os sistemas ficaram inativos, quanto tempo leva para voltar a funcionar. Nesse caso, tente executar os cenários cujos aplicativos não são afetados ou utilize o tempo para documentar os cenários e relatar os resultados. Além disso, sempre que você planejar ou agendar o teste, sempre considere esses dados históricos como uma entrada para sua estimativa e planeje de acordo.
3) PLANO - Use dados históricos, experiências anteriores, habilidade da equipe, fatores ambientais para identificar a estratégia do teste. Quanto melhor for o seu plano, melhor será a sua execução.
substring (0,0)
4) Comece a trabalhar na preparação do ambiente muito antes do início da execução real. Nem é preciso dizer - planeje seus passos ao preparar o ambiente. Certifique-se de que seu ambiente esteja configurado, pronto e em funcionamento quando sua execução começar.
5) Antes de iniciar o IOT, certifique-se de que os aplicativos individuais sejam totalmente testados de forma funcional, sem defeitos. Então, em caso de algum defeito, você só precisaria procurar os fatores ambientais que resultaram em algum erro.
6) Conforme discutido no ponto 2, planeje sua atividade. Se for uma interrupção programada, você deve considerar esse tempo de inatividade ao planejar seus testes.
Teste de interoperabilidade em dispositivos móveis:
Em dispositivos móveis, fazemos teste de interoperabilidade sempre que um novo aplicativo ( Aplicativo móvel ) é lançado. Há muitas áreas que devemos considerar ao planejar este teste em dispositivos móveis:
- Os tipos de dispositivos móveis disponíveis no mercado são enormes. Você precisaria listar todos os tipos de dispositivos que consideraria para o teste. Você precisaria emparelhar um tipo de dispositivo com o sistema operacional que ele suporta.
- Todos os sistemas operacionais móveis são desenvolvidos em diferentes linguagens de programação. Portanto, o aplicativo precisa ser testado em relação a todas as variações do sistema operacional.
- Compreender os fatores legais e os contratos relacionados à região.
- O tamanho / resolução de diferentes dispositivos são diferentes.
- O impacto sobre os aplicativos internos móveis também precisa ser considerado.
Portanto, para fazer IOT em celulares, você precisaria planejar e criar um RTM exatamente como fizemos para um teste de aplicativo baseado em computador.
A intenção, estratégia, riscos e execução seriam os mesmos, mas o ferramentas e técnicas seria diferente no caso de celulares.
Conclusão:
O teste de interoperabilidade é uma tarefa enorme. Essa técnica requer um planejamento adequado, que deve começar paralelamente quando o planejamento do teste do sistema é iniciado.
Existem muitos fatores que devem ser considerados ao executar essa técnica. Lembre-se de ter tempo suficiente para correção de bugs e reteste, pois esse é um grande esforço e deve haver provisão para acompanhamento de defeitos.
Pode acontecer que você não atinja 100% cobertura , mas devemos ser inteligentes o suficiente para selecionar nossos casos de forma que a maioria dos aplicativos seja coberta em um único fluxo, usando boas técnicas de escrita de casos de teste.
Espero que este artigo tenha sido útil para entender a técnica de teste de interoperabilidade. Deixe-nos saber suas dúvidas / comentários.
Leitura recomendada
- Teste Funcional Vs Teste Não Funcional
- Guia de teste de segurança de aplicativos da Web
- Melhores ferramentas de teste de software 2021 (QA Test Automation Tools)
- Guia de teste de portabilidade com exemplos práticos
- Teste Alfa e Teste Beta (um guia completo)
- Tipos de teste de software: diferentes tipos de teste com detalhes
- O que é Teste de Localização e Teste de Internacionalização (Guia Simples)
- Download do e-book do Testing Primer