Estudando para a Certificação CTFL - Quarto Capítulo - Parte I

Resumo sobre o quarto capítulo do syllabus, que trata a respeito de técnicas de modelagem de testes.

Durante a modelagem são criados os casos de testes e os dados de testes. Os casos de testes devem possuir as seguintes informações:

- Valores de entrada;
- Pré-condições;
- Resultados esperados (devem ser definidos antes da execução dos testes);
- Pós-condições;

O padrão IEEE 829-1998 define a documentação.

Categoria das técnicas de modelagem de testes

Testes de caixa-preta
Nos testes de caixa-preta, a estrutura interna do sistema é desconsiderada. Testa-se apenas o que é visível ao usuário. Engloba tanto os testes funcionais como os não funcionais.


Testes de caixa-branca
O teste de caixa branca é baseado na estrutura interna do software. Pode ser chamado de teste de estrutura.

Técnicas baseadas em caixa-preta

Partição de equivalência
- As entradas do sistema são divididas em grupos que tenham um comportamento familiar;
- Pode ser um conjunto de dados válidos, ou dados inválidos (rejeitados pelo sistema);
- Aplicável a todos os níveis de testes;

Análise do valor limite
- Nos limites de uma partição de equivalência é onde existe maior probabilidade para identificar defeitos;
- Valores máximos e mínimos;
- Valores válidos e inválidos;
- Pode ser aplicada em todos os níveis de testes;

Tabela de decisão
- Podem ser usados para regras de negócio;
- As condições de entradas são declaradas como verdadeiro ou falso;
- Cada coluna possui uma regra de negócio que define uma única combinação que resulta na execução de ações;
- A tabela cria combinações que geralmente não foram exercitadas durantes os testes;

Teste de transição de estados
- Permite ao testados visualizar o software em termos de estado;

Teste de caso de uso
- O caso de uso possui pré-condições que precisam ser garantidas que funcionem;
- Casos de testes baseados em casos de uso facilitam na descoberta de defeitos durante a utilização do sistema no mundo real;

Estudando para a Certificação CTFL - Terceiro Capítulo

Resumo do terceiro capítulo do syllabus, referente a técnicas de testes estáticos.

Os testes estáticos não pressupõem a execução do sistema. Podem ser manuais, revisões em documentações, ou automatizadas através da análise estática.
A revisão pode ser realizada bem antes da execução dos testes dinâmicos. Quanto antes, no ciclo de desenvolvimento, for identificado o defeito, mais barato será para corrigir.

Benefícios da revisão:
- Detecção e correção antecipada de defeitos;
- Redução do tempo no desenvolvimento;
- Redução do custo e tempo de teste;
- Menos defeitos;
- Melhoria na comunicação;

Processo de revisão

Planejamento
- Definir critérios de revisão;
- Selecionar equipe;
- Alocar funções;
- Definir critérios de entrada e de saída;
- Selecionar quais partes do documento serão revisadas;
- Checar critérios de entrada;

Kick-off
- Distribuir documentos;
- Explicar os objetivos;

Preparação individual
- Análisa da documentação;
- Anotar os defeitos em potenciais, questões e comentários;

Reunião de revisão
- Discussão ou registro, com resultados documentados;
- Anotar os defeitos e fazer recomendações para o tratamento de defeitos;
- Examinar, avaliar e registrar questões durante a reunião;

Retrabalho
- Resolver defeitos encontrados, tipicamente feitos pelo autor;
- Registrar os status atuais dos defeitos;

Acompanhamento
- Checar se os defeitos foram encaminhados;
- Obter métricas;
- Checar os critérios de saída;

Tipos de revisão

Revisão informal
- Pode haver programação em pares ou um líder técnico revisando a modelagem e o código;
- Documentação opcional;
- Dependendo do revisor, a importância pode variar;
- Principal propósito: Uma forma de obter algum benefício a baixo custo;

Acompanhamento
- A reunião é conduzida pelo autor;
- Cenários, grupos de discussão e exercícios práticos;
- Sem restrição de tempo;
- Opcionalmente há um redator;
- Pode variar de informal para formal;
- Principal propósito: aprendizagem, obtenção de entendimento e encontrar defeitos;

Revisões técnicas
- Documentado;
- Processo de detecção de defeitos;
- Idealmente deve ser conduzido por um moderador;
- Preparação dos revisores;
- Elaboração do relatório de revisão, contendo informações sobre a lista de defeitos encontrados, se o software corresponde aos requisitos;
- Pode variar de informal para formal;
- Principais propósitos: discussão, avaliar alternativas, encontrar defeitos, resolver problemas técnicos e checar a conformidade;

Inspeção
- Conduzida pelo moderador;
- Análise por pares;
- Utilização de métricas;
- Processo formal baseado em check-list;
- Entradas especificadas e critérios de saída para a aceitação do produto;
- Acompanhamento formal;
- Principal propósito: encontrar defeitos;

Análise estática

- Encontrar defeitos no código fonte do software e na modelagem;

Benefícios
- Detecção de defeitos antes da execução do teste;
- Identificação de defeitos dificilmente encontrados por testes dinâmicos;
- Prevenção de defeitos se as lições forem aprendidas pelo desenvolvimento;

Defeitos mais comuns descobertos por ferramentas de análise estática:
- Referências a uma variável com valor indefinido;
- Código morto;
- Inconsistências entre as interfaces dos módulos e componentes;
- Vulnerabilidade na segurança;

Ferramentas de análise estática são tipicamente usadas por desenvolvedores.


Estudando para a Certificação CTFL - Segundo Capítulo

Continuando os resumos do syllabus para a CTFL:

O segundo capítulo aborda informações sobre os níveis de testes, tipos de testes e teste de manutenção. Abaixo, segue uma breve descrição e resumo sobre cada item:

Níveis de Testes

Teste de Componentes
- Os testes de componentes ocorrem com acesso direto ao código;
- Verifica o funcionamento do software através de módulos, objetos, classes, e são testados separadamente;
- Envolve o desenvolvedor;
- A correção geralmente é realizada no momento da identificação do defeito, e não há documentação ou registros formais de incidentes;
- TDD (Test Driven Development);

Teste de Integração
- Testa-se a interface entre os componentes, interações de diferentes partes de um sistema;
- Testar a integração entre os diferentes componentes do software, e geralmente é realizado após os testes de componentes;
- Teste de integração para verificar as interações entre diferentes sistemas. Pode ser realizado após os testes de sistemas;
- Quanto maior o escopo de testes de integração, maior será a dificuldade para encontrar e isolar o defeito;

Teste de Sistema
- Refere-se ao comportamento de todo o sistema, definido pelo escopo do projeto;
- O ambiente de teste deve simular ao máximo o ambiente de produção;
- Podem ser baseados em: especificação de riscos, ou requisitos, processos de negócios e casos de uso;

Teste de Aceite
- Frequentemente é de responsabilidade do usuário;
- Estabelecer confiança no sistema;

Formas de teste de aceite:

- Teste de aceite do usário;
- Teste operacional de aceite;
- Teste de aceite de contrato e regulamento;
- Alfa e Beta Teste;

Tipos de Testes

Teste de função (teste funcional)
- Testes baseados nas funções descritas em documentos;
- Pode ser realizado em todos os níveis de teste;
- Considera o comportamento externo do software (caixa-preta);

Técnicas de teste funcional:

- teste de controle;
- teste de interconexão;
- teste paralelos;
- teste de requisitos;
- teste de regressão;
- teste de suporte manual;
- teste de tratamento de erros;

Teste de características do produto de software (testes não funcionais)
- É o teste de "como" o sistema trabalha;
- Pode ser realizado em todos os níveis de teste;
- Medir as características;
- Modelo de qualidade: ISO 9126

Técnicas de teste não funcional:

- teste de performance;
- teste de carga;
- teste de estresse;
- teste de usabilidade;
- teste de interoperabilidade;
- teste de manutenibilidade;
- teste de confiabilidade;
- teste de portabilidade;

Teste de estrutura (teste estrutural)
- Caixa-branca;
- Pode ser feito em todos os níveis de teste;
- Baseado na arquitetura do sistema;

Teste relacionado a mudanças (teste de confirmação e regressão)
- O teste de confirmação certifica que um defeito encontrado foi realmente resolvido e removido;
- Teste de regressão: teste repetido de um sistema, após sua modificação, para descobrir a existência de algum defeito que pode ser originado;
- Realizado quando o software ou ambiente é modificado;
- Forte candidato a automação;
- Podem ser realizados em todos os níveis de testes;

Teste de Manutenção

- Após o sistema ser desenvolvido e estar disponível em produção, o mesmo poderá sofrer manutenções periódicas, seja para acrescentar melhorias, ou para corrigir defeitos não detectados anteriormente;
- Além de ser testada a modificação realizada no software, o teste de manutenção inclui testes massivos de regressão;
- O escopo do teste está diretamente relacionado com os riscos que a versão de melhoria ou corretiva poderá causar;



 
Monster Bug