Princípio 1 – Teste demonstra a presença de defeitos
Princípio 2 – Teste exaustivo é impossível
Princípio 3 – Teste antecipado
Princípio 4 – Agrupamento de defeitos
Princípio 5 – Paradoxo do Pesticida
Princípio 6 – Teste depende do contexto
Princípio 7 – A ilusão da ausência de erros
1.4 Fundamentos do processo de teste
1.5 A psicologia do teste
2. Teste durante o
ciclo de vida do
software
3. Técnicas
Estáticas
3.1 Revisão e o Processo de Teste
Teste estático não necessita da execução do software.
Teste dinâmico é a execução do código.
Revisão testa o produto do software (especificação, diagramas, código, casos de
teste, etc), pode ser feito antes do teste dinâmico. Os benefícios são redução
tempo do teste, menos defeitos, melhoria comunicação, etc.
A forma como uma revisão é conduzida
depende do seu objetivo, que pode ser
encontrar defeitos, compreender, decidir ou
tomar decisões. Podem ser formais ou
informais.
3.2.1 Fases de uma revisão formal
Planejamento
Definir os critérios de revisão. Selecionar a equipe. Alocar as funções. Definir os critérios de entrada e de saída para os diversos tipos de revisão
formal (ex.: inspeção). Selecionar quais as partes dos documentos será visto. Checar os critérios de entrada (para diversos tipos de revisão formal).
Kick-off
Distribuir os documentos. Explicar os objetivos, processos e documentos para os participantes.
Preparação individual
Análise da documentação para a reunião de revisão. Anotar os defeitos em potenciais, questões e comentários.
Reunião de revisão
Discussão ou registro, com resultados documentados ou anotações (para os tipos de revisões mais formais). Anotar os defeitos, fazer recomendações
para o tratamento de defeitos ou tomar decisões sobre os defeitos. Examinar, avaliar e registrar questões durante as reuniões de acompanhamento.
Retrabalho
Resolver defeitos encontrados, tipicamente feitos pelo autor. Registrar os status atuais dos defeitos (para revisões formais).
Acompanhamento
Checar se os defeitos foram encaminhados. Obter métricas. Checar os critérios de saída (para tipos de revisões formais).
3.2.2 Papéis e responsabilidades
Gerente
toma decisão durante a realização da revisão, aloca tempo nos cronogramas de projeto e determina se o objetivo da revisão foi atingido
Moderador
a pessoa que lidera a revisão dos documentos, incluindo o planejamento da revisão, e o acompanhamento após a reunião.
Se necessário, mediará entre os vários pontos de vista e é muitas vezes quem responderá pelo sucesso da revisão.
Autor
é a pessoa que escreveu ou que possui a responsabilidade pelos documentos que serão revisados.
Revisores ou
Inspetores
indivíduos com conhecimento técnico ou de negócio, que identificam e descrevem os defeitos encontrados no produto em revisão. Podem ser
escolhidos para representar diferentes funções e perspectivas no processo de revisão, e é parte integrante de qualquer reunião de revisão.
Redator
documenta todo o conteúdo da reunião, problemas e itens em aberto que foram identificados durante a reunião.
3.2.3 Tipos de revisão
Revisão informal
A documentação é opcional. Principal propósito: uma forma de obter algum benefício a um baixo custo.
Acompanhamento
Reunião conduzida pelo autor. Na prática pode variar de informal para muito formal.
Principal propósito: aprendizagem, obtenção de entendimento e encontrar defeitos.
Revisões técnicas
Documentado, processo de detecção de defeito, inclui colegas especialistas ou técnicos. Idealmente são conduzidas por um moderador
treinado (que não seja o autor). Elaboração de um relatório de revisão. Principais propósitos: discussão, tomada de decisões, avaliar
alternativas, encontrar defeitos, resolver problemas técnicos e checar a conformidade da padronização das especificações.
Inspeção
Conduzida pelo moderador (que não seja o autor). Papéis definidos. Utilização de métricas. Processo formal baseado em
regras e utilização de check-list. Relatório de inspeção, lista de defeitos encontrados. Principal propósito: encontrar defeitos.
Um único documento pode ser objeto para mais de uma revisão.
3.2.4 Fatores de sucesso para as revisões
Cada revisão tem um objetivo
claramente definido.
A pessoa adequada para os
objetivos da revisão deve ser
envolvida.
Testadores são valorizados como revisores que
contribuem para a revisão e aprendizado sobre o
produto o que lhes permite preparar os testes
facilmente.
Defeitos encontrados são encorajados e
expressados objetivamente.
Técnicas de revisão são aplicadas de forma a
combinar com o tipo e nível do software e revisores.
Caso necessário, check-lists ou papéis são utilizados para aumentar a
eficiência na identificação de defeitos.
3.3 Análise Estática por Ferramentas
Análise estática pode localizar defeitos que são dificilmente encontrados em testes.
Como as revisões, a análise estática encontra defeitos ao invés de falhas.
Benefícios
Detecção de defeitos antes da execução do teste. Conhecimento antecipado sobre aspectos suspeitos no
código ou programa através de métricas, por exemplo, na obtenção de uma medida da alta complexidade.
Identificação de defeitos dificilmente encontrados por testes dinâmicos. Detecção de dependências e
inconsistências em modelos de software, como links perdidos.
Aprimoramento da manutenibilidade do código e construção. Prevenção de defeitos, se as lições forem
aprendidas pelo desenvolvimento.
Defeitos mais comuns descobertos
Referência a uma variável com valor indefinido. Inconsistências entre as interfaces dos módulos e componentes.
Variáveis que nunca são usadas ou impropriamente declaradas. Código morto.
Falta de lógica ou lógica errada (loops infinitos). Construções excessivamente complicadas.
Violação de padrões de programação. Vulnerabilidade na segurança. Violação de sintaxe e de modelos.
Ferramentas de análise estática analisam o código do programa, gerando arquivos do tipo HTML e XML, por exemplo.
Ferramentas de análises estáticas são tipicamente usadas por desenvolvedores antes e durante o teste de componente
e de integração e por projetistas durante a modelagem do software.
4. Técnica de
Modelagem de
Teste
4.1 Identificando as condições de testes e projetando os casos de testes
Durante a análise de teste
a documentação é analisada para determinar o que testar, essas condições de teste são
definidas como um item ou evento que pode ser verificado por um ou mai casos de teste
estabelecer a rastreabilidade das condições de testes na volta até as especificações e
requisitos permitem analisar o impacto quando os requisitos mudam
Durante a modelagem de teste
os casos de teste e os dados de teste são especificados e criados
um caso de teste consiste de um conjunto de valores de entrada, pré-condições de execução,
resultados esperados e pós-condições de execução, desenvolvidos para cobrir certas condições
de teste
Durante a implementação do teste
os casos de teste são desenvolvidos, implementados, priorizadas e organizadas na especificação de
procedimento de teste
O procedimento de teste especifica a sequência de ações para a uma execução de teste
4.2 Categorias das técnicas de modelagem de teste
O propósito da técnica de modelagem de teste é identificar as condições e os casos de testes
Classificar testes como caixa-preta ou caixa-branca é uma diferenciação clássica
Técnicas
Caixa-Preta
técnicas baseadas em especificação
são uma forma de derivar e selecionar as condições e casos de testes
baseados na análise da documentação
isto inclui testes funcionais e não funcionais, para um componente ou sistema
sem levar em consideração a sua estrutura interna
Técnicas
Caixa-Branca
técnicas estruturais ou baseadas em estrutura
são baseadas na estrutura interna de um componente ou sistema.
4.3 Técnicas baseadas em especificação
ou Caixa-Preta
4.3.1 Partição de Equivalência
as entradas do software ou sistema são divididas em grupos que tenham um comportamento similar,
podendo ser tratados da mesma forma
4.3.2 Análise do Valor Limite
4.3.3 Tabela de Decisão
4.3.4 Teste de transição de estados
4.3.5 Teste de Caso de Uso
4.4 Técnicas baseadas em estrutura
ou Caixa-Branca