O documento discute testes automatizados, destacando que seu objetivo é simplificar o esforço de testes manuais através de scripts programados. Ele explica que testes automatizados reduzem tempo e custos de testes, aumentam qualidade e retorno do investimento. Alguns tipos de testes automatizados mencionados são testes unitários, de integração e de interface.
3. O objetivo dos testes automatizados é simplificar o máximo possível
do esforço de testes manuais através de um conjunto de scripts
programados.
Se um teste manual específico consome uma grande porcentagem
dos recursos de uma equipe de garantia de qualidade (QA), por
exemplo, esse processo pode ser um bom candidato para
automação.
O que é
4. - Reduz o tempo de testes manuais;
- Aumenta a qualidade do produto final, reduzindo a chance de
entregar funcionalidades que antes funcionavam e, depois de
uma atualização não funciona mais;
- Redução de custos, ganho na qualidade gerando maior retorno
em relação ao investimento realizado;
- Aumenta a qualidade da arquitetura e estrutura interna da
aplicação;
- etc.
Vantagens
5. Testes unitários: Teste de cada classe da aplicação de forma
individual e isolada;
Testes de integração: Teste de uma funcionalidade do sistema em
que integra várias classes, por exemplo, um endpoint de uma API;
Tipos de testes automatizados (alguns)
6. Testes de interface: Testes de telas, para ver se o comportamento
delas está correto.
Testes de sistema: São testes criados para validar a estrutura do
sistema ou alguma particularidade arquitetural.
Tipos de testes automatizados (alguns)
9. - project/.env.testing: Arquivo com variáveis de ambientes
carregado automaticamente ao executar os testes.
- project/phpunit.xml: Arquivo com as configurações do PHPUnit.
- project/tests/: Pasta que conterá todos os testes automatizados
do sistema
Setup
10. Até a versão 7.x do Laravel: project/vendor/bin/phpunit
Laravel 7.x ou mais recente: php artisan test
Dica: Projetos que possuem o Makefile, pode ser interessante
criar uma rotina test para executar os testes: make test
Executar suite de testes
15. - Testar classes e métodos de forma individual e isolada.
- Para cada classe na aplicação, existirá uma classe de teste
unitário seguindo o mesmo namespace dentro da pasta de
testes unitários.
- Validar comportamentos através de asserções.
- São rápidos! Deve ser possível executar centenas/milhares de
testes em poucos segundos.
- Evitar acesso ao banco de dados, leitura de arquivos,
consultas ao Redis, etc.
Testes unitários: Conceitos