1. Planejamento
1.1. Cenários de Testes
1.1.1. O cenário é um documento que descreve situações de testes (estórias) que ajudam no trabalho do testador durante a execução dos casos de testes. O cenário descreve o que deve ser testado.
1.2. Casos de Testes
1.2.1. É um documento que possui entradas e saídas esperadas. Serve como base para o testador executar os testes. O caso de teste descreve como deve ser testado.
2. Testes manuais
2.1. É a porta de entrada para o mundo do QA.
2.2. O teste manual é ótimo para encontrar erros de layout, erros triviais que não são encontrados nos testes automatizados.
2.3. Conseguimos analisar a experiência do usuário UX
2.4. O problema do teste manual é o trabalho contínuo e o re-trabalho. Pensando numa aplicação com 10 telas e 10 funções em cada tela, teríamos pelo menos 100 testes para executar. Nós fazemos o teste sem problemas, mas digamos que seja feita uma mudança no código que afete boa parte do sistema, então teremos que refazer os mesmos 100 testes e quem sabe algum novo que surja, e essa bateria se repete a cada mudança no sistema. Além de cansar o QA, podemos ter o problema de vício de testes ( a pessoa entra no piloto automático e não percebe mais pequenas alterações no sistema). Outro fator é o tempo gasto com o re-teste, um tempo que poderia ser aproveitado com melhorias, outras técnicas de testes, estudos, etc... Ou seja, o teste manual é um processo que utiliza muito tempo e esforço do profissional, por isso que o teste automatizado é essencial.
3. Testes automatizados
3.1. Os testes automatizados são muito explícitos (preto no branco). É a utilização de ferramentas que executam os testes na aplicação sem a intervenção humana, por meio de scripts. A ferramenta lê o script, simula o usuário utilizando o software e verifica os resultados esperados. A automação de testes traz diversas vantagens: - É mais rápido - Diminui a chance de erro humano - Reduz o esforço com tarefas repetitivas
4. Tipos de testes
4.1. Testes Unitário
4.1.1. É a fase em que se testam as menores unidade do código. Subrotinas, métodos, classes, trechos de código. A finalidade do teste é encontrar por falhas de funcionamento dentro de uma pequena parte do sistema, funcionando independentemente do todo.
4.2. Testes de Integração
4.2.1. Tem por objetivo encontrar falhas de integração entre as unidades. O teste é alimentado pelos módulos previamente testados individualmente pelo teste de unidade.
4.3. Testes Funcionais
4.3.1. O teste funcional também é conhecido como caixa-preta, é feito para verificar por falhas, problemas de interface, navegação, entender como o sistema se comportaria durante a navegação de um usuário.
4.4. Testes de Aceitação
4.4.1. A meta do teste de aceitação é verificar se o software está pronto e pode ser usado pelos usuários finais, para executar as funções e tarefas para as quais foi criado. Tem como objetivo verificar o sistema em relação aos seus requisitos e às necessidades do usuário, geralmente realizado num ambiente parecido com o ambiente de produção e por um grupo restrito de usuários.
4.5. Testes Exploratórios
4.5.1. Teste exploratório é um teste que depende da experiência e intuição do testador, não segue um roteiro, apenas a intuição do testador diante do conhecimento do sistema.
4.6. Testes de Regressão
4.6.1. Os testes de regressão são utilizados para garantir que uma funcionalidade ou parte do software já testado anteriormente, continue funcionando, mesmo após sofrer alguma implementação ou manutenção.