
Rodrigo Carballido
Pincipal Consultant
Neste artigo:
Como as empresas digitais dão mais importância à qualidade de software e ao cumprimento dos prazos de lançamento, as tecnologias de automação aplicadas aos estágios finais de testes e garantia de qualidade (QA) ganham relevância.

É o que revela a décima edição (2018-2019) do Relatório de Qualidade Mundial produzido pela Cap Gemini e Sogeti em colaboração com a Micro Focus, mostrando como a automação é um complemento das práticas ágeis e DevOps, bem como a forma mais eficaz de melhorar o desempenho do usuário.
O Relatório, elaborado a partir de entrevistas com cerca de 1.700 executivos de TI em 32 países (50 entrevistados na Itália), destaca a necessidade de garantir a satisfação do usuário como o primeiro dos objetivos de teste e garantia de qualidade (fundamental para 42% dos entrevistados este ano, contra 27% em 2017) empatou com a necessidade de encontrar defeitos antes do go-live (42%, contra 34% em 2017). Para 41% dos entrevistados (29% em 2017), o QA e os recursos de teste contribuem diretamente para o crescimento dos negócios e a receita da empresa.
O controle de qualidade e a automação de testes transformam o ciclo de vida do desenvolvimento
Implantado há anos em ambientes específicos e segregados, o controle de qualidade e a automação de teste se expandiram e estão mudando o ciclo de vida do desenvolvimento.
Segundo os autores do Relatório, as tendências mais significativas hoje dizem respeito a testes baseados em modelos (para geração automática de scripts e testes automáticos; 61% dos entrevistados o terão no próximo ano), automação de processos robóticos (RPA, escolhido em 54%) e automação cognitiva (49%).
Entre as tendências emergentes para os próximos dois anos está também o teste automático de APIs. Segundo o Relatório, 18% dos testes funcionais já são realizados com ferramentas geradoras de scripts; 16% usando ferramentas de automação de teste. A automação é usada em 16% dos testes de desempenho e 16% dos testes de segurança. 15% dos entrevistados usam automação de teste de ponta a ponta em todos os cenários.
A automação de cenários de teste é uma solução adequada?
Os casos de teste podem ser automatizados quando os recursos críticos exigem testes repetitivos ou são muito difíceis de manusear manualmente. Por exemplo, testes que envolvem grandes volumes de dados ou procedimentos complexos de entrada de dados geralmente se adaptam para serem automatizados.
Benefícios das ferramentas de automação de teste em relação ao teste manual
Hoje, a automação de testes é uma estratégia essencial, principalmente quando se trata de analisar rapidamente produtos ou aplicativos complexos, compostos por milhares ou milhões de linhas de código, usando rotinas de teste longas, repetitivas e tediosas. Nesses casos, por meio de ferramentas de automação de testes, os testadores conseguem não só tornar seu trabalho mais ágil e rápido, como também reduzir, ou eliminar, possíveis erros. Os testes automatizados podem ser programados para funcionar sem a necessidade de supervisão e comparar os resultados das verificações com os resultados esperados. Naturalmente, isso não significa falta de controle, pois as ferramentas de automação de teste podem integrar funções de relatórios capazes de registrar a atividade de cada script de teste e verificar o andamento e o status de cada teste a qualquer momento.
A automação de teste ajuda a economizar tempo e recursos, permitindo que você melhore a precisão e a cobertura dos testes e identifique bugs e defeitos de código de maneira mais eficaz e eficiente. Ele também permite que as equipes de Garantia de Qualidade (QA) aumentem a capacidade de reutilização dos scripts de automação de teste e os adotem sabendo que, a cada nova verificação de código, o script será testado exatamente da mesma maneira, mantendo consistência e configuração de teste e procedimento de teste consistentes. Além disso, através da automação de testes é possível automatizar testes funcionais, testes de desempenho, testes de estresse, extensivamente e em larga escala, por exemplo, quando é necessário verificar a qualidade do software em infraestruturas multilíngues e sites distribuídos em diversas áreas geográficas.
Com o modelo DevOps, a automação de testes é ainda mais central
A importância das ferramentas de automação de testes também é crescente em relação ao modelo DevOps, que, em comparação com as metodologias tradicionais, baseadas no clássico paradigma 'cascata', visa introduzir maior agilidade e automação no ciclo de desenvolvimento e distribuição de software. Hoje, nos departamentos de TI das empresas, a estratégia para acelerar a velocidade e a frequência dos lançamentos de software, reduzir custos e, de qualquer forma, manter a qualidade e a confiabilidade do código, é adotar métodos de desenvolvimento Agile e DevOps de forma cada vez mais difundida e maneira maciça. Este último, por meio de práticas de CI/CD (integração contínua, entrega contínua/implantação contínua), permite que você crie um pipeline de criação, distribuição e implementação de código totalmente integrado e automatizado.
Dentro desse pipeline altamente automatizado, porém, fica CTECHro que a fase de teste não pode se tornar o gargalo capaz de desacelerar todo o processo: por isso, o DevOps adota a prática de testes definida como teste contínuo, em que o código é testado a cada estágio do processo de implantação contínua, por meio de um mecanismo de feedback contínuo recursivo. Por exemplo, quando um desenvolvedor faz alterações em um trecho de código, ele é imediatamente verificado por meio de um conjunto de testes de unidade automatizados. Se o teste falhar, o código é rejeitado, se o teste for bem-sucedido, o código segue para os próximos estágios de implantação e assim por diante. O teste contínuo é então articulado em sinergia com o 'teste shift-left', uma estratégia que visa mover o teste de software imediatamente para os estágios iniciais do ciclo de desenvolvimento.
Automação de teste, um componente chave para testes contínuos
Uma metodologia de teste como o teste contínuo não pode ser alcançada simplesmente pela implementação de novas tecnologias ou ferramentas de teste, mas requer necessariamente uma mudança cultural na mentalidade dos testadores e uma transformação dos processos de desenvolvimento. No entanto, o teste contínuo não pode ser implementado sem o auxílio de ferramentas de automação de teste adequadas.
No contexto de testes contínuos, testes automatizados são usados para realizar várias operações automaticamente. Isso inclui, por exemplo, a verificação de componentes individuais e partes do código do programa (teste de unidade); teste funcional; testes de regressão, focados em verificar o correto funcionamento do software mesmo após a adição de outros recursos e funções; teste de integração, que serve para testar o comportamento do sistema como um todo e a exatidão das interações entre os módulos do programa, APIs (interfaces de programação de aplicativos), software de terceiros e outros componentes da arquitetura do aplicativo