Uma abordagem simples para alguns tipos de testes.
Algumas vezes enquanto trabalhava em mais frentes no ciclo de teste de software ficava complicado entender cada tipo de teste e onde ele se encaixava no contexto. Então, com o tempo, estudo e algumas leituras, fui criando algumas perguntas para cada tipo de teste com qual eu mais trabalhei. Segue abaixo:
Teste unitário
O conceito básico de teste unitário é garantir que a menor unidade do seu sistema possa ser testado, como: Funções, classes, métodos e em alguns casos até módulos.
Definição:
POR QUE: é a garantia de assertividade do código
QUEM: Desenvolvedores e alguns testers mais técnicos.
O QUE: Funções, classes, métodos e módulos (Menor parte testável)
QUANDO: um código novo é escrito
ONDE: Na maioria das vezes ocorrem local.
COMO: Junit, PHPUnit, Jasmine, etc.
Teste de API ou Serviços
É um tipo de teste para validar e avaliar os retornos de um dado serviço, pode ser ele REST ou SOAP.
Definição:
POR QUE: é a garantia de que os serviços estão comunicáveis e os retornos estão funcionando
QUEM: Desenvolvedores e alguns testers mais técnicos.
O QUE: Novos serviços implementados
QUANDO: Assim que ocorrer alguma mudanças ou uma nova API for desenvolvida
ONDE: Local e em ambientes de homologação
COMO: Postman/Newman, SoapUI ou até mesmo consulta via http por alguma linguagem de programação a sua escolha.
Teste de Aceitação
É uma fase do processo de teste responsável por validar os requisitos do sistema e do usuário, antes de ser publicado.
Definição:
POR QUE: é a garantia de que os requisitos do sistema e a expectativa do cliente estão garantidas
QUEM: Tester Manual e Tester automação.
O QUE: Verificação de User stories, validação de campos e verificação de novos recursos
QUANDO: Quando a funcionalidade estiver finalizada e testada unitariamente.
ONDE: Ambientes de teste e homologação.
COMO: Cucumber, Protractor e Jasmine, Codeception, CodeceptionJS, etc.
Teste de regressão
É a fase de teste quando aplicamos uma nova versão do sistema e garantimos que não foram encontrados novos bugs.
Definição:
POR QUE: é a garantia que todo sistema está funcionando quando implementado novas versões de forma integrada
QUEM: Tester Manual e Tester automação, em alguns casos mais ágeis o Analista de negócio e o Product Owner.
O QUE: Fluxo do usuário, Fluxo positivo, algumas coisas de desempenho e segurança
QUANDO: Quando o teste de aceitação é concluído
COMO: Teste exploratório ou utilizando ferramentas com webdriver.
Para mim as maiores dificuldades foram entender o porquê e quando tinha que entrar cada tipo de teste. Então espero que possa ajudar mais pessoas que como eu, sentiram essa necessidade!