quarta-feira, 22 de fevereiro de 2012

Conceito: Tipos de Testes


Ilustração 1 - FURPS, modelo qualidade de acordo com RUP
Fonte da imagem - QualidadeBR

De acordo com Bastos, 2007  a segunda dimensão do teste são os tipos de teste, todo o software visa atender uma demanda de qualidade, e para isso deve atender a certos atributos de qualidade como: funções, interface, características de tempo de resposta e de segurança, integridade, habilidade de ser instalado e executado em diferentes plataformas, habilidades de lidar com muitas requisições. Diferentes tipos de teste são implementados e executados,  cada tipo de teste tem objetivo e técnica de suporte específicos e cada técnica de teste foca em testar uma ou mais características ou atributos do objetivo do teste.
Características da qualidade, segundo o modelo Rational Unified Process (RUP), é conhecido como FURPS ( Funcionality, Usability, Reliability, Performance, Supportability) Funcionalidade, Usabilidade, Confiabilidade, Desempenho, Suportabilidade.
Functionality (Funcionalidade) – representa todo aspecto funcional do software, ou seja seus requisitos. É uma categoria com diversas subcategorias que variam de acordo com a aplicação. Sua medição considera, principalmente, o cumprimento dos requisitos especificados. Exemplo, de acordo com RUP
Teste de função: Testes destinados a validar as funções do objetivo do teste conforme o esperado, fornecendo os serviços, métodos ou casos de uso necessários. Esse teste é implementado e executado em diferentes objetivos do teste, como unidades, unidades integradas, aplicativos e sistemas.
Teste de segurança: Testes destinados a garantir que o objetivo do teste e os dados (ou sistemas) possam ser acessados apenas por determinados atores. Esse teste é implementado e executado em vários objetos de teste.
Teste de volume: Teste destinado a verificar a capacidade do objetivo do teste de lidar com um grande volume de dados, como entrada e saída ou residente no banco de dados. O teste de volume abrange estratégias de teste, como, por exemplo, a entrada de dados do volume máximo de dados em cada campo ou a criação de consultas que retornem todo o conteúdo do banco de dados ou que tenham tantas restrições que nenhum dado seja retornado.

Usability (Usabilidade) – é o atributo que avalia a interface com o usuário. Possui diversas subcategorias, entre elas: prevenção de erros; estética e design; ajudas (Help) e documentação; consistência e padrões. Exemplo, de acordo com RUP 
Teste de usabilidade: Testes que enfatizam: fatores humanos, estética, consistência na interface do usuário, ajuda on-line e contextual, assistentes e agentes, documentação do usuário e material de treinamento.

Reliability (Confiabilidade) – refere-se a integridade, conformidade e interoperabilidade do software. Os requisitos a serem considerados são: freqüência e gravidade de falha; possibilidade de recuperação; possibilidade de previsão; exatidão; tempo médio entre falhas. Exemplo, de acordo com RUP 
Teste de integridade: Testes destinados a avaliar a robustez do objetivo do teste (resistência a falhas) e a compatibilidade técnica em relação a linguagem, sintaxe e utilização de recursos. Esse teste é implementado e executado em vários objetivos do teste, como unidades e unidades integradas.
Teste de estrutura: Testes destinados a avaliar a adequação do objetivo do teste em relação a 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. Consulte Conceitos: Teste de Estrutura para obter informações adicionais.
Teste de stress: Tipo de teste de confiabilidade destinado a avaliar como o sistema responde em condições anormais. O stress no sistema pode abranger cargas de trabalho extremas, memória insuficiente, hardware e serviços indisponíveis ou recursos compartilhados limitados. Normalmente, esses testes são executados para compreender melhor como e em quais áreas o sistema será dividido, para que os planos de contingência e a manutenção de atualização possam ser planejados e orçados com bastante antecedência.


Performance (Desempenho) – avalia os requisitos de desempenho do software. Podendo usar como medida diversos aspectos, entre eles: tempo de resposta, consumo de memória, utilização da CPU, capacidade de carga e disponibilidade da aplicação. Exemplo, de acordo com RUP 
Teste de avaliação de desempenho: Tipo de teste de desempenho que compara o desempenho de um objetivo do teste (novo ou desconhecido) a um sistema e uma carga de trabalho de referência conhecidos.
Teste de contenção: Testes destinados a verificar se os objetivos do teste podem lidar de forma aceitável com as demandas de vários atores no mesmo recurso (registros de dados, memória, etc.).
Teste de carga: Tipo de teste de desempenho usado para validar e avaliar a aceitabilidade dos limites operacionais de um sistema de acordo com cargas de trabalho variáveis, enquanto o sistema em teste permanece constante. Em algumas variáveis, a carga de trabalho permanece constante e a configuração do sistema em teste é que varia. Geralmente, as medições são tomadas com base na taxa de transferência de dados da carga de trabalho e no tempo de resposta da transação alinhado. As variações na carga de trabalho normalmente incluem a emulação das cargas de trabalho médias e máximas que ocorrem dentro de tolerâncias operacionais normais. 
Perfil de desempenho: Teste em que o perfil de andamento do objetivo do teste é monitorado (inclusive fluxo de execução, acesso a dados e chamadas de função e de sistema), a fim de identificar e lidar com gargalos de desempenho e processos ineficientes.


Supportability (Suportabilidade) – os requisitos de suportabilidade agrupam várias características, como: testabilidade, adaptabilidade, manutenibilidade, compatibilidade, configurabilidade, instalabilidade, escalabilidade, localizabilidade entre outros. Exemplo, de acordo com RUP 
Teste de configuração: Teste destinado a garantir que o objetivo do teste funcione conforme o esperado em diferentes configurações de hardware e/ou software. Esse teste também pode ser implementado como um teste de desempenho do sistema.
Teste de instalação: Teste destinado a garantir que o objetivo do teste seja instalado conforme o esperado em diferentes configurações de hardware e/ou software e sob diferentes condições (como no caso de espaço insuficiente em disco ou interrupção de energia). Esse teste é implementado e executado em aplicativos e sistemas.

Nenhum comentário:

Postar um comentário