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 a desenvolver scripts 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 automatizados, 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 design de seus testes automatizados, introduzir automação em seu esforço de teste pode levar a mais
problemas do que resolvê-los. Você deve considerar o desenvolvimento dos seus testes automatizados de acordo com um
ciclo de vida com requisitos, design, implementação e teste da automação dos testes. Esta abordagem pode ser formal ou
informal dependendo das necessidades de seu projeto. Efetuando o design da programação de seus testes automatizados,
você pode evitar gastar tempo programando testes errados, re-trabalhando testes programados, decifrando diferentes
estilos de codificação na programação dos testes, etc.
Scripts gravados versus programados
Ainda que existam benefícios claros em gravar scripts (por exemplo, a facilidade de criação ou a capacidade de
testadores novatos aprenderem a linguagem de programação de script), os scripts gravados também apresentam seus
próprios problemas. As desvantagens de executar scripts gravados são bem conhecidas. Eles são fáceis de criar, mas
muito difíceis de atualizar. Problemas com a confiabilidade do script, dados embutidos no código ou mudanças na
aplicação a ser testada gerando a necessidade de recriá-los estão bem documentadas. Por outro lado, programar scripts
pode apresentar muitas dificuldades: eles são difíceis de criar para um testador novato, eles podem requerer tempo e
esforço consideráveis para serem desenvolvidos, e podem ser difíceis de depurar. A maior parte das ferramentas de teste
torna estas dificuldades menos problemáticas fornecendo ao testador funcionalidades de suporte a programação de script,
tais como formas de estabelecer listas de alvos de teste, formas sistemáticas de definir pontos de verificação,
selecionar datapools, construir comandos no script (por exemplo, comando de sleeper), comentar e documentar o script.
Outra grande vantagem, que frequentemente passa despercebida, do uso das ferramentas de teste para atenuar estes riscos
é a habilidade de adicionar um script existente na forma de fazer correções em um script existente, testar novas
características de um alvo de teste ou na aplicação sob teste, ou continuar uma gravação depois de uma interrupção.
Scripts de testes funcionais e de desempenho
Quando discutimos automação de scripts de testes, é importante distinguir entre testes funcionais e de desempenho. A
maior parte das discussões sobre programação de scripts de testes automatizados foca no teste da funcionalidade de uma
aplicação. Isto não é incorreto, já que muitos testes automatizados focam testes funcionais. A programação de scripts
de testes de desempenho, entretanto, possui características únicas. A automatização de testes de desempenho fornece a
habilidade de programaticamente selecionar cargas de trabalho adicionando grupos de usuários para testar a carga sobre
uso em grupo, definindo comportamento de tempo para pensar, executando testes aleatórios ou a uma taxa definida, ou
definindo a duração de uma execução. A automação de testes de desempenho também permite que você crie e mantenha
agendamentos para seus testes.
Testando scripts de teste
Quando estiver testando seus scripts de testes, verifique 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 alvo de teste ou no ambiente de teste. Quando você executa um script de teste gravado, considere o
alvo de 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 gravado consiste muito em determinar se mudanças feitas no alvo de teste criaram
condições de erro no script. Em geral, há duas categorias principais a serem examinadas neste caso: mudanças na
Interface de Usuário e nos dados sensíveis da sessão de testes (por exemplo, dado com data atual). Na maioria dos
casos, discrepâncias entre a gravação e a execução causam 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 depurar uma
aplicação. Considere tanto a lógica de controle de fluxo como os aspectos de dados do seu script. Ferramentas de testes
automatizados fornecem IDEs para depuração de 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 estão armazenados no datapool.
|