test data management concept
No último tutorial, nos concentramos em como preparar a base de teste para minimizar os defeitos do ambiente de teste . Na continuação do mesmo tutorial, hoje vamos aprender como configurar e manter o ambiente de teste e importanteGerenciamento de dados de testetécnicas.
Processo de configuração do ambiente de teste
O fator mais importante para o ambiente de teste é replicá-lo o mais próximo possível do ambiente do usuário final. Normalmente, não se espera que os usuários finais executem nenhuma configuração ou instalação por conta própria, pois um produto ou sistema completo é enviado a eles. Portanto, por essa definição, mesmo as equipes de teste não precisam executar explicitamente tais configurações.
Se essas configurações forem necessárias para fins puramente de teste (mas serão configuradas para usuários finais), os administradores devem ser identificados. Os administradores que configuram o ambiente de desenvolvimento devem ser as mesmas pessoas que configuram o ambiente de teste.
Se a própria equipe de desenvolvimento tomar a iniciativa na instalação / configuração, eles devem ajudar a fazer o mesmo, mesmo no ambiente de teste.
Por exemplo, se você tiver que testar um aplicativo (com seu middleware associado a ser instalado e configurado) em um sistema em várias plataformas de sistema operacional, etc. - a melhor maneira de resolver isso é usar virtualização ou ambientes em nuvem .
Tenha um sistema mestre em que todos os aplicativos e middleware necessários sejam instalados e configurados corretamente. Em seguida, torne esse sistema uma imagem mestre capturando-o e clonando várias instâncias dessa mesma imagem de forma que cada usuário sinta que tem um sistema dedicado com o aplicativo em teste.
Aqui abaixo, está uma representação pictórica do que um processo de ambiente de teste implicaria:
Processo de configuração do ambiente de teste
O que você aprenderá:
Manutenção de um ambiente de teste
Tanta coisa falada sobre a preparação do ambiente de teste, apesar dos desafios, é sem dúvida mais do que um fundamento para a necessidade de manutenção ou padronização do ambiente de teste. Muitas vezes, um testador perde tempo de teste por causa do ambiente ou de problemas de configuração.
Com um rápido aumento dos sistemas operacionais e da variedade de hardware e software, o ambiente tem que ser quase dinâmico por natureza, a fim de atender às necessidades. As equipes de teste podem garantir que estão entregando um produto de alta qualidade com um bom processo de gerenciamento de teste e isso ajudaria a ter o uso ideal de recursos que estão limitados.
Dicas importantes para garantir uma manutenção eficaz do ambiente de teste
Como ambientes de teste, na maioria das vezes contêm plataformas e pilhas heterogêneas, a seguir apresentamos algumas dicas importantes para garantir a manutenção eficaz do ambiente de teste.
# 1) Compartilhamento e distribuição eficazes do ambiente:
Como já mencionado anteriormente, um dos principais desafios da preparação do ambiente de teste é que muitas equipes ou pessoas precisam usar o mesmo conjunto de recursos para seus propósitos de teste. Portanto, é necessário desenvolver um mecanismo de compartilhamento adequado que atenda às necessidades de todas as equipes e pessoas sem atrasar os cronogramas.
Isso pode ser alcançado mantendo um repositório ou link de informações em que todos os dados relativos a:
- quem está usando o ambiente,
- quando o ambiente é livre para ser usado e
- como a distribuição do tempo de uso do ambiente é inserida com precisão.
Ao determinar proativamente onde a necessidade de recursos é grande em comparação com a disponibilidade limitada deles, uma grande quantidade de caos é anulada automaticamente.
O segundo aspecto disso é revisitar os requisitos de recursos das equipes para cada ciclo de teste e procure quais recursos não são utilizados de forma intensa. Analise se esses recursos específicos podem ser substituídos por novos recursos ou sistemas que possam ser necessários.
# 2) Verificações de integridade:
Alguns requisitos de teste precisam de uma configuração de teste abrangente ou configuração que envolve etapas elaboradas que são extremamente demoradas. Este é especificamente o caso durante o teste de ponta a ponta que envolve dois ou mais componentes para trabalhar juntos. Portanto, o mesmo ambiente de teste pode precisar ser reutilizado por várias equipes.
Nesses casos, ter um bom entendimento de todo o ambiente como um todo, comparando os tipos de testes que estão sendo realizados por várias equipes, irá traçar um quadro razoável para ajudar a fornecer esses recursos específicos às respectivas equipes.
Considerando os fatores acima - podem ser realizados testes de sanidade básica que ajudarão a agilizar os testes para equipes individuais ou alertá-los imediatamente se o ambiente tiver que passar por algumas alterações ou correções como resultado dessas verificações de sanidade.
# 3) Manter o controle de quaisquer interrupções:
Assim como toda equipe que possui um ambiente de teste tem seu, uma organização tem todos os ambientes de teste possíveis mantidos por uma equipe de suporte global.
Além disso, assim como as equipes que possuem seu ambiente de teste têm seu próprio tempo de inatividade local em caso de atualizações de firmware / software, as equipes globais também devem garantir que todos os ambientes estejam aderindo aos padrões mais recentes, o que pode envolver interrupções de energia ou rede.
Portanto, aqueles que mantêm o ambiente de teste devem ficar de olho em quaisquer interrupções que possam ocorrer e informar a equipe de teste com antecedência para planejar seu trabalho de acordo.
# 4) Virtualize sempre que possível:
Novamente, isso é muito relevante quando o teste precisa ser feito compartilhando o ambiente e há uma necessidade extrema de otimização de recursos. Nesses tempos, usar um ambiente virtualizado como uma nuvem para fins de teste é a resposta.
Ao usar tal ambiente, tudo que os testadores precisam fazer é fornecer um instante e esta instância, uma vez provisionada, formará um Test Bed ou Ambiente de Teste independente contendo todos os diversos recursos, como um sistema operacional dedicado, banco de dados, middleware, estruturas de automação , etc. necessários para o teste.
Depois que o teste é concluído, essas instâncias podem ser destruídas, reduzindo significativamente os custos para uma organização. Ambientes de nuvem são particularmente úteis para testes de verificação funcional e áreas de teste de automação.
# 5) Teste de regressão / automação:
código de classificação de inserção c ++
À medida que novas funções e recursos estão sendo desenvolvidos, testes de regressão precisa ser executado para essas funções para cada ciclo de lançamento. Portanto, embora no posterior, os ambientes de teste para teste de regressão parecem estar rodando na mesma configuração de teste com os mesmos dados, na verdade eles estão constantemente evoluindo a cada versão de acordo com os recursos que estão sendo implementados também.
Cada ciclo de lançamento de produto teria uma ou mais rodadas de teste de regressão. Assim, estabelecer ambientes de teste de regressão para cada ciclo de lançamento de produto e reutilizá-los dentro do ciclo definitivamente representaria a estabilidade do ambiente de teste.
O desenvolvimento de estruturas de automação e o uso de automação para testes regressivos também ajudam a melhorar a eficiência de um ambiente de teste porque a automação presumirá que o ambiente é estável e os defeitos originados são puramente orientados a recursos / código.
# 6) Governança geral:
Quando houver alguns problemas com o hardware ou software do ambiente de teste, esses problemas devem ser direcionados às pessoas certas para garantir as correções, caso não possam ser corrigidos internamente pelos responsáveis pela manutenção do laboratório.
Por exemplo, se algum teste originar um defeito que inclua uma limitação no firmware ou software que está sendo usado no ambiente atual, isso geralmente não pode ser corrigido apenas pelos responsáveis pela manutenção do ambiente.
Portanto, o consumidor (que é o testador, neste caso) deve ser solicitado a levantar as solicitações de serviço apropriadas. Eles devem ser direcionados ao fornecedor ou equipe apropriada e a coordenação deve ser feita regularmente com eles para garantir que a próxima versão tenha corrigido o problema específico.
Outro aspecto da governança seria fornecer relatórios ambientais detalhados à administração ou às partes interessadas de tempos em tempos, o que ajuda a emanar transparência e constitui uma boa base para qualquer análise.
Preparação de dados de teste
Vamos agora dar uma olhada na última parte de um Criação de Test Bed - que envolve a configuração dos dados de teste . Com um pedaço tão grande sendo dito sobre o ambiente de teste, a verdadeira essência do ambiente de teste, sua robustez e eficiência podem ser medidas com os dados de teste. Por definição, os dados de teste são qualquer tipo de entrada fornecida ao código do software que está sendo testado.
Mesmo que passemos uma boa quantidade de tempo projetando casos de teste, o motivo pelo qual os dados de teste são importantes é porque eles garantem a cobertura de teste completa para todos os tipos de cenários, melhorando assim a qualidade. Pode haver alguns dados de teste necessários para qualquer teste de caminho positivo ou positivo.
Alguns outros dados podem ser projetados para erro ou teste negativo, o que é muito útil para descobrir como o aplicativo funciona quando colocado em situações anormais.
Os dados de teste geralmente são criados antes do início da execução do texto, porque cada ambiente de teste tem seu próprio conjunto de complexidades ou preparar os dados em si pode ser um processo demorado. Portanto, geralmente as fontes de dados de teste podem ser a equipe de desenvolvimento interna ou os usuários finais que consomem o código ou recurso.
Por exemplo,Teste de função
Vejamos um exemplo em que você precisa realizar testes funcionais ou testes de caixa preta. Aqui, o objetivo é que o código tenha que atender funcionalmente aos requisitos especificados.
Portanto, em tais casos - a preparação de casos de teste geralmente deve ter cobertura dos seguintes tipos de dados:
- Dados de caminho positivo: Com o documento de caso de uso de desenvolvimento como referência, esses são os dados geralmente em sincronia com a execução dos cenários de caminho positivo.
- Dados de caminho negativo: Esses são dados geralmente considerados “inválidos” em relação ao funcionamento funcional correto do código.
- Dados nulos: Não fornecendo dados quando o aplicativo ou código espera esses dados.
- Dados errados: Determinar o desempenho do código quando os dados são fornecidos em um formato ilegal.
- Dados de condições de limite: Teste os dados fornecidos pelo índice ou matriz para determinar o desempenho do código.
Os dados de teste desempenham um papel fundamental na identificação de onde um produto ou recurso pode falhar completamente. Sempre tenha a prática de pesquisar e validar o tipo de dados fornecidos ao ambiente de teste em diferentes fases de teste.
Gerenciamento de dados de teste
Quando os dados de teste desempenham um papel tão importante para garantir a qualidade do produto, é razoável dizer que seu gerenciamento e simplificação também desempenham um papel igualmente importante na Garantia de Qualidade de qualquer produto que precise ser liberado para os clientes.
Necessidade de gerenciamento de dados de teste e práticas recomendadas:
# 1) Um grande número de organizações está tendo mudanças rápidas nas metas de negócios para atender às necessidades do usuário final e, portanto, não é necessário mencionar que os dados de teste apropriados são fundamentais para determinar a qualidade do teste. Isso envolverá configurar o tipo exato de dados para os respectivos ambientes de teste e monitorar os padrões de comportamento.
Como já discutido, uma grande parte do tempo de uma equipe de teste é gasta no planejamento dos dados de teste e suas tarefas relacionadas. Muitas vezes, o teste de qualquer funcionalidade tende a ser muito dificultado devido à indisponibilidade de dados de teste apropriados, o que representa um desafio crítico em relação à cobertura completa do teste.
#dois) Também às vezes para certos requisitos de teste os dados de teste precisam ser constantemente atualizados . Isso por si só causa um grande atraso no ciclo devido ao constante retrabalho que também aumenta o custo da aplicação chegar ao mercado.
Em outras ocasiões, se o produto que está sendo enviado tiver envolvimento com diferentes unidades de grupo de trabalho em uma grande organização, a criação e atualização de dados de teste requerem um nível intrincado de coordenação entre esses grupos de trabalho.
# 3) Embora as equipes de teste precisem criar todos os tipos de dados possíveis para garantir um teste adequado, as organizações também devem considerar que fazer isso significaria que todos os diferentes tipos de dados precisariam ser armazenados em algum tipo de repositório.
Embora ter um repositório seja uma boa prática, armazenar o excesso e dados indesejados não só aumentaria significativamente o espaço de armazenamento para armazenar esses grandes blocos de dados, mas também tornaria cada vez mais desafiador buscar os dados apropriados para o teste em questão, se não houver manutenção de versão e arquivamento desse repositório.
A maioria das organizações geralmente se depara com esses desafios comuns com relação aos dados de teste. Assim, deve haver algumas estratégias de gestão que precisam ser implementadas para minimizar o grau desses desafios.
Abaixo estão algumas sugestões de metodologias para o gerenciamento dos dados de teste e mantê-los relevantes para as necessidades de teste. As práticas a seguir são muito básicas e genéricas e geralmente funcionam para a maioria das organizações. A forma como é adotada fica a critério exclusivo das respectivas organizações.
Estratégias de gerenciamento de dados de teste
# 1) Análise de dados
Geralmente, os dados de teste são construídos com base nos casos de teste a serem executados. Por exemplo, em uma equipe de teste do sistema, o cenário de teste ponta a ponta precisa ser identificado com base no qual os dados de teste são projetados. Isso pode envolver um ou mais aplicativos para funcionar.
Digamos que em um produto que faz gerenciamento de carga de trabalho - envolve o aplicativo do controlador de gerenciamento, os aplicativos de middleware, os aplicativos de banco de dados, todos para funcionarem em correlação uns com os outros. Os dados de teste necessários para o mesmo podem ser dispersos. Uma análise completa de todos os diferentes tipos de dados que podem ser necessários deve ser feita para garantir uma gestão eficaz.
# 2) Configuração de dados para espelhar o ambiente de produção
Geralmente, é uma extensão da etapa anterior e permite entender qual será o usuário final ou cenário de produção e quais dados são necessários para o mesmo. Use esses dados e compare-os com os dados que existem atualmente no ambiente de teste atual. Com base nesses novos dados, pode ser necessário criar ou modificar.
# 3) Determinação da limpeza dos dados de teste
Com base no requisito de teste no ciclo de lançamento atual (onde um ciclo de lançamento pode se estender por um longo tempo), os dados de teste podem precisar ser alterados ou criados conforme declarado no ponto acima. Esses dados de teste, embora não sejam imediatamente relevantes, podem ser solicitados posteriormente. Portanto, deve ser formulado um processo claro de avaliação de quando os dados do teste podem ser limpos.
# 4) Identificar dados confidenciais e protegê-los
Muitas vezes, para testar os aplicativos adequadamente, pode haver uma grande quantidade de dados muito confidenciais necessários. Por exemplo, um ambiente de teste baseado em nuvem é uma escolha popular porque processa testes sob demanda de diferentes produtos.
No entanto, algo tão básico como garantir a privacidade do usuário em uma nuvem é motivo de preocupação. Portanto, especialmente nos casos em que precisaremos replicar o ambiente do usuário, o mecanismo para proteger os dados confidenciais deve ser identificado. O mecanismo é amplamente controlado pelo volume dos dados de teste usados.
# 5) Automação
Assim como adotamos a automação para executar testes repetitivos ou para executar os mesmos testes com diferentes tipos de dados, também é possível automatizar a criação de dados de teste. Isso ajudaria a expor quaisquer erros que possam ocorrer com relação aos dados durante o teste. Uma maneira possível de fazer isso é comparando os resultados produzidos por um conjunto de dados de execuções de teste consecutivas. Em seguida, automatize esse processo de comparação.
# 6) Atualização de dados eficaz usando um repositório central
Esta é, de longe, a metodologia mais importante e forma o coração da implementação do gerenciamento de dados. Todos os pontos mencionados acima, especialmente aqueles com relação à configuração de dados, limpeza de dados estão direta ou indiretamente correlacionados com isso.
Muito esforço na criação de dados de teste pode ser salvo mantendo um repositório central que contém todos os tipos de dados que podem ser necessários para vários tipos de teste. Como isso é feito? Em ciclos de teste consecutivos, para um novo caso de teste ou caso de teste modificado, verifique se os dados existem no repositório. Se não existir, alimente esses dados no ambiente de teste primeiro.
Em seguida, ele pode ser direcionado a este repositório para referência futura. Agora, para ciclos de lançamento consecutivos, a equipe de teste pode usar todos ou um subconjunto desses dados. A vantagem não é muito aparente? Dependendo dos conjuntos de dados que são usados com frequência, os dados obsoletos podem ser facilmente eliminados e, portanto, garantir que os dados corretos estejam sempre presentes, reduzindo assim o custo de armazenamento de dados desnecessários.
Em segundo lugar, você também pode ter algumas versões deste repositório salvas ou pode revisá-lo conforme necessário. Ter diferentes versões do repositório pode ajudar muito no teste de regressão para identificar quais alterações nos dados podem causar a quebra do código.
Conclusão
O ambiente de teste deve ser de extrema importância em cada equipe de teste. Cada ciclo de lançamento trará uma série de novos desafios para combater um ambiente de teste não confiável e não planejado.
Como uma medida revolucionária, muitas organizações estão implementando estratégias como formar equipes dedicadas de Manutenção do Ambiente de Teste que estabelecem certas estruturas para a manutenção eficaz dos ambientes de teste, para garantir ciclos de lançamento mais suaves.
O teste aprimorado é apenas um efeito óbvio de simplificar o gerenciamento de dados de teste. A sua essência é garantir uma solução econômica para as organizações, sem comprometer a confiabilidade do produto.
Deixe-nos saber como você gerencia seu ambiente de teste e como você prepara os dados de teste. Quer adicionar alguma dica?
Leitura recomendada
- As 14 melhores ferramentas de gerenciamento de dados de teste em 2021
- 10 melhores ferramentas de análise de dados para gerenciamento de dados perfeito (2021 LIST)
- Tutorial de gerenciamento de teste: um guia definitivo para gerenciamento de teste
- O que são dados de teste? Técnicas de preparação de dados de teste com exemplo
- Recurso de pool de dados no IBM Rational Quality Manager para gerenciamento de dados de teste
- Criação do Selenium Framework e acesso aos dados de teste do Excel - Selenium Tutorial # 21
- Geração de dados de teste com a ferramenta online GEDIS Studio (Parte 2)