Teste interno vale a pena?

Toda equipe de desenvolvimento de software enfrenta alguns desafios que são comuns à atividade. Teste de software e garantia de qualidade inclusive. Quando falamos de times internos, tendo pessoas destacadas para a função ou não, estamos falando de uma carga de trabalho que é subestimada com frequência: criar planos de teste, escolher e configurar as ferramentas e o ambiente de teste interno, controlar o ciclo de registro e correção de bugs, fazer reuniões de revisão e mais uma série de rotinas que merecem atenção especial em função dos recursos técnicos e humanos que consome.

Quando falamos de terceirização para empresas especializadas em serviços de teste, tudo pode correr bem com a devida padronização e comunicação. Na falta desses dois pilares, você está comprando uma receita para o desastre. Como o formato de trabalho pode ser bem flexível, é necessário refletir sobre as opções antes, e escolher com carinho a empresa para a qual terceirizamos nossos testes.

Acompanhem-nos em uma revisão concisa sobre as duas estratégias que pode trazer insights úteis quando você precisar decidir.

Revendo o caso dos testes internos

Nas empresas em que a alta gerência permite que o setor de TI respeite seus processos internos (em contraste com aquelas empresas onde a TI está eternamente “apagando incêndios”), normalmente vamos encontrar a função de Controle de Qualidade sendo executada pelos próprios desenvolvedores ou por uma equipe dedicada.

Este cenário tem seus pontos fortes:

  • Membros da equipe de teste interno têm acesso direto aos outros times: desenvolvimento, marketing, financeiro e todos os outros envolvidos, tirando dúvidas e colhendo feedbacks com mais velocidade.
  • Você pode exercer controle direto sobre as atividades e seu andamento, é só tomar cuidado para não micro gerenciar.
  • O time, dedicado ou não, está inserido no contexto do seu software, conhece do processo de negócio e entendo o que o resultado final supostamente deve ser.

Mas como tudo tem seu preço, as seguintes questões emergem:

  • Devem-se levar em conta os custos inclusos de contratação, treinamento de pessoal e ocasionalmente custo de ociosidade, no caso de times dedicados.
  • Conforme o volume, o custo por bug/defeito pode aumentar consideravelmente.
  • Se o time precisar de uma determinada habilidade que ainda não está disponível, e não houver prazo para treinamento, você terá que contratar mais.

Há ainda a opção de uma empresa terceirizada alocar seus profissionais dentro da sua empresa, e como ela inclui um aumento sensível do esforço de gerenciamento – seu e do gerente de nível de contrato terceirizado – seu perfil acaba ficando muito parecido com as outras duas opções apresentadas. Se não for muito bem gerenciada, esta opção pode igualar ou superar os custos de uma contratação interna.

Revendo o caso dos testes terceirizados

Quando as empresas já perceberam a importância estratégica dos testes mas decidem não ter toda uma equipe dedicada para a tarefa, seja por sazonalidade, para evitar os custos diretos e indiretos ou qualquer outra razão, entra em cena a terceirização dos testes internos.

Projetos em transição normalmente vão manter um profissional ou uma pequena equipe como ponto focal ou interface técnica fazendo a ligação entre a empresa e a terceirizada. Mas não é incomum encontrar empresas sem uma interface técnica definida, onde a terceirizada arca com a maior parte da complexidade dos projetos de teste.

As vantagens mais visíveis desta abordagem são:

  • Tirar proveito da expertise e da eficiência da terceirizada, que tem profissionais que se especializaram nas atividades de teste. Assim, o trabalho é executado com facilidade e velocidade.
  • Cortar custos trabalhistas. Você não precisa dispender dinheiro no desenvolvimento e treinamento da mão de obra voltada especificamente para os testes de software.
  • Foco melhor no seu negócio. Especialmente se sua atividade principal for desenvolvimento, sua equipe poderá se concentrar melhor nos aspectos voltados ao seu negócio, deixando os processos colaterais a cargo da terceirizada.
  • Eliminação dos egos na equação. Vamos admitir, normalmente os desenvolvedores são extremamente ciumentos em relação às suas criações e não gostam que se apontem defeitos em seu trabalho. Por mais que evitemos, várias vezes fatores pessoais interferem no julgamento profissional. Testes feitos internamente não deveriam, mas ocasionalmente levam a atritos entre o desenvolvedor e o testador. Com a terceirização, este tipo de situação tende a nem sequer aparecer.

E o outro lado da moeda:

  • Avalie a empresa que vai efetuar a tarefa de testes. Temos várias opções atualmente, mas avaliar e contratar aquela com maior aderência ao seu negócio pode ser uma tarefa árdua, especialmente se for para um projeto de alto valor agregado.
  • Questões de privacidade. Para viabilizar testes apropriados, sua organização precisa compartilhar informações com vários níveis de confidencialidade (dados, código fonte, documentos de projeto, etc) com a terceirizada. É seu papel garantir que seus direitos de propriedade intelectual sejam respeitados.
  • Controle de prazos. Discutimos anteriormente neste artigo o controle sobre o processo de testes, onde seu controle sobre as equipes internas é maior. Com terceirizadas você deve se antecipar, caso contrário vai enfrentar sérias dificuldades na hora de acelerar etapas ou suspender outras, para garantir a entrega de versões em tempo.
  • Entregas com qualidade abaixo do esperado. Restrições de prazo precisam ser coordenadas com a terceirizada, e os parâmetros de qualidade precisam, além disso, de serem cuidadosamente monitorados. Mantenha atenção especial na qualidade dos testes feitos, uma vez que a imagem da sua empresa é que estará diretamente em jogo.

E então, o teste interno vale a pena?

Agora que atravessamos os prós e os contras das abordagens interna e externa, vamos ao mais importante: o contexto!

As vantagens e desvantagens certamente terão o seu peso alterado quando as informações são analisadas dentro de um contexto. Especificamente o contexto presente de elevada carga tributária e pesados encargos sociais. Como agravante, um dólar com valor elevado em relação à nossa moeda torna quase impraticável o “offshoring” dos testes, pois a maioria das empresas estrangeiras atrela seus preços ao dólar.

Felizmente contamos com empresas nacionais de qualidade como opção na hora de escolher quem vai executar os testes de nossos softwares. Considerando apenas a moeda nacional vai ficar muito mais fácil colocar na balança o peso de uma equipe interna versus o preço da terceirização. Com prestadores experientes no mercado, podemos transpor o obstáculo da comunicação e da contextualização do profissional de testes com rapidez, inclusive permitindo que seu time de desenvolvedores se beneficie da  experiência dos profissionais de teste, experiência esta construída através do atendimento a diferentes clientes em diferentes situações. Um ponto focal bem definido pode suprir as deficiências de conhecimento do seu negócio com facilidade. Contratos e termos de uso podem blindar satisfatoriamente sua empresa contra violações autorais.

Experimente com um projeto pequeno se ainda não estiver plenamente seguro sobre o que vale mais a pena, teste terceirizado versus teste interno, mas independente da sua escolha aponte um responsável pelos resultados, ou responda você mesmo perante seus clientes internos. Isto torna mais fácil o trabalho do “encarregado”, principalmente quando for necessário rescindir contratos ou dispensar membros da equipe, se os resultados não forem levados a sério. Quando há vários “responsáveis” pelos testes, a tendência é de que os envolvidos não se responsabilizem diretamente pelos problemas.

Algum tópico deste assunto ainda incomoda? Não fique com as dúvidas, deixe todas nos comentários e vamos conversar!

About Pedro Costa