Introdução
Embora a programação de testes automatizados deva contribuir com o esforço de teste como um todo, geralmente não realiza todo esforço de teste. De fato, ambientes de teste que são baseados em uma abordagem de total automação terminam gastando mais tempo em automação de teste do que testando. Antes de você começar desenvolver scritps de teste automatizado, considere se é mais eficiente executar testes manuais. Alguns aspectos de uma aplicação são testados com mais eficiência manualmente (por exemplo, teste pela interface gráfica para o usuário versus teste pela manipulação de dados). Se você decidir programar scripts de teste automatizado, examine quais aspectos da criação de script de teste podem ser automatizados e comece a projetar seus scripts.
Projete seus testes automatizados
Sem algum nível de projeto de seus testes automatizados, introduzir automação em seu esforço de teste pode levar a mais problemas que resolvê-los. Você deve considerar desenvolver seus testes automatizados de acordo com um ciclo de vida com requisitos de automação de teste, projeto, teste da automação de teste, e implementação da automação de teste. Esta aproximação pode ser formal ou informal dependendo das necessidades de seu projeto. Projetando a programação de seus testes automatizados, você pode evitar gastar tempo programando os testes errados, re-trabalhar testes programados, decifrar diferentes estilos de codificação na programação dos testes, etc.
Scripts gavados versus programados
Ainda que existam benefícios claros em gravar scripts (por exemplo, facilidade de criação ou capacidade de testers novatos aprenderem a linguagem de programação do script), scripts gravados também apresentam problemas. A desvantagem de executar scripts gravados é bem conhecida. Eles são enganosamente fáceis de criar, mas muito difíceis de atualizar. Problemas com confiabilidade do script, dados hard-coded, ou mudanças na aplicação sobre teste e a necessidade de re-gravar são bem documentadas. Por outro lado, programar scripts pode apresentar muitas dificuldades: eles são difíceis de criar para um tester novato, eles pode requerer tempo e esforço consideráveis para serem desenvolvidos, e podem se difíceis de depurar. A maior parte da ferramentação de teste torna estas dificuldades menos problemáticas provendo ao tester funcionalidades de suporte a programação de script, como maneiras de estabelecer um objetivo de uma lista de testes, maneiras sistemáticas de programar pontos de verificação, selecionar datapools, construir comandos em script (por exemplo, comando de sleeper), comentar o script, e documentar o script. Outra grande vantagem, que é frequentemente passa despercebida, de usar ferramentação de teste para mitigar estes riscos é a habilidade de adicionar um script existente na forma de fazer correções a um script existente, testar novas características de um objetivo de testes ou aplicação sobre teste, ou continuar uma gravação depois de uma interrupção.
Scripts de testes funcional e de performance
Quando discutimos automação de scripts de testes, é importante distinguir entre testes funcionais e de performance. A maior parte das discussões sobre programação de scripts de teste automatizados focam no teste da funcionalidade de uma aplicação. Isto não é incorreto, já que muitos testes automatizados focam em testes funcionais. Programar scripts de testes de performance, todavia, possui características únicas. Automatização de testes de performance lhe provê a habilidade de programaticamente selecionar cargas de trabalho adicionando grupos de usuários para testar a carga sobre uso em grupo, selecionando comportamento de tempo para pensar, executar testes randômicos ou a uma taxa selecionada, ou selecionado a duração de uma execução. Automação de Testes de performance também permite que você crie e mantenha agenda para seus testes.
Testando scripts de teste
Quando estiver testando seus scripts de testes, tenha em mente se você está testando scripts de teste gravados ou programados. Para scripts gravados, boa parte do trabalho de depuração do script consiste em erros que são introduzidos devido a mudanças no objetivo do teste ou do ambiente de teste. Quando você executa um script de teste gravado, considere o alvo do teste do script. Algumas ferramentas de automação de teste capturam esta informação como parte do script de teste. Depurar um script de testes consiste largamente em determinar se mudanças feitas no objetivo criaram condições de erro no script. Em geral, há duas categorias principais para se examinar neste caso: mudanças na UI e sessão de testes sensível a dados (por exemplo, dado com data gravada). Na maioria dos casos, discrepâncias entre gravar e executar causa erros em seus scripts de teste gravados.
Testar scripts de testes programados envolve muitas das mesmas técnicas de depuração que você aplica para deputar uma aplicação. Considere tanto o controle de fluxo lógico como os aspectos de dados do seu script. Ferramentas de testes automatizados provêem IDEs para depurar scripts assim como funcionalidades para tratamento de datapool que facilitam este tipo de testes. Duramente a execução de scripts de testes, um teste que usa um datapool pode substituir valores nos testes programados com dados de teste variados que são armazenados no datapool.
|