SlideShare uma empresa Scribd logo
1 de 37
Baixar para ler offline
Universidade Federal da Bahia
     Instituto de Matemática
     Departamento de Ciência da Computação
     Disciplina: MATA62 – Engenharia de Software I



     Cliquez pour modifier le style du titre
                       Teste de Software

                         Mauricio C. Santos
                            CPD-UFBA


Salvador, Março/2010
O Que Veremos?


                    Conceitos Básicos
Teste de Software
                    Teste de Software
                    • Teste de Unidade
                    • Teste Funcional
                    • Teste de Integração
                    Estratégia de Testes em XP
                    Test-Driven Development
                    • TDD com Ruby
                    Teste de Unidade com Ruby

                                                 2
Referê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
oDirigidoPorTestes
http://disciplinas.dcc.ufba.br/MATA62/TDDComRuby
http://pt.wikipedia.org/wiki/Test_Driven_Development




                                                        3
Cliquez pour modifier le style du titre

                    Conceitos Básicos
Defeitos e Falhas



Defeito
• um problema nos requisitos, no projeto, no
  código, na documentação ou nos casos de teste.
Falha
• um problema no funcionamento do sistema.


        Falha: conseqüência de um defeito


                                              5
Defeitos e Falhas: Uma Visão Mais Completa




                                         6
Principais Artefatos de Software: Uma Visão
Simplificada




                                          7
Defeitos Introduzidos ao Longo do Processo
  de 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
software produzidos e liberados.
A maioria encontra-se em partes do produto de
software raramente utilizadas e/ou executadas.




                                                 8
Alguns Tipos de Defeitos Introduzidos




                                        9
Defeitos Introduzidos ao Longo do Processo
  de 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
probabilidade de corrigi-lo corretamente.
Solução:
• Introduzir atividades de V V & T ao longo de todo
  o ciclo de desenvolvimento.


                                                   10
Verificaçã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
Qualidade de Software (SQA).




                                              11
Verificação



Refere-se ao conjunto de atividades que garante
que o software implementa corretamente uma
função específica.


  “Estamos construindo certo o produto?”




                                                  12
Validação



Refere-se ao conjunto de atividades que garante
que o software que foi construído é “rastreável” às
exigências do cliente.


  “Estamos construindo o produto certo?”




                                                 13
Garantia 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
conseqüência de cada passo da engenharia de
software.
Medição: ajudam a controlar cada elemento da
configuração de software.


                                                 14
Garantia 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.
Teste: a qualidade pode ser avaliada.




                                               15
Garantia da Qualidade de Software




                                    16
Cliquez pour modifier le style du titre

                     Teste de Software
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
descoberto
Um teste bem-sucedido é aquele que revela um
erro ainda não descoberto.



                                               18
Objetivos 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,
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.




                                                                 19
Erros 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
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
                                                 20
Processo Tradicional de Testes




                                 21
Abordagens para Testes



Abordagem funcional
• AKA "teste caixa preta"
• são testadas as funcionalidades do software,
  emitindo entradas pré-definidas e testando pelas
  saídas esperadas.




                                               22
Abordagens para Testes


Abordagem estrutural
• AKA "teste caixa branca"
• são testados aspectos de implementação das
  unidades de modularização (e.g. classes):
    algoritmos utilizados
    resultados esperados de métodos em função
    de seus parâmetros



                                               23
Teste Automatizado de Software


Programas que testam programas.
• oráculo
Uso de frameworks de teste.




                                   24
Etapas do Teste de Software




Testes de Unidade: cada módulo é testado
individualmente garantindo que ele funcione
adequadamente.
Utiliza as técnicas de teste de caixa branca.




                                                25
Etapas do Teste de Software




Testes de Integração: os módulos são montados
ou integrados para formarem um pacote de
software.
Utiliza principalmente as técnicas de teste de caixa
preta.




                                                  26
Etapas 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.
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.


                                                 27
Etapas do Teste de Software




                              28
Cliquez pour modifier le style du titre

        Estratégia de Teste em XP
Estraté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]
"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

                                                30
Estraté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
• Testes automáticos: indicam apenas se os testes
  passaram ou não




                                                  31
Cliquez pour modifier le style du titre

 Test Driven Development - TDD
O Que É ?




            33
Por Quê Usar ?



Ênfase na interface
Expressão dos requisitos
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

                                                34
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.
Para saber mais: Refactoring: Improving the Design
of Existing Code (The Addison-Wesley Object
Technology Series): Martin Fowler,Kent Beck,John
Brant,William Opdyke,Don Roberts


                                                   35
Beneficios

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
  melhoria da qualidade de software. Projeto de
  conclusão de curso de Daniela Feitosa, 2007.2.
Aumento da produtividade
Aumento da qualidade


                                              36
Limitações

Mudança de pensamento
Suporte gerencial
Dependência de testes funcionais para
sucesso/falha (interfaces de usuários, interação
com bases de dados, sistemas que dependam de
configurações específicas da rede)




                                               37

Mais conteúdo relacionado

Mais procurados

Verificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareVerificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareCamilo Almendra
 
Qualidade de Software: Modelos e normas
Qualidade de Software: Modelos e normasQualidade de Software: Modelos e normas
Qualidade de Software: Modelos e normasAlex Camargo
 
Aula 1: Virtualização
Aula 1: VirtualizaçãoAula 1: Virtualização
Aula 1: Virtualizaçãocamila_seixas
 
X-Zone - Garantia da Qualidade de Software
X-Zone - Garantia da Qualidade de SoftwareX-Zone - Garantia da Qualidade de Software
X-Zone - Garantia da Qualidade de SoftwareAlexandreBartie
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threadsPaulo Fonseca
 
Ferramenta de apoio a gerência de configuração de software
Ferramenta de apoio a gerência de configuração de softwareFerramenta de apoio a gerência de configuração de software
Ferramenta de apoio a gerência de configuração de softwareelliando dias
 
POO - Aula 04 - Introdução a classes e objetos
POO - Aula 04 - Introdução a classes e objetosPOO - Aula 04 - Introdução a classes e objetos
POO - Aula 04 - Introdução a classes e objetosFelipe J. R. Vieira
 
Qualidade de Software: Teste de software
Qualidade de Software: Teste de softwareQualidade de Software: Teste de software
Qualidade de Software: Teste de softwareAlex Camargo
 
Modelo Incremental - Engenharia de Software
Modelo Incremental - Engenharia de SoftwareModelo Incremental - Engenharia de Software
Modelo Incremental - Engenharia de SoftwareDaniela Franciosi
 
Scrum - Fundamentos, teorias e práticas!
Scrum - Fundamentos, teorias e práticas!Scrum - Fundamentos, teorias e práticas!
Scrum - Fundamentos, teorias e práticas!Annelise Gripp
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesRodrigo Cascarrolho
 
Fundamentos e princípios do projeto orientado a objetos
Fundamentos e princípios do projeto orientado a objetosFundamentos e princípios do projeto orientado a objetos
Fundamentos e princípios do projeto orientado a objetosEvandro Agnes
 
Banco de Dados I - Aula Prática - Criando o Primeiro Banco
Banco de Dados I - Aula Prática - Criando o Primeiro BancoBanco de Dados I - Aula Prática - Criando o Primeiro Banco
Banco de Dados I - Aula Prática - Criando o Primeiro BancoLeinylson Fontinele
 
Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Luís Fernando Richter
 

Mais procurados (20)

Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
 
Verificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareVerificação, Validação e Teste de Software
Verificação, Validação e Teste de Software
 
Qualidade de Software: Modelos e normas
Qualidade de Software: Modelos e normasQualidade de Software: Modelos e normas
Qualidade de Software: Modelos e normas
 
Aula 1: Virtualização
Aula 1: VirtualizaçãoAula 1: Virtualização
Aula 1: Virtualização
 
X-Zone - Garantia da Qualidade de Software
X-Zone - Garantia da Qualidade de SoftwareX-Zone - Garantia da Qualidade de Software
X-Zone - Garantia da Qualidade de Software
 
Aula- Virtualização
Aula- VirtualizaçãoAula- Virtualização
Aula- Virtualização
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threads
 
Metodologia Ágil
Metodologia ÁgilMetodologia Ágil
Metodologia Ágil
 
Scrum
ScrumScrum
Scrum
 
Ferramenta de apoio a gerência de configuração de software
Ferramenta de apoio a gerência de configuração de softwareFerramenta de apoio a gerência de configuração de software
Ferramenta de apoio a gerência de configuração de software
 
POO - Aula 04 - Introdução a classes e objetos
POO - Aula 04 - Introdução a classes e objetosPOO - Aula 04 - Introdução a classes e objetos
POO - Aula 04 - Introdução a classes e objetos
 
Qualidade de Software: Teste de software
Qualidade de Software: Teste de softwareQualidade de Software: Teste de software
Qualidade de Software: Teste de software
 
Modelo Incremental - Engenharia de Software
Modelo Incremental - Engenharia de SoftwareModelo Incremental - Engenharia de Software
Modelo Incremental - Engenharia de Software
 
Requisitos de software
Requisitos de softwareRequisitos de software
Requisitos de software
 
Scrum - Fundamentos, teorias e práticas!
Scrum - Fundamentos, teorias e práticas!Scrum - Fundamentos, teorias e práticas!
Scrum - Fundamentos, teorias e práticas!
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas Eficientes
 
Fundamentos e princípios do projeto orientado a objetos
Fundamentos e princípios do projeto orientado a objetosFundamentos e princípios do projeto orientado a objetos
Fundamentos e princípios do projeto orientado a objetos
 
Banco de Dados I - Aula Prática - Criando o Primeiro Banco
Banco de Dados I - Aula Prática - Criando o Primeiro BancoBanco de Dados I - Aula Prática - Criando o Primeiro Banco
Banco de Dados I - Aula Prática - Criando o Primeiro Banco
 
Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006
 
Fundamentos de Testes de Software
Fundamentos de Testes de SoftwareFundamentos de Testes de Software
Fundamentos de Testes de Software
 

Semelhante a Aula - Teste de Software

Introdução a testes de sofwtare
Introdução a testes de sofwtareIntrodução a testes de sofwtare
Introdução a testes de sofwtareFernando Palma
 
Gerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxGerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxRoberto Nunes
 
Introdução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IIntrodução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IJoão Lourenço
 
Engenharia de Testes
Engenharia de TestesEngenharia de Testes
Engenharia de TestesUFPA
 
Visão de Testes de Software segundo o SWEBOK
Visão de Testes de Software segundo o SWEBOKVisão de Testes de Software segundo o SWEBOK
Visão de Testes de Software segundo o SWEBOKMário Pravato Junior
 
Palestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraPalestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraTaís Dall'Oca
 
Teste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e ValidaçãoTeste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e ValidaçãoJoeldson Costa Damasceno
 
3 engenharia de software
3   engenharia de software3   engenharia de software
3 engenharia de softwareFelipe Bugov
 
Introdução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixIntrodução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixCris Fidelix
 
Aula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfAula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfMichaelArrais1
 
Introdução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de SoftwareIntrodução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de SoftwareCloves da Rocha
 
4 engenharia de software
4   engenharia de software4   engenharia de software
4 engenharia de softwareFelipe Bugov
 

Semelhante a Aula - Teste de Software (20)

Introdução a testes de sofwtare
Introdução a testes de sofwtareIntrodução a testes de sofwtare
Introdução a testes de sofwtare
 
Gerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxGerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptx
 
Introdução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IIntrodução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade I
 
Engenharia de Testes
Engenharia de TestesEngenharia de Testes
Engenharia de Testes
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
 
Visão de Testes de Software segundo o SWEBOK
Visão de Testes de Software segundo o SWEBOKVisão de Testes de Software segundo o SWEBOK
Visão de Testes de Software segundo o SWEBOK
 
Palestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraPalestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreira
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Teste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e ValidaçãoTeste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e Validação
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
3 engenharia de software
3   engenharia de software3   engenharia de software
3 engenharia de software
 
Teste de Software - Introdução
Teste de Software - IntroduçãoTeste de Software - Introdução
Teste de Software - Introdução
 
Questionario CTFL - Foundation Level
Questionario CTFL - Foundation LevelQuestionario CTFL - Foundation Level
Questionario CTFL - Foundation Level
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
Introdução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixIntrodução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane Fidelix
 
Aula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfAula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdf
 
SLIDEPRELIMINAR.pptx
SLIDEPRELIMINAR.pptxSLIDEPRELIMINAR.pptx
SLIDEPRELIMINAR.pptx
 
Eng de testes
Eng de testesEng de testes
Eng de testes
 
Introdução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de SoftwareIntrodução à Engenharia de Testes de Software
Introdução à Engenharia de Testes de Software
 
4 engenharia de software
4   engenharia de software4   engenharia de software
4 engenharia de software
 

Mais de Mauricio Cesar Santos da Purificação

Intelligence, Discovery, Analytics e Data Science: Evolução, Desafios e Oport...
Intelligence, Discovery, Analytics e Data Science: Evolução, Desafios e Oport...Intelligence, Discovery, Analytics e Data Science: Evolução, Desafios e Oport...
Intelligence, Discovery, Analytics e Data Science: Evolução, Desafios e Oport...Mauricio Cesar Santos da Purificação
 
Intelligence, Discovery, Science e Analytics: Transformando Dados em Ouro
Intelligence, Discovery, Science e Analytics: Transformando Dados em OuroIntelligence, Discovery, Science e Analytics: Transformando Dados em Ouro
Intelligence, Discovery, Science e Analytics: Transformando Dados em OuroMauricio Cesar Santos da Purificação
 
Big Data Analytics e Social Mining - Inteligência Em Uma Montanha de Dados?
Big Data Analytics e Social Mining - Inteligência Em Uma Montanha de Dados?Big Data Analytics e Social Mining - Inteligência Em Uma Montanha de Dados?
Big Data Analytics e Social Mining - Inteligência Em Uma Montanha de Dados?Mauricio Cesar Santos da Purificação
 

Mais de Mauricio Cesar Santos da Purificação (20)

Intelligence, Discovery, Analytics e Data Science: Evolução, Desafios e Oport...
Intelligence, Discovery, Analytics e Data Science: Evolução, Desafios e Oport...Intelligence, Discovery, Analytics e Data Science: Evolução, Desafios e Oport...
Intelligence, Discovery, Analytics e Data Science: Evolução, Desafios e Oport...
 
R para Iniciantes
R para IniciantesR para Iniciantes
R para Iniciantes
 
Aprendendo R
Aprendendo RAprendendo R
Aprendendo R
 
Intelligence, Discovery, Science e Analytics: Transformando Dados em Ouro
Intelligence, Discovery, Science e Analytics: Transformando Dados em OuroIntelligence, Discovery, Science e Analytics: Transformando Dados em Ouro
Intelligence, Discovery, Science e Analytics: Transformando Dados em Ouro
 
Pitch AcheSeuEstúdio - Campus Party
Pitch AcheSeuEstúdio - Campus PartyPitch AcheSeuEstúdio - Campus Party
Pitch AcheSeuEstúdio - Campus Party
 
Pitch BestPoint - Campus Party
Pitch BestPoint - Campus PartyPitch BestPoint - Campus Party
Pitch BestPoint - Campus Party
 
Big Data Analytics
Big Data AnalyticsBig Data Analytics
Big Data Analytics
 
Flyer BestPoint
Flyer BestPointFlyer BestPoint
Flyer BestPoint
 
Pitch BestPoint
Pitch BestPointPitch BestPoint
Pitch BestPoint
 
Será Mesmo o Cientista de Dados a Profissão do Futuro?
Será Mesmo o Cientista de Dados a Profissão do Futuro?Será Mesmo o Cientista de Dados a Profissão do Futuro?
Será Mesmo o Cientista de Dados a Profissão do Futuro?
 
OxenTI - Desenvolvimento de Soluções Inovadoras em TI
OxenTI - Desenvolvimento de Soluções Inovadoras em TIOxenTI - Desenvolvimento de Soluções Inovadoras em TI
OxenTI - Desenvolvimento de Soluções Inovadoras em TI
 
Pitch BestPoint - DemoDay StartupSummer 2015
Pitch BestPoint - DemoDay StartupSummer 2015Pitch BestPoint - DemoDay StartupSummer 2015
Pitch BestPoint - DemoDay StartupSummer 2015
 
BestPoint
BestPointBestPoint
BestPoint
 
Big Data Analytics e Social Mining - Inteligência Em Uma Montanha de Dados?
Big Data Analytics e Social Mining - Inteligência Em Uma Montanha de Dados?Big Data Analytics e Social Mining - Inteligência Em Uma Montanha de Dados?
Big Data Analytics e Social Mining - Inteligência Em Uma Montanha de Dados?
 
Será Mesmo o Cientista de Dados a Profissão do Futuro?
Será Mesmo o Cientista de Dados a Profissão do Futuro?Será Mesmo o Cientista de Dados a Profissão do Futuro?
Será Mesmo o Cientista de Dados a Profissão do Futuro?
 
QlikView In Action - Do BI ao Business Discovery!…
QlikView In Action - Do BI ao Business Discovery!…QlikView In Action - Do BI ao Business Discovery!…
QlikView In Action - Do BI ao Business Discovery!…
 
Dê Adeus ao BI e Seja Bem Vindo à Era do Analytics...
Dê Adeus ao BI e Seja Bem Vindo à Era do Analytics...Dê Adeus ao BI e Seja Bem Vindo à Era do Analytics...
Dê Adeus ao BI e Seja Bem Vindo à Era do Analytics...
 
Adeus BI, Seja Bem Vindo a Era do Analytics?
Adeus BI, Seja Bem Vindo a Era do Analytics?Adeus BI, Seja Bem Vindo a Era do Analytics?
Adeus BI, Seja Bem Vindo a Era do Analytics?
 
Derivação de Modelos ER
Derivação de Modelos ERDerivação de Modelos ER
Derivação de Modelos ER
 
Business Intelligence - Prática e Experiências
Business Intelligence - Prática e ExperiênciasBusiness Intelligence - Prática e Experiências
Business Intelligence - Prática e Experiências
 

Aula - Teste de Software

  • 1. Universidade Federal da Bahia Instituto de Matemática Departamento de Ciência da Computação Disciplina: MATA62 – Engenharia de Software I Cliquez pour modifier le style du titre Teste de Software Mauricio C. Santos CPD-UFBA Salvador, Março/2010
  • 2. O Que Veremos? Conceitos Básicos Teste de Software Teste de Software • Teste de Unidade • Teste Funcional • Teste de Integração Estratégia de Testes em XP Test-Driven Development • TDD com Ruby Teste de Unidade com Ruby 2
  • 4. Cliquez pour modifier le style du titre Conceitos Básicos
  • 5. Defeitos e Falhas Defeito • um problema nos requisitos, no projeto, no código, na documentação ou nos casos de teste. Falha • um problema no funcionamento do sistema. Falha: conseqüência de um defeito 5
  • 6. Defeitos e Falhas: Uma Visão Mais Completa 6
  • 7. Principais Artefatos de Software: Uma Visão Simplificada 7
  • 8. Defeitos Introduzidos ao Longo do Processo de 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 software produzidos e liberados. A maioria encontra-se em partes do produto de software raramente utilizadas e/ou executadas. 8
  • 9. Alguns Tipos de Defeitos Introduzidos 9
  • 10. Defeitos Introduzidos ao Longo do Processo de 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 probabilidade de corrigi-lo corretamente. Solução: • Introduzir atividades de V V & T ao longo de todo o ciclo de desenvolvimento. 10
  • 11. Verificaçã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 Qualidade de Software (SQA). 11
  • 12. Verificação Refere-se ao conjunto de atividades que garante que o software implementa corretamente uma função específica. “Estamos construindo certo o produto?” 12
  • 13. Validação Refere-se ao conjunto de atividades que garante que o software que foi construído é “rastreável” às exigências do cliente. “Estamos construindo o produto certo?” 13
  • 14. Garantia 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 conseqüência de cada passo da engenharia de software. Medição: ajudam a controlar cada elemento da configuração de software. 14
  • 15. Garantia 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. Teste: a qualidade pode ser avaliada. 15
  • 16. Garantia da Qualidade de Software 16
  • 17. Cliquez pour modifier le style du titre Teste de Software
  • 18. 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 descoberto Um teste bem-sucedido é aquele que revela um erro ainda não descoberto. 18
  • 19. Objetivos 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, 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. 19
  • 20. Erros 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 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 20
  • 22. Abordagens para Testes Abordagem funcional • AKA "teste caixa preta" • são testadas as funcionalidades do software, emitindo entradas pré-definidas e testando pelas saídas esperadas. 22
  • 23. Abordagens para Testes Abordagem estrutural • AKA "teste caixa branca" • são testados aspectos de implementação das unidades de modularização (e.g. classes): algoritmos utilizados resultados esperados de métodos em função de seus parâmetros 23
  • 24. Teste Automatizado de Software Programas que testam programas. • oráculo Uso de frameworks de teste. 24
  • 25. Etapas do Teste de Software Testes de Unidade: cada módulo é testado individualmente garantindo que ele funcione adequadamente. Utiliza as técnicas de teste de caixa branca. 25
  • 26. Etapas do Teste de Software Testes de Integração: os módulos são montados ou integrados para formarem um pacote de software. Utiliza principalmente as técnicas de teste de caixa preta. 26
  • 27. Etapas 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. 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. 27
  • 28. Etapas do Teste de Software 28
  • 29. Cliquez pour modifier le style du titre Estratégia de Teste em XP
  • 30. Estraté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] "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 30
  • 31. Estraté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 • Testes automáticos: indicam apenas se os testes passaram ou não 31
  • 32. Cliquez pour modifier le style du titre Test Driven Development - TDD
  • 33. O Que É ? 33
  • 34. Por Quê Usar ? Ênfase na interface Expressão dos requisitos 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 34
  • 35. 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. Para saber mais: Refactoring: Improving the Design of Existing Code (The Addison-Wesley Object Technology Series): Martin Fowler,Kent Beck,John Brant,William Opdyke,Don Roberts 35
  • 36. Beneficios 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 melhoria da qualidade de software. Projeto de conclusão de curso de Daniela Feitosa, 2007.2. Aumento da produtividade Aumento da qualidade 36
  • 37. Limitações Mudança de pensamento Suporte gerencial Dependência de testes funcionais para sucesso/falha (interfaces de usuários, interação com bases de dados, sistemas que dependam de configurações específicas da rede) 37