CINCO AÇÕES PARA AUMENTAR A SUA PRODUTIVIDADE COM AUTOMAÇÃO DE TESTES

Software de alta qualidade, entregue de forma rápida e constante ao mercado, é o objetivo das equipes de desenvolvimento de software em todo o mundo. Muitas das equipes de alta performance possuem um processo comum para atingir esse objetivo. Este processo é a automação de teste. No entanto, simplesmente, implementar a automação de teste nem sempre resultará em alcançar esse objetivo. Costumo dizer que não basta fazer o download da ferramenta, seja opensource ou paga, instalar e começar a fazer a gravação de casos de teste. É muito mais do que isso!

Detalhando um pouco mais a atividade de automação de testes, podemos destacar o seguinte:

1)      Ter uma equipe qualificada

Este é um diferencial enorme para a automação de testes. Tivemos uma experiência na attps, quando começamos com automação de testes no início dos anos 2000, onde a equipe que tínhamos não sabia desenvolver softwares, eram pessoas que tinham uma formação incompatível com o que era necessário. Havia um mito que dizia o seguinte: “Para testar software, temos que ter pessoas que não cohecem de software”. Pode até ser que esta afirmação tenha tido alguma aplicação prática com resultado positivo em algum lugar do planeta, mas não foi uma experiência positiva para nós. Passado algum tempo, remontamos a equipe de homologação para ter pessoas preparadas, qualificadas e que sabiam desenvolver código. Com isso conseguimos ter um grande aumento da produtividade na automação de testes.

2)      Ter um framework para automação de testes

Assim como no desenvolvimento de software, que para ter produtividade tem que utilizar padrões, bibliotecas de código reutilizável, desing patterns, é também recomendado que na automação de testes tenhamos um framework de componentes reutilizáveis, que auxiliem na produtividade da equipe. Automação de testes é desenvovimento de código e como tal, deve ser tratado com igual ou maior rigor e atenção que o código do software a ser testado. Um bom framework, bem projetado e bem construído é um fator chave para a automação de testes funcionar adequadamente e em níveis satisfatórios de qualidade.

3)      Montar uma infraestrutura para automação de testes

Para que os seus testes sejam executados de forma automatizada e em larga escala, é necessário ter uma infraestrutura robusta, escalável e adaptável a múltiplas configurações de ambiente de testes. Isso é parte do projeto de automação de testes. Logo, não deixe de pensar com atenção sobre a montagem desta infraestrutura. Ela será independente quanto ao acesso, cabeamento, servidores, etc.? Estará em um datacenter local ou estará em um datacenter externo? É possível utilizar recursos in cloud? Quanto custará esta infraestrutura? Temos pessoas com perfil e competências necessárias para montar e gerenciar este ambiente? Responder a estas perguntas e outras que podem surgir irão direcionar os esforços e investimentos necessários para montar a infraestrutura de automação de testes.

4)      Gerar automaticamente códigos e massa de teste

Tem muitos tipos de testes básicos que podem ser gerados de forma automática, sem ter a necessidade de acesso a informação do negócio ou comportamento da aplicação que será testada, fazendo com que a produtividade da automação dos testes aumente de forma significativa. Testes de validação básica de campos em tela (tamanho, padrões, entrada de dados inválidas), paginações, validação de links, sql injection,  são exemplo de testes que podem ser feitos de forma automática. O framework de automação de testes deve ser capaz de gerar estes tipos de testes e executá-los de forma produtiva, repetível, correta e em um tempo dentro do SLA (service level agreement ou acordo de nível de serviço) contratado. No nosso caso, o framework cria e executa todos estes testes de forma automática e sem intervenção humana. Isto nos deu um aumento de produtividade nestas atividades de mais de 100%!

5)      Automatizar atividades rotineiras que ainda são manuais

Muitas atividades relativas a testes são rotineiras e repetidas constantemente a cada nova execução de testes. Montagem de ambientes, atualização de banco de dados, instalação de sistemas, configurações, verificações de resultados, evidênciação de resultados de testes, etc. Todas estas e muitas outras atividades precisam ser automatizadas. Por exemplo, um grande desafio nosso sempre foi executar o mesmo script de teste em ambientes de SGBD diferentes, ou seja, temos que rodar os tests em SQL SERVER e ORACLE. Tivemos que automatizar este processo no nosso framework e com isto ganhamos em velocidade de execução de testes, aumento de produtividade e ganho de qualidade. Sem ter um framework de automação robusto não teríamos conseguido fazer isto.