Aula - Teste de Software
-
Upload
mauricio-cesar-santos-da-purificacao -
Category
Technology
-
view
762 -
download
4
description
Transcript of Aula - Teste de Software
![Page 1: Aula - Teste de Software](https://reader034.fdocument.pub/reader034/viewer/2022050801/54831159b47959190d8b4975/html5/thumbnails/1.jpg)
Cliquez pour modifier le style du titre
TesteTeste de de SoftwareSoftware
Universidade Federal da Bahia Universidade Federal da Bahia Instituto de Matemática Instituto de Matemática Departamento de Ciência da ComputaçãoDepartamento de Ciência da ComputaçãoDisciplina: MATA62 Disciplina: MATA62 –– Engenharia de Software IEngenharia de Software I
TesteTeste de de SoftwareSoftware
Mauricio C. Santos
CPD-UFBA
Salvador, Março/2010
![Page 2: Aula - Teste de Software](https://reader034.fdocument.pub/reader034/viewer/2022050801/54831159b47959190d8b4975/html5/thumbnails/2.jpg)
O Que Veremos?
� Conceitos Básicos
� Teste de Software
• Teste de Unidade
• Teste Funcional
Teste de Software
2
• Teste de Integração
� Estratégia de Testes em XP
� Test-Driven Development
• TDD com Ruby
� Teste de Unidade com Ruby
![Page 3: Aula - Teste de Software](https://reader034.fdocument.pub/reader034/viewer/2022050801/54831159b47959190d8b4975/html5/thumbnails/3.jpg)
Referências BibliográficasReferências Bibliográficas
� https://disciplinas.dcc.ufba.br/pub/MATB15/SemestreCorrent
e/Aula1.pdf
� http://disciplinas.dcc.ufba.br/MATA62/TesteDeSoftware
� http://disciplinas.dcc.ufba.br/MATA62/TestesDeUnidade
� http://www.disciplinas.dcc.ufba.br/MATA63/Desenvolviment
3
� http://www.disciplinas.dcc.ufba.br/MATA63/Desenvolviment
oDirigidoPorTestes
� http://disciplinas.dcc.ufba.br/MATA62/TDDComRuby
� http://pt.wikipedia.org/wiki/Test_Driven_Development
![Page 4: Aula - Teste de Software](https://reader034.fdocument.pub/reader034/viewer/2022050801/54831159b47959190d8b4975/html5/thumbnails/4.jpg)
Cliquez pour modifier le style du titre
Conceitos Básicos
![Page 5: Aula - Teste de Software](https://reader034.fdocument.pub/reader034/viewer/2022050801/54831159b47959190d8b4975/html5/thumbnails/5.jpg)
Defeitos e FalhasDefeitos e Falhas
� Defeito
• um problema nos requisitos, no projeto, no código, na documentação ou nos casos de teste.
5
� Falha
• um problema no funcionamento do sistema.
Falha: conseqüência de um defeito
![Page 6: Aula - Teste de Software](https://reader034.fdocument.pub/reader034/viewer/2022050801/54831159b47959190d8b4975/html5/thumbnails/6.jpg)
Defeitos e Falhas: Uma Visão Mais CompletaDefeitos e Falhas: Uma Visão Mais Completa
6
![Page 7: Aula - Teste de Software](https://reader034.fdocument.pub/reader034/viewer/2022050801/54831159b47959190d8b4975/html5/thumbnails/7.jpg)
Principais Artefatos de Software: Uma Visão Principais Artefatos de Software: Uma Visão SimplificadaSimplificada
7
![Page 8: Aula - Teste de Software](https://reader034.fdocument.pub/reader034/viewer/2022050801/54831159b47959190d8b4975/html5/thumbnails/8.jpg)
Defeitos Introduzidos ao Longo do Processo Defeitos Introduzidos ao Longo do Processo de Desenvolvimentode Desenvolvimento
� A maior parte é de origem humana.
� São gerados na comunicação e na transformação de informações.
� Permanecem presentes nos diversos produtos de
8
software produzidos e liberados.
� A maioria encontra-se em partes do produto de software raramente utilizadas e/ou executadas.
![Page 9: Aula - Teste de Software](https://reader034.fdocument.pub/reader034/viewer/2022050801/54831159b47959190d8b4975/html5/thumbnails/9.jpg)
Alguns Tipos de Defeitos IntroduzidosAlguns Tipos de Defeitos Introduzidos
9
![Page 10: Aula - Teste de Software](https://reader034.fdocument.pub/reader034/viewer/2022050801/54831159b47959190d8b4975/html5/thumbnails/10.jpg)
Defeitos Introduzidos ao Longo do Processo Defeitos Introduzidos ao Longo do Processo de Desenvolvimentode Desenvolvimento
� Principal causa:
• Tradução incorreta de informações.
� Quanto antes a presença do defeito for revelada, menor o custo de correção do defeito e maior a
10
probabilidade de corrigi-lo corretamente.
� Solução:
• Introduzir atividades de V V & T ao longo de todo o ciclo de desenvolvimento.
![Page 11: Aula - Teste de Software](https://reader034.fdocument.pub/reader034/viewer/2022050801/54831159b47959190d8b4975/html5/thumbnails/11.jpg)
Verificação e Validação V & VVerificação e Validação V & V
� As atividades de avaliação de produtos são parte do tema chamado Verificação e Validação (V&V).
� A definição de V&V abrange muitas das atividades às quais nos referimos como Garantia da
11
às quais nos referimos como Garantia da Qualidade de Software (SQA).
![Page 12: Aula - Teste de Software](https://reader034.fdocument.pub/reader034/viewer/2022050801/54831159b47959190d8b4975/html5/thumbnails/12.jpg)
VerificaçãoVerificação
� Refere-se ao conjunto de atividades que garante que o software implementa corretamente uma função específica.
12
“Estamos construindo certo o produto?”
![Page 13: Aula - Teste de Software](https://reader034.fdocument.pub/reader034/viewer/2022050801/54831159b47959190d8b4975/html5/thumbnails/13.jpg)
ValidaçãoValidação
� Refere-se ao conjunto de atividades que garante que o software que foi construído é “rastreável” às exigências do cliente.
13
“Estamos construindo o produto certo?”
![Page 14: Aula - Teste de Software](https://reader034.fdocument.pub/reader034/viewer/2022050801/54831159b47959190d8b4975/html5/thumbnails/14.jpg)
Garantia da Qualidade de SoftwareGarantia da Qualidade de Software
� Métodos de Engenharia de Software: proporcionam a base a partir da qual a qualidade é construída.
� Revisões Técnicas Formais: ajudam a garantir a qualidade do produto produzido como uma
14
qualidade do produto produzido como uma conseqüência de cada passo da engenharia de software.
� Medição: ajudam a controlar cada elemento da configuração de software.
![Page 15: Aula - Teste de Software](https://reader034.fdocument.pub/reader034/viewer/2022050801/54831159b47959190d8b4975/html5/thumbnails/15.jpg)
Garantia da Qualidade de SoftwareGarantia da Qualidade de Software
� Padrões e Procedimentos: ajudam a garantir a uniformidade.
� Garantia de Qualidade de Software (SQA): põe em prática uma filosofia de qualidade total.
15
prática uma filosofia de qualidade total.
� Teste: a qualidade pode ser avaliada.
![Page 16: Aula - Teste de Software](https://reader034.fdocument.pub/reader034/viewer/2022050801/54831159b47959190d8b4975/html5/thumbnails/16.jpg)
Garantia da Qualidade de SoftwareGarantia da Qualidade de Software
16
![Page 17: Aula - Teste de Software](https://reader034.fdocument.pub/reader034/viewer/2022050801/54831159b47959190d8b4975/html5/thumbnails/17.jpg)
Cliquez pour modifier le style du titre
Teste de Software
![Page 18: Aula - Teste de Software](https://reader034.fdocument.pub/reader034/viewer/2022050801/54831159b47959190d8b4975/html5/thumbnails/18.jpg)
O Que É ?O Que É ?
� A atividade de teste é o processo de executar um programa com a intenção de descobrir um erro
� Um bom caso de teste é aquele que tem uma elevada probabilidade de revelar um erro ainda não
18
elevada probabilidade de revelar um erro ainda não descoberto
� Um teste bem-sucedido é aquele que revela um erro ainda não descoberto.
![Page 19: Aula - Teste de Software](https://reader034.fdocument.pub/reader034/viewer/2022050801/54831159b47959190d8b4975/html5/thumbnails/19.jpg)
Objetivos da Atividade de TesteObjetivos da Atividade de Teste
� Objetivo: projetar testes que descubram sistematicamente diferentes classes de erros com uma quantidade de tempo e esforço razoáveis.
� Se a atividade de teste for conduzida com sucesso,
19
� Se a atividade de teste for conduzida com sucesso, ela descobrirá erros no software.
A atividade de teste não pode mostrar a ausência de bugs.
Ela só pode mostrar se defeitos de software estão presentes.
![Page 20: Aula - Teste de Software](https://reader034.fdocument.pub/reader034/viewer/2022050801/54831159b47959190d8b4975/html5/thumbnails/20.jpg)
Erros e as Atividades de TesteErros e as Atividades de Teste
� Se erros graves forem encontrados com regularidade, isto implica que a qualidade e a confiabilidade de software são suspeitas.
� Se erros facilmente corrigíveis forem
20
� Se erros facilmente corrigíveis forem encontrados, isto implica que a qualidade e a confiabilidade do software estão aceitáveis ou os testes são inadequados para revelar erros graves
� Se não for encontrado erro isto implica que a configuração de teste não foi suficientemente elaborada e erros estão escondidos no software
![Page 21: Aula - Teste de Software](https://reader034.fdocument.pub/reader034/viewer/2022050801/54831159b47959190d8b4975/html5/thumbnails/21.jpg)
Processo Tradicional de TestesProcesso Tradicional de Testes
21
![Page 22: Aula - Teste de Software](https://reader034.fdocument.pub/reader034/viewer/2022050801/54831159b47959190d8b4975/html5/thumbnails/22.jpg)
Abordagens para TestesAbordagens para Testes
� Abordagem funcional
• AKA "teste caixa preta"
• são testadas as funcionalidades do software,
22
emitindo entradas pré-definidas e testando pelas saídas esperadas.
![Page 23: Aula - Teste de Software](https://reader034.fdocument.pub/reader034/viewer/2022050801/54831159b47959190d8b4975/html5/thumbnails/23.jpg)
Abordagens para TestesAbordagens para Testes
� Abordagem estrutural
• AKA "teste caixa branca"
• são testados aspectos de implementação das unidades de modularização (e.g. classes):
23
unidades de modularização (e.g. classes):
� algoritmos utilizados
� resultados esperados de métodos em função de seus parâmetros
![Page 24: Aula - Teste de Software](https://reader034.fdocument.pub/reader034/viewer/2022050801/54831159b47959190d8b4975/html5/thumbnails/24.jpg)
Teste Automatizado de SoftwareTeste Automatizado de Software
� Programas que testam programas.
• oráculo
� Uso de frameworks de teste.
24
![Page 25: Aula - Teste de Software](https://reader034.fdocument.pub/reader034/viewer/2022050801/54831159b47959190d8b4975/html5/thumbnails/25.jpg)
Etapas do Teste de SoftwareEtapas do Teste de Software
� Testes de Unidade: cada módulo é testado individualmente garantindo que ele funcione adequadamente.
25
� Utiliza as técnicas de teste de caixa branca.
![Page 26: Aula - Teste de Software](https://reader034.fdocument.pub/reader034/viewer/2022050801/54831159b47959190d8b4975/html5/thumbnails/26.jpg)
Etapas do Teste de SoftwareEtapas do Teste de Software
� Testes de Integração: os módulos são montados ou integrados para formarem um pacote de software.
26
� Utiliza principalmente as técnicas de teste de caixa preta.
![Page 27: Aula - Teste de Software](https://reader034.fdocument.pub/reader034/viewer/2022050801/54831159b47959190d8b4975/html5/thumbnails/27.jpg)
Etapas do Teste de SoftwareEtapas do Teste de Software
� Testes de Alto Nível (validação e sistema): Os critérios de validação estabelecidos durante a análise de requisitos são testados.
27
� Verifica também se todos os elementos combinam-se adequadamente e se a função/ desempenho global do sistema é conseguida.
� Utiliza as técnicas de caixa preta.
![Page 28: Aula - Teste de Software](https://reader034.fdocument.pub/reader034/viewer/2022050801/54831159b47959190d8b4975/html5/thumbnails/28.jpg)
Etapas do Teste de SoftwareEtapas do Teste de Software
28
![Page 29: Aula - Teste de Software](https://reader034.fdocument.pub/reader034/viewer/2022050801/54831159b47959190d8b4975/html5/thumbnails/29.jpg)
Cliquez pour modifier le style du titre
Estratégia de Teste em XP
![Page 30: Aula - Teste de Software](https://reader034.fdocument.pub/reader034/viewer/2022050801/54831159b47959190d8b4975/html5/thumbnails/30.jpg)
Estratégia de Teste em XPEstratégia de Teste em XP
� "O que não pode ser mensurado não existe." [Kent Beck]
� "Não confio em nada que escrevi até que eu tenha testes para isso." [Kent Beck]
30
testes para isso." [Kent Beck]
� "Tests are both resource and responsibility."
� "Work with human nature, not against it."
• Testar é importante mas pensamos mais no código do que nos testes
![Page 31: Aula - Teste de Software](https://reader034.fdocument.pub/reader034/viewer/2022050801/54831159b47959190d8b4975/html5/thumbnails/31.jpg)
Estratégia de Teste em XPEstratégia de Teste em XP
� Testes com XP são isolados e automáticos
• Testes isolados: não há efeito "cascata" pois testes não interagem entre si
31
• Testes automáticos: indicam apenas se os testes passaram ou não
![Page 32: Aula - Teste de Software](https://reader034.fdocument.pub/reader034/viewer/2022050801/54831159b47959190d8b4975/html5/thumbnails/32.jpg)
Cliquez pour modifier le style du titre
Test Driven Development - TDD
![Page 33: Aula - Teste de Software](https://reader034.fdocument.pub/reader034/viewer/2022050801/54831159b47959190d8b4975/html5/thumbnails/33.jpg)
O Que É ?O Que É ?
33
![Page 34: Aula - Teste de Software](https://reader034.fdocument.pub/reader034/viewer/2022050801/54831159b47959190d8b4975/html5/thumbnails/34.jpg)
Por Quê Usar ? Por Quê Usar ?
� Ênfase na interface
� Expressão dos requisitos
� Projeto bottom-up
34
� Projeto bottom-up
� Todo código desenvolvido é coberto por testes
� Design do programa
� Redução do tempo de depuração
� Código modularizado, flexível e extensível
![Page 35: Aula - Teste de Software](https://reader034.fdocument.pub/reader034/viewer/2022050801/54831159b47959190d8b4975/html5/thumbnails/35.jpg)
Refatoração Refatoração
� Modificar o design de um código sem alterar o seu comportamento
� Em TDD, isso significa alterar o código de forma que os testes continuem passando.
35
que os testes continuem passando.
� Para saber mais: Refactoring: Improving the Design of Existing Code (The Addison-Wesley ObjectTechnology Series): Martin Fowler,Kent Beck,John Brant,William Opdyke,Don Roberts
![Page 36: Aula - Teste de Software](https://reader034.fdocument.pub/reader034/viewer/2022050801/54831159b47959190d8b4975/html5/thumbnails/36.jpg)
BeneficiosBeneficios
� Alguns estudos mostram impacto positivo de TDD:
� Redução de número de defeitos
• Um estudo sobre o impacto do uso de desenvolvimento orientado por testes na
36
melhoria da qualidade de software. Projeto de conclusão de curso de Daniela Feitosa, 2007.2.
� Aumento da produtividade
� Aumento da qualidade
![Page 37: Aula - Teste de Software](https://reader034.fdocument.pub/reader034/viewer/2022050801/54831159b47959190d8b4975/html5/thumbnails/37.jpg)
LimitaçõesLimitações
� Mudança de pensamento
� Suporte gerencial
� Dependência de testes funcionais para sucesso/falha (interfaces de usuários, interação
37
com bases de dados, sistemas que dependam de configurações específicas da rede)
�