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

Documentos relacionados
Introdução aos Testes de Software

Engenharia de Software

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

TESTES DE SOFTWARE. Profa. Maria Auxiliadora

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

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

Introdução a Teste de Software

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

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

Organização para Realização de Teste de Software Quando o teste se inicia há um conflito de interesses:

Teste de Software. Karen Frigo Busolin Novembro / 2010

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

TESTES DE SOFTWARE 1. Fundamentos sobre testes de software

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

Guia do Processo de Teste Metodologia Celepar

ENGENHARIA DE SOFTWARE

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

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

ENGENHARIA DE SOFTWARE. Aula 12 Testes de software

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

TS03. Teste de Software ESTÁGIOS DO TESTE DE SOFTWARE. COTI Informática Escola de Nerds

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

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

Teste de Software. Professor Maurício Archanjo Nunes Coelho

Unidade 4 Teste na Implantação do Sistema

Qualidade de software. Prof. Emiliano Monteiro

Testes de Software. Prof. Edjandir C. Costa

2

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

Teste de Software Básico

Engenharia de Software II

Verificação e Validação

Engenharia de Software. Teste de Software. Introdução. Profa. Dra. Lúcia V. L. Filgueiras Profa. Dra. Selma Shin Shimizu Melnikoff

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

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

Análise e projeto de sistemas

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

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

Garantia de Qualidade

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

Testes de Software. Prof: Sérgio Portari

MÓDULO 16 PLANEJAMENTO DE CONSTRUÇÃO, TESTES E DOCUMENTAÇÃO DO SISTEMA

Teste de Software Intermediário

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:

SSC 0721 Teste e Validação de Software

Princípios da Engenharia de Software aula 03

Plano de Testes VideoSystem

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

Verificação e Validação. Ewelton Yoshio Fabrício Araújo

Engenharia de Software

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

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

ISO/IEC Prof. Alexandre Luís Franco

Verificação e Validação

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Prof. Fabiano Papaiz IFRN

Engenharia de Requisitos

Estágio II. Aula 04 Testes Ágeis. Prof. MSc. Fred Viana

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

Teste de Validação. ações visíveis ao usuário e entradas e saídas do sistema reconhecíveis pelo usuário

Programação Orientada a Objetos

Engenharia de Software II

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

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ESTRUTURA DE UM SISTEMA OPERACIONAL PROFESSOR CARLOS MUNIZ

ISO/IEC Processo de ciclo de vida

UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA

Introdução à Qualidade de Software

FATORES E MÉTRICAS DE QUALIDADE

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

Verificação e Validação. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 22 Slide 1

Teste de Software. Introdução. Teste de SW -Introdução. Verificação e Validação

Capítulo 8 Teste de Software 1

Normas ISO:

Engenharia de Software

QUALIDADE DE SOFTWARE

DOCUMENTO DE VISÃO 1. TÍTULO DO PROJETO. 2. RESPONSÁVEL PELO DOCUMENTO Ciclano

- 8ª Lista de Exercícios -

Componentes de SIs. Pessoas Organiz. Tecnologia

MANUAL PARA DESENVOLVIMENTO DE SOFTWARE TRABALHO DE CONCLUSAO DE CURSO EM SISTEMAS DE INFORMAÇÃO

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

TS04. Teste de Software PLANOS DE TESTE. COTI Informática Escola de Nerds

ISO/IEC 12207: Manutenção

Gerência e Planejamento de Projeto. Engenharia de Software Profa. Elisa Yumi Nakagawa 1 o semestre de 2016

15/03/2018. Professor Ariel da Silva Dias Modelos de Processo de Software

Engenharia de Requisitos

Gerência e Planejamento de Projeto. Engenharia de Software I Profa. Elisa Yumi Nakagawa 1 o semestre de 2015

Engenharia de Software II

SSC-546 Avaliação de Sistemas Computacionais

Estratégias de Testes Parte I

Engenharia de Software I Processos de desenvolvimento de SW. profa. Denise Neves

Prof. Luiz A. Nascimento

Engenharia de Software

Redução e Controle de Erros para as Atividades de Testes de Software

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

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

Fundamentos de Teste de Software

Transcrição:

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

Conteúdo Programático Introdução O que é teste de software? Por que é necessário testar um software? Qual a causa dos problemas? O que pode ser testado? Custo da Correção dos Defeitos. Verificação x Validação. Estratégias de Teste.

O que é teste de software? Processo de executar o software de uma maneira controlada com o objetivo de avaliar se o mesmo se comporta conforme o especificado; Processo utilizado para revelar defeitos em software, e estabelecer que o mesmo atingiu um determinado grau de qualidade.

Por que é necessário testar um software? Garantir que todos os requisitos estão implementados e sem erros; Tentar encontrar algo que na verdade não queremos encontrar; Provar que o software tem erros; Evitar defeitos no cliente. QUALIDADE ECONOMIA SEGURANÇA CONFIABILIDADE

PESSOAS!! Qual a causa dos problemas? ERRO -> Ação humana que produz um resultado incorreto; DEFEITO (BUG) -> manifestação de um erro no software. Se executado, o defeito pode causar uma falha; FALHA -> diferença indesejável entre o observado e o esperado. (defeito encontrado).

Objetivos do Teste de Software Encontrar defeitos; Prevenir defeitos; Garantir confiança sobre o nível de qualidade; Prover informações.

O que pode ser testado? Modelos de Processos; Regras de Negócio; Especificação de Requisitos; Modelos de Análise; Documentos do Projeto; Arquitetura; Códigos.

Custo da correção dos defeitos De acordo com a regra 10 de Myers, o custo da correção de um defeito tende a ser cada vez maior quanto mais tarde for detectado. Custo Design Especificação Código Teste Produção Tempo

Verificação x Validação Verificação: Responsável em provar que o artefato atende aos requisitos especificados em sua fase anterior (inspeções e revisões). Nós construímos o sistema corretamente?. Validação: Responsável em provar que o produto atende aos requisitos solicitados pelo usuário. Nós construímos o sistema correto?.

1. Técnicas de testes: Teste Caixa Branca; Teste Caixa Preta. Estratégias de Teste 2. Estágios (Níveis) de testes: Unidade; Integração; Sistema; Aceitação.

1. Técnicas de testes 1.1.Caixa Branca (Teste Estrutural): Tem como objetivo encontrar defeitos na estrutura interna ou no código do software. Geralmente é realizada pelos programadores nos seus próprios códigos, pois envolve conhecimento detalhado do software; Testar: Lógica do código, suas cláusulas, características técnicas, configurações, estrutura de controle, acesso a dados e interface.

1. Técnicas de testes 1.2.Caixa Preta (Teste Funcional): Tem como objetivo determinar se os requisitos foram atendidos pelo software. Necessita do conhecimento dos requisitos.

Definem o momento do ciclo de vida do software em que são realizados os testes. 2.1.Teste Unitário Executados pelos desenvolvedores durante o processo de construção. Objetivos: Reduzir custo dos defeitos; Testar os componentes individuais certificando-se de que as entradas e saídas são válidas; Testar a estrutura interna do sistema.

2.2.Teste Unitário Contexto OO O conceito de unidade se modifica -> o encapsulamento guia a definição de classes e objetos. Uma classe encapsulada é usualmente o foco do teste unitário. Diferenças: Convencional: foco no detalhes algoritmo de um módulo e os dados que fluem através da interface do módulo. OO: é guiado pelas operações encapsuladas na classe e pelo estado de comportamento da classe.

2.2. Teste de Integração Executado para garantir que as unidades testadas (teste unitário) funcionem corretamente quando integradas. Caracterizado por testar as interfaces ente os componentes, interações de diferentes partes de um sistema como o sistema operacional, arquivos, hardware ou interfaces entre sistemas.

2.2. Teste de Integração OO Software orientado a objetos não tem uma estrutura óbvia de controle hierárquico. Duas Estratégias: Teste baseado no caminho de execução. Teste baseado no uso.

2.2. Teste de Integração OO Teste baseado no caminho de execução. Integra o conjunto de classes necessárias para responder a uma entrada ou um evento do sistema. Cada caminho de execução é integrado e testado individualmente.

2.2. Teste de Integração OO Teste baseado no uso. Testa as classe independentes, ou seja, que não usam (ou que usam poucas) classes servidoras. Depois são testadas as classes dependentes.

2.3. Teste de Sistema Normalmente executado quando o software está funcionando totalmente. Objetivos: exercitar a operação do sistema de forma completa; Verificar se os módulos executam suas funções apropriadamente; Demonstrar que o sistema executa de modo funcional e operacional as funções especificadas; Verificar a Integração dos componentes de software em um ambiente similar ao de produção (hardware, software, pessoas e outros sistemas).

2.3. Teste de Sistema (continuação) Abordagens: Determinar como um módulo pode ser invocado através de outro módulo do mesmo sistema; Dados devem ser transmitidos de forma correta entre os módulos do mesmo sistema; Compatibilidade um módulo não deve causar impactos indesejáveis em outro módulo (funcionalidades e perfornance).

2.3. Teste de Sistema (continuação) Teste de Recuperação: Verifica a capacidade do sistema se recuperar de falhas e retornar o processo dentro de um tempo pré-estabelecido. Em alguns casos, um sistema deve ser tolerante a falhas, isto é, falhas de processamento não devem causar a interrupção da função global do sistema. Em outros casos, o processamento não deve ser continuado em caso de falhas. O sistema deve ser forçado a falhar de diversos modos para verificar:

2.3. Teste de Sistema (continuação) Teste de Recuperação: O sistema deve ser forçado a falhar de diversos modos para verificar: Reinicialização automática, Recuperação de dados,...

2.3. Teste de Sistema (continuação) Teste de Segurança: Qualquer sistema de computador que administra informação sensível é alvo para invasões (impróprias ou ilegais). Invasões: hackers, empregados descontentes, outros... O teste de segurança verifica se os mecanismos de proteção incorporados a um sistema vão de fato protegê-lo. O testador desempenha o papel de invasor! Objetivo: projetista -> tornar o custo da invasão maior do que o valor da informação.

2.3. Teste de Sistema (continuação) Teste de Estresse: São projetados para submeter o sistema a situações (quantidade, freqüência ou volume) anormais. Pergunta: Quanto nós podemos judiar disto antes que falhe?

2.3. Teste de Sistema (continuação) Teste de Desempenho: É projetado para testar o desempenho do sistema durante a execução, no contexto de um sistema integrado. Ocorre ao longo de todos os passos do processo de teste, mesmo o unitário. São frequentemente acoplados aos testes de Estresse. É necessário medir a utilização de recursos: Tempo de processamento, respostas a eventos...

2.4. Teste de Aceite/Validação (UAT) Verificar se a solução atende os objetivos do negócio e a seus requisitos (funcionalidades e usabilidade); Objetivo: Estabelecer confiança do sistema; São executados pelos usuários: Teste alfa: nas instalações da equipe de teste e/ou desenvolvimento; Teste beta: nas instalações do usuário, sem a supervisão da equipe de teste.

2.4. Teste de Aceite/Validação (UAT) Abordagens: Discussões com os usuários; Revisão dos requisitos do software para identificar áreas importantes ou funções a serem testadas; Dados utilizados devem ser iguais aos dados de produção; Aspectos de segurança do dado deve ser observados; Facilidade de help e usabilidade.

RESUMO Técnica CAIXA BRANCA (Estrutural) Teste Unidade (Nível Módulo) Testar comandos, estruturas de dados e caminhos lógicos; Teste Integração (Teste Subsistema) Testar a integração entre as interfaces/componentes dos módulos; Técnica CAIXA PRETA (Funcional) Teste de Sistema (Nível de Sistema) Testar funcionalidades, integração e desempenho; Teste de Aceite/Validação (Nível de Sistema) Demonstrar a conformidade dos requisitos.