Pergunta

Estamos desenvolvendo testes de regressão automatizados utilizando VMWare e NUnit.Dividimos os testes em etapas e agora gostaria que cada etapa fosse examinada para regressão de desempenho.Simplesmente cronometrar os testes, como faz o NUnit, não parece confiável.Calculei um fator de aceitação de cerca de 15%, mas nossos passos podem diferir às vezes em mais de 35%.Em um ambiente de teste tão dependente de recursos, existe alguma maneira consistente de testar o desempenho?Um sistema de cronometragem “inteligente” é minha única opção?

Foi útil?

Solução

Para esse tipo de teste de desempenho, não existe um sistema que forneça um resultado simples de aprovação/reprovação.Na vida real, mudar seu sistema provavelmente tornará algumas coisas mais rápidas e outras mais lentas, então geralmente não é uma escolha entre “melhor” e “não melhor”, é uma escolha entre diferentes tipos de melhor.(Claro, você deseja evitar casos em que seja estritamente pior.)

O que fiz para isso no passado foi apenas manter as estatísticas ao longo do tempo.Cada vez que você executar seus testes, coloque os resultados em um banco de dados SQL com o número da revisão e os tempos dos testes.Em seguida, você pode representá-los graficamente quando e como quiser (de preferência em um pequeno miniaplicativo da web para que todos na equipe possam revisá-los) e ver se o seu desempenho está tendendo para cima ou para baixo, ou se o desempenho tem sido ruim desde uma revisão específica.

O principal aqui, porém, é que precisa ser um gráfico.Dessa forma, os olhos humanos podem olhar para ele e encontrar as tendências.Você poderia passar a semana inteira tentando criar um algoritmo de IA para analisar os dados numericamente, mas isso nunca superaria a capacidade de reconhecimento de padrões de um ser humano.

Outras dicas

Você pode examinar os recursos disponíveis com uma ferramenta como o Ants Profiler, pois ela fornece tempos de execução/execução de métodos, mas não tenho certeza do que ela oferece em termos de testes repetidos.

Com relação aos testes de desempenho, tenho sido muito cético em relação ao uso de VMware ou outros processos de virtualização.A maneira como lidamos com isso no passado foi fazer com que parte da compilação instalasse a versão mais recente em uma máquina estática e executasse os testes.Você deverá ver resultados mais consistentes fora da virtualização.

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