Quem deve automatizar os testes: testadores ou desenvolvedores?

Imagem de capa do post Quem deve automatizar os testes: testadores ou desenvolvedores?

Atualmente, desenvolvedores e testadores de software possuem muitas responsabilidades durante um projeto e, dentre elas, realizar a automação de testes. Então surge uma dúvida: Quem deve executar essa tarefa, testadores ou desenvolvedores?

A resposta é uma velha conhecida, depende. Isso porque existem diversas metodologias utilizadas para desenvolver um software, desde as mais tradicionais até as ditas ágeis. Porém, vamos tentar esclarecer de forma simples quais são as principais responsabilidades que esses dois “papéis” possuem nesse processo. Vamos lá?

Para começar, veja a seguir as responsabilidades mais comuns de testadores e desenvolvedores de software em um projeto:

Desenvolvedores:

  • Construir o sistema de acordo com suas especificações;
  • Realizar manutenções e corrigir os erros identificados;
  • Criar e automatizar testes unitários e de integração.

Testadores:

  • Testar o sistema de acordo com suas especificações;
  • Criar cenários de teste a serem realizados;
  • Reportar defeitos encontrados nos testes;
  • Acompanhar a resolução dos defeitos encontrados;
  • Criar e automatizar testes funcionais.

Como pode ser visto, ambos possuem características diferentes. Mesmo assim, elas podem complementar-se e as atribuições irão depender da necessidade de cada organização ou projeto e dependem das skills de cada membro da equipe. De forma geral, a etapa de codificação de software pode ser considerada uma tarefa construtiva. Já a atividade de teste, visa identificar defeitos e falhas existentes no software, tornando essa atuação destrutiva.

Infelizmente, em alguns cenários, ainda existe a falta de cooperação e comunicação entre a área de teste e equipe de desenvolvimento. Muitos desenvolvedores não percebem o quão difícil pode ser a atividade de teste, pois esta exige atenção aos detalhes, paciência, concentração e entendimento do negócio em que o sistema a ser testado faz parte. Ademais, com o adendo da automação de testes, testadores passam a ter necessidade de conhecer linguagens de programação, diferentes técnicas de testes, frameworks, etc.

Em contrapartida, muitos testadores não consideram o fato de como os desenvolvedores podem ser céticos a aceitar possibilidades de erro em seus produtos. Como é esperado, estes criam as aplicações para funcionarem perfeitamente (viés positivo), não aceitando por vezes que um bug aconteça. Adicionalmente, programadores precisam lidar com mudanças de requisitos, expectativas dos usuários, prazos de entrega, afora outros fatores que vão além das necessidades e conhecimentos técnicos exigidos para a sua profissão.

Em se tratando de automação de testes, os desenvolvedores comumente são responsáveis pelos testes de unidade e integração, pois esses tipos de teste trabalham com foco em validar o comportamento do código desenvolvido. Testes unitários verificam o código fonte com foco na validação isolada de classes, métodos, funções, etc. Os testes de integração analisam a relação entres esses módulos e componentes para que funcionem corretamente após serem integrados.

Testadores normalmente são encarregados de realizar os testes de sistema (end-to-end), os quais avaliam o sistema como um todo (de ponta a ponta), analisando as funcionalidades de acordo com a visão dos usuários para garantir que o software faça o que dever fazer de forma correta.

Abaixo são listados alguns tipos de testes que usualmente podem ser automatizados:

  • Teste de Unidade;
  • Teste de Integração;
  • Teste de Funcionalidade;
  • Teste de Regressão;
  • Teste de Desempenho;
  • Teste de Carga;
  • Teste de Estresse;
  • Teste de Segurança.

No contexto dos métodos ágeis, por exemplo, testes automatizados são essenciais, visto que geram confiança para a validação das estórias e mudanças realizadas nas sprints. Em alguns métodos ágeis de desenvolvimento de software como o XP (eXtreme programming) não existe a figura do testador e os desenvolvedores são responsáveis pelos testes que garantem que o sistema faz o que deve ser feito.

Apesar de terem atribuições distintas e desenvolvedores terem mais foco de suas automações em testes unitários e de integrações, nada impede de auxiliarem os testadores na elaboração de testes funcionais e vice-versa. O fator predominante é que o esforço para garantir a qualidade dos produtos desenvolvidos seja empregado por todo o time.

Esperamos que ao longo desse artigo possamos ter ajudado a entender um pouco mais sobre esses dois tipos de profissionais e suas atuações no dia a dia.

E a sua empresa já trabalha com testes automatizados? Aqui na Testing Company, nossos especialistas estão preparados para propor soluções que melhor se adequem as necessidades do cliente no que diz respeito a testes automatizados. Trabalhamos desde o levantamento de requisitos, documentação e análise dos processos candidatos à automação.

Entre em contato conosco e conte com resultados garantidos!

Compartilhar:
0 Comentários

Deixe seu comentário

Fale AGORA com um de nossos consultores

Comentário adicionado com sucesso