Partilhe nas Redes Sociais

PUB

Afinal o que devemos e o que não devemos automatizar?

Elaine Navalho, quality assurance engineer na e.Near

Publicado em 12 Janeiro 2018 | 1342 Visualizações

Este artigo surgiu no âmbito de uma investigação feita por uma equipa de Qualidade da e.near da qual faço parte juntamente com meus colegas Hugo Fernandes, João Ventura, José Ferreira e Sofia Gomes e envolve a temática dos Testes de Software Automáticos e dos desafios atuais associados aos vários fatores, tais como a complexidade dos sistemas e os processos de desenvolvimento.

É verdade que os testes automatizados fazem com que os profissionais não precisem testar manualmente algo que já foi testado anteriormente, o que permite “ganhar” tempo para testes mais abrangentes e mais elaborados (exploratório/manual), contudo antes de automatizar todos os testes é preciso fazer uma rigorosa avaliação do que pode ser automatizado, quando, como e os custos associados.

Atualmente, o desenvolvimento sistemático e frequente de testes automatizados é fundamental para o desenvolvimento de software de alta qualidade, porque todos os dias surgem novas ideias, novos produtos, novos desenvolvimentos e atualizações dos sistemas existentes. Assim, a automação promove alguns benefícios importantes para serem considerados durante as avaliações tais como: cobertura cumulativa de funcionalidades anteriormente desenvolvidas que aumenta a deteção de erros e reduz os custos na correção de falhas, reprodutibilidade que garante a estabilidade do software e gestão mais efetiva dos recursos que leva ao aumento de produtividade.

Mas então afinal o que devemos e o que não devemos automatizar?

Normalmente funcionalidades já estáveis, previamente testadas manualmente e com resultados conhecidos que são integradas em ciclos de testes de regressão. De forma contrária, funcionalidades que ainda se consideram instáveis, que sejam apenas temporárias, cuja complexidade de automação seja demasiado onerosa em termos de custos, tempo e manutenção ou funcionalidades cujos requisitos ainda não estão totalmente aceites não deverão sofrer automatização, isto deve-se ao facto da automação de testes ter um custo inicial elevado sendo o mesmo apenas compensado e suportado com ciclos de teste de regressão sucessivas e com médios a longos ciclos de vida de produto.

E é justamente isto que veio demostrar o nosso estudo onde realizamos cinco testes de modo manual e automático sobre um protótipo de uma aplicação da nossa organização. Concluímos que a automatização de testes é vantajosa face aos testes manuais a partir de um determinado número de execuções. Apesar de temos obtido tempos de escrita de testes automáticos bastante superiores aos tempos de especificação dos testes manuais, este tempo foi diluído à medida que foram realizadas as execuções de ambos.

Mas ainda há mais pontos a serem analisados tal como a escolha das ferramentas e estratégias a serem utilizadas. No mercado existem vários tipos de ferramentas para testes de software, cujo principal objetivo é o mesmo: garantir a qualidade do software detetando o maior número de erros possíveis. Há então que se avaliar os custos, o tipo de automação que ser quer e conhecimento da equipa que irá desenvolver os testes automáticos. A estratégia de testes contínuos (Continuous Testing) é o processo de execução de testes automatizados de software onde durante o próprio desenvolvimento, se obtém feedback imediato sobre os riscos de negócios associados a uma release, aos quais são contemplados requisitos e a história dos usuários.

Assim concluímos que a automação de testes é um investimento com retorno a longo prazo, uma vez que os custos iniciais são altos. Devemos considerar que a automação de testes não é a solução para os problemas de qualidade de software, pois ela não deve substituir os testes manuais e sim ser utilizada como uma técnica adicional cujo objetivo principal é agregar valor.


Publicado em:

Opinião

Partilhe nas Redes Sociais

Artigos Relacionados