Baixe o app para aproveitar ainda mais
Prévia do material em texto
Testes de Software Idarlan Machado Prof. Vander Alves Supervisor Introdução ● O processo de testes: ● De componente: – Testa-se individualmente o componente – Geralmente, cada desenvolvedor testa o seu – A experiência do desenvolvedor influenciará os resultados do teste ● De sistema: – Teste grupos de componentes – Feito por equipe de testes – Os testes são realizados baseados nas especificações de requisitos Fases de teste Introdução ● Teste de defeito: ● O propósito é identificar defeito de tal maneira que leve o sistema a se comportar de forma anômalo/inesperada ● Revela a presença de erros, não garante sua inexistência. ● Testes exaustivos poderiam garantir que o sw está sem defeitos, mas economicamente são inviáveis ● Processo: ● Validação: garantir que o foi solicitado foi o que foi entregue ● Detecção de defeito: gerar um relatório que revela faltas e defeitos ● Principal política de teste: (i) teste tudo que está disponível ao usuário; (ii) avalie se as saídas são as esperadas em função das entradas Modelo de processo de testes de software Teste de sistemas ● Envove testar grupos de componentes na visão de subsistemas ou sistemas ● Consiste em duas fases: ● Teste integrado – teste do código-fonte, de como os componentes estão integrados. Melhor prática: testar incrementalmente os componentes envolvidos ● Teste de entrega (caixa-preta) – teste as funções do sistema que são percebidas pelos usuário. Fornece entradas ao sistema e avalia suas saídas ● Teste incremental de componentes integrados Teste de entrega (caixa-preta) Teste de componentes ● Processo de testar componentes isoladamente ● Trata-se de um processo de teste de defeito ● O foco pode ser em: ● Funções individuais/métodos de um objeto ● Classes de objetos (testar os atributos e métodos) ● Composição de componentes que são acessados por uma interface Teste de Interface Projeto de casos de teste ● Envolve construir os casos de testes (entradas e saídas do sistema) que serão usados para testar o sistema ● Objetivo é construir um conjunto de testes que VALIDEM e IDENTIFIQUEM DEFEITOS ● Abordagens: ● Testes baseados em requisitos ● Testes baseados em partições ● Testes estruturais Exemplo de testes baseados em requisitos – sistema LIBSYS 1) O usuário será capaz de procurar todo o conjunto inicial do banco de dados ou selecionar um subconjunto dele 2) O sistema fornecerá visualizadores apropriados para que o usuário possa ler documentos no repositório de documentos 3) A cada solicitação será alocado um identificador único (ORDER_ID) com o qual o usuário será capaz de fazer cópias para a área de armazenamento permanente Requisitos de LIBSYS – possíveis testes. Pressuposto: que uma função de busca foi testada ● Iniciar as buscas de usuário pelos itens cuja presença ou ausência são conhecidas, quando o conjunto de bancos de dados incluir um banco de dados ● Iniciar as buscas de usuário pelos itens cuja presença ou ausência são conhecidas, quando o conjunto de bancos de dados incluir dois bancos de dados. ● Iniciar as buscas de usuário pelos itens cuja presença ou ausência são conhecidas, quando o conjunto de bancos de dados incluir mais de dois banco de dados ● Selecionar um banco de dados do conjunto de bancos de dados e iniciar as buscas de usuário pelos itens cuja presença ou ausência são conhecidas ● Selecionar mais de um banco de dados do conjunto de bancos de dados e iniciar as buscas de usuário pelos itens cuja presença ou ausência são conhecidas Testes baseados em partições – avaliar se as saídas são as esperadas em função das entradas Testes em partições - Exemplo Exemplo de testes estruturais (caixa-branca) – Testar todas as declarações dos programas Testes baseados em caminhos Automação de testes ● Como testes é dispendioso, há ferramentas que auxiliam no processo de testes ● Algumas ferramentas que podem apoiar: ● Gerenciador de testes – gerencia a execução de testes de programa (ex.: JUnit) ● Gerados de dados de teste – Gera os dados de testes para o programa a ser testado ● Oráculo – Gera previsões de resultados de teste esperados ● Comparador de arquivos – Compara os resultados dos testes de programa com os resultados de testes anteriores e relata as diferenças entre eles. ● Gerador de relatórios – apoia na geração de relatórios de testes ● Analisador dinâmico – adiciona código ao programa para se poder checar quantas vezes determinada declaração de programa foi executada Ferramentas de automação de teste Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19
Compartilhar