Juciara Nepomuceno de Souza Rafael Garcia Miani. Teste de Software



Documentos relacionados
Engenharia de Software II

Engenharia de Software II

Engenharia de Software II

Unidade VI. Validação e Verificação de Software Teste de Software. Conteúdo. Técnicas de Teste. Estratégias de Teste

Princípios do teste de software

Construção e Implantação de Software II - Unidade 3- Estratégias Para Testes de Software. Prof. Pasteur Ottoni de Miranda Junior

Testes de Software. Testes de Software. Teste de Validação. Teste de Defeito. Modelo de Entrada e Saída. Modelo de Entrada e Saída

Estratégias de Teste de Software. Fabrício de Sousa

Como melhorar a Qualidade de Software através s de testes e nua. Cláudio Antônio de Araújo 22/11/2008

Técnicas de Teste de Software

Teste de Software I Conceitos e Estratégias

Fundamentos em Teste de Software. Vinicius V. Pessoni

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas

a) Teste das funções do sistema com outros sistemas b) Teste de componentes que em conjunto compõem a função do sistema

Testar os programas para estabelecer a presença de defeitos no sistema. Teste de Software. Teste de defeitos. Objetivos. Tópicos

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

Testes de Software. Testes de Software. Teste de Validação. Teste de Defeito. Modelo de Entrada e Saída. Modelo de Entrada e Saída

IES-300. Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Me. Álvaro d Arce alvaro@darce.com.br

Testes de Software Fases. Baseado em notas de aula da profa. Eliane Martins

c. Técnica de Estrutura de Controle Teste do Caminho Básico

Qualidade de Software. Profa. Cátia dos Reis Machado

Teste de software. Definição

Teste de Software Estrutural ou Caixa Branca. Disciplina de Engenharia de Software prof. Andrey Ricardo Pimentel

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

MDC Metodologia de Desenvolvimento Compartilhado Roteiro da Disciplina de Teste

Teste de Software Parte 1. Prof. Jonas Potros

Teste de Software. Ricardo Argenton Ramos Engenharia de Software I

Engenharia de Software II

Engenharia de Software II

Prova de Conhecimento para Consultores de Implementação MPS.BR INSTRUÇÕES

ENGENHARIA DE SOFTWARE Prof. Ricardo Rodrigues Barcelar

Engenharia de Software I

ENGENHARIA DE SOFTWARE I

Técnicas de Caixa Preta de Teste de Software

CHECK - LIST - ISO 9001:2000

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Teste de Software. Profa. Cátia dos Reis Machado

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

ISO/IEC 12207: Gerência de Configuração

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA

Técnicas de Teste de Software

LISTA DE VERIFICAÇAO DO SISTEMA DE GESTAO DA QUALIDADE

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

Projeto de Sistemas I

Prof. Marcelo Machado Cunha

Sistema de Controle de Solicitação de Desenvolvimento

Introdução Fatores de Qualidade Garantia de Qualidade Rivisões de Software Conclusão. Qualidade. Plácido A. S. Neto 1

SISTEMAS OPERACIONAIS

ENQUALAB 2013 QUALIDADE & CONFIABILIDADE NA METROLOGIA AUTOMOTIVA. Elaboração em planos de Calibração Interna na Indústria Automotiva

Testes Orientação Visão Conceitual em Testes Versão 0.3

Modelo Cascata ou Clássico

Engenharia de Sistemas Computacionais

Atividades da Engenharia de Software ATIVIDADES DE APOIO. Atividades da Engenharia de Software. Atividades da Engenharia de Software

BANCO CENTRAL DO BRASIL 2009/2010

Metodologia de Gerenciamento de Projetos da Justiça Federal

Introdução a Verificação, Validação e Teste de Software

Processo de Desenvolvimento Unificado

1. Qual das seguintes alternativas não é um tipo de revisão? 2. Qual das alternativas é um atributo da qualidade?

GARANTIA DA QUALIDADE DE SOFTWARE

Disciplina de Banco de Dados Introdução

REQUISITOS. Prof. Msc. Hélio Esperidião

Atividade da gerência da qualidade

IES-300. Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Me. Álvaro d Arce alvaro@darce.com.br

Tabela de roteamento

As principais características da abordagem de um banco de dados versus a abordagem de processamento de arquivos são as seguintes:

Tipos de teste de software

29/06/ :30 Leite Júnior QUESTÕES CESPE BACKUP

Teste de Software. Objetivos e Limites. Objetivos e Limites. Objetivos e Limites. Objetivos e Limites. Objetivos e Limites

Artigo Os 6 Mitos Do Seis Sigma

Conceitos de Banco de Dados

Análise de Sistemas. Conceito de análise de sistemas

4.1 A Parte que recebeu a notificação de anormalidade deverá encaminhá-la imediatamente a um órgão responsável, para resolver a anormalidade.

CÓPIA NÃO CONTROLADA. DOCUMENTO CONTROLADO APENAS EM FORMATO ELETRÔNICO. PSQ PROCEDIMENTO DO SISTEMA DA QUALIDADE

Análise e Projeto Orientados a Objetos Aula IV Requisitos. Prof.: Bruno E. G. Gomes IFRN

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

Sistemas de Informação I

URL para teste

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

Qualidade de Software. Prof.: Ivon Rodrigues Canedo. PUC Goiás

Manual AGENDA DE BACKUP

Projeto de Arquitetura

Firewall. Alunos: Hélio Cândido Andersson Sales

Fundamentos de Teste de Software

UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO (Bacharelado)

Engenharia de Software II

Atualizações Automáticas GUIA DE PROCEDIMENTOS E CONFIGURAÇÕES

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 10 PROFª BRUNO CALEGARO

GUIA RÁPIDO SISTEMA ANTIFURTO THEFT DETERRENT

Auditoria e Qualidade de Software ISO/IEC 9126 Engenharia de Software Qualidade de Produto

Curso superior de Tecnologia em Gastronomia

Transcrição:

Juciara Nepomuceno de Souza Rafael Garcia Miani Teste de Software

Técnicas de Teste de Software

Testabilidade Operabilidade; Observabilidade; Controlabilidade; Decomponibilidade; Simplicidade; Estabilidade; Compreensibilidade.

Características de um bom teste Alta probabilidade de encontrar um erro; Sem redundância; Sem grande complexidade ou simplicidade;

Teste Caixa Branca Teste de caminho básico Notação de Grafo de fluxo Representação simples do fluxo de controle (grafo de fluxo). Se Até quando Caso

Teste Caixa Branca Teste de caminho básico Caminhos independentes qualquer caminho que insere um novo conjunto de comandos ou uma nova condição. 1 2 3 4 5 Exemplos Caminhos: C1: 1-2-7 C2: 1-3-5-6-7 C3: 1-3-4-6-7 7 6 Complexidade: V(G)= 8 arestas 7 nós +2= 3

Teste Caixa Branca Teste de caminho básico Derivação de Casos de Teste após realizados os passos anteriores podem ser extraídos dos caminhos independentes os casos de testes que serão executados, dessa maneira é assegurado que todos os comandos do programa foram executados pelo menos uma vez.

Teste Caixa Branca Teste de caminho básico Matrizes de Grafos representação tabular de um grafo de fluxo em que são relacionados os nós do grafos às suas conexões 5 g e f 1 3 4 2 a b c d 1 2 3 4 5 1 a 2 3 d b 4 c f 5 g e

Teste Caixa Branca Teste de Estrutura de Controle Teste de Condição método referente aos testes de condições lógicas em um módulo do software Teste de Fluxo de Dados método que seleciona caminhos de teste de um programa de acordo coma localização das definições Teste de Ciclo valida os ciclos existentes na implementação: Simples, concatenados, aninhados e desestruturados.

Teste Caixa Preta Esse tipo de teste permite a validade de um conjunto de entradas relacionados as suas saídas. Critérios: Particionamento de equivalência Análise do Valor Limite Teste de Matriz Ortogonal

Teste Caixa Preta Paticionamento de equivalência É utilizado na divisão do domínio de entrada em classes de dados. Classes de equivalência podem ser divididas em válidas e inválidas seguindo as seguintes diretrizes: Se a condição de entrada especifica um intervalo, são definidas uma classe válida e duas inválidas Se a condição de entrada exige um valor específico, são definidas uma classe válida e duas inválidas Se a condição de entrada especifica um membro de um conjunto, são definidas uma classe válida e uma inválida Se a condição de entrada for booleana, são definidas uma classe válida e uma inválida

Teste Caixa Preta Análise de Valor Limite Essa técnica complementa o particionamento de equivalência Focaliza o teste em um ponto propício a erros, os limites de uma classe de equivalência As diretrizes da análise de valor limite são bem parecidas com as do particionamento de equivalência

Teste Caixa Preta Teste de Matriz Ortogonal O teste de matriz ortogonal é um ponto médio para problemas com domínio de entrada relativamente pequeno, mas grande demais para testes exaustivos Casos de teste ficam espalhados uniformemente pelo domínio de teste Detecta e isola todas as falhas de modo singular (pela análise da informação sobre quais testes revelam erros, pode-se identificar quais valores de parâmetro causam a falha) Detecta todas as falhas de modo duplo

Teste Orientado a Objetos Pode-se aplicar os testes do tipo caixa branca e caixa preta, contudo podem surgir algumas complicações como o encapsulamento e a herança Teste com Base em Erro nesta técnica são procurados erros plausíveis, particularidades da implementação quem podem ocasionar defeitos. Teste com Base em Cenário busca a validação do que o usuário precisar fazer em relação ao que o produto disponibiliza. Encontram-se erros de integração.

Estratégias de Testes de Software

Estratégia de Teste de Software Teste de Unidade Teste de Integração Teste de Validação Teste de Sistema Depuração

Estratégias de Teste de Software Atividades planejadas antecipadamente Características de Testes Gabarito de teste Conjunto de técnicas de projetos de casos de teste e métodos de teste específicos Equipe deve fazer revisões técnicas formais: evitar erros Componente Integração Diversas técnicas Em geral realizadas pela equipe de desenvolvimento e, no caso de grandes projetos, um grupo de teste independentes Teste de baixo e alto nível

Estratégias de Teste de Software Organização do Teste Desenvolvedor Componentes (unidades individuais) Desenvolvedor Integração Equipe de teste independente

Estratégias de Teste de Software

Teste de Unidade Esforço na verificação da menor unidade de projeto de software: componente ou módulo de software. Caminhos de controle são testados. Pode ser realizado em paralelo para vários módulos.

Teste de Unidade

Teste de Unidade Exemplo: Testar a interface e os caminhos. RA Nome Tombo Título Aluno N Emprestar N Livro Autor Data Editora

Teste de Integridade Construir, de forma sistemática, a estrutura do programa, ao mesmo tempo, executando testes para descobrir erros. Componentes funcionam bem de modo isolado, porém quando colocado juntos, situações inesperadas podem ocorrer. Integração Incremental Programa é construído e testado em pequenos incrementos, em que erros são mais fáceis de isolar e corrigir. Integração top-down Integração bottom-up

Teste de Integridade Integração top-down Módulos são integrados movendo-se descendentemente na hierarquia de controle, começando com o módulo de controle principal. Pode ser realiza de duas formas: Por profundidade (M 1, M 2, M 5 ) Por largura (M 2, M 3, M 4 )

Teste de Integridade Integração top-down O processo de integração é feito em cinco passos: 1. O módulo de controle principal é utilizado como um pseudocontrolador do teste, e pseudocontroladores são substituídos por todos os componentes diretamente ligados ao programa principal. 2. Dependendo da abordagem de integração selecionada (profundidade ou largura), os pseudocontroladores são substituídos, um por vez, pelos seus componentes reais. 3. Testes são conduzidos à medida que cada componente é integrado. 4. Ao término de cada conjunto de testes, outro pseudocontrolado é substituído por seu componente real. 5. Teste de regressão pode ser realizado para garantir que novos erros não tenham sido introduzidos.

Teste de Integridade Integração bottom-up A integração dos componentes é feita de baixo para cima. Pseudocontroladores eliminados, uma vez que o processamento necessário para os componentes subordinados em um determinável nível está sempre disponível.

Teste de Integridade Integração bottom-up O processo de integração é feito em 4 etapas: 1. Módulos de níveis mais baixo são combinados em clusters que executam funções específicas do módulo principal. 2. É elaborado um driver que coordena a entrada e saída dos casos de teste para cada cluster. 3. Cluster é testado. 4. Drivers são substituídos pelos clusters que passam a interagir com os módulos acima, na estrutura do programa.

Teste de Integridade

Teste de Integridade Top-Down Vantagem: testar logo no início as funções principais do software. Desvantagem: pseudocontroladores e dificuldade de testes quando eles são utilizados. Bottom-up Vantagem: não precisa de pseudocontroladores. Desvantagem: módulo principal não existe enquanto todos os módulos não estiverem testados.

Teste de Integridade Teste de Regressão É a reexecução de algum subconjunto de testes que já foi conduzido. Motivo: Integração de um novo componente pode resultar em erros em funções que anteriormente funcionavam impecavelmente.

Teste de Integridade Exemplo: integrar componentes de uma biblioteca RA Nome Tombo Título Aluno N Emprestar N Livro Autor Data Editora RA Nome Tombo Título Aluno N Renovar N Livro Autor Data Editora

Teste de Integridade Exemplo: integrar componentes de uma biblioteca RA Nome Tombo Título Aluno N Devolver N Livro Autor Data Editora RA Nome Tombo Título Aluno N Consultar N Livro Autor Data Editora

Teste de Validação Início: Fim da fase de integração. Componentes individuais foram exercitados. Software completamente montado. Erros de interface descobertos e corrigidos. Validação é considerada bem-sucedida se o software funciona de um modo que pode ser razoavelmente esperado pelo cliente. Essas expectativas razoavelmente esperadas são definidas na Especificação de Requisitos: Critérios de Validação

Teste de Validação Critérios de Teste de Validação A validação é conseguida por uma série de testes que demonstram conformidade com os requisitos. Plano de teste: delineia as classes de teste a ser conduzidas. Procedimento de teste: define os casos de teste específicos. Requisitos funcionais sejam satisfeitos, características comportamentais sejam conseguidas, requisitos de desempenho sejam alcançados, documentação esteja correta.

Teste de Validação Após cada teste de validação: 1. Função satisfaz a especificação e é aceita. 2. É descoberto um desvio na especificação e uma lista de deficiências é criada. Erros aqui encontrados são difíceis de serem corrigidos até o prazo da entrega. Teste de Aceitação: software sob encomenda é construído para um cliente. Software desenvolvido como um produto para vários usuários: Teste alfa: conduzidos na instalação do desenvolvedor junto com os usuários finais. Teste beta: conduzido na instalação do usuário final. Desenvolvedor geralmente não está presente.

Teste de Validação Exemplo: Certificar que a empréstimo de um livro a um aluno não demore mais que três segundos para retornar uma mensagem de sucesso. RA Nome Tombo Título Aluno N Emprestar N Livro Autor Data Editora

Teste de Sistema Software é incorporado a outros elementos do sistema(hardware e pessoal), e uma série de testes de integração e validação é conduzida. Uma série de diferentes testes cuja finalidade principal é exercitar por completo o sistema. Tipos: Recuperação Segurança Estresse Desempenho

Teste de Sistema Teste de Recuperação É um teste de sistema que força o software a falhar de diversos modos e verifica se a recuperação é adequadamente realizada. Automática (pelo sistema) A reinicialização, os mecanismos de verificação, a recuperação dos dados e o reinício são avaliados quanto à correção. Recuperação com intervenção humana Tempo médio para reparo é avaliado para determinar se está dentro de limites aceitáveis.

Teste de Sistema Teste de Segurança Verifica se todos os mecanismos de proteção realmente protegem o software de acessos indevidos. Teste de Estresse Tem por objetivo confrontar os programas com situações anormais de quantidade, frequência e volume. Teste de Desempenho Tem por objetivo testar o tempo de resposta do sistema e é aplicado, geralmente, para sistemas de tempo real. Normalmente aclopados a teste de estresse.

Teste de Sistema Exemplo: Vários estudantes (milhares) fazem consulta ao mesmo tempo, empréstimos são feitos (cerca de 500 por minuto). Verifica se tempo de resposta está adequado e se um estudante não está consultando um livro que acaba de ser emprestado e ainda não foi atualizado.

Depuração Ocorre como consequência de um teste bem-sucedido. Quando um caso de teste descobre um erro, a depuração é a ação que resulta na reparação do erro.

Depuração Três estratégias de depuração: Força bruta: o erro não é analisado para descobrir a causa, deixando que o próprio computador a descubra. Ex: Inserir vários comandos de escrita no programa. Rastreamento (backtracking): inicia-se no local em que o sintoma foi descoberto e rastreia-se para trás até que o local da causa seja encontrado. Eliminação da causa: supõe-se uma causa e elaboram-se casos de testes para comprovar ou refutar essa hipótese.

Conclusões O Objetivo do teste é encontrar erros e se eles não forem detectados, o teste não pode afirmar sua ausência. Testar tudo é impossível As técnicas de teste são complementares, devendo ser aplicadas em conjunto. Para testar com eficiência é preciso conhecer bem o software.