Tipos de testes de software Apresentamos abaixo uma relação de testes, com suas respectivas definições. Nas próximas aulas iremos estudar alguns testes descritos aqui em detalhes. Vocês irão perceber que alguns tipos de testes se sobrepõem, sendo as próprias definições abrangentes ou específicas, conforme a sua execução: Teste Funcional Verifica a aceitação das funcionalidades (dados, processamento e respostas) e a implementação apropriada das regras de negócio. Este tipo de teste é baseado nas técnicas de caixa-preta. Teste de Volume Submete grandes quantidades de dados ao sistema para determinar quais limites que causam a falha do software são alcançados. Este tipo de teste também identifica a carga ou volume máximo persistente que o sistema pode suportar por um dado período. Teste de Segurança Verifica as restrições de acesso em nível de aplicação e sistema. Teste de Acessibilidade Verifica se a interface do usuário fornece o acesso apropriado às funções do sistema e a navegação adequada. Este teste garante que os objetos dentro da interface do usuário funcionem de acordo com os padrões definidos pelos requisitos. Teste de Usabilidade Verifica a facilidade que o software possui de ser claramente entendido e facilmente operado pelos usuários. Teste de Estresse Verifica o comportamento do sistema durante condições limite ou fora da tolerância esperada. Tipicamente envolve a escassez de recursos ou a concorrência por recursos. Teste de Regressão Verifica se alterações efetuadas em um software geraram alguma inconsistência no aplicativo ou em outros sistemas que se relacionam com ele. Teste de Integridade Avalia a robustez dos componentes do software (resistência a falhas) e a compatibilidade técnica em relação à linguagem, à sintaxe e à utilização de recursos. Esse teste é implementado e executado em vários componentes do software, individualmente e de forma integrada. Teste de Estrutura Avalia a adequação dos componentes do software em relação ao seu design e à sua formação. Em geral, esse teste é realizado em aplicativos habilitados para a Web, garantindo que todos os links estejam conectados, que o conteúdo apropriado seja exibido e que não haja conteúdo órfão. Teste de Desempenho Mede e avalia o tempo de resposta, o número de transações e outros requisitos sensíveis ao tempo, com carga normal e carga limite de trabalho. Teste de Carga Mede e avalia as variações de desempenho e a sua habilidade de continuar funcionando apropriadamente sob cargas de trabalho diferentes. Teste de Contenção Verifica a habilidade de um componente de software em suportar demanda múltipla por um recurso (registros de dados, memória etc.). Teste de Perfil de Desempenho Verifica o perfil de desempenho dos componentes de software, a fim de identificar gargalos de desempenho e processos ineficientes. São monitorados o fluxo de execução, o acesso a dados e as chamadas de função. Teste de Configuração Verifica a operação do sistema em diferentes configurações de software e hardware. As especificações de hardware e software podem mudar e esta mudança pode afetar o sistema. Teste de Instalação Possui dois propósitos: Garantir que o software possa ser instalado (completamente, de forma personalizada ou atualizado) sob condições apropriadas; Verificar que, uma vez instalado, o software funciona corretamente. Plano de Teste Dependendo do tamanho do projeto de desenvolvimento, poderemos ter diversos planos de teste para um mesmo projeto de teste de software. Esses planos podem ser separados por módulos, funcionalidades ou por requisitos, ou por um grupo de cada um destes elementos. Podem ser também classificados por nível de teste: unitário, integração, sistema e aceitação. Segundo a IEEE829, o Plano de teste deve ter os seguintes campos: 1) Introdução 1.1) Identificador do plano de teste 1.2) Escopo 1.3) Referências 1.4) Nível na sequência de teste 1.5) Classe de teste e visão das condições de teste 2) Detalhes para este nível do plano de teste 2.1) Itens de teste e seus identificadores 2.2) Matriz de rastreabilidade do teste 2.3) Funcionalidades a serem testadas 2.4) Funcionalidades que não serão testadas 2.5) Abordagem do teste 2.6) Critérios de liberação/falha dos itens 2.7) requisitos de suspensão e retomada 2.8) Entregas do teste 3) Gerência de teste 3.1) Tarefas do teste 3.2) Necessidades de ambientes 3.3) Responsabilidades 3.4) Integração entre as partes envolvidas 3.5) Recursos e sua alocação 3.6) Treinamento 3.7) Cronograma, estimativas e custos 3.8) Riscos e contingências 4) Geral 4.1) Procedimentos de garantia de qualidade 4.2) Métricas 4.3) Cobertura do teste 4.4) Glossário 4.5) Procedimentos de alteração do documento e histórico Para detalhamento do Plano de teste proposto pelo IEEE acesse: Plano de teste detalhado.