Quer saber como economizar dinheiro em testar seu software? Você não está sozinho. Existe apenas um pequeno, mas: se você não testar o software, os cenários mais negativos são possíveis - do caro e extremamente desvantajoso para você finalizar o aplicativo nos estágios posteriores, para a perda de reputação e a saída de clientes / clientes para os concorrentes.
Pronto para recrutar os 50 testadores mais experientes para garantir a qualidade do produto? Que legal! Porque Você precisa entender: se você alocar muitos recursos para teste nos casos em que isso não se justifique, você aumentará o orçamento e o software ficará muito caro. Seus usuários e clientes estão felizes com isso? Você está em risco novamente.
Sim, estamos sugerindo que a verdade está em algum lugar no meio. Neste artigo, falaremos sobre os princípios básicos, após os quais você pode encontrar um equilíbrio entre o custo dos testes e a qualidade do seu produto.
Princípio número 1. Comece o teste o mais cedo possível
Um dos erros mais comuns é começar a testar o produto nos estágios posteriores, quando está quase pronto para o lançamento. Quanto mais cedo a equipe de teste (QA) for conectada ao processo de desenvolvimento, menor a probabilidade de perder um erro na produção. Além disso, um erro identificado em um estágio inicial de desenvolvimento será mais barato. As vezes Nossa experiência mostra que o preço da fixação nos estágios posteriores pode ser 30 vezes mais caro do que corrigir o mesmo erro, por exemplo, no estágio do protótipo.
Um caso da prática: esperamos muito tempo testando um aplicativo de servidor que coletava e processava uma grande variedade de dados do usuário. Os desenvolvedores simplesmente se recusaram a denunciá-lo, citando o fato de que eles têm muitos problemas, e os testes podem ser feitos no final. No final, eles trabalharam na nova versão por quatro meses.
Quando começamos a testar o aplicativo com a quantidade real de dados do usuário, verificou-se que a arquitetura do banco de dados selecionada não suportava essa carga. A equipe de desenvolvimento de cinco pessoas teve que re-planejar tudo, reescrever o design e a arquitetura do aplicativo e tivemos que testá-lo do zero. O lançamento ocorreu seis semanas depois do planejado.
Conclusão: o desejo de economizar 150 horas-homem em testes e adiar sua liberação levou à perda de 1.100 horas-homem de seus funcionários e dobrou o custo dos testes.
Princípio número 2. Salvar, mas não análises
Digamos que você ouviu nossos argumentos e decidiu implementar o primeiro princípio. Em que estágio do desenvolvimento do produto é melhor contratar e envolver uma equipe de teste? Resposta: no estágio de planejamento da arquitetura do aplicativo, ou pelo menos no estágio de análise e preparação de requisitos.
Sem análises bem conduzidas, você corre o risco de lançar o produto perfeito que ninguém precisa. Isso acontece quando você não leva em consideração as características do seu público-alvo.
Lembramos da história de horror sobre o aplicativo em execução, que foi adaptado para usuários da Ásia. Definitivamente, a Ásia Central gostaria e lucraria se os clientes pudessem instalar o aplicativo em seus smartphones. Mas eles não podiam, mas você sabe por quê? Na fase de coleta de requisitos, foi cometido um erro devido ao teste do aplicativo nos iPhones e smartphones Samsung, que estão pelo menos na Ásia. Afinal, os usuários asiáticos claramente preferem a Huawei e a OPPO.
No nosso exemplo, o desenvolvedor falhou ao salvar novamente. Você não apenas gastou 300 horas-homem finalizando e testando o produto, mas também os custos de reputação quase derrubaram o projeto.
Conclusão: você pode convidar especialistas externos ou se restringir, o principal é lembrar que os testes do consumidor na fase de suporte são dezenas de vezes mais caros. Por caro, queremos dizer não tanto perdas monetárias quanto custos de reputação. Não economize em análises. Apenas não nela!
Princípio número 3. Definir metas e expectativas
Claro, você quer que tudo funcione e funcione bem. Mas isso não é suficiente. Você precisa entender o quão bem e por que tanto.
Você sabe reconhecer um bom gerente de teste? Ele imediatamente começa a “torturá-lo” para entender que tipo de produto de qualidade você precisa. Chamamos isso de coleta de expectativas. A qualidade do seu software consiste em certos tijolos. Um gerente de teste experiente vai querer saber quais tijolos específicos colocar na base da qualidade.
Quando um cliente chega até nós e diz: “Quero que funcione”, começamos a perguntar: qual é o principal objetivo da criação de um produto? Quais recursos são mais exigidos pelos usuários? como eles os usam?

Após coletar as expectativas, as metas SMART são definidas, decompostas, construídas tarefas e tabelas de KPI. Como resultado, definimos claramente:
- tipos de teste;
- datas da sua exploração;
- composição da equipe;
- e até possíveis riscos.
Tudo isso é necessário para garantir a qualidade exigida pelo cliente, sem adivinhar os nervos.
Às vezes, no entanto, incidentes acontecem. No projeto da loja online de serviços de seguros, realizamos uma análise e preparamos uma proposta. Devido à complexidade da funcionalidade e tamanho dos módulos, além dos testes funcionais e de regressão completos do produto, recomendamos automatizar a regressão. Apesar do tempo que levou a maior parte do tempo para regredir, o cliente se recusou a automatizá-lo, motivando-o pelo fato de haver uma forte equipe de "handbracers", e a automação levará muito tempo e se tornará inútil. Todos os nossos argumentos e cálculos adicionais foram ignorados. Não conseguimos provar nossa posição e por três meses testamos a regressão manualmente, o que, de fato, não foi rentável para o cliente.
Em seguida, o projeto foi encerrado, analisado por dois meses e retornado com uma proposta de uso do plano de automação que propusemos há cinco meses.
Conclusão: você precisa não apenas entender os objetivos do projeto e os desejos do cliente, mas também provar a ele que você está do lado dele e saber como obter o benefício. Caso contrário, será como o nosso: um orçamento mesclado para testes de regressão manual, embora a automação economize tempo e dinheiro. Falando em automação ...
Princípio No. 4. Automatizar
... mas sabiamente. E depois de calcular o ROI.
Para que a automação economize seu dinheiro, o produto deve ser estável. No entanto, se ele mudar muito dinamicamente, isso não significa que a automação não irá ajudá-lo. O uso de ferramentas e programas especializados já é automação. Por exemplo, você pode ajudar a automatizar operações de rotina que consomem o tempo de seus testadores. Digamos que escreva um utilitário que coleta as configurações necessárias.
Estudo de caso: o cliente queria ser liberado todos os dias, em vez de duas vezes por semana. Além disso, o teste de regressão manual completo levou dois a três dias. E como 80% da funcionalidade do produto era bem estabelecida e estável, foi decidido automatizá-lo. Para isso, desenvolvemos quatro cenários de automação e realizamos uma análise comparativa de sua eficácia. Geralmente usamos oito indicadores para isso:
- Quantidade do TC - o número de casos no script.
- Automação (homem * dias) - consumo de recursos para automação de script (excluindo dados de teste para cada caso de teste).
- 1 Automação de TC (homem * horas) - o custo de automatizar um caso de teste.
- Teste manual (homem * dias) - o custo do teste manual do script como um todo.
- Investigação de resultados (homem * horas) - o custo de examinar os resultados de uma execução de autoteste.
- Tempos de execução - o número de execuções de teste necessárias para o período de trabalho no projeto. Esse número reflete o número esperado de execuções, levando em consideração a estabilidade do funcionamento, o cronograma necessário de execuções de teste (regularidade das informações), etc.
- Eficácia da automação (%) - teste a eficiência da automação em% do tempo economizado. Dados os erros de cálculo, a automação com um indicador superior a 150% pode ser considerada eficaz.
- Tempo economizado (homem * dias) - o número de homens-dia economizados durante todo o projeto.
Aqui está como fica o exemplo do nosso projeto:
A seleção final passou por dois cenários de automação. Seu uso nos permitiu reduzir a regressão de dois dias para duas horas para a execução de autotestes, mais duas horas para as verificações manuais restantes, que se mostraram inúteis para automatizar.
Conclusão: a automação pode reduzir os custos de mão-de-obra para testes dezenas de vezes e pode drenar o orçamento por nada. Sem a capacidade de analisar e calcular o ROI, você sempre corre o risco de ficar desiludido para sempre com a automação.
Princípio No. 5. Aprenda a usar iniciantes
Não quer automatizar? Testadores com experiência atingiram o orçamento? Pensando em contratar graduados do ensino médio por um salário pequeno, mas razoável? Não é uma má idéia, mas existem algumas nuances. Mesmo se você tiver um produto simples, alguns recém-chegados não serão suficientes para você.
Uma criança pode encontrar um bug no jogo e interromper o aplicativo pelo método de teste de chamariz, mas ele encontrará todos os bugs? Claro que não. Gostamos muito de recém-chegados, mas eles geralmente não possuem métodos de teste de pesquisa. Mas eles podem "andar" nos testes. Portanto, para uma empresa de iniciantes com olhos ardentes, você precisa de um "velho" que prescreva cheques em um nível que seus iniciantes entenderão.
Por exemplo, atraímos recém-chegados sob a supervisão de mentores, mesmo para alguns projetos complexos. Inicialmente, o processo de integração e adaptação de um iniciante no projeto levou um mês, o que, é claro, aumentou o tempo e o custo dos testes. Para resolver esse problema, desenvolvemos "pacotes iniciantes" com documentação de teste e todas as instruções para instalar e configurar os componentes necessários. Essa etapa tornou possível reduzir o período de adaptação total nas primeiras duas semanas e depois de adicionar um conjunto de casos visuais e vídeos de treinamento ao “pacote” - até uma semana.
Um fragmento de um conjunto de casos para testar um produto de seguro é apresentado abaixo.
Um "pacote iniciante" pode incluir algo muito simples, mas útil, como
um gerador de dados .
E pode fornecer etapas específicas para a aprovação de casos. A propósito, em nossa experiência, é melhor fornecer aos iniciantes exatamente casos de teste (com etapas e pré-condições detalhadas), em vez de listas de verificação.

Tendo esse conjunto em mãos, o iniciante sempre saberá qual teste fazer, o que fazer e onde procurar as informações ausentes.
Conclusão: é rentável usar o trabalho de iniciantes sem perder a qualidade e a velocidade dos testes. Junior é capaz de trazer benefícios reais para o projeto já a partir da segunda semana, reduzindo em 4 vezes a perda de tempo para adaptação (de 160 para 40 horas).
Um mentor experiente e processos de negócios de integração iniciantes ajudarão a formar uma equipe legal em pouco tempo. Fazemos isso regularmente, e o número de grandes testadores que treinamos já excedeu mil!
Princípio número 6. Você não precisa de cem testadores, precisa daqueles que trabalham com suas cabeças
Não deve haver muitos testadores, deve haver o suficiente deles. Você não quer investir em caras experientes e experientes que ficarão entediados no trabalho ou iniciarão menores desnecessários? Da mesma forma, você não deseja que quarenta desenvolvedores preencham um especialista em testes infeliz com todas as suas correções e ele não tem tempo ou energia suficiente para realizar um trabalho de qualidade nas tarefas. Portanto, a sexta regra do equilíbrio de preço e qualidade é buscar esse equilíbrio.
A intuição é importante, mas ainda tente recorrer à ajuda de estrategistas e analistas que o ajudarão a avaliar o escopo das tarefas, o número de pessoas necessárias e suas qualificações.
Um caso comum da prática. Há pouco tempo, fomos abordados por um cliente que possuía 12 testadores na equipe: MT, sênior, médio e 9 junior. Realizamos uma auditoria dos processos de teste e abandonamos oito mil tarefas desnecessárias (como a funcionalidade de regressão não afetada por atualizações, instituição de menores etc.), além de descobrirmos como otimizar os testes. Descobriu-se que o projeto precisa de três dispositivos de automação (oferecidos por conta própria) e outro meio, que cresceu entre os juniores. O resto dos recém-chegados teve que ser abandonado.
Em seguida, deixamos o teste de funcionalidade crítica no bloco "Identificação e reconhecimento" no meio. Eles checaram manualmente, testando pesquisas. Todos os outros blocos foram quase completamente para a automação.
No final, isso permitiu:- Reduza o custo dos testes de pré-lançamento de 232.400 para 35.200 rublos.
- Aumente o teste de ROI através da automação em 5 vezes.
- Reduzir a carga de gerenciamento sobre o gerenciamento.
- Reduza o tempo de teste de pré-lançamento em 23 horas-homem.
- Melhore a qualidade dos testes, deixando apenas testadores experientes no projeto.
Princípio número 7. Descubra o que é mais lucrativo para você: equipe ou terceirização
Freqüentemente, mas nem sempre, a terceirização é mais barata e permite contratar funcionários mais experientes com desconto.
Outro caso de nossa prática: como economizar mais de um milhão e meio de rublos por ano, contratando nove terceirizados com um salário de 130 mil em vez de nove testadores em tempo integral com um salário de 70 mil rublos.
Para não ser infundado, mostraremos uma tabela que explicará de onde vem esse benefício.
Em nosso exemplo, um testador em tempo integral com um salário de 70 mil rublos por mês custa à empresa 14.877 rublos mais do que um especialista em terceirização mais caro, com quase o dobro do salário. Se levarmos em conta o departamento de 9 pessoas que trabalharam por um ano, o benefício será de 1.606.716 rublos. E isso é dinheiro.
No entanto, às vezes acontece que, mesmo percebendo os benefícios, as empresas não querem terceirizar os testes. Por exemplo, frequentemente encontramos o desejo de um cliente de transferir tudo para sua equipe. Isso se deve a temores e incapacidade de compartilhar suas melhores práticas e documentação com clientes externos.
Essa posição é totalmente justificada: apesar de todos os acordos de não divulgação, sempre existe o risco de vazamento acidental de informações, cujo custo não é coberto por nenhuma ação judicial. Para não entrar em tal situação, recomendamos que você jogue com segurança e procure uma empresa em relação à qual, nos últimos dez anos, nenhuma dessas reivindicações tenha sido registrada, tendo comunicado previamente com os clientes indicados em seu site.
Brevemente sobre o que foi dito
1. De acordo com a versão do Instituto Nacional de Padrões e Tecnologia, o custo dos testes no final do desenvolvimento pode exceder seu custo nos estágios iniciais em 15 vezes e após o lançamento em 30 vezes.
Não quer pagar a mais? Comece a testar o mais cedo possível!2. O mal-entendido de seu público-alvo e os requisitos de seus produtos enterraram muitos projetos excelentes.
Economize em análise? Prepare-se para pagar pelo jogo de adivinhação!3. É necessário analisar não apenas a CA, mas também os desejos dos clientes. Com base neles, você deve poder definir e decompor metas SMART.
Não é possível definir metas claras? Seus objetivos são incompreensíveis para o cliente? Estabeleça os custos de conclusão e retrabalho!4. A automação ajuda a otimizar os custos de teste. Mas nem todo lugar e nem sempre.
Você acha que testar com as mãos é mais lucrativo? Calcule o ROI da automação em vários cenários e compare os números!5. Os iniciantes nos testes estão entusiasmados, mas não têm experiência. Um bom mentor e um "pacote para iniciantes" aumentam a eficiência de junho no projeto em 2-3 vezes.
Marcou os graduados de ontem por uma taxa razoável? Prepare-se para pagar mais por sua transformação de "macaco" em homem!6. Qualidade não é igual à quantidade. Um bom especialista é mais caro porque dá o melhor resultado.
Não quer salvar, trabalhando no resultado? Então você não deve auditar a equipe de teste e otimizar sua composição.7. A terceirização de testes permite que você obtenha uma equipe experiente no projeto, com garantia do resultado. Mas a terceirização não é de modo algum adequada para todos.
Deseja uma solução chave na mão com um preço democrático? Calcule os benefícios do estado e da terceirização, talvez a segunda opção seja muito mais lucrativa.Em vez de um epílogo
Qualidade é um conceito multifacetado; portanto, seu preço pode variar dependendo da profundidade do entendimento da empresa sobre esse termo. Existem muitas maneiras de economizar às custas da qualidade, mas não existem muitas opções para melhorar a qualidade sem pagar em excesso. A conformidade com os princípios acima nos ajudou a ganhar uma reputação confiável no mercado e na lealdade de nossos clientes e dos próprios clientes - para economizar força, recursos e tempo.
Tente você mesmo esses princípios, eles são muito simples e, portanto, eficazes. Esperamos que nosso artigo ajude você a economizar nos testes sem comprometer a qualidade. E estamos aguardando suas perguntas, idéias, sugestões e comentários nos comentários.
Nina Ageeva
Diretor Adjunto do Laboratório da Qualidade.