| | | Como começar com o testing automatizado? |
|
Os benefícios de automatizar parte dos testes são tangíveis e reais, entretanto, antes de começar a automatizar é conveniente ter em conta algumas DICAS que irão garantir o sucesso do testing automatizado, utilizando GXtest sobre aplicações GeneXus. |
1) Começar com um projeto piloto: Assim como na maioria das práticas de engenharia de software, é conveniente escolher um projeto adequado e utilizá-lo como projeto piloto para começar. O fato de utilizar um projeto piloto tem várias vantagens: - poder definir uma metodologia inicial adequada à forma de trabalho da empresa.
- adquirir experiência no uso das ferramentas de automação.
- medir os benefícios.
- avaliar as dificuldades.
- contar com um projeto de alcance limitado no qual focalizar os esforços por melhorar a qualidade.
2) Aplicar métrica: É desejável que este projeto piloto possa exibir no menor prazo possível o ROI que se tem ao aplicar testing automatizado, por este motivo é preciso selecionar algumas métricas (conforme a realidade da empresa e do projeto) que o visualizem. Algumas das métricas que se podem utilizar para este fim são:
- horas de testing / # de erros encontrados pelo cliente.
- # de erros encontrados pelo cliente / Tamanho do sistema.
- tempo de detecção dos erros (desde que foi introduzido até ser detectado o erro).
3) Designar as pessoas para realizar o testing automatizado: Uma vez decidido o portfólio de projetos, será necessário designar as pessoas para começar com a experiência de testing automatizado. A recomendação é que as pessoas encarregadas de automatizar sejam os mesmos analistas que conhecem dos requerimentos e que realizam o testing funcional tradicional. É importante que seja o mesmo grupo por vários motivos: para não criar uma concorrência entre os testes manuais e os testes automatizadas; ajuda a garantir a correta eleição dos testes que se realizarão de maneira automatizada; as ferramentas de testing automatizado podem servir não apenas para automatizar casos de teste mas também para gerar dados para os casos de teste.
4) Como formar as pessoas que vão automatizar? O processo que cada uma das pessoas que automatizará vai seguir pode variar segundo seu grau de conhecimento em testing automatizado e em ferramentas de automação. É desejável que paralelamente possam começar com a capacitação na ferramenta que irá se utilizar (com o GXtest é possível se começar por exemplo com Tutorial de GXtest Designer) assim como também lendo material a respeito de metodologia e experiências de testes automatizados em geral. Uma leitura recomendada é a 4° Edição da revista Testing Experience voltada ao testing automatizado.
5) Seleção dos casos de teste para automatizar: Uma vez selecionado o projeto e as pessoas que irão participar, haverá que decidir os casos de teste a automatizar.
O erro mais comum nas tentativas de automação é querer de automatizar tudo, mas a recomendação é: NÃO PROCURE AUTOMATIZAR TODOS OS CASOS DE TESTE.
Tendo uma visão do negócio e também da estrutura interna do sistema (para o qual é preciso implicar os desenvolvedores) deve-se decidir quais são os casos de teste que irão se automatizar. Alguns dos fatores a se ter em conta são:
- quais casos de teste será necessário rodar mais vezes durante o projeto? Tipicamente é possível construir no início do projeto aqueles casos de teste associados ao núcleo da aplicação e depois, eles servirão para o resto da vida do sistema (adaptando-os quando for necessário).
- quais casos de teste levam muita dedicação humana e são repetitivos? Às vezes, um caso de teste exige um trabalho tedioso para configurar o ambiente de teste e depois executar o caso de teste. É bom automatizar esses casos para liberar o recurso humano e que ele possa se dedicar a outros casos mais desafiantes.
- quais funcionalidades são críticas para o cliente/usuário? Aquelas funcionalidades que têm que andar necessariamente em cada entrega, em geral é interessante incluí-las nos casos automatizados.
- qual o custo da automação do caso de teste? Há casos de teste que são muito difíceis de automatizar, quer porque terá que realizar validações visuais complexas ou por outras razões. Por isso, se o custo de sua automação for grande, melhor deixá-lo para ser executado manualmente.
Levando em conta estas características é possível se ponderar cada caso de teste com base em cada um deles para depois fazer um ranking ou priorizar os casos de teste a automatizar. 6) Automatizar! Depois de selecionar um projeto para um piloto, e selecionar certos casos de teste para automatizar, o que recomendamos é começar por um subconjunto limitado de casos de teste (não mais de dez) e por em funcionamento. Isto é: desenhá-los (em papel, formulários, etc.), automatizá-los (com o GXtest Designer e Recorder), preparar ambiente e dados para prová-los, preparar a execução programada desses casos (com o GXtest Manager, fazendo que executem todas as noites por exemplo) e definindo as metodologias para trabalhar. Uma vez que preparado tudo isso, começaremos a ver os benefícios e a alimentar a máquina de testes automatizados, fazendo-a crescer cada vez mais e obtendo cada vez maiores benefícios. *A presente é uma síntese do artigo original publicado no blog de Abstracta. |
| | | | | | | | |
| |