Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Rafael Targino rtargino@unicarioca.edu.br @rafatargino QUALIDADE DE SOFTWARE Unidade III - Testes de Sistemas - Planos e Casos de Testes 2 Fases do Teste • Teste de Unidade • Teste de Integração • Teste de Sistema • Teste de Aceitação Teste de Sistema • O objetivo é executar o sistema sob ponto de vista de seu usuário final • Testar hardware e software juntos. • Os testes são executados em condições similares – de ambiente, interfaces sistêmicas e massas de dados – àquelas que um usuário utilizará no seu dia-a-dia • Durante esse teste são verificados alguns requisitos não funcionais como performance, carga, confiabilidade, etc. 3 Teste de Sistema – Funcionais • Tipos de Teste de Sistema: – Teste Funcionais – Teste de Regressão – Teste de Sanidade (smoke test) Testes Funcionais • Visam verificar se a versão corrente do sistema permite executar processos ou casos de uso completos do ponto de vista do usuário, sendo capaz de obter os resultados esperados • Normalmente utilizam artefatos para gerenciar e apoiar o processo de descoberta e controle de todos os cenários de teste possível: – Plano de Teste – Casos de Teste 4 Testes de Regressão • Cada vez que um novo módulo é adicionado como parte do teste de integração, o software se modifica. • Modificações podem causar problemas com funções previamente testadas • Testes de regressão é a reexecução de algum subconjunto • Objetivo: garantir que as modificações inseridas não propagam efeitos colaterais Teste de Sanidade (smoke test) • Testar inicialmente determinando se uma nova versão do software tem um desempenho suficientemente bom para ser aceito para um teste mais aprimorado. • Também é conhecido como “Smoke test” e tem o propósito de evitar que sejam desperdiçados recursos de testes com um build não estáveis para testes. 5 Teste de Sanidade (smoke test) • Benefícios: – Risco de integração é minimizado – testes conduzidos diariamente – Qualidade do produto final é aperfeiçoada – testes descobrem tanto erros funcionais quanto de projeto. – Diagnóstico e correção são simplificados – Progresso é fácil de avaliar – aumento da moral da equipe. Teste de Sistema – Não Funcionais • Tipos de Teste de Sistema: – Teste de Recuperação – Teste de Segurança – Teste de Carga (Estresse) – Teste de Performance (Desempenho) – Teste de Configuração e Instalação 6 Teste de Recuperação • Assegura que o sistema pode, com sucesso, recuperar os dados após uma falha no funcionamento do hardware, do software ou de rede, quando existir perda dos dados ou da integridade dos mesmos. • Para aqueles sistemas que devem ser mantidos sempre em funcionamento, este tipo de teste assegura que, quando uma condição de falha ocorrer, o sistema de backup (ou substituto) “toma lugar” do sistema falho sem perda de dados ou de transações. Teste de Segurança • Garantir que só um certo grupo de pessoas previamente definido pode acessar o sistema e, entre esses, alguns podem utilizar funções que outros não podem e vice-versa • Assegurar que as informações armazenadas pelo sistema não podem ser acessadas ou corrompidas de forma intencional ou não por pessoas sem permissão. 7 Teste de Estresse • Medir e avaliar os comportamentos de performance e a habilidade do sistema de continuar funcionando apropriadamente sob cargas de trabalho diferentes e grandes quantidades de dados ao sistema para determinar se limites que causam a falha do software são alcançados. • Também avalia as características de performance, assim como tempos de resposta, taxas de transações, outros casos sensíveis ao tempo e identifica a carga ou volume máximo persistente que o sistema pode suportar por um dado período. Teste de Estresse • Tipo de teste de performance, implementado e executado para entender o comportamento do sistema durante condições limite ou fora da tolerância esperada • Tipicamente envolve baixos recursos ou a concorrência por recursos. • Baixos recursos disponíveis revelam defeitos que não são aparentes em condições normais. • Outros defeitos devem resultar da concorrência por recursos compartilhados, como travamento de banco de dados ou utilização de toda a banda da rede de comunicação. 8 Teste de Performance • O teste de performance mede e avalia o tempo de resposta, o número de transações, usuários e outros requisitos sensíveis ao tempo. Teste de Configuração e Instalação • Verificar 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 a ser desenvolvido. • 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 9 Ferramentas de Testes • Testes Não Funcionais - JMeeter Testes Funcionais Plano de Testes 10 Planejamento dos Testes • Estratégia de testes: – Integra métodos de projeto de casos de teste em uma série de passos planejados. – Roteiro a ser seguido para as atividades de testes de software. • A falta de planejamento dos testes pode causar: – longo ciclo de testes – uso ineficiente dos recursos – baixa qualidade do processo e do produto • Planejar ajuda a obter o máximo dos testes e controlar custos. Planejamento de Testes • Princípios: – Entender os objetivos do produto a ser testado (SW, sistema ou componente) – Entender as restrições ou limitações do produto – Planejar-se para atingir os objetivos dentro das restrições e limitações existentes – Executar os testes conforme o planejado – Monitorar e atualizar o plano 11 Planos de Testes • Plano de testes visa responder as seguintes questões: – O que vai ser testado? – Quem vai testar? – Quando serão realizados os testes? – Onde serão aplicados os testes? – Quais os riscos envolvidos? – Quais os recursos necessários? Conteúdo de um Plano de Testes • Objetivos • Dependências • Critérios de completeza e sucesso • Critérios de suspensão e retomada • Produtos dos testes • Ambiente • Cronograma 12 Objetivos • Para cada fase de teste descrever: – Objetivos dos testes • Ex: Testes funcionais ou não funcionais? – Itens a testar • Ex: nos testes de unidades indica quais serão testadas – Aspectos a serem testados • Ex: requisitos funcionais e não funcionais a serem considerados em um teste de aceitação – Aspectos que não serão testados • Ex: requisitos funcionais e não funcionais que não serão considerados em um teste de aceitação Escolha dos itens a testar • O que fazer quando há restrições de recursos (tempo, esforço, custo, RH, ferramentas, etc.) para a realização dos testes? Estratégia baseada em análise de riscos • Discussão: Quais sistemas vocês acham que consumirá mais recursos de teste? – Sistema bancário – Sistema para colocar um satélite em órbita da Terra – Sistema de controle acadêmico 13 Testes Baseados em Riscos • A análise de riscos permite – Priorizar esforço de teste – Alocar recursos para os testes • A análise de riscos ajuda a determinar: – Quais componentes devem ser testados mais cuidadosamente – O nº de casos de testes Conteúdo de um Plano de Testes • Objetivos • Dependências • Critérios de completeza e sucesso • Critérios de suspensão e retomada • Produtos dos testes • Ambiente • Cronograma 14 Dependências • Indica as dependências existentes – Exemplos • Disponibilidade de pessoal treinado • Disponibilidade de recursos • Uma tarefa (ou marco) de testes dependeda existência de determinada ferramenta Conteúdo de um Plano de Testes • Objetivos • Dependências • Critérios de completeza e sucesso • Critérios de suspensão e retomada • Produtos dos testes • Ambiente • Cronograma 15 Critérios de Completeza e Sucesso • Podem tomar como base: – Critérios de cobertura de testes • Todas as funções foram exercitadas e as saídas observadas de acordo com as esperadas • Todas as instruções foram exercitadas • Todas as inclusões, alterações e exclusões de itens foram refletidos adequadamente no BD – Falhas remanescentes – Grau de confiabilidade atingido – Objetivos de qualidade atingidos Conteúdo de um Plano de Testes • Objetivos • Dependências • Critérios de completeza e sucesso • Critérios de suspensão e retomada • Produtos dos testes • Ambiente • Cronograma 16 • Suspensão: – quais os problemas graves que podem provocar a interrupção dos testes? • Ex.: BD foi corrompido • Retomada: – o que deve ser feito para reiniciar os testes? • Ex.: corrigir o código; esvaziar o BD; reaplicar testes Critérios de Suspensão e Retomada Conteúdo de um Plano de Testes • Objetivos • Dependências • Critérios de completeza e sucesso • Critérios de suspensão e retomada • Produtos dos testes • Ambiente • Cronograma 17 Produto dos Testes • Descrevem: – Como os resultados de teste serão armazenados – Relatórios a serem produzidos com os dados armazenados Conteúdo de um Plano de Testes • Objetivos • Dependências • Critérios de completeza e sucesso • Critérios de suspensão e retomada • Produtos dos testes • Ambiente • Cronograma 18 Ambiente • Define: – Configuração de HW e SW necessária para os testes – Escolha das ferramentas que serão utilizadas – Quem é responsável por providenciá-la • Seleção depende dos objetivos dos testes: – Por exemplo: ferramentas ou SW específico para testes de desempenho, estresse, confiabilidade – Uso de simuladores quando HW indisponível ou caro Conteúdo de um Plano de Testes • Objetivos • Dependências • Critérios de completeza e sucesso • Critérios de suspensão e retomada • Produtos dos testes • Ambiente • Cronograma 19 Cronograma • Identificar cada tarefa de teste • Identificar as dependências (ordem) entre as tarefas de teste • Estimar esforço e recursos necessários para realizar cada tarefa • Indicar pessoas responsáveis pelas tarefas • Definir data de início e fim de cada tarefa Tarefas de acordo com o processo de desenvolvimento definido na organização e normalmente implementado nas ferramentas Exemplo – Plano de Testes Sistema de Gerenciamento de Serviços Automotivos 20 Exemplo – Plano de Testes Sistema de Gerenciamento de Serviços Automotivos Exemplo – Plano de Testes Sistema de Gerenciamento de Serviços Automotivos 21 Exemplo – Plano de Testes Sistema de Gerenciamento de Serviços Automotivos Exemplo – Plano de Testes Sistema de Gerenciamento de Serviços Automotivos 22 Testes Funcionais Casos de Testes Documentação de Testes • Documentos gerados no planejamento e execução dos testes: – Planos de Testes (descrito anteriormente) – Especificação dos Testes - Casos de Testes – Resultados da Execução dos Casos de Testes - Relatórios de Testes 23 Especificação dos Testes • Contém a descrição detalhada de cada Caso de Teste: – Dados de entrada: valor para cada variável/parâmetro de entrada – Saídas esperadas: valores esperados de cada campo de saída – Procedimentos que serão usados para executar o caso de teste – Dependências: condições prévias para execução do caso de teste ou caso de teste predecessor Casos de Teste • Caso de teste é um conjunto de condições usadas para teste de software. • Ele pode ser elaborado para identificar defeitos na estrutura interna do software por meio de situações que exercitem adequadamente todas as estruturas utilizadas na codificação; • ou ainda, garantir que os requisitos do software que foi construído sejam plenamente atendidos. • Podemos utilizar a ferramenta de casos de uso para criar e rastrear um caso de teste, facilitando assim identificação de possíveis falhas. 24 Caso de Uso x Casos de Teste (CT) CT1 CT2 CT3 CT4 CT5 Cobertura dos Casos de Teste • Os Casos de Teste devem cobrir as possibilidades e combinações de fluxos básicos, alternativos e de exceções de um caso de uso. 25 Exemplo de Casos de Testes Ex: Especificação de um caso de teste 26 Resultados da Execução dos Casos de Testes - Relatórios de Testes • Registram dados relativos à execução de cada caso de teste • Artefatos produzidos: – Registros de testes realizados – Relatório de incidentes (defeitos, bugs, melhorias, etc.) – Relatório de resumo dos testes (métricas) Ferramentas de Testes • Gerenciamento de Casos de Testes - TestLink 27 Ferramentas de Testes • Gerenciamento de Casos de Testes - TestLink Exercício – Elaboração de Casos de Testes • Elabore os Casos de Testes associados aos Casos de Uso abaixo conforme planilha disponibilizada pelo professor: – Manter Alunos – Gerenciar Inscrições de Disciplinas 28 Fases do Teste • Teste de Unidade • Teste de Integração • Teste de Sistema • Teste de Aceitação Teste de Aceitação - formal • O teste de aceitação formal é um processo altamente gerenciado e costuma ser uma extensão do teste do sistema. • Os testes são planejados e projetados com o mesmo cuidado e nível de detalhe do teste do sistema. 29 Teste de Aceitação • O teste de aceitação é a última ação de teste antes da implantação do software. • A meta é validar se o software está pronto e pode ser usado pelos usuários finais – Teste de aceitação formal – Teste de aceitação alfa – Teste de aceitação beta Teste de Aceitação – Alfa • Os procedimentos para executar o teste não são definidos com tanto rigor como no teste de aceitação formal. • As funções e as tarefas de negócios a serem exploradas são identificadas e documentadas, mas não há casos de teste específicos para seguir. • O testador individual determina o que fazer. • Essa abordagem de teste de aceitação não é tão controlada como o teste formal e é mais subjetiva do que o tipo formal. 30 Teste de Aceitação - Beta • O teste beta é implementado por usuários finais, geralmente com pouco ou nenhum gerenciamento por parte da organização de desenvolvimento Referências Bibliográficas • KOSCIANSKI, A. e SOARES, M. S. Qualidade de Software. NOVATEC. • PRESSMAN, R. S. Engenharia de Software. McGraw Hill, • Notas de Aula do Prof. David Zanetti, Qualidade de Software - Unicarioca
Compartilhar