Problemas de otimização-desempenho da matriz de teste MBUnit em testes automatizados de interface do usuário

StackOverflow https://stackoverflow.com/questions/5353718

Pergunta

No momento, estamos usando o MBUnit para teste de unidade e teste de interface do usuário.Para testes de IU, os custos de configuração dos eixos da matriz de teste são bastante altos (login, instância do navegador, navegar para a página, etc.).A fim de evitar configurá-los para cada caso de teste, contamos parcialmente com AssemblyFixture para gerenciar alguns deles.

No entanto, como não é possível filtrar certos casos em que eles não são aplicáveis a determinada combinação, não é possível usarmos realmente essa otimização.Atualmente, estamos fazendo algumas configurações por caso de teste, terrivelmente ineficiente.

Poderíamos colocar instruções if dentro do código de teste para verificar as combinações corretas, mas também não queremos isso.Ele polui o código de teste.

Como vocês fazem essas otimizações?ou gerenciamento de matriz de teste?Existe uma prática melhor em outra estrutura de teste?

Foi útil?

Solução

Até recentemente, sempre pensei na Automação da IU como um teste de caixa preta em que meus testes de IU são direcionados a um site ou aplicativo totalmente independente. Como resultado, os testes são executados sob a restrição da execução normal e estão sujeitos a uma série de problemas de sobrecarga do ambiente.

Recentemente, adotei a noção de testes de IU "superficiais" e "profundos", em que cada conjunto de testes é executado em uma configuração otimizada para diminuir as diferenças ambientais e acelerar as coisas. Por exemplo, o controlador de login é trocado por um mecanismo que evita a sobrecarga de login do OAuth e é codificado com nomes de usuário fixos. O catálogo de produtos ignora a consulta ao banco de dados e é codificado com alguns itens fixos. O back-end de comércio eletrônico é trocado para realizar operações rápidas que aceitam / rejeitam transações com base no cartão de crédito e no valor.

Em uma configuração "superficial", posso realizar testes "profundos" na lógica da IU. Quando mudo para uma configuração "profunda", ela se assemelha à produção e posso realizar testes "superficiais" de componentes totalmente integrados, como login, catálogo de produtos, pesquisa etc.

É necessária uma combinação de estratégias de teste.

Outras dicas

Pode ser o ui-test-automation-bestO artigo sobre práticas é útil para você.Ele tem alguns exemplos de como melhorar o desempenho da automação de testes de interface do usuário minimizando logins e alterações de contexto.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top