6 formas de medir o ROI dos testes automatizados

Após decidir implementar a automação de testes, chega o momento de avaliar como está sendo o investimento. Mas como medir o retorno sobre investimento (ROI)?

O avanço de novas tecnologias e a demanda para ciclos de entrega mais rápidos estão fazendo o padrão de qualidade dos softwares aumentarem drasticamente. Tendências como automação, testes contínuos e DevOps estão trazendo velocidade e flexibilidade para o ciclo de vida de desenvolvimento de softwares, e muitos estão tendo dificuldade em acompanhar as mudanças. Para continuar competitivas, equipes de desenvolvimento são pressionadas a otimizarem seus testes e os processos de desenvolvimento precisam ocorrer em tempos cada vez menores, enquanto tentam manter os custos o mais baixo possível.

O equilíbrio perfeito de velocidade, qualidade e custos é o objetivo principal de qualquer equipe que almeja superar os desafios e alcançar o topo. Historicamente, as equipes de QA tiveram de abrir mão de um dos três itens. Se focar na velocidade de entrega, algum bug pode passar despercebido. Focando na qualidade, o prazo de entrega pode ser prejudicado. Todavia, implementando a automação de testes, a equipe não terá que abrir mão de nada.

A medida que se torna cada vez mais essencial a implementação de um processo de automação de testes para alcançar o equilíbrio entre estes três pontos chave, é preciso pensar em critérios para averiguar se o retorno sobre investimento (ROI) está dentro do esperado.

A equação do ROI é simples:

Ganhos – Investimentos
Investimentos

A dúvida principal que surge com isso é “o que define ganhos e investimentos?”. Considere os 6 pontos levantados neste artigo para estipular o valor monetário de curto e longo prazo que a automação de testes gerará. Porém, antes de adentrar nos benefícios da implementação, das ferramentas e os recursos necessários, vamos apresentar erros comuns na hora do cálculo do ROI.

Erros comuns no cálculo do ROI

  • Considerar apenas a criação, desenvolvimento e manutenção dos testes automatizados versus testes manuais. Testes manuais sempre serão importantes. Mesmo com a automação, existem cenários nos quais será necessária a execução de testes manuais. Isto significa que será preciso criar, rodar e manter esses testes.
  • Não definir o percentual de testes que precisam continuar manuais. Testes redundantes ou repetitivos são grandes candidatos para a automação. Rodar o mesmo teste inúmeras vezes pode ser entediante, e por isso, se tornam mais suscetíveis a erro humano. Testes que precisam de observação humana, como determinar um bom visual estético de um website ou verificando se a navegação do menu é user-friendly, devem continuar manuais. Além disso, estes testes que precisam de um olhar e toque humano são mais difíceis de automatizar e não oferecem um bom ROI.
  • Não sincronizar sua ferramenta de automação com sua capacidade de organização. Para implementar uma estratégia de automação de testes, é preciso conhecimento de automação e do que está sendo desenvolvido. Em outras palavras, conheça a ferramenta que utilizará, assim como os testes certos para o produto.
  • Esquecer de contabilizar os processos já em andamento e a manutenção dos testes. Após criar e implementar a estratégia de automação de testes, será necessário continuamente atualizar e gerenciar os testes. Ao longo do tempo, à medida que você implementa mais recursos e aprimoramentos, os casos de testes e os testes de regressão tendem a aumentar. Garantir que ambos estejam em condições de uso ao longo do tempo requer manutenção contínua.
  • Deixar de lado o ROI durante um período de tempo. Pense além do curto prazo quando fizer a transição para a automação, pois os efeitos da automação também são de longo prazo. Estes efeitos impactam tanto as equipes quanto a empresa ao longo do caminho. Por isso, planeje para três, cinco anos depois da implementação, não apenas um ano.

Esses erros podem atrapalhar o sucesso da sua automação de testes, visto que eles atrapalham o cálculo do ROI, e com isso, prejudicam o planejamento. A transição de manual para automação é um grande investimento e para melhor definir o resultado esperado, é necessário um planejamento com benchmarks bem precisos. Cada empresa tem sua peculiaridade, a forma como definem, executam e mantém os testes variará de equipe para equipe. Essas variações influenciarão na forma que se mensura a ROI da automação. Os benefícios da automação são particulares para cada equipe, isso não pode ser generalizado.

Considere as seguintes variáveis particulares da empresa/equipe antes de começar.

  1. Necessidades comerciais na implementação.
  2. Casos de testes para cada necessidade.
  3. Porcentagem de testes que podem ser automatizados.
  4. A complexidade dos casos de teste.
  5. Os cases de testes necessários para fazer testes de regressão.
  6. O número total de configurações que vão ser testadas.

As 6 formas de mensurar o ROI da automação de testes

Comece quebrando a equação do ROI em duas partes e reveja como calcula os ganhos, assim como os investimentos.

Ganhos – Investimentos
Investimentos

O primeiro passo é calcular os seis seguintes gastos e as economias de custos para determinar o ROI.

  1. Automação de testes novos
  2. Automação de testes antigos
  3. Cobertura entre ambientes
  4. Defeitos que vazaram para produção
  5. Redundância e reutilização dos testes
  6. Perda de conhecimento

1. Automação de testes novos

Quando começar a construir casos de automação, o primeiro passo é identificar quanto esforço será preciso para automatizar os novos cases de teste. Quanto tempo vai levar para desenvolver, rodar e manter um teste automatizado? Neste passo, será importante decidir quais testes podem ser automatizados e quais devem continuar manual. Para chegar ao custo total, estipule o custo do serviço de cada membro da equipe que estiver executando os testes.

Cálculo 1 – O custo de automatizar testes novos   

# total de casos de testes 1000
Horas de desenvolvimento, execução e manutenção 0.5
Tempo Total da Automação 500 horas
Custo médio hora de automação por analista $43
# de analistas de automação 2
Custo Total $43.000

Melhores práticas para automação de testes novos

  • Não veja o ROI como automatizado versus manual. Alguns testes precisam ser executados manualmente, isso é importante. Ao decidir quais devem ser automatizados primeiro, é uma boa ideia começar pelos testes simples e repetitivos. É fácil cair na falácia de que os testes mais complexos e demorados devem ser automatizados primeiro, mas estes vão trazer um retorno menor e um tempo de implementação maior. Fazendo a automação dos testes menores antes, permitirá ganhar embalo para os outros testes, além de perceber o ROI antes.
  • Divida a equipe em membros executando testes manuais e automatizados. Já que demandará muito tempo rodar os casos de testes, será importante ter gente criando e rodando ambos os tipos de testes.

2. Automação de testes antigos

O segundo passo é calcular o custo da automação de testes antigos, ou seja, os testes de regressão. Teste de regressão é o processo de rodar testes antigos para garantir que as novas atualizações não introduziram ou reintroduziram bugs já depurados. Este tipo de teste é essencial para o sucesso de qualquer equipe, visto que garante a segurança de que os bugs depurados continuem assim e que as novas funções funcionem bem, sem entrar em conflito com os códigos antigos. Ao longo do tempo, esses casos vão ficando maiores e demandando mais tempo de execução. Implementar a automação de testes neste tipo permite rodá-los mais rapidamente e aumentar a confiança para a próxima entrega.

Cálculo 2 – O custo de automatizar testes de regressão

# total de testes de regressão 1000
Horas para manter cada teste 0.25
Tempo Total da Automação 250 horas
Custo médio hora de automação por analista $43
# de analistas de automação 2
Custo Total $21.500

Melhores práticas para automação de testes de regressão

  • Imediatamente integre seus novos testes automatizados com as suítes dos testes de regressão já existentes. Quando calcular o ROI, considere que todo teste novo eventualmente se tornará um teste de regressão. Integre os novos aos de regressão desde o início para garantir melhor fluidez e implementação.
  • Automatize os testes repetitivos de complexidade média a alta. Este método possibilita o melhor retorno pelo esforço.
  • Lembre-se do custo de manutenção e desenvolvimento dos testes novos, assim como os em andamento. Infelizmente ninguém vive num mundo em que após investir 10 horas automatizando um grupo de testes, estes testes jamais precisarão de cuidados novamente. Todo teste precisa de manutenção, essa tarefa demanda horas de trabalho, faça um acompanhamento delas para incluir no ROI.

3. Cobertura entre ambientes

O objetivo da automação de testes é aprimorar a qualidade do software, enquanto reduz custos e testa mais rapidamente. O rápido crescimento do número de aparelhos mobile, navegadores e sistemas operacionais no mercado, consequentemente aumentaram também a quantidade de cenários e combinações para se rodar testes. É um caso bastante improvável que se tenha 100% de certeza que os usuários só vão utilizar um navegador X e um aparelho Y para acessar o software desenvolvido. Com isso, é crucial calcular os custos de testar essa abrangência de cenários. Sem um teste em paralelo e a abrangência que ele oferece, existe um risco de encontrar defeitos ao longo do desenvolvimento. Quanto mais rápido o erro for encontrado, mais barato é para resolvê-lo. O custo da depuração em estágios mais avançados do ciclo de desenvolvimento é uma métrica para calcular o custo da abrangência de cenários.

Cálculo 3 – Os custos reduzidos ao garantir a abrangência certa

Custo do Laboratório de Dispositivos
# de dispositivos
Custo médio por dispositivo
Custo da manutenção do laboratório
Vazamento de defeitos
Erros que podem passar despercebidos por falta de cobertura
Horas para consertar os erros
Ferramenta
Custo de uma ferramenta cross-browser

Melhores práticas para garantir a abrangência certa dos testes

Aumente a abrangência de cenários rodando testes cross-browser, de unidade, de regressão e de fumaça em paralelo.

  • Testes Cross-Browser: Testar vários navegadores e dispositivos é uma das tarefas que mais consome tempo em garantir a qualidade do frontend dos websites ou aplicações web. Rodar estes testes em paralelo permite poupar centenas, quando não milhares, de testes em uma grande gama de configurações de dispositivos e navegadores.
  • Testes de regressão: As entregas acontecem de forma rápida e os testes de regressão são uma boa forma de garantir a qualidade delas. Esses testes vão garantir que a build mais atual estará no mesmo nível de funcionalidade e estabilidade que a última. Rodar esses testes em paralelo aumenta a abrangência dos testes.
  • Testes de Unidade: De acordo com a pirâmide de testes, testes de unidade devem ser o mais comum na suite. Por sua abundância, rodar estes testes em menos de uma hora, que muitas vezes tem milhares deste tipo, só é possível com um investimento massivo em infraestrutura de testes paralelos.
  • Teste de fumaça: Rode este teste em paralelo se o tempo estiver curto. Este é o melhor jeito de rodar o máximo de testes no menor tempo possível.

4. Redução no vazamento de defeitos

O vazamento de erros se refere a quantidade de bugs ou falhas que sobrevivem até a produção por não terem sido detectadas antes durante o ciclo de vida de desenvolvimento de softwares. Isto pode ser o resultado de inúmeras questões, como cobertura de testes ruins ou ambientação fraca. A métrica chave desta questão são os custos (dinheiro e tempo) gastos com correções e patches após a entrega.

Cálculo 4 – Os custos ligados com vazamento de defeitos

Vazamento de defeitos
Por falta de abrangência funcional
Por requisitos ausentes
Horas usadas para consertar defeitos consolidados

Melhores práticas para evitar vazamento de erros

Encontre-os durante os ciclos iniciais de desenvolvimento. Quanto mais cedo testar, mais cedo encontrará os bugs. Esta é a ideia principal que a tendência crescente “shifting left”. Diferente do modelo cascata tradicional que testadores e desenvolvedores estão separados, “shifting left” almeja corrigir este equívoco. Os testadores são encarregados de averiguar uma atualização de software assim que ela é criada. Os desenvolvedores podem até mesmo rodar testes enquanto ainda estão na fase de desenvolvimento. O objetivo maior aqui é encontrar bugs o mais cedo possível, poupando uma quantia considerável de dinheiro e tempo.

5. Redundância e reutilização dos testes

O propósito de acompanhar a capacidade de reutilização dos testes e suas etapas redundantes é para evitar perda de tempo. Não há necessidade em criar um teste Y para A, se X já cumpre este papel. Mas para evitar a criação desnecessária, é preciso saber quais testes já existem e qual a função deles. Sabendo destas informações, é possível aprimorar os ciclos de testes, reutilizando ao invés de criando testes redundantes. Para calcular este custo, é preciso saber o número de testes redundantes ou duplicados, o tempo gasto na busca e o tempo gasto no desenvolvimento e execução dos testes.

Cálculo 5 – Os gastos poupados ao reduzir redundância

  • Número de testes duplicados ou com componentes similares
  • Tempo gasto buscando testes redundantes
  • Tempo gasto no desenvolvimento e execução dos testes redundantes

Melhores práticas para reduzir o número de testes redundantes

  • Crie scripts modulares de testes para permitir reutilização. Preste atenção no framework de testes para determinar quais testes são executados com mais frequência (quais testes são repetidos e consomem muito tempo). Considere a ação típica de “logging in” como um exemplo. Para rodar um teste de logging in efetivo, tem um número absurdo de variantes que precisam ser rodadas. Pensando nisso, criar um teste reutilizável para estas variações é um ganho de tempo e recursos.
  • Faça uso de uma ferramenta de gerenciamento de testes que possa ajudar a encontrar scripts duplicados. Ferramentas como QAComplete permitem armazenar testes de customizada e organizada. Tomando esta ação permite ajudar na hora de encontrar aqueles testes redundantes de forma simplificada.

6. Perda de conhecimento

Esta é a métrica mais esquecida na hora de calcular o ROI da automação de testes. O tempo de carreira médio de um analista de teste em uma empresa é de 3 a 5 anos. Quando o testador sai, conhecimento institucional é perdido. Para garantir um bom ROI de longo prazo com a automação, é importante tomar cuidado com a perda de conhecimento. Terão casos de testes que precisarão ser reprogramados após a saída de um colaborador, isto gera um custo pesado.

Cálculo 6 – O custo poupado ao reduzir perda de conhecimento

  • Tempo médio de permanência de um analista de teste na empresa
  • Tempo gasto para reprogramar cases

Melhores práticas para evitar perda de conhecimento

  • Documentação. A melhor forma de evitar perda de conhecimento é documentar o processo de testes. Ter as etapas e minúcias documentadas permite ao próximo analista reprogramar os cases rapidamente. Isto também permite identificar se esses casos ainda tem utilidade.
  • Gerenciamento de casos de testes. Customize o armazenamento dos testes para encontrá-los com maior facilidade e saber a função de cada um.

Investimento na Automação: Ferramentas e Recursos

Os investimentos em ferramentas e recursos necessários para a transição de um processo de automação de testes. ROI da automação:

Ganhos – Investimentos
Investimentos

1. Ferramentas

Existem várias ferramentas de automação de testes disponíveis no mercado, escolher a certa pode ser uma tarefa árdua. Fizemos uma lista com as 10 mais usadas. Durante a busca pela ferramenta ideal, não veja apenas as funcionalidades e os custos, também veja o tempo e os recursos necessários para a implementação efetiva. Leve os seguintes pontos em consideração:

  • Tempo necessário até rodar os testes com eficiência.
  • Facilidade de uso para todos os usuários. Talvez algum membro da equipe precise receber treinamento.
  • Algumas ferramentas precisam de muitos scripts, demandando mão de obra técnica. Enquanto outras podem ser manuseadas por membros com menos conhecimento técnico.
  • O processo de compras é importante também. Tem suporte pós-venda?
  • Materiais de apoio disponíveis. Existem treinamentos para a equipe? Existem guias/tutoriais que auxiliem no aprendizado e uso?

2. Recursos

É pouco provável que todos na equipe tenham conhecimento e experiência em automação. Quando o assunto é recursos, meça quanto tempo será preciso para a ferramenta estar operacional. Será essencial um investimento no conhecimento de automação da equipe, utilizando treinamentos ou contratando alguém que já saiba.

ROI da automação de testes

Com todos os pontos, custos e métricas apresentados, agora é possível calcular o ROI de curto e longo prazo. O resultado será parecido com o seguinte: Nossa equipe pode poupar X depois de um ano. Em Y, podemos poupar Z.

Com o passar de um, dois ou até mesmo cinco anos, o ROI do investimento em automação terá crescido exponencialmente.

Além dos valores quantitativos, com o passar do tempo será possível perceber os valores qualitativos da automação. Por exemplo, em alguns anos os processos de testes e os resultados estarão mais maduros, permitindo maior abrangência e otimização do tempo. Ao automatizar os testes continuamente, a equipe poderá rodar testes em vários cenários rapidamente e reduzir o risco de redundância e vazamento de defeitos. O número de dispositivos e plataformas tecnológicas para o usuário final continuará a crescer, a capacidade de acompanhar e o sucesso disto está diretamente ligado a habilidade em automatizar. Com um processo sólido de testes de software implementado, é possível dedicar mais tempo na criação e aprimoramento de novas funções, assim como na melhoria da qualidade da entrega, resultando em aumento de competitividade no mercado.

TESTES END-TO-END NO MUNDO SAP - WHITE PAPER

Testes em ambientes SAP implicam em utilizar um conjunto próprio de métodos e ferramentas que vão além do SAP.

BAIXE O WHITE PAPER