Automação de testes de software é só record and play #SQN

O intuito do título com a hashtag #SQN (só que não) foi só pra chamar sua atenção sobre um assunto que está cada vez mais presente nos projetos de software, a automação de testes.

Muitas pessoas acreditam, pasmem, que automatizar os testes de software é uma tarefa bem simples, é só gravar os testes e reproduzi-los sempre que necessário, o famoso record and play. Porém as coisas não são tão simples assim como parecem.

É necessário pesar e avaliar muitas questões importantes para implantação da automação de testes de um sistema antes de colocar a “mão na massa”.

Algumas dessas questões são:

1) Escolha da ferramenta de automação e de integração contínua

Definir qual a ferramenta será utilizada para automação pensando em custos x benefício. Uma open source atenderia as necessidades que o projeto precisa? Qual conhecimento da equipe nela? O indicado seria analisar as opções disponíveis no mercado para definição de qual ferramenta utilizar.

Para quem não conhece ferramenta de integração contínua é:

Integração Contínua é uma pratica de desenvolvimento de software onde os membros de um time integram seu trabalho frequentemente, geralmente cada pessoa integra pelo menos diariamente – podendo haver múltiplas integrações por dia. Cada integração é verificada por um build automatizado (incluindo testes) para detectar erros de integração o mais rápido possível. Muitos times acham que essa abordagem leva a uma significante redução nos problemas de integração e permite que um time desenvolva software coeso mais rapidamente.” Martin Fowler [1]

2) Definição dos ambientes que os testes serão executados 

Definir quais as configurações necessárias para ambiente de teste onde os testes automáticos serão executados, hardware e software, configurações mínimas da base de dados também precisam ser levantadas.

3) Manutenção 

Pensar que como todo código será necessário manutenção dos testes criados, as ferramentas de automação geram códigos que podem ser implementados além da gravação que é realizada. É importante nesse item pensar que a forma que será elaborado deverá ser fácil de ser compreendida por outras pessoas sempre que for necessário alguma alteração.

4) Padronização\Estruturação da automação

Definir padrões e estruturação dos testes automáticos, esse item está ligado com o anterior. Com pessoas diferentes trabalhando com mesma ferramenta podemos ter testes gerados cada um de uma forma diferente. O indicado seria levantar quais seriam as melhores práticas a seguir e definir um padrão a ser adotado.

5) Priorização do que automatizar, podemos chamar de backlog de automação

Definição de acordo com todas as funcionalidades que temos em determinado sistema qual seria a prioridade do que começar automatizar, definir com a equipe qual seria abordagem da priorização, criticidade para negócio, nível de dificuldade, etc.

6) Planejamento da execução da automação

Definir o planejamento para automação, talvez, possamos enxergar como um projeto paralelo aos que estamos rodando, seria organizar de acordo com tudo que coletamos nos itens anteriores a melhor abordagem para que a automação seja implantada.

7) Acompanhamento\Evolução automação

Acompanhar a automação para verificar se tudo está dentro do planejado, o que podemos evoluir com relação aos testes.

Falando em acompanhamento, é necessário definir também uma política de como será tratado quando o teste automático identifica o erro e como será a análise do report dos testes executados.

Como podemos observar automação não é somente record and play, existe toda uma estrutura para automação e para que seja realizada da melhor maneira o indicado é que todas as etapas sejam bem analisadas\planejadas.

A principal aplicação de um teste automático é para realização de testes de regressão.

Na MATERA Systems para testes automáticos utilizamos a ferramenta QF-Test e para rodar a integração contínua utilizamos o TeamCity.

Para quem não conhece o QF-Test é uma ferramenta utilizada para automação de testes para desenvolvedores e testadores para aplicações em Java. Ela possui diversos recursos para otimizar os testes.

Testes produtivos a todos!

Links:

[1] http://www.matera.com/br/2011/04/14/matera-utiliza-testes-de-regressao-automatizados/

[2] http://www.matera.com/br/2011/11/29/teamcity-conheca-a-ferramenta-e-seus-principais-beneficios/

[3] http://www.qfs.de/en/qftest/

Referências

[1] http://www.devmedia.com.br/integracao-continua-uma-introducao-ao-assunto/28002

Por ARIANE FERREIRA IZAC

Analista apaixonada por testes, dançarina, corredora e colecionadora de viagens! Filha de peixe (jornalista) peixinho (blogueira) é. Meu grupo no LinkedIn só poderia ser "Diário de uma paixão: Teste de Software"

Postado em: 10 de julho de 2015

Confira outros artigos do nosso blog

Introdução ao Dev-Test Pairing

13 de junho de 2018

Caio Rizolli

Falando sobre Teste de Intrusão (ou PenTest)

03 de abril de 2018

Jacqueline Costa

Protractor – Testes automáticos end-to-end para aplicações em Angular

07 de dezembro de 2017

Jacqueline Costa

Testes em Node.js

04 de dezembro de 2017

Alan Cesar Elias

Deixe seu comentário