ENGENHARIA DE SOFTWARE. Aula 12 Testes de software

Documentos relacionados
ENGENHARIA DE SOFTWARE

Testes de Software. Prof. Edjandir C. Costa

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

ENGENHARIA DE SOFTWARE. Aula 03 Processos de Software

Capítulo 8 Teste de Software 1

Capítulo 8. Testes de Software Pearson. Todos os direitos reservados. slide 1

ENGENHARIA DE SOFTWARE. Aula 17 Reuso de software

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

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

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

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

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

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

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

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

TESTES DE SOFTWARE. Profa. Maria Auxiliadora

- 8ª Lista de Exercícios -

Programação Orientada a Objetos

TESTES DE SOFTWARE 1. Fundamentos sobre testes de software

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

Teste de software. Definição

Teste de Software. Professor Maurício Archanjo Nunes Coelho

Verificação e Validação

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

Desenvolvimento ágil de software

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

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

Processos de Software by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1

ENGENHARIA DE SOFTWARE. Aula 08 Gerenciamento de Projetos

Processo de Desenvolvimento. Edjandir Corrêa Costa

Processos de software

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

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

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

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

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

Verificação e Validação

Teste de Software. Karen Frigo Busolin Novembro / 2010

Teste de Software Intermediário

Desenvolvimento Ágil de Software. Prof. Edjandir Corrêa Costa

7. Testes de Software

VERIFICAÇÃO & VALIDAÇÃO

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS. Nome:

Introdução aos Testes de Software

Engenharia de Software

Engenharia de Software

Engenharia de Software II

MODELOS DE PROCESSOS (PARTE 2)

Requisitos de Sistemas

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

Engenharia de Software II

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

Estratégias de Testes Parte I

Guia do Processo de Teste Metodologia Celepar

Métodos Ágeis e Programação Extrema (XP)

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

ENGENHARIA DE SOFTWARE. Aula 01 A natureza do software

Desenvolvimento Ágil de Software

JUnit. Facilitando o desenvolvimento e execução de testes unitários em código java. Peterson Rodrigues

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

O papel do QA (Testador) em um time Ágil. #caipiraagil2017

Teste de Software Básico

Princípios da Engenharia de Software aula 03

SSC 0721 Teste e Validação de Software

DCC / ICEx / UFMG. O Modelo CMMI. Eduardo Figueiredo.

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

Extreme Programming. Projeto de. Desenvolvimento. Software. Prof.: Ari Oliveira

Teste Unitários com NUnit. Anderson Martiniano da Rocha

Testes Ágeis com BDD. Por que o BDD pode salvar o agile? Paloma Costa

- 6ª Lista de Exercícios -

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

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS. Nome:

DESCOBERTO. (Glen Myers)

114 analista DE ti - teste E QUaliDaDE Data e horário da prova: Domingo, 20/01/2013, às 14h.

Por que é importante?

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

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

Reutilização 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

ENGENHARIA DE SOFTWARE. Aula 07 UML - Diagrama de Casos de Uso

Engenharia de Software

Transcrição:

ENGENHARIA DE SOFTWARE Aula 12 Testes de software

OBJETIVOS Compreender os estágios de teste durante o desenvolvimento para os testes de aceitação por parte dos usuários de sistema; Apresentar as técnicas que ajudam a escolher casos de teste orientados para a descoberta de defeitos de programa; Compreender o desenvolvimento test-first, em que você projeta testes antes de escrever o código e os executa automaticamente; e Conhecer as diferenças importantes entre teste de componentes, de sistemas e de release, e estar ciente dos processos e técnicas de usuário. 22/08/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 2

INTRODUÇÃO O teste é destinado a mostrar que um programa faz o que é proposto a fazer e para descobrir os defeitos do programa antes do uso. O processo de teste tem dois objetivos distintos: demonstrar ao desenvolvedor e ao cliente que o software atende a seus requisitos e descobrir situações em que o software se comporta de maneira incorreta, indesejável ou de forma diferente das especificações. O teste é parte de um amplo processo de verificação e validação (V&V). O objetivo da verificação é checar se o software atende a seus requisitos funcionais e não funcionais. O objetivo da validação é garantir que o software atenda às expectativas do cliente. 22/08/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 3

INTRODUÇÃO Geralmente um sistema de software comercial tem de passar por três estágios de teste: testes de desenvolvimento, release e de usuário. 22/08/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 4

TESTES DE DESENVOLVIMENTO Testes de desenvolvimento incluem todas as atividades de testes que são realizadas pela equipe de desenvolvimento do sistema. O testador do software geralmente é o programador que o desenvolveu, embora nem sempre seja assim. Durante o desenvolvimento, o teste pode ocorrer em três níveis de granularidade: - Teste Unitário - Teste de Componentes - Teste de Sistema 22/08/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 5

TESTES UNITÁRIO O teste unitário é o processo de testar os componentes de programa, como métodos ou classes de objeto. As funções individuais ou métodos são o tipo mais simples de componente. Seus testes devem ser chamadas para essas rotinas com parâmetros diferentes de entrada. Você pode usar as abordagens para projetos de casos de teste para projetar testes de funções ou métodos. Sempre que possível você deve automatizar os testes unitários (como o JUnit) para escrever testes e executar testes de seu programa. 22/08/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 6

TESTE DE COMPONENTE Frequentemente, os componentes de software são compostos de diversos objetos que interagem. Você pode assumir que os testes unitários sobre os objetos individuais dentro do componente já foram concluídos. 22/08/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 7

TESTE DE SISTEMA O teste de sistema, durante o desenvolvimento, envolve a integração de componentes de uma versão do sistema, e em seguida, o teste do sistema integrado. O teste de sistema verifica se os componentes são compatíveis, se interagem corretamente e transferem os dados certos no momento certo, por suas interfaces. O teste do sistema deve centrar-se em testar as interações entre os componentes e objetos que compõe um sistema. Testes automatizados do sistema geralmente são mais difíceis do que testes automatizados de unidades ou de componentes. 22/08/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 8

DESENVOLVIMENTO DIRIGIDO A TESTES O desenvolvimento dirigido a testes (TDD, do inglês Test-Driven Development) é uma abordagem para o desenvolvimento de programas em que se intercalam testes e desenvolvimento de código. 22/08/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 9

TESTES DE RELEASE Teste de release é o processo de testar um release particular de um sistema que se destina fora da equipe de desenvolvimento. O objetivo principal do testes de release é convencer o fornecedor do sistema de que esse sistema é bom o suficiente para uso. Testes baseados em requisitos Exemplo: sistema de verificação de alergias a medicamentos. Testes de cenário Exemplo: enfermeira especialista em saúde mental em atendimento de campo. Testes de desempenho Exemplo: teste de estresse em uma site de venda de ingressos. 22/08/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 10

TESTES DE USUÁRIO Teste de usuário ou cliente é um estágio no processo de teste em que os usuários ou clientes fornecem entradas e conselhos sobre o teste de sistema. Existem três tipos: alfa, beta e de aceitação. 22/08/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 11

RESUMO Os testes só podem anunciar a presença de defeitos em um programa. Não podem demonstrar que não existem defeitos remanescentes. Testes de desenvolvimento são de responsabilidade da equipe de desenvolvimento de software. Outra equipe deve ser responsável por testar o sistema antes que ele seja liberado para os clientes. No processo de testes de usuário, clientes ou usuários do sistema fornecem dados de teste e verificam se os testes são bem sucedidos. Testes de desenvolvimento incluem testes unitários, nos quais você testa objetos e métodos específicos; testes de componentes, em que você testa diversos grupos de objetos; e testes de sistema, nos quais você testa sistemas parciais ou completos. Ao testar o software, você deve tentar quebrar o software usando sua experiência e diretrizes para escolher os tipos de casos de testes que têm sido eficazes na descoberta de defeitos em outros sistemas. 22/08/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 12

RESUMO Sempre que possível, você deve escrever testes automatizados. Os testes são incorporados em um programa que pode ser executado cada vez que uma alteração é feita para um sistema. O desenvolvimento test-first é uma abordagem de desenvolvimento na qual os testes são escritos antes do código que será testado. Pequenas alterações no código são feitas, e o código é refatorado até que todos os testes sejam executados com êxito. Testes de cenário são úteis porque replicam o uso prático do sistema. Trata-se de inventar um cenário típico de uso e usar isso para derivar casos de teste. Teste de aceitação é um processo de teste de usuário no qual o objetivo é decidir se o software é bom o suficiente para ser implantado e usado em seu ambiente operacional. 22/08/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 13

ATIVIDADE Trabalho Individual Escrever um texto legível à caneta que forneça uma resposta para a pergunta a seguir. A atividade deve ser entregue na próxima aula. Explique por que um programa não precisa, necessariamente, ser completamente livre de defeitos antes de ser entregue a seus clientes. 22/08/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 14

REFERÊNCIAS SOMMERVILLE, I. Engenharia de Software. 9. ed. São Paulo: Pearson Prentice Hall, 2011. 530 p. ISBN: 978-85-7936-108-1. 22/08/2017 IFPR QUEDAS DO IGUAÇU - ENGENHARIA DE SOFTWARE - DANILO GIACOBO 15