introdução a testes de software

53
Introdução aos testes de software Prof. Leonardo Soares

Upload: leonardo-soares

Post on 11-Jun-2015

298 views

Category:

Education


0 download

DESCRIPTION

Aula de introdução a disciplina de testes de software ministrada no IFPE - Campus Garanhuns. Professor Leonardo Soares

TRANSCRIPT

Page 1: Introdução a testes de software

Introdução aos testes de software

Prof. Leonardo Soares

Page 2: Introdução a testes de software

Compentências: Entender conceitos sobre a área; Compreender por que através de testes

garatimos a qualidade de nosso software; Identificar a necessidade no uso de testes e

como utilizá-lo; Conhecer as ferramentas necessárias à

aplicação de testes.

Sobre a disciplina

Page 3: Introdução a testes de software

Avaliações Primeira (07/04)

Exercícios passados em sala de aula; Avaliação escrita;

Segunda (16/06) Avaliação escrita;

Sobre a disciplina

Page 4: Introdução a testes de software

Por que testamos?

Page 5: Introdução a testes de software

Por que testamos?

Page 6: Introdução a testes de software

Por que testamos?

Page 7: Introdução a testes de software

Em 1983 uma terceira guerra mundial quase foi deflagrada por uma falha no software de alerta de radares soviéticos. A falha fez com que o software mostrasse que os E.U.A. tinham lançado cinco mísseis.

A guerra não aconteceu, pois o Tenente Coronel Stanislav Petrov considerou que a informação estava errada e não ordenou o contra-ataque, evitando assim o início da III guerra mundial.

Softwares podem matar!

Page 8: Introdução a testes de software

Por uma falha em um sistema de software para controle de ações em uma bolsa de valor, a empresa americana Knight sofreu perdas de $ 460 milhões de doláres em apenas 45 minutos.

Softwares causam prejuízos!

Page 9: Introdução a testes de software

Bancos perderem milhões Telefones pararem de funcionar Aviões terem suas rotas desviadas Sistemas clínicos causarem problemas a

pacientes

O Que pode acontecer quando a gente não testa nosso software?

Page 10: Introdução a testes de software

Importância em garantir a qualidade

Page 11: Introdução a testes de software

Importância em garantir a qualidade

Page 12: Introdução a testes de software

O Que achamos disto?

Page 13: Introdução a testes de software

Importância do teste de software para os negócios

Page 14: Introdução a testes de software

Estabelecemos um contrato com nosso cliente

Page 15: Introdução a testes de software

Falhas geram frustração

Page 16: Introdução a testes de software

Sempre o cliente encontrará o erro

Page 17: Introdução a testes de software

O Que pode acontecer para a empresa que desenvolve o software?

Page 18: Introdução a testes de software

O Que pode acontecer para a empresa?

Page 19: Introdução a testes de software

Vamos parar de gambiarra!

Page 20: Introdução a testes de software

Como vocês testam seu software?

Page 21: Introdução a testes de software

“Teste de software é o processo de executar o programa com a intenção de encontrar bugs”Glendford Myers, 1979

Teste de software

Page 22: Introdução a testes de software

Curiosidade

Page 23: Introdução a testes de software

Formem grupos e encontrem os problemas: Em um software para controle da energia; Em um software para controle de semáforos; Em um software de registro acadêmico;

Quais problemas podem ocorrer nestes softwares?

Page 24: Introdução a testes de software

Testes ajudam a encontrar erros, mas não corrigí-los.

Cabe aos desenvolvedores fazerem a correção

O Que teste de software não é?!

Page 25: Introdução a testes de software

Dificuldades na criação de softwares

Page 26: Introdução a testes de software

Softwares são complexos

Page 27: Introdução a testes de software

Satisfazer o cliente é difícil…

Page 28: Introdução a testes de software

Levam vários meses/anos para serem desenvolvidos

Page 29: Introdução a testes de software

Várias pessoas trabalhando no mesmo produto

Page 30: Introdução a testes de software

A comunicação é um problema…

Page 31: Introdução a testes de software

Software muda

Page 32: Introdução a testes de software

Prazos e recursos são limitados

Page 33: Introdução a testes de software

Atender as necessidades do cliente Testes contínuos no software Documentação do sistema Adoção de boas práticas de

desenvolvimento Construir software com qualidade!

Como minimizar os problemas

Page 34: Introdução a testes de software

Conformidade com requisitos funcionais e não funcionais, padrões de desenvolvimento documentados e características implícitas esperadas de todo software profissionalmente desenvolvido

Qualidade na computação

Page 35: Introdução a testes de software

Como garantimos a qualidade de nosso software?

Page 36: Introdução a testes de software

Criando uma documentação consistente

Page 37: Introdução a testes de software

Validação e verificação

Page 38: Introdução a testes de software

Adotar padrões de projeto

Page 39: Introdução a testes de software

Admitir que há erros e tentar encontrá-los

Page 40: Introdução a testes de software

Inspecionar nosso código Avaliar se o software atende aos requisitos

do usuário Pedir para o cliente verificar

Como encontrar erros no software

Page 41: Introdução a testes de software

Qualidade e teste de software

Descobrir falhas

Corrigir falhas

Validar requisit

os

Qualidade

Page 42: Introdução a testes de software

Defeito Erro Falha

Alguns termos importantes

Page 43: Introdução a testes de software

• Validação: assegurar que o produto final corresponda aos requisitos do usuário• Estamos construindo o produto certo?

• Verificação: Assegurar consistência, completitude e corretitude do produto em cada fase e entre fases consecutivas do ciclo de vida do software• Estamos construindo corretamente o produto?

• Teste: Examina o comportamento do produto por meio de sua execução

VV&T

Page 44: Introdução a testes de software

Como correm os defeitos no processo de software

Page 45: Introdução a testes de software

Falha humana

Page 46: Introdução a testes de software

Problema de comunicação

Page 47: Introdução a testes de software

• Mais de 1/3 das falhas poderiam ser evitadas com testes [1]

• Cerca de 50% das falhas só são descobertas em produção [1]

• Segundo uma pesquisa do Departamento de Comércio dos EUA, publicada em 2002, falhas de software são tão comuns e tão danosas que se estima que causem um prejuízo anual de mais de 60 bilhões de dólares para a economia americana. [1], [2]

Por que estudamos teste?

Page 48: Introdução a testes de software

Por que estudamos testes?

Page 49: Introdução a testes de software

• Falhas de software causam grandes prejuízos• A prática de testes ainda é pouco utilizada• Quanto antes a presença do defeito for

revelada, menor o custo da correção e maior a probabilidade de corrigí-lo

• Testes não encontram todas as falhas, mas ajudam a minimizar os erros

O Que percebemos?

Page 50: Introdução a testes de software

• Desejamos oferecer uma melhor qualidade ao código

• Garantir que os requisitos estão implementados e estão corretos

• Fornecem segurança para realizar alterações no código

Quando utilizar testes?

Page 51: Introdução a testes de software

• Analisar documentos e verificar se foi produzido corretamente

• Testar funções e verificar se as entradas produzidas resultam nas saídas esperadas

• Fazer uso do software desenvolvido e verificar se está conforme os requisitos

O Que é teste de software?

Page 52: Introdução a testes de software

• São previsíveis• São finitos• São (ou deveriam ser) simples• Não são perfeitos, mas uma das melhores

alternativas para validação

O Que são testes de software?

Page 53: Introdução a testes de software

• Falta de conhecimento• Prazo• Situação

Quando testes não são adequados?