![]() |
Created by Raphael Luiz Fonseca
almost 10 years ago
|
|
- Projetar uma série de testes com a máxima probabilidade de encontrar erros
- Correção de erros encontrados na verificação ou na validação
- Adaptação e mudanças externas
- Melhorias requeridas pelos usuários
- Abordagem pró-ativa com foco na melhoria da manutibilidade
- Causa de uma falha ( aspecto físico )
- Ex: código incorreto, defeito de hardware
- Estado intermediário, de instabilidade ( aspecto informação )
- Pode resultar numa falha, se propagado até a saída
- Incapacidade do software de realizar a função requisitada (aspecto externo).
- Manifestação observável
- Ex: terminação anormal, restrição temporal violada.
- Refere-se ao conjunto de atividades que garante que o software implementa corretamente as funções especificadas.
- "Estamos construindo o produto de forma correta?"
- Inspeções ( Verificação Estática )
- Testes ( Verificação Dinâmica )
- Refere-se ao conjunto de atividades que garantem que o software construído implementa o que o cliente realmente desejava.
- "Estamos construindo o produto certo?"
- Homologação, Teste de Aceitação
- Revisões
- Focada no processo
- Orientada a prevenção
- Ex: Metodologias, padrões
- Garante que você está fazendo as coisas da maneira certa.
- Focada no produto
- Orientada a detecção
- Ex: Checagem de requisitos, teste de software
- Garante que os resultados do seu trabalho estão de acordo com o esperado.
- Análise Estática
- Não checam RNF's
- São abordagens formais para documentar as revisões do código
- A intenção é a detecção de erros e não correção.
- Checa a codificação de loops, código, inalcançável
- Detecta variáveis não inicializadas, variáveis que nunca foram usadas.
- Checa a consistência de declarações de rotinas e procedimentos e como são utilizados
- Processo de executar um programa com o objetivo de encontrar erros.
- Não garante que o software está livre de erros.
- Focado nas entradas e saídas especificadas nos requisitos funcionais
- Baseado em prés e pós condições
- Busca erros de comportamento e desempenho
- Técnicas usadas: Testes baseados em grafos, matriz, análise de valores limítrofes, particionamento de equivalências
- Focado nas estruturas internas
- Análise de caminhos lógicos
- Garantir que todos os caminhos independentes de um módulo sejam executados pelo menos uma vez
- Executar todas as decisões lógicas
- Todos os laços
- Meio termo, branca e preta
- Alguns conhecimentos de ambas partes.
- Toda aplicação é construída por "objetos"
- Todos objetos são projetados em gráficos
- Descobrir comportamentos inesperados
- Baseada em dividir o domínio de entradas de um programa em classe de dados
- Os erros acontecem nos limites do domínio de entrada e não no "centro"
- Os testes devem ser gerados considerando esse valores "limítrofes"
- Onde calcula-se a complexidade lógica do software e utiliza essa medida como base para descobrir os caminhos básicos
- Teste de laços, condicionais, etc
- Fornece uma medida quantitativa da complexidade lógica de um programa
- Primeiro nível de testes, onde componentes individuais são testados.
- Ferramenta usada: JUnit
- Framework de código aberto
- Testar códigos em JAVA
- Integra e testa componentes de um sistema com o objetivo de encontrar problemas durante suas interações
- Desenvolve o esqueleto do sistema e o preenche com os componentes do sistema
- Integra os componentes de infraestrutura e depois adiciona componentes funcionais
- Demonstrar a conformidade com os requisitos de software
- O ambiente utilizado deve ser o mais próximo do real
- Testes conduzidos pelo cliente no ambiente do desenvolvedor
- Ambiente controlado
- É conduzido em um ou mais locais do cliente, pelo usuário final do produto.
- O usuário anota todos os problemas e depois envia para o desenvolvedor
- Ambiente real
- São conduzidos em um ambiente completo e integrado, por várias pessoas.
- Visa a executar um subconjunto de testes que já foram executados com o intuito de garantir que as mudanças ocorridas não propagaram efeitos indesejados.
- Refere-se ao primeiro teste realizado depois de integrar os componentes
- Força o software a falhar e verifica se a recuperação foi feita de forma adequada.
- O testador visa penetrar no sistema de qualquer maneira
- O objetivo do teste é assegurar que a tentativa de penetração custe mais caro que os ganhos que o hacker virá a ter.
- Confrontar os programas com situações anormais
- "Até onde ele aguenta?"
- Pode ocorrer durante todos os estágios de testes
- Visa garantir que o sistema atende aos níveis de desempenho e tempo de resposta acordamos nos requisitos
- Avalia o sistema do ponto de vista do usuário final
- É o processo que resulta na remoção de um erro encontrado
- Popula-se o sistema com escritas ao console para tentar encontrar erros.
- É o métodos menos eficiente
- Começando a partir de onde o erro ocorreu, deve-se rastrear o código manualmente até a fonte do erro.
- Uma "hipótese de causa" é elaborada e os dados relacionados ao erro são utilizados para prová-la
- Define metas e objetivos de teste no escopo da iteração
- Tem a finalidade de identificar e comunicara as condições específicas nas quais as funcionalidades serão testadas
- Define um conjunto de entradas de teste, condições de execução e resultados esperados.
- Descrição do Caso de Teste
- Pré-Condições
- Entradas
- Pontos de Observação
- Pontos de Controle
- Resultados Esperados
- Pós-Condições
- (1) aplicações clientes individuais são testadas no modo “não conectado” e a operação do servidor e a rede subjacente não são consideradas;
- (2) o software cliente e as aplicações do servidor associadas são testadas em conjunto, mas as operações da rede não são explicitamente exercitadas;
- (3) a arquitetura completa cliente/servidor, incluindo operações e desempenho da rede, é testada.