SlideShare une entreprise Scribd logo
1  sur  14
Abordagens de
Testes Ágeis White Box
ou Structural Testing
ou Code-based Testing
Bárbara Palma Cabral – ISEB-ISTQB-CTFL
Analista de Testes e Qualidade de Software
barbaracabral@gmail.com
Características
 Objetivos:
◦ Testar a lógica da implementação
◦ Cobertura com testes da estrutura interna dos componentes
 Características:
◦ A base para os testes é o código fonte do objeto sob teste (Test Object)
◦ A idéia geral é exercitar cada pequena parte do código pelo menos uma
vez
◦ O resultado esperado deve ser determinado utilizando os requisitos ou
especificações (não o código) e isto é feito ao checar se o resultado de
uma execução é uma falha
Técnicas
 Abordagens
◦ Covered-based
 O alvo é cobrir com testes um certo elemento do programa
◦ Fault-based
 O alvo é alcançar com testes certo s tipos de falha (ex. mutation testing)
 Estas falhas são definidas nas estratégias de testes, no modelo de estratégia
de falhas
 Técnicas
◦ Control flow based Testing
 Statement Testing
 Branch/Decision Testing
 Branch Condition Testing
 Modified Condition Testing
◦ Data flow based Testing
 Input/output
Modelagem
 O projeto dos casos de teste deve focar em:
◦ Exercitar caminhos independentes dentro de um
módulo ou unidade
◦ Exercitar decisões lógicas em ambos caminhos
válidos e inválidos
◦ Exercitar loops nos seus valores limites (boundaries)
◦ Exercitar estruturas internas para garantir sua
validade
 Os seguintes recursos (input) são necessários:
◦ Requisitos
◦ Especificações Funcionais
◦ Documentos de modelagem de alto nível
◦ Blocos de código fonte da aplicação
Processo
 Criar planos de Teste
◦ Identificar todos os cenários de teste e priorizá-los
 Definir o perfil do bloco de aplicação dos testes
◦ Esta etapa envolve estudar o código em tempo de execução para entender a utilização
dos recursos, tempo gasto em vários métodos e operações, área do código não
acessíveis, e assim por diante
 Testar as sub-rotinas internas
◦ Esta etapa garante que as subrotinas ou as interface não-públicas podem manipular
todos os tipos de dados apropriadamente
 Testar loops e estados condicionais
◦ Esta etapa foca em testar os loops e mecanismos condicionais para precisão e
eficiência de cada entrada diferente de dados
 Realizar testes de segurança
◦ Entendimento das possíveis brechas de segurança observando a forma como a
aplicação manipula os dados
Testes Unitários
 O teste unitário se concentra na verificação da
menor unidade do projeto de software.
 Em sistemas construídos com uso de linguagens
orientadas a objetos, como Java , essa unidade pode
ser identificada como um método, uma classe ou mesmo
um objeto.
 A partir de cada uma dessas unidades pode ser
definido um conjunto de dados de entrada e saída.
◦ Entrada: parâmetros
◦ Saída: valor de retorno, exceções ou o estado do objeto.
 Ferramentas de Teste Unitário simulam dados de
entrada e verificam se os dados de saída/retorno
refletem realmente o comportamento esperado
Agile Testing
 Desenvolvimento e Testes são integrados
◦ Todos testam, não somente o testador
 O testador traduz os requisitos em testes de aceitação
◦ Os testes são automatizados
 O desenvolvedor realiza os testes unitários
◦ Os testes são automatizados
 Características:
◦ Feedback Contínuo
◦ Entrega de valor ao cliente
◦ Comunicação face-to-face
◦ Coragem
◦ Simplicidade
◦ Resposta a mudanças
◦ Auto-organização
◦ Foco em pessoas
Fonte:
Abordagens
 TDD – Test Driven Development
 BDD – Behavior Driven Development
 ATDD – Acceptance Test Driven
Development
Test Driven Development (TDD)
 Criação dos testes antes do desenvolvimento
◦ Criar um teste simples, que irá falhar
◦ Implementar um pequeno bloco, para passar no teste
◦ Representar cada bloco de código com testes
◦ Refatorar, remover duplicidade
 Tools:
◦ JUnit
◦ TestNG
◦ DBUnit
Fonte:
Acceptance Test Driven Development
(ATDD)
• Testes de Aceitação
– Time discute critérios através de exemplos onde todos da
equipe devem ter a mesma definição de “done”.
– Durante a reunião de planejamento (Planning Meeting)
• Tools:
– FitNesse (Framework for Integrated Testing)
– Selenium
Fonte:
Behavior-driven Development (BDD)
 Princípios:
◦ Tudo é comportamento: A área de negócios e a de Tecnologia devem se referir para o
sistema da mesma forma;
◦ Onde está o valor do negócio: Todo sistema deve ter comportamentos que sejam um
verificador do valor para o negócio;
◦ Faça o suficiente: Analisar, projetar e planejar tudo de cima para baixo, evitando o
detalhamento prematuro.
◦ Encoraja colaboração entre os desenvolvedores, analistas, QA e o pessoal não técnico
para o sucesso do projeto.
 Comportamento?
◦ Um comportamento é descrito através de uma história (User Story)
 Tools:
◦ Cucumber
◦ JBehave
◦ SpecFlow
◦ Selenium
Método
 Cada user story deve ser transformada em um teste de
aceitação
 User Story
Funcionalidade: Tela de login
Como um usuário
Eu quero incluir meus dados
De modo que eu consiga acessar o sistema
 Teste de Aceitação baseado em comportamento
Cenário: O usuário acessa o sistema
Dado que eu estou na tela de login
Quando eu informo meu login “teste” e minha senha “1234”
E clico em “Acessar”
Então o sistema exibe a página principal
Pirâmide dos Testes Automatizados
Tester
Developer
Fonte:
Frameworks
 Junit 4 ou TestNG
◦ Ambos integram com Maven, Spring, Cucumber,
Selenium, DBUnit, Emma Test Coverage
◦ Diferenças:
Detalhes em: http://www.mkyong.com/unittest/junit-4-vs-testng-comparison/

Contenu connexe

Tendances

Testes Unitários/Integrados
Testes Unitários/IntegradosTestes Unitários/Integrados
Testes Unitários/IntegradosGiovanni Bassi
 
Testes de Software - Fundamentos
Testes de Software - FundamentosTestes de Software - Fundamentos
Testes de Software - FundamentosLucas Amaral
 
Testes de Caixa Branca e Métricas de Código
Testes de Caixa Branca e Métricas de CódigoTestes de Caixa Branca e Métricas de Código
Testes de Caixa Branca e Métricas de CódigoAricelio Souza
 
Testes de Software & Ferramentas de Testes
Testes de Software & Ferramentas de TestesTestes de Software & Ferramentas de Testes
Testes de Software & Ferramentas de TestesPaulo César M Jeveaux
 
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
 
Qualidade de Software - Desenvolvimento dirigido por testes
Qualidade de Software - Desenvolvimento dirigido por testesQualidade de Software - Desenvolvimento dirigido por testes
Qualidade de Software - Desenvolvimento dirigido por testesJoaquim Lopes Júnior
 
Workshop - Plano de Testes End to End com o Microsoft Test Manager
Workshop   - Plano de Testes End to End com o Microsoft Test ManagerWorkshop   - Plano de Testes End to End com o Microsoft Test Manager
Workshop - Plano de Testes End to End com o Microsoft Test ManagerAlan Carlos
 
Testes unitários x unit
Testes unitários   x unitTestes unitários   x unit
Testes unitários x unitLucas Marques
 
Planejamento de Testes
Planejamento de TestesPlanejamento de Testes
Planejamento de Testeselliando dias
 
TDD (Test-Driven Development)
TDD (Test-Driven Development)TDD (Test-Driven Development)
TDD (Test-Driven Development)Renato Groff
 
Por que automatizar testes de software?
Por que automatizar testes de software?Por que automatizar testes de software?
Por que automatizar testes de software?Samuel Lourenço
 
Aplicação de Testes Caixa Branca / Preta. Métodos dos caminhos básicos ou cri...
Aplicação de Testes Caixa Branca / Preta. Métodos dos caminhos básicos ou cri...Aplicação de Testes Caixa Branca / Preta. Métodos dos caminhos básicos ou cri...
Aplicação de Testes Caixa Branca / Preta. Métodos dos caminhos básicos ou cri...Stanley Araújo
 

Tendances (20)

Testes Unitários/Integrados
Testes Unitários/IntegradosTestes Unitários/Integrados
Testes Unitários/Integrados
 
Testes de Software - Fundamentos
Testes de Software - FundamentosTestes de Software - Fundamentos
Testes de Software - Fundamentos
 
Testes de Caixa Branca e Métricas de Código
Testes de Caixa Branca e Métricas de CódigoTestes de Caixa Branca e Métricas de Código
Testes de Caixa Branca e Métricas de Código
 
Plano de testes
Plano de testesPlano de testes
Plano de testes
 
Plano de teste
Plano de testePlano de teste
Plano de teste
 
Testes de Software & Ferramentas de Testes
Testes de Software & Ferramentas de TestesTestes de Software & Ferramentas de Testes
Testes de Software & Ferramentas de Testes
 
Testes Funcionais
Testes FuncionaisTestes Funcionais
Testes Funcionais
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
 
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
 
Qualidade de Software - Desenvolvimento dirigido por testes
Qualidade de Software - Desenvolvimento dirigido por testesQualidade de Software - Desenvolvimento dirigido por testes
Qualidade de Software - Desenvolvimento dirigido por testes
 
TDD - Test Driven Development com JAVA
TDD - Test Driven Development com JAVATDD - Test Driven Development com JAVA
TDD - Test Driven Development com JAVA
 
Workshop - Plano de Testes End to End com o Microsoft Test Manager
Workshop   - Plano de Testes End to End com o Microsoft Test ManagerWorkshop   - Plano de Testes End to End com o Microsoft Test Manager
Workshop - Plano de Testes End to End com o Microsoft Test Manager
 
Qualidade e Teste de Software
Qualidade e Teste de SoftwareQualidade e Teste de Software
Qualidade e Teste de Software
 
Testes unitários x unit
Testes unitários   x unitTestes unitários   x unit
Testes unitários x unit
 
Planejamento de Testes
Planejamento de TestesPlanejamento de Testes
Planejamento de Testes
 
TDD (Test-Driven Development)
TDD (Test-Driven Development)TDD (Test-Driven Development)
TDD (Test-Driven Development)
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
Por que automatizar testes de software?
Por que automatizar testes de software?Por que automatizar testes de software?
Por que automatizar testes de software?
 
Aplicação de Testes Caixa Branca / Preta. Métodos dos caminhos básicos ou cri...
Aplicação de Testes Caixa Branca / Preta. Métodos dos caminhos básicos ou cri...Aplicação de Testes Caixa Branca / Preta. Métodos dos caminhos básicos ou cri...
Aplicação de Testes Caixa Branca / Preta. Métodos dos caminhos básicos ou cri...
 

En vedette

Um dia-eu-vou-ser-um-analista
Um dia-eu-vou-ser-um-analistaUm dia-eu-vou-ser-um-analista
Um dia-eu-vou-ser-um-analistaJefferson Moreira
 
Currículo Fernanda Paulo Ramos - Nov/2013
Currículo Fernanda Paulo Ramos - Nov/2013Currículo Fernanda Paulo Ramos - Nov/2013
Currículo Fernanda Paulo Ramos - Nov/2013Fernanda Paulo Ramos
 
Curso de verificação e Revisão e Inspeção de artefatos
Curso de verificação e Revisão e Inspeção de artefatosCurso de verificação e Revisão e Inspeção de artefatos
Curso de verificação e Revisão e Inspeção de artefatosQualister
 
Introducao ao Ionic 2 na pratica
Introducao ao Ionic 2 na praticaIntroducao ao Ionic 2 na pratica
Introducao ao Ionic 2 na praticaLoiane Groner
 
EDITORES DE TEXTO, PLANILHAS DE CÁLCULOS E EDITORES DE SLIDE  
EDITORES DE TEXTO, PLANILHAS DE CÁLCULOS E EDITORES DE SLIDE  EDITORES DE TEXTO, PLANILHAS DE CÁLCULOS E EDITORES DE SLIDE  
EDITORES DE TEXTO, PLANILHAS DE CÁLCULOS E EDITORES DE SLIDE  SousaLeitee
 
Informatica - editor de textos
Informatica - editor de textosInformatica - editor de textos
Informatica - editor de textosMauro Pereira
 
Editores de textos - Introdução ao Word
Editores de textos - Introdução ao WordEditores de textos - Introdução ao Word
Editores de textos - Introdução ao WordClausia Antoneli
 
Mini curso de testes ágeis
Mini curso de testes ágeisMini curso de testes ágeis
Mini curso de testes ágeisQualister
 
ApresentaçãO Pessoal
ApresentaçãO PessoalApresentaçãO Pessoal
ApresentaçãO Pessoalvinij1
 

En vedette (11)

Presentation Unit Testing process
Presentation Unit Testing processPresentation Unit Testing process
Presentation Unit Testing process
 
Um dia-eu-vou-ser-um-analista
Um dia-eu-vou-ser-um-analistaUm dia-eu-vou-ser-um-analista
Um dia-eu-vou-ser-um-analista
 
Testes Unitários usando TestNG
Testes Unitários usando TestNGTestes Unitários usando TestNG
Testes Unitários usando TestNG
 
Currículo Fernanda Paulo Ramos - Nov/2013
Currículo Fernanda Paulo Ramos - Nov/2013Currículo Fernanda Paulo Ramos - Nov/2013
Currículo Fernanda Paulo Ramos - Nov/2013
 
Curso de verificação e Revisão e Inspeção de artefatos
Curso de verificação e Revisão e Inspeção de artefatosCurso de verificação e Revisão e Inspeção de artefatos
Curso de verificação e Revisão e Inspeção de artefatos
 
Introducao ao Ionic 2 na pratica
Introducao ao Ionic 2 na praticaIntroducao ao Ionic 2 na pratica
Introducao ao Ionic 2 na pratica
 
EDITORES DE TEXTO, PLANILHAS DE CÁLCULOS E EDITORES DE SLIDE  
EDITORES DE TEXTO, PLANILHAS DE CÁLCULOS E EDITORES DE SLIDE  EDITORES DE TEXTO, PLANILHAS DE CÁLCULOS E EDITORES DE SLIDE  
EDITORES DE TEXTO, PLANILHAS DE CÁLCULOS E EDITORES DE SLIDE  
 
Informatica - editor de textos
Informatica - editor de textosInformatica - editor de textos
Informatica - editor de textos
 
Editores de textos - Introdução ao Word
Editores de textos - Introdução ao WordEditores de textos - Introdução ao Word
Editores de textos - Introdução ao Word
 
Mini curso de testes ágeis
Mini curso de testes ágeisMini curso de testes ágeis
Mini curso de testes ágeis
 
ApresentaçãO Pessoal
ApresentaçãO PessoalApresentaçãO Pessoal
ApresentaçãO Pessoal
 

Similaire à Apresentação testes white box

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
 
Testes de Unidade com Junit
Testes de Unidade com JunitTestes de Unidade com Junit
Testes de Unidade com Junitcejug
 
Engenharia de Testes
Engenharia de TestesEngenharia de Testes
Engenharia de TestesUFPA
 
Testes O que são e para que servem? - LadyTalks
Testes O que são e para que servem? - LadyTalksTestes O que são e para que servem? - LadyTalks
Testes O que são e para que servem? - LadyTalksDiana Ungaro Arnos
 
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
 
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
 
Apresentação jasmine
Apresentação jasmineApresentação jasmine
Apresentação jasmineRangel Javier
 
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
 
Testes Funcionais - Unidade IV
Testes Funcionais - Unidade IVTestes Funcionais - Unidade IV
Testes Funcionais - Unidade IVJoão Lourenço
 
Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Diego Pacheco
 
Behavior-Driven Development (BDD) - QA Ninja Conf 2016
Behavior-Driven Development (BDD) - QA Ninja Conf 2016Behavior-Driven Development (BDD) - QA Ninja Conf 2016
Behavior-Driven Development (BDD) - QA Ninja Conf 2016Renato Groff
 
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...Isaac de Souza
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesCamilo Ribeiro
 
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...Claudinei Brito Junior
 
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - .NET SP - Abril-2018
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - .NET SP - Abril-2018Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - .NET SP - Abril-2018
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - .NET SP - Abril-2018Renato Groff
 
Teste de Software - Especialização Univem
Teste de Software - Especialização UnivemTeste de Software - Especialização Univem
Teste de Software - Especialização UnivemAndré Abe Vicente
 
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitQualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitDomingos Teruel
 
Palestra Fundamentos de Testes - Tche linux POA
Palestra Fundamentos de Testes  - Tche linux POAPalestra Fundamentos de Testes  - Tche linux POA
Palestra Fundamentos de Testes - Tche linux POAAline Zanin
 

Similaire à Apresentação testes white box (20)

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
 
Testes de Unidade com Junit
Testes de Unidade com JunitTestes de Unidade com Junit
Testes de Unidade com Junit
 
Engenharia de Testes
Engenharia de TestesEngenharia de Testes
Engenharia de Testes
 
Testes O que são e para que servem? - LadyTalks
Testes O que são e para que servem? - LadyTalksTestes O que são e para que servem? - LadyTalks
Testes O que são e para que servem? - LadyTalks
 
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
 
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
 
Apresentação jasmine
Apresentação jasmineApresentação jasmine
Apresentação jasmine
 
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
 
Testes Funcionais - Unidade IV
Testes Funcionais - Unidade IVTestes Funcionais - Unidade IV
Testes Funcionais - Unidade IV
 
Eng de testes
Eng de testesEng de testes
Eng de testes
 
Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1
 
Behavior-Driven Development (BDD) - QA Ninja Conf 2016
Behavior-Driven Development (BDD) - QA Ninja Conf 2016Behavior-Driven Development (BDD) - QA Ninja Conf 2016
Behavior-Driven Development (BDD) - QA Ninja Conf 2016
 
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por Testes
 
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
 
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - .NET SP - Abril-2018
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - .NET SP - Abril-2018Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - .NET SP - Abril-2018
Testes na plataforma .NET: TDD, Mocks, BDD e Selenium - .NET SP - Abril-2018
 
Teste de Software - Especialização Univem
Teste de Software - Especialização UnivemTeste de Software - Especialização Univem
Teste de Software - Especialização Univem
 
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitQualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnit
 
Teste de Software - Introdução
Teste de Software - IntroduçãoTeste de Software - Introdução
Teste de Software - Introdução
 
Palestra Fundamentos de Testes - Tche linux POA
Palestra Fundamentos de Testes  - Tche linux POAPalestra Fundamentos de Testes  - Tche linux POA
Palestra Fundamentos de Testes - Tche linux POA
 

Plus de Bárbara Cabral da Conceição, CTFL

[TheBugConference] Testes automatizados de aplicativos na google cloud
[TheBugConference] Testes automatizados de aplicativos na google cloud[TheBugConference] Testes automatizados de aplicativos na google cloud
[TheBugConference] Testes automatizados de aplicativos na google cloudBárbara Cabral da Conceição, CTFL
 
Agile trends 2018 - Usando Especificação por Exemplos para melhorar a eficáci...
Agile trends 2018 - Usando Especificação por Exemplos para melhorar a eficáci...Agile trends 2018 - Usando Especificação por Exemplos para melhorar a eficáci...
Agile trends 2018 - Usando Especificação por Exemplos para melhorar a eficáci...Bárbara Cabral da Conceição, CTFL
 
Introdução à Metodologias de Desenvolvimento Orientadas à Testes com Exemplos...
Introdução à Metodologias de Desenvolvimento Orientadas à Testes com Exemplos...Introdução à Metodologias de Desenvolvimento Orientadas à Testes com Exemplos...
Introdução à Metodologias de Desenvolvimento Orientadas à Testes com Exemplos...Bárbara Cabral da Conceição, CTFL
 
Data Quality Through Model Quality: A Quality Model for Measuring and Improvi...
Data Quality Through Model Quality: A Quality Model for Measuring and Improvi...Data Quality Through Model Quality: A Quality Model for Measuring and Improvi...
Data Quality Through Model Quality: A Quality Model for Measuring and Improvi...Bárbara Cabral da Conceição, CTFL
 
Information quality in personality judgment: The value of personal disclosure
Information quality in personality judgment: The value of personal disclosureInformation quality in personality judgment: The value of personal disclosure
Information quality in personality judgment: The value of personal disclosureBárbara Cabral da Conceição, CTFL
 

Plus de Bárbara Cabral da Conceição, CTFL (20)

[TheBugConference] Testes automatizados de aplicativos na google cloud
[TheBugConference] Testes automatizados de aplicativos na google cloud[TheBugConference] Testes automatizados de aplicativos na google cloud
[TheBugConference] Testes automatizados de aplicativos na google cloud
 
Implementando indicadores com google apps script
Implementando indicadores com google apps scriptImplementando indicadores com google apps script
Implementando indicadores com google apps script
 
Saindo do zero com DevOps
Saindo do zero com DevOpsSaindo do zero com DevOps
Saindo do zero com DevOps
 
Testes de ui com docker DevFest2018 - GDG Floripa
Testes de ui com docker DevFest2018 - GDG FloripaTestes de ui com docker DevFest2018 - GDG Floripa
Testes de ui com docker DevFest2018 - GDG Floripa
 
Khomp testes complexos!
Khomp   testes complexos!Khomp   testes complexos!
Khomp testes complexos!
 
Agile trends 2018 - Usando Especificação por Exemplos para melhorar a eficáci...
Agile trends 2018 - Usando Especificação por Exemplos para melhorar a eficáci...Agile trends 2018 - Usando Especificação por Exemplos para melhorar a eficáci...
Agile trends 2018 - Usando Especificação por Exemplos para melhorar a eficáci...
 
[Testes] frameworks de testes end to-end baseados em node js
[Testes] frameworks de testes end to-end baseados em node js [Testes] frameworks de testes end to-end baseados em node js
[Testes] frameworks de testes end to-end baseados em node js
 
[Node js] frameworks de testes end to-end baseados em nodejs
[Node js] frameworks de testes end to-end baseados em nodejs [Node js] frameworks de testes end to-end baseados em nodejs
[Node js] frameworks de testes end to-end baseados em nodejs
 
O que é influência afinal?
O que é influência afinal?O que é influência afinal?
O que é influência afinal?
 
Introdução à Metodologias de Desenvolvimento Orientadas à Testes com Exemplos...
Introdução à Metodologias de Desenvolvimento Orientadas à Testes com Exemplos...Introdução à Metodologias de Desenvolvimento Orientadas à Testes com Exemplos...
Introdução à Metodologias de Desenvolvimento Orientadas à Testes com Exemplos...
 
O que Continuous delivery significa para QA
O que Continuous delivery significa para QAO que Continuous delivery significa para QA
O que Continuous delivery significa para QA
 
Carreira de QA
Carreira de QA Carreira de QA
Carreira de QA
 
Data driven quality - tdc2016
Data driven quality - tdc2016Data driven quality - tdc2016
Data driven quality - tdc2016
 
Agile Trends: Qualidade orientada a Dados
Agile Trends: Qualidade orientada a DadosAgile Trends: Qualidade orientada a Dados
Agile Trends: Qualidade orientada a Dados
 
Lean software testing
Lean software testing Lean software testing
Lean software testing
 
UX testing - Onde podemos contribnuir?
UX testing - Onde podemos contribnuir?UX testing - Onde podemos contribnuir?
UX testing - Onde podemos contribnuir?
 
Avaliação da Qualidade da Informação em empresa de TI
Avaliação da Qualidade da Informação em empresa de TIAvaliação da Qualidade da Informação em empresa de TI
Avaliação da Qualidade da Informação em empresa de TI
 
Data Quality Through Model Quality: A Quality Model for Measuring and Improvi...
Data Quality Through Model Quality: A Quality Model for Measuring and Improvi...Data Quality Through Model Quality: A Quality Model for Measuring and Improvi...
Data Quality Through Model Quality: A Quality Model for Measuring and Improvi...
 
Problemas de Qualidade da Informação e Abordagens Atuais
Problemas de Qualidade da Informação e Abordagens AtuaisProblemas de Qualidade da Informação e Abordagens Atuais
Problemas de Qualidade da Informação e Abordagens Atuais
 
Information quality in personality judgment: The value of personal disclosure
Information quality in personality judgment: The value of personal disclosureInformation quality in personality judgment: The value of personal disclosure
Information quality in personality judgment: The value of personal disclosure
 

Apresentação testes white box

  • 1. Abordagens de Testes Ágeis White Box ou Structural Testing ou Code-based Testing Bárbara Palma Cabral – ISEB-ISTQB-CTFL Analista de Testes e Qualidade de Software barbaracabral@gmail.com
  • 2. Características  Objetivos: ◦ Testar a lógica da implementação ◦ Cobertura com testes da estrutura interna dos componentes  Características: ◦ A base para os testes é o código fonte do objeto sob teste (Test Object) ◦ A idéia geral é exercitar cada pequena parte do código pelo menos uma vez ◦ O resultado esperado deve ser determinado utilizando os requisitos ou especificações (não o código) e isto é feito ao checar se o resultado de uma execução é uma falha
  • 3. Técnicas  Abordagens ◦ Covered-based  O alvo é cobrir com testes um certo elemento do programa ◦ Fault-based  O alvo é alcançar com testes certo s tipos de falha (ex. mutation testing)  Estas falhas são definidas nas estratégias de testes, no modelo de estratégia de falhas  Técnicas ◦ Control flow based Testing  Statement Testing  Branch/Decision Testing  Branch Condition Testing  Modified Condition Testing ◦ Data flow based Testing  Input/output
  • 4. Modelagem  O projeto dos casos de teste deve focar em: ◦ Exercitar caminhos independentes dentro de um módulo ou unidade ◦ Exercitar decisões lógicas em ambos caminhos válidos e inválidos ◦ Exercitar loops nos seus valores limites (boundaries) ◦ Exercitar estruturas internas para garantir sua validade  Os seguintes recursos (input) são necessários: ◦ Requisitos ◦ Especificações Funcionais ◦ Documentos de modelagem de alto nível ◦ Blocos de código fonte da aplicação
  • 5. Processo  Criar planos de Teste ◦ Identificar todos os cenários de teste e priorizá-los  Definir o perfil do bloco de aplicação dos testes ◦ Esta etapa envolve estudar o código em tempo de execução para entender a utilização dos recursos, tempo gasto em vários métodos e operações, área do código não acessíveis, e assim por diante  Testar as sub-rotinas internas ◦ Esta etapa garante que as subrotinas ou as interface não-públicas podem manipular todos os tipos de dados apropriadamente  Testar loops e estados condicionais ◦ Esta etapa foca em testar os loops e mecanismos condicionais para precisão e eficiência de cada entrada diferente de dados  Realizar testes de segurança ◦ Entendimento das possíveis brechas de segurança observando a forma como a aplicação manipula os dados
  • 6. Testes Unitários  O teste unitário se concentra na verificação da menor unidade do projeto de software.  Em sistemas construídos com uso de linguagens orientadas a objetos, como Java , essa unidade pode ser identificada como um método, uma classe ou mesmo um objeto.  A partir de cada uma dessas unidades pode ser definido um conjunto de dados de entrada e saída. ◦ Entrada: parâmetros ◦ Saída: valor de retorno, exceções ou o estado do objeto.  Ferramentas de Teste Unitário simulam dados de entrada e verificam se os dados de saída/retorno refletem realmente o comportamento esperado
  • 7. Agile Testing  Desenvolvimento e Testes são integrados ◦ Todos testam, não somente o testador  O testador traduz os requisitos em testes de aceitação ◦ Os testes são automatizados  O desenvolvedor realiza os testes unitários ◦ Os testes são automatizados  Características: ◦ Feedback Contínuo ◦ Entrega de valor ao cliente ◦ Comunicação face-to-face ◦ Coragem ◦ Simplicidade ◦ Resposta a mudanças ◦ Auto-organização ◦ Foco em pessoas Fonte:
  • 8. Abordagens  TDD – Test Driven Development  BDD – Behavior Driven Development  ATDD – Acceptance Test Driven Development
  • 9. Test Driven Development (TDD)  Criação dos testes antes do desenvolvimento ◦ Criar um teste simples, que irá falhar ◦ Implementar um pequeno bloco, para passar no teste ◦ Representar cada bloco de código com testes ◦ Refatorar, remover duplicidade  Tools: ◦ JUnit ◦ TestNG ◦ DBUnit Fonte:
  • 10. Acceptance Test Driven Development (ATDD) • Testes de Aceitação – Time discute critérios através de exemplos onde todos da equipe devem ter a mesma definição de “done”. – Durante a reunião de planejamento (Planning Meeting) • Tools: – FitNesse (Framework for Integrated Testing) – Selenium Fonte:
  • 11. Behavior-driven Development (BDD)  Princípios: ◦ Tudo é comportamento: A área de negócios e a de Tecnologia devem se referir para o sistema da mesma forma; ◦ Onde está o valor do negócio: Todo sistema deve ter comportamentos que sejam um verificador do valor para o negócio; ◦ Faça o suficiente: Analisar, projetar e planejar tudo de cima para baixo, evitando o detalhamento prematuro. ◦ Encoraja colaboração entre os desenvolvedores, analistas, QA e o pessoal não técnico para o sucesso do projeto.  Comportamento? ◦ Um comportamento é descrito através de uma história (User Story)  Tools: ◦ Cucumber ◦ JBehave ◦ SpecFlow ◦ Selenium
  • 12. Método  Cada user story deve ser transformada em um teste de aceitação  User Story Funcionalidade: Tela de login Como um usuário Eu quero incluir meus dados De modo que eu consiga acessar o sistema  Teste de Aceitação baseado em comportamento Cenário: O usuário acessa o sistema Dado que eu estou na tela de login Quando eu informo meu login “teste” e minha senha “1234” E clico em “Acessar” Então o sistema exibe a página principal
  • 13. Pirâmide dos Testes Automatizados Tester Developer Fonte:
  • 14. Frameworks  Junit 4 ou TestNG ◦ Ambos integram com Maven, Spring, Cucumber, Selenium, DBUnit, Emma Test Coverage ◦ Diferenças: Detalhes em: http://www.mkyong.com/unittest/junit-4-vs-testng-comparison/