2 objetivos principais dos testes de software | 1 descobrir falhas ou defeitos
2 validadar se atende ao solicitado pelo cliente |
meta do teste de validação | se espera que o software execute corretamente com respostas como esperado |
meta do teste de defeitos | a exposição de defeitos |
confiabilidade de software | possibilidade de operação sem falhas por um dado período de tempo |
definição de teste de software | é o processo de executar um determinado software com a intenção de encontrar defeitos |
4 característica de um bom teste | alta probabilidade de encontrar defeitos
não é redundante
é o melhor da sua classificação
nem muito simples nem muito complexo |
7 princípios do teste de software | demostra a presença de defeitos
testes exaustivos são impossíveis
teste o mais breve possível
agrupamento dos defeitos mais sensíveis
paradoxo do pesticida
teste dependem do contexto
ausência de defeitos é uma ilusão |
teste demonstra a presença de defeitos | demonstra a existência, mas não pode provar a ausência |
testes exaustivos são impossíveis | testar todas as combinações de entradas e saídas é inviável |
teste o mais breve possível | para diminuir os custo da correção |
agrupem os defeitos mais sensíveis | áreas mais sensíveis podem ser priorizadas |
paradoxo do pesticida | o mesmo teste aplicado varias vezes pode para de detectar defeitos |
testes dependem do contexto | o teste deve ser realizado dependendo do contexto do software |
ausência de defeitos é uma ilusão | identificar defeitos não garante que o software esta pronto |
caso de teste | são especificações de entradas para o teste e das saídas esperadas |
7 características de um software testável | operabilidade
observabilidade
controlabilidade
decomponibilidade
simplicidade
estabilidade
compreensibilidade |
etapas do processo de teste | planejamento
preparação
especificação
execução
entrega |
processo de teste: planejamento | elaboração de um projeto de teste |
processo de teste: preparação | organização do ambiente de teste |
processo de teste: especificação | elaboras os casos de teste e os roteiros de teste |
processo de teste: execução | execução dos teste conforme roteiro |
processo de teste: entrega | elaboração do relatório de conformidade e não conformidade |
2 artefatos produzidos no processo de teste | caso de teste e plano de teste |
plano de teste | planejamento para a execução das atividades, cronograma de atividades e responsáveis. script de teste |
casos de teste | execução dos teste propriamente dito.
condições para testar um conjunto de entradas, conjunto de ações e resultados esperados |
níveis de teste | quando |
técnicas de teste | como |
tipos de teste | o que testar |
níveis de teste / quando | teste unitário
teste integração
teste de requisito
teste de sistema |
teste unitário | código
focalizam o esforço de verificação na menor unidade do projeto de software, isto é, no componente ou no módulo de software |
teste de integração | projeto
visam testar as interfaces buscando falhas decorrente da integração dos módulos do sistema |
teste de validação ou aceitação | requisitos / expectativa do usuário
teste de verificação tem por finalidade encontrar defeitos e inconsistências com relação a sua especificação de requisitos |
teste de sistema | engenharia de sistema |
teste alto nível vs teste baixo nível | baixo nível: verificação do código
alto nível: validação dos requisitos |
o que é verificado no teste de sistema | verifica o funcionamento do software integrado aos outros sistemas |
3 técnicas de teste | teste caixa branca - lógica
teste caixa preta - dados
teste caixa cinza |
teste caixa branca | avalia a estrutura e procedimentos internos dos componentes |
divisões do teste da caixa branca | teste de caminho básico
teste de estruturas de controle |
teste de caminho básico | determina medida de complexidade lógica |
teste de estrutura de controle | validar estrutura de controle como laços, condicionais |
teste caixa preta | detecta erros de comportamento ou desempenho, casos de teste derivado das especificações de requisitos |
subdivisões do teste de caixa preta | baseado em grafos
partição de equivalência
análise de valor limite
matriz ortogonal |
teste caixa cinza | mistura do teste caixa branca com caixa preta |
teste de desempenho | é projetado para testar o desempenho do software em tempo de execução dentro de um sistema integrado, já operando |
objetivo do teste de desempenho | determinar carga específica em que o sistema pode operar |
quando executar teste de desempenho | o quanto antes, no nível de teste de unidade ou de integração |
teste de estresse | esse teste buscar usar o sistema além da capacidade operacional normal e observar a resposta do sistema, testa requisitos não funcionais |
teste de carga | testa os software sobre condições específicas |
teste de usabilidade | busca identificar falhas que dificultam a usabilidade do software |
teste de usabilidade em interfaces web | é fundamental a elaboração de protótipos |
teste de regressão | visa garantir a integridade de um software já testado que tenha recebido uma nova implementação |
teste de fumaça | é realizado imediatamente após as fases de desenvolvimento busca verificar se o software roda e provê suas funcionalidades e características básica |
teste de comparação | execução do mesmo teste em duas versões diferentes do sistema e comparação dos resultados |
teste alfa | é realizado pelo cliente em ainda com o sistema em ambiente controlado
conduzido pelo cliente no ambiente do desenvolvedor |
teste beta | é realizado pelo cliente e ocorre na instalação real de trabalho do cliente
conduzido pelo cliente, no seu próprio ambiente |
teste de recuperação | fazer com que o software falhe e verificar se ocorre corretamente a sua recuperação |
teste de compatibilidade | serve para observar se o software pode ser executado em um determinado sistema operacional |
teste de segurança | testa a segurança do sistema contra invasão externa
somente realizado em estágios avançados de desenvolvimento |
desenvolvimento dirigido a teste | escreve o teste antes de implementar o código |
validação vs verificação | verificação dos requisitos validação aceitação do cliente |