Baixe o app para aproveitar ainda mais
Prévia do material em texto
Curso: Análise e Desenvolvimento de Sistemas Disciplina: Qualidade de Software Aula 09: Técnicas e Níveis de Teste de Software Prof. Hemir da C. Santiago hemircsantiago@fac.pe.senac.br Agenda Responsabilidades do testador Técnicas para testes de software Níveis de testes de software Dimensões do teste Responsabilidades do Testador Projetar testes que... Revelem defeitos Podem ser usados para avaliar a performance, usabilidade e confiabilidade do software Para alcançar isso... Selecionar um conjunto finito de testes Lidar com restrições de tempo e de custo Responsabilidades do Testador É preciso entender: a funcionalidade; o domínio de entradas/saídas; o ambiente de uso do software a ser testado; os detalhes de implementação (alguns casos); os tipos de defeitos comumente ‘inseridos’ durante a programação. Técnicas para Testes de Software Testes exaustivos: Testar todas as entradas possíveis para cada componente ou módulo do software não é realístico, nem economicamente viável. Testes randômicos: Gerar entradas randômicas para testes promovem uma performance baixa de resultados na busca por defeitos. Técnicas para Testes de Software As técnicas de teste são classificadas de acordo com a origem das informações utilizadas para estabelecer os requisitos de teste. As técnicas existentes são: Técnica funcional (ou Teste de caixa-preta) Técnica estrutural (ou Teste de caixa-branca) Técnicas não-funcionais Técnicas para Testes de Software Teste Funcional Caixa-preta o componente de software a ser testado é abordado como se fosse uma caixa-preta; dados de entrada são fornecidos, o teste é executado e o resultado obtido é comparado a um resultado, esperado previamente conhecido. Técnicas para Testes de Software Teste Estrutural Caixa-branca avalia o comportamento interno do componente de software; trabalha diretamente sobre o código-fonte do componente de software: teste de condição; teste de fluxo de dados; teste de loops; teste de caminhos lógicos. Técnicas para Testes de Software Técnicas não-funcionais Outras técnicas de teste podem e devem ser utilizadas de acordo com necessidades de negócio ou restrições tecnológicas. Exemplos: teste de desempenho: teste de carga teste de stress teste de usabilidade teste de recuperação teste de segurança Níveis de Teste de Software Testes de Unidade (testes unitários): exploram a menor unidade do projeto, procurando provocar falhas ocasionadas por defeitos de lógica e de implementação. Testes de Integração: buscam falhas associadas às interfaces entre os módulos, quando esses são integrados. Testes de Sistema: os testes são executados nos mesmos ambientes, com as mesmas condições e com os mesmos dados de entrada que um usuário utilizaria. Níveis de Teste de Software Testes de Aceitação (Homologação): são realizados geralmente por um grupo restrito de usuários finais do sistema. Testes de Regressão: consistem na execução de um mesmo ciclo de testes em versões mais recentes do software. Níveis de Teste de Software IMPORTANTE: O planejamento dos testes deve ocorrer em diferentes níveis e em paralelo ao desenvolvimento do software. Dimensões do Teste Define como, quando e o que testar: Dimensões do Teste – o que testar? Teste de funcionalidade Enfatiza a validação das funcionalidades requeridas nos casos de uso. Teste de segurança Assegura que os dados e o sistema não sejam acessados indevidamente. Teste de confiabilidade Assegura que o software recebe corretamente os dados, realiza o processamento adequadamente e apresenta os resultados corretamente. Dimensões do Teste – o que testar? Teste de stress Verifica a funcionalidade em “situações-limite” (insuficiência de memória, hardware indisponível etc.) Teste de desempenho Tempo de resposta e processamento. Teste de interface Verifica a interface com outros sistemas. Dimensões do Teste – o que testar? Teste de recuperação de falhas Avalia o comportamento do sistema perante falta de energia no servidor ou cliente, perda de comunicação, problemas no sistema operacional etc. Teste de instalação Assegura a instalação adequada em diferentes hardwares e sistemas operacionais e sob diferentes condições como, espaço insuficiente no disco, ausência de conexão com a internet etc. Dimensões do Teste – o que testar? Teste de estrutura Em geral, são testes para sistemas web, garante que os links estejam conectados. Teste de usabilidade Focaliza nos fatores humanos, estética, consistência dos termos do sistema com os empregados pelo usuário, ajuda on-line, material de treinamento. Dimensões do Teste – como testar? Teste Funcional (Caixa Preta) Objetivo: verificar se os requisitos do sistema foram atendidos (comportamento externo) Trabalha diretamente na interface, sem acesso ao código: dados entrada => execução => avaliação (comparação da saída esperada com a obtida) Recomendação: Testes de Sistema e de Aceitação Dimensões do Teste – como testar? Teste Estrutural (Caixa Branca) Objetivo: avaliar o comportamento interno do sistema Trabalha diretamente no código avaliando aspectos como: Teste de condição: >, <, ==, != Teste de ciclos: loops Teste de fluxo de dados Recomendação: Testes de unidade e integração Dimensões do Teste – quando testar? Teste de unidade Componentes individuais (ex.: classes, métodos, componentes, páginas web) Foco: exame minucioso do código-fonte Quando? Após o desenvolvimento da unidade Onde? Dentro da própria IDE de desenvolvimento Quem? Geralmente realizado pelo próprio desenvolvedor Dimensões do Teste – quando testar? Teste de integração Testa a composição de unidades previamente testadas. Foco 1: exame minucioso do uso das interfaces entre os componentes integrados: Parâmetros, variáveis globais, mensagens, sincronização, protocolos Foco 2: testar o composto como se fosse uma unidade Quando? Componentes envolvidos já tenham passado pelos testes unitários Onde? Dentro de um ambiente operacional controlado Quem? Normalmente feito pelo analista de sistemas Dimensões do Teste – quando testar? Teste de sistema Série de testes com o objetivo de exercitar a operação de uma forma completa. Foco: validar a exatidão na execução de suas funções dentro de um cenário elaborado pelo analista de requisitos. Quando? Antes da entrega ao cliente. Onde? Dentro de um ambiente operacional controlado. Quem? Normalmente feito pelo analista de testes em ambiente de testes. Dimensões do Teste – quando testar? Teste de aceitação (homologação) É a última ação de teste antes da implantação do sistema. Foco: verificar se o software está pronto e pode ser usado por usuários finais. Quando? Após todos os outros testes. Onde? Ambiente de homologação (base de produção) ou no próprio ambiente do usuário (operação). Quem? Usuários ou pessoas por eles delegadas Dimensões do Teste – quando testar? Teste de regressão Consiste em se aplicar, a cada nova versão do software, todos os testes de sistema que já foram aplicados nos ciclos de teste anteriores. Foco: verificar se novos defeitos não foram adicionados após a correção de outros. Quando? Após cada ciclo (iteração). Onde? No mesmo ambiente dos testes de sistema. Quem? Normalmente feito pelo analista de testes em ambiente de testes. Dúvidas? ATIVIDADE Plano de Aulas DATA AULA 1 15/02/2023 Apresentação da disciplina | Revisão: Engenharia de Software 2 01/03/2023 Engenharia de Software 3 08/03/2023 Introdução à Qualidade de Software 4 15/03/2023 Modelos de Maturidade para Processos de Software 5 18/03/2023 Sábado Letivo (Atividade no Google Classroom) 6 22/03/2023 Ferramentas de Qualidade 7 29/03/2023 Métricas para Avaliação de Qualidade 8 05/04/2023 Revisão da 1ª Unidade 9 12/04/2023 Atividade Avaliativa 10 19/04/2023 1ª Devolutiva Plano de Aulas DATA AULA 11 26/04/2023 Introdução a Testes de Software 12 29/04/2023 Sábado Letivo(Atividade no Google Classroom) 13 03/05/2023 Técnicas e Níveis de Teste 14 10/05/2023 Testes Automatizados 15 17/05/2023 Seminário: Apresentações 16 24/05/2023 Seminário: Apresentações 17 31/05/2023 Apresentação do Projeto 18 07/06/2023 2ª Devolutiva 19 14/06/2023 Recuperação 20 21/06/2023 Devolutiva da recuperação
Compartilhar