Introdução a Teste de Software

Documentos relacionados
Teste de Software. Karen Frigo Busolin Novembro / 2010

Estágio II. Aula 02 Conceitos de Teste de Software. Prof. MSc. Fred Viana

Teste de Software. Competência: Entender as técnicas e estratégias de testes de Software

6. QUAIS AS TÉCNICAS E RESPECTIVOS CRITÉRIOS DE TESTE EXISTENTES?

Programação Orientada a Objetos

Normas ISO:

Teste de Software. Planejamento de Teste. Rosemary Silveira Filgueiras Melo

Desenvolvimento de Software. Testes de Software. Tópicos da Aula. Onde estamos... Verificação x Validação. Testes de Software

Guia do Processo de Teste Metodologia Celepar

Teste de Software. Objetivo: Executar software para revelar erros/falhas ainda não descobertos. Pode gastar 40% do esforço de desenvolvimento

Introdução aos Testes de Software

especificação por meio de exemplos não é garantia de corretude, mas a experiência mostra que tende a ser melhor do que o estado da prática hoje

Teste de Software. Estratégias de Teste. Rosemary Silveira Filgueiras Melo

TESTES DE SOFTWARE 1. Fundamentos sobre testes de software

TESTES DE SOFTWARE Unidade 1 Importância do Teste de Software. Luiz Leão

Verificação e Validação

TESTES DE SOFTWARE Lista de Exercício 01. Luiz Leão

Análise e projeto de sistemas

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

SSC 0721 Teste e Validação de Software

Engenharia de Software

Aula 20 Testes 3. Alessandro Garcia Leonardo da Silva Sousa OPUS Group/LES/DI/PUC-Rio Dezembro 2016

Teste de Software. Prof. Camila. Pedro de Assis Sobreira Jr.

1. A principal razão de dividir o processo de teste em tarefas distintas é:

Engenharia de Software

Engenharia de Software Aula 21. Revisão da Prova 2. Eduardo Figueiredo.

Gerência de Projetos e Qualidade de Software. Prof. Walter Gima

ENGENHARIA DE SOFTWARE

Introdução à Qualidade de Software

TESTES DE SOFTWARE Lista de Exercício 02. Luiz Leão

Verificação e Validação (V & V)

Unidade 4 Teste na Implantação do Sistema

Teste de Software. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2015

1. Quando algo visível para os usuário finais é um desvio em relação ao especificado ou um comportamento não esperado, isso é chamado de:

RUP RATIONAL UNIFIED PROCESS

- 8ª Lista de Exercícios -

2

Engenharia de Requisitos

Estratégias de Testes Parte I

Estágio II. Aula 01 Qualidade de Software. Prof. MSc. Fred Viana

Teste de Integração: visa provocar falhas associadas às interfaces entre os módulos quando esses são integrados para construir a estrutura do

Processos de Validação e Verificação do MPS-Br

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Prof. Fabiano Papaiz IFRN

Organização para Realização de Teste de Software

Teste de Software. Professor Maurício Archanjo Nunes Coelho

Teste de Software. Proj. Desenvolvimento de Software. Prof. Cleverton Hentz. 30 de agosto de Material Apresentado

TS02. Teste de Software INTRODUÇÃO AO PROCESSO DE TESTE DE SOFTWARE. COTI Informática Escola de Nerds

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

2 Fluxos no Ciclo de Vida do Processo Unificado. O Processo Unificado consiste da repetição de uma série de ciclos durante a vida de um sistema.

SISTEMA DISTRIBUÍDO PARA GERENCIAMENTO DE LIBERAÇÃO DE RELEASES DE SOFTWARE

Modernização de Legados

DESCOBERTO. (Glen Myers)

Data Warehouse ETL. Rodrigo Leite Durães.

ENGENHARIA DE SOFTWARE O QUE SÃO TESTES? TESTES TESTES TESTES 26/08/2014. São pontuais; São previsíveis; São finitos;

Engenharia de Software Processo de Desenvolvimento. Ciclo de Vida - Modelo Cascata

Processo de desenvolvimento de sistema de informação - DSI

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

Perguntas da Aula 2. Respostas da Pergunta 2. Respostas da Pergunta 1. Respostas da Pergunta 4. Respostas da Pergunta 3. Processos de Software

Bibliografia. Quais são os problemas? capacidade de construção. acompanha a demanda por novos programas. ameaçada por projetos ruins.

Engenheiros de software (algumas vezes conhecidos no mundo da TI como engenheiros de sistemas ou analistas ) e outros interessados no projeto

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Teste de Software Parte 2. Prof. Jonas Potros

Engenharia de Software

Professor Emiliano S. Monteiro

7 Discussão dos Resultados

Ainda que muitos modelos sejam semelhantes entre os modelos de ciclo de vida, existem alguns aspectos que os diferenciam:

Princípios da Engenharia de Software aula 03

Análise de Requisitos

Verificação e Validação

TESTES DE SOFTWARE. Profa. Maria Auxiliadora

ISO/IEC 12207: Verificação, Validação e Testes

Falta Erro Falha. Motivação. Teste de Software. Falha, Falta e Erro. Falha, Falta e Erro. Falha, Falta e Erro. Falha, Falta e Erro 6/6/11

INF1013 MODELAGEM DE SOFTWARE

Engenharia de Software II

Ciclos de Vida de Software

30% a 50% dos custos desenvolvimento A complexidade torna impossível teste completo (cobertura total) Mas...

UNIVERSIDADE REGIONAL DE BLUMENAU CURSO DE SISTEMAS DE INFORMAÇÃO - BACHARELADO. Eduardo Cesar Eberle Prof. Wilson Pedro Carli, Orientador

Engenharia de Requisitos

Teste de Software. Técnica de Teste Estrutural. Rosemary Silveira Filgueiras Melo

Engenharia de Requisitos

Prof. Dr. Thiago Jabur Bittar

Desenvolvimento de Software

Teste de Software. Roberta Coelho

PDS. Aula 1.4 Modelos de Processo. Prof. Dr. Bruno Moreno

Qualidade de software. Prof. Emiliano Monteiro

Prof. Ms. Ronaldo Martins da Costa

3 Ferramenta Proposta 3.1. Objetivos

DMS - DOCUMENTO DE MODELAGEM DE SISTEMA VERSÃO: [NOME DO SISTEMA] [SIGLA] [AUTORES]

Departamento de Sistemas de Computação Universidade de São Paulo Análise e Projeto Orientados a Objetos Aula 2 O Processo Unificado (PU)

- 6ª Lista de Exercícios -

Documentação de Software. Simone Vasconcelos

O Processo Unificado (PU) SSC 121 Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

CONTPATRI Plano de Garantia de Qualidade. Versão 1.1

ISO/IEC Roteiro IEC ISO. Histórico ISO/IEC ISO

ISO/IEC Processo de ciclo de vida

Prof. Fábio Lúcio Meira

Engenharia de Software

Transcrição:

Universidade Católica de Pelotas Tecnólogo em Análise e Desenvolvimento de Sistemas Disciplina de Qualidade de Software Introdução a Teste de Software Prof. Luthiano Venecian 1

Conceitos Teste de software é o processo de execução controlada do software para determinar se suas especificações foram atingidas. Objetivo: Revelar falhas em um produto, para que as causas dessas falhas sejam identificadas e possam ser corrigidas. Aumentar a confiança de um produto através da identificação de seus problemas. 2

Conceitos Defeito: uma instrução ou comando incorreto. Erro: manifestação concreta de um defeito em um artefato de software. Falha: comportamento operacional do software diferente do esperado pelo usuário. Defeitos fazem parte do universo físico (a aplicação propriamente dita) e são causados por pessoas. Defeitos podem ocasionar a manifestação de erros em um produto, ou seja, a construção de um software de forma diferente ao que foi especificado (universo de informação). Erros geram falhas, que são comportamentos inesperados em um software que afetam diretamente o usuário final da aplicação (universo do usuário) e pode inviabilizar a utilização de um software. 3

Conceitos Teste de software revela falhas em um produto. Após a execução dos testes é necessária a execução de um processo de depuração para a identificação e correção dos defeitos que originaram essa falha, ou seja, Depurar não é Testar! 4

Elementos Caso de Teste: descreve uma condição particular a ser testada e é composto por valores de entrada, restrições para a sua execução e um resultado ou comportamento esperado. Procedimento de Teste: é uma descrição dos passos necessários para executar um caso (ou um grupo de casos) de teste. Critério de Teste: serve para selecionar e avaliar casos de teste de forma a aumentar as possibilidades de provocar falhas ou, quando isso não ocorre, estabelecer um nível elevado de confiança na correção do produto. 5

Critérios Critério de Cobertura dos Testes: permitem a identificação de partes do programa que devem ser executadas para garantir a qualidade do software e indicar quando o mesmo foi suficientemente testado. Critério de Adequação de Casos de Teste: avalia se os casos de teste definidos são suficientes ou não para avaliação de um produto ou uma função. Critério de Geração de Casos de Teste: define as regras e diretrizes para geração dos casos de teste de um produto que esteja de acordo com o critério de adequação definido anteriormente. 6

Defeitos no Desenvolvimento de Software No processo de desenvolvimento de software, os defeitos são usualmente humanos. O tamanho do projeto a ser desenvolvido e a quantidade de pessoas envolvidas no processo são dois possíveis fatores que aumentam a complexidade dessa tarefa, e conseqüentemente aumentam a probabilidade de defeitos. A ocorrência de falhas é inevitável. Mas o que significa dizer que um programa falhou? O funcionamento do programa não está de acordo com o esperado pelo usuário. 7

Defeitos no Desenvolvimento de Software Por exemplo, quando um usuário da linha de produção efetua consultas no sistema que só a gerência deveria ter acesso. Esse tipo de falha pode ser originado por diversos motivos: A especificação pode estar errada ou incompleta. A especificação pode conter requisitos impossíveis de serem implementados devido a limitações de hardware ou software. A base de dados pode estar organizada de forma que não seja permitido distinguir os tipos de usuário. Pode existir um defeito no algoritmo de controle dos usuários. 8

Defeitos no Desenvolvimento de Software Os defeitos normalmente são introduzidos na transformação de informações entre as diferentes fases do ciclo de desenvolvimento de um software. Por exemplo: Os requisitos expressos pelo cliente são relatados textualmente em um documento de especificação de requisitos. Esse documento é então transformado em casos de uso, que por sua vez é o artefato de entrada para o projeto do software e definição de sua arquitetura utilizando diagramas de classes da UML. Em seguida, esses modelos de projetos são usados para a construção do software. 9

Defeitos no Desenvolvimento de Software Necessidade de realizar testes em diferentes níveis, visando avaliar o software em diferentes perspectivas de acordo com o produto gerado em cada fase do ciclo de vida de desenvolvimento de um software. 10

Níveis Teste de Unidade: objetivo explorar a menor unidade do projeto, procurando provocar falhas ocasionadas por defeitos de lógica e de implementação em cada módulo, separadamente. O universo alvo desse tipo de teste são os métodos dos objetos ou mesmo pequenos trechos de código. Teste de Integração: visa identificar falhas associadas às interfaces entre os módulos quando esses são integrados para construir a estrutura do software que foi estabelecida na fase de projeto. Teste de Sistema: avalia o software em busca de falhas por meio da utilização do mesmo, como se fosse um usuário final. Verifica se o produto satisfaz seus requisitos. 11

Níveis Teste de Aceitação: são realizados geralmente por um restrito grupo de usuários finais do sistema. Esses simulam operações de rotina do sistema de modo a verificar se seu comportamento está de acordo com o solicitado. Teste de Regressão: não corresponde a um nível de teste, mas é uma estratégia importante para redução de efeitos colaterais. Consiste em se aplicar, a cada nova versão do software ou a cada ciclo, todos os testes que já foram aplicados nas versões ou ciclos de teste anteriores do sistema. Pode ser aplicado em qualquer nível de teste. 12

TESTE DE SOFTWARE Projeto Inicialmente é planejado o teste de aceitação a partir do documento de requisitos. Após isso é planejado o teste de sistema a partir do projeto de alto nível do software. Em seguida ocorre o planejamento dos testes de integração a partir o projeto detalhado. E por fim, o planejamento dos testes de unidade a partir da codificação. 13

TESTE DE SOFTWARE Técnica Estrutural (caixa branca) Técnica de teste que avalia o comportamento interno do componente de software. Essa técnica trabalha diretamente sobre o código fonte do componente de software para avaliar aspectos, tais como: teste de condição, teste de fluxo de dados, teste de ciclos e teste de caminhos lógicos. Teste desenvolvido analisando-se o código fonte e elaborando-se casos de teste que cubram todas as possibilidades do componente de software. Todas as variações originadas por estruturas de condições são testadas. 14

TESTE DE SOFTWARE Técnica Estrutural (caixa branca) Um exemplo de uso desta técnica de teste é ferramenta JUnit para desenvolvimento de casos de teste para avaliar classes ou métodos desenvolvidos na linguagem Java. A técnica de teste de Estrutural é recomendada para os níveis de Teste da Unidade e Teste da Integração, cuja responsabilidade principal fica a cargo dos desenvolvedores do software. Os desenvolvedores conhecem bem o código-fonte desenvolvido e dessa forma conseguem planejar os casos de teste com maior facilidade. 15

Técnica Funcional (caixa preta) Técnica de teste em que o componente de software a ser testado é abordado como se fosse uma caixa-preta, ou seja, não se considera o comportamento interno do mesmo. Dados de entrada são fornecidos, o teste é executado e o resultado obtido é comparado a um resultado esperado previamente conhecido. O componente de software a ser testado pode ser um método, uma função interna, um programa, um componente, um conjunto de programas e/ou componentes ou mesmo uma funcionalidade. A técnica de teste funcional é aplicável a todos os níveis de teste. 16

Outros Teste de compatibilidade: um exemplo é o teste para assegurar compatibilidade de um sistema web que rode em diferentes browsers, sistemas operacionais e plataformas de hardware. Teste de performance: aplicado para compreender escalabilidade. Identifica onde residem os gargalos dos sistemas, se é na própria aplicação ou na infra-estrutura. Teste de stress: conduz uma avaliação de um sistema ou um componente além dos limites que suporta para determinar quando falha ou não. É semelhante ao Teste de Performance, porém os testes utilizam uma carga bem maior de dados. 17