SlideShare uma empresa Scribd logo
1 de 29
Baixar para ler offline
Júlio de Lima
Lead QA Engineer

Capco
Desenvolvendo como QAs
15 slides30 min
Como um usuário
Quero calcular valores usando operações matemáticas
Para ser ágil ao atender meus clientes
Exemplo de requisito
React Calculator

A Pen by @mjijackson

codepen.io/mjijackson/pen/xOzyGX
Base da nossa
discussão!
1
Vou verificá-los e desafiá-los antes de iniciar o
desenvolvimento
Requisitos
2
Pessoas podem informar um número, seguido de um
operador matemático e mais um número. Se
pressionarem igual, o resultado do cálculo deverá ser
apresentado.
“
Requisito baseado
na calculadora do Mac!
3
Qualquer pessoa pode informar um número via teclado ou
mouse, seguido de um operador matemático e mais um número.
Se pressionarem igual ou qualquer operador, o resultado do
cálculo deverá ser apresentado mas se pressionar mais uma
vez o valor deverá permanecer o mesmo.
Quem?Quais? Como?
Esse Se, tem E ou OU?
Esse resultado, tem MAS?
3
Vou validar sua estrutura e suas condições lógicas
Componentes
4
class CalculatorKey extends React.Component {
render() {
const { onPress, className } = this.props
return (
<PointTarget onPoint={onPress}>
<button className={`calculator-key ${className}`}/>
</PointTarget>
)
}
}
Classe CalculatorKey 5
class CalculatorKey extends React.Component {
render() {
const { onPress, className } = this.props
return (
<PointTarget onPoint={onPress}>
<button className={`calculator-key ${className}`}/>
</PointTarget>
)
}
}
Classe CalculatorKey
Possui a className
que eu imputei?
Dispara a o método que defini ao clicar?
5
inputDigit(digit) {
const { displayValue, waitingForOperand } = this.state
if (waitingForOperand) {
this.setState({ displayValue: String(digit), waitingForOperand: false })
} else {
this.setState({ displayValue: displayValue === '0' ? String(digit) : displayValue + digit })
}
}
Classe Calculator 6
inputDigit(digit) {
const { displayValue, waitingForOperand } = this.state
if (waitingForOperand) {
this.setState({ displayValue: String(digit), waitingForOperand: false })
} else {
this.setState({ displayValue: displayValue === '0' ? String(digit) : displayValue + digit })
}
}
Classe Calculator
Verdadeiro e Falso desse condicional
Verdadeiro e Falso desse condicional
6
Vou validar a integração que existe entre os
componentes para validar que são capazes de
funcionar de maneira integrada
Integração entre Componentes
7
Qualquer pessoa pode informar um número via teclado ou
mouse, seguido de um operador matemático e mais um número.
Se pressionarem igual ou qualquer operador, o resultado do
cálculo deverá ser apresentado mas se pressionar mais uma
vez o valor deverá permanecer o mesmo.
“
8
Como um usuário
Quero calcular valores usando operações matemáticas
Para ser ágil ao atender meus clientes
Exemplo de requisito
Primeiro valor
Número; Operador matemático
Operação Matemática
Número; Operador matemático
Segundo valor
Número; Operador matemático
Obter resultado
Pressionar o operador uma vez; Pressionar o operador duas vezes
Partição de Equivalência 9
Como um usuário
Quero calcular valores usando operações matemáticas
Para ser ágil ao atender meus clientes
Exemplo de requisito
Variáveis Partições T1 T2 T3 T4 T5 T6
Primeiro valor
10 x x x x x x
+
Operação Matemática
10 x x x x
+ x x
Segundo valor
10 x x x x
+ x x
Obter resultado
Pressionar + uma vez x x x
Pressionar + duas
vezes
x x x
Resultados Visor da calculadora 101010 101010 1010 1010 20 20
Tabela de Decisão 10
Como um usuário
Quero calcular valores usando operações matemáticas
Para ser ágil ao atender meus clientes
Exemplo de requisito
Variáveis Partições T1 T2 T3 T4 T5 T6
Primeiro valor
10 x x x x x x
+
Operação Matemática
10 x x x x
+ x x
Segundo valor
10 x x x x
+ x x
Obter resultado
Pressionar + uma vez x x x
Pressionar + duas
vezes
x x x
Resultados Visor da calculadora 101010 101010 1010 1010 20 20
Tabela de Decisão -> Testes que falharam! 10
Para não ter que repetir os testes sempre que
alterar algo no código, vou automatiza-los criando
scripts de teste que repitam minhas ações
Automatizando os testes da UI
11
Como um usuário
Quero calcular valores usando operações matemáticas
Para ser ágil ao atender meus clientes
Exemplo de requisito
React Calculator

A Pen by @mjijackson

codepen.io/mjijackson/pen/xOzyGX
Passos do script de teste:
Ação Objeto Valor
- - -
- - -
- - -
- - -
- - -
- - -
- - -
12
Como um usuário
Quero calcular valores usando operações matemáticas
Para ser ágil ao atender meus clientes
Exemplo de requisito
React Calculator

A Pen by @mjijackson

codepen.io/mjijackson/pen/xOzyGX
Ação Objeto Valor
Clicar .calculator-key.key-1 -
- - -
- - -
- - -
- - -
- - -
- - -
Passos do script de teste: 12
Como um usuário
Quero calcular valores usando operações matemáticas
Para ser ágil ao atender meus clientes
Exemplo de requisito
React Calculator

A Pen by @mjijackson

codepen.io/mjijackson/pen/xOzyGX
Ação Objeto Valor
Clicar .calculator-key.key-1 -
Clicar .calculator-key.key-0 -
- - -
- - -
- - -
- - -
- - -
Passos do script de teste: 12
Como um usuário
Quero calcular valores usando operações matemáticas
Para ser ágil ao atender meus clientes
Exemplo de requisito
React Calculator

A Pen by @mjijackson

codepen.io/mjijackson/pen/xOzyGX
Ação Objeto Valor
Clicar .calculator-key.key-1 -
Clicar .calculator-key.key-0 -
Clicar .calculator-key.key-add -
- - -
- - -
- - -
- - -
Passos do script de teste: 12
Como um usuário
Quero calcular valores usando operações matemáticas
Para ser ágil ao atender meus clientes
Exemplo de requisito
React Calculator

A Pen by @mjijackson

codepen.io/mjijackson/pen/xOzyGX
Ação Objeto Valor
Clicar .calculator-key.key-1 -
Clicar .calculator-key.key-0 -
Clicar .calculator-key.key-add -
Clicar .calculator-key.key-1 -
- - -
- - -
- - -
Passos do script de teste: 12
Como um usuário
Quero calcular valores usando operações matemáticas
Para ser ágil ao atender meus clientes
Exemplo de requisito
React Calculator

A Pen by @mjijackson

codepen.io/mjijackson/pen/xOzyGX
Ação Objeto Valor
Clicar .calculator-key.key-1 -
Clicar .calculator-key.key-0 -
Clicar .calculator-key.key-add -
Clicar .calculator-key.key-1 -
Clicar .calculator-key.key-0 -
- - -
- - -
Passos do script de teste: 12
Como um usuário
Quero calcular valores usando operações matemáticas
Para ser ágil ao atender meus clientes
Exemplo de requisito
React Calculator

A Pen by @mjijackson

codepen.io/mjijackson/pen/xOzyGX
Ação Objeto Valor
Clicar .calculator-key.key-1 -
Clicar .calculator-key.key-0 -
Clicar .calculator-key.key-add -
Clicar .calculator-key.key-1 -
Clicar .calculator-key.key-0 -
Clicar .calculator-key.key-add -
- - -
Passos do script de teste: 12
Como um usuário
Quero calcular valores usando operações matemáticas
Para ser ágil ao atender meus clientes
Exemplo de requisito
React Calculator

A Pen by @mjijackson

codepen.io/mjijackson/pen/xOzyGX
Ação Objeto Valor
Clicar .calculator-key.key-1 -
Clicar .calculator-key.key-0 -
Clicar .calculator-key.key-add -
Clicar .calculator-key.key-1 -
Clicar .calculator-key.key-0 -
Clicar .calculator-key.key-add -
Validar .calculator-display 20
Passos do script de teste: 12
Vou usar scripts de teste que validam a aplicação
sob a perspectiva visual, ou seja, posicionamento e
estilos
Automatizando testes da estrutura visual
13
Como um usuário
Quero calcular valores usando operações matemáticas
Para ser ágil ao atender meus clientes
Exemplo de requisito
React Calculator

A Pen by @mjijackson

codepen.io/mjijackson/pen/xOzyGX
14
Como um usuário
Quero calcular valores usando operações matemáticas
Para ser ágil ao atender meus clientes
Exemplo de requisito
React Calculator

A Pen by @mjijackson

codepen.io/mjijackson/pen/xOzyGX
Regras:
- Deve estar ao lado do ponto
- Deve estar abaixo do +
- Deve ser laranja com fonte
branca!
14
Jest, Chai, Enzyme, Sion, Cypress e Galen
Libraries que poderiam ser utilizadas
15
Teste funcional
na UI
Testes na estrutura
interna do componente
Validação estrutural
Da interface gráfica
Júlio de Lima
Lead QA Engineer

Capco
iam@juliodelima.com.br
@juliodelimas
Dúvidas?

Mais conteúdo relacionado

Semelhante a [Front in Sampa 2018] Desenvolvendo como QAs

Test-Driven Development with PHP
Test-Driven Development with PHPTest-Driven Development with PHP
Test-Driven Development with PHPCezar Souza
 
Como criar uma calculadora no Game Maker 8.0 (GML Console)
Como criar uma calculadora no Game Maker 8.0 (GML Console)Como criar uma calculadora no Game Maker 8.0 (GML Console)
Como criar uma calculadora no Game Maker 8.0 (GML Console)Rodrigo Cavalcante
 
Introdução aos algoritmos e à algoritmia.pptx
Introdução aos algoritmos e à algoritmia.pptxIntrodução aos algoritmos e à algoritmia.pptx
Introdução aos algoritmos e à algoritmia.pptxPaulo Cardoso
 
Fluxograma de atividades
Fluxograma de atividadesFluxograma de atividades
Fluxograma de atividadesLauren Goulart
 
Cucumber Best Practices
Cucumber Best PracticesCucumber Best Practices
Cucumber Best PracticesKaroline Leite
 
Fluxograma de atividades
Fluxograma de atividadesFluxograma de atividades
Fluxograma de atividadesVanessa Barbosa
 
EDTED Aprenda, ensine e melhores os resultados com seus clientes. Requisito d...
EDTED Aprenda, ensine e melhores os resultados com seus clientes. Requisito d...EDTED Aprenda, ensine e melhores os resultados com seus clientes. Requisito d...
EDTED Aprenda, ensine e melhores os resultados com seus clientes. Requisito d...Fabiano Milani
 
Cap07 procedimentos funcoes_v00_tav
Cap07 procedimentos funcoes_v00_tavCap07 procedimentos funcoes_v00_tav
Cap07 procedimentos funcoes_v00_tavGooseadpr
 
A Arte dos Testes de Performance Aplicacional
A Arte dos Testes de Performance AplicacionalA Arte dos Testes de Performance Aplicacional
A Arte dos Testes de Performance AplicacionalNuno Baptista Rodrigues
 
Livro Preço de Venda com Excel_Terceira impressão.pdf
Livro Preço de Venda com Excel_Terceira impressão.pdfLivro Preço de Venda com Excel_Terceira impressão.pdf
Livro Preço de Venda com Excel_Terceira impressão.pdfJooGomesdeArajo1
 

Semelhante a [Front in Sampa 2018] Desenvolvendo como QAs (19)

Test-Driven Development with PHP
Test-Driven Development with PHPTest-Driven Development with PHP
Test-Driven Development with PHP
 
Como criar uma calculadora no Game Maker 8.0 (GML Console)
Como criar uma calculadora no Game Maker 8.0 (GML Console)Como criar uma calculadora no Game Maker 8.0 (GML Console)
Como criar uma calculadora no Game Maker 8.0 (GML Console)
 
Exercicios c
Exercicios cExercicios c
Exercicios c
 
Introdução aos algoritmos e à algoritmia.pptx
Introdução aos algoritmos e à algoritmia.pptxIntrodução aos algoritmos e à algoritmia.pptx
Introdução aos algoritmos e à algoritmia.pptx
 
decisão aninhada programaçao de cmputadores
decisão aninhada programaçao de cmputadoresdecisão aninhada programaçao de cmputadores
decisão aninhada programaçao de cmputadores
 
Laços de Repetição
Laços de RepetiçãoLaços de Repetição
Laços de Repetição
 
04_Introducao_JavaScript.pdf
04_Introducao_JavaScript.pdf04_Introducao_JavaScript.pdf
04_Introducao_JavaScript.pdf
 
Fluxograma de atividades
Fluxograma de atividadesFluxograma de atividades
Fluxograma de atividades
 
Aula 3-lógica.pptx
Aula 3-lógica.pptxAula 3-lógica.pptx
Aula 3-lógica.pptx
 
Ecasio
EcasioEcasio
Ecasio
 
Cea030.lista.04
Cea030.lista.04Cea030.lista.04
Cea030.lista.04
 
Cucumber Best Practices
Cucumber Best PracticesCucumber Best Practices
Cucumber Best Practices
 
Fluxograma de atividades
Fluxograma de atividadesFluxograma de atividades
Fluxograma de atividades
 
EDTED Aprenda, ensine e melhores os resultados com seus clientes. Requisito d...
EDTED Aprenda, ensine e melhores os resultados com seus clientes. Requisito d...EDTED Aprenda, ensine e melhores os resultados com seus clientes. Requisito d...
EDTED Aprenda, ensine e melhores os resultados com seus clientes. Requisito d...
 
Testes de software de A a Z
Testes de software de A a ZTestes de software de A a Z
Testes de software de A a Z
 
Cap07 procedimentos funcoes_v00_tav
Cap07 procedimentos funcoes_v00_tavCap07 procedimentos funcoes_v00_tav
Cap07 procedimentos funcoes_v00_tav
 
Testlink apresentacao
Testlink apresentacaoTestlink apresentacao
Testlink apresentacao
 
A Arte dos Testes de Performance Aplicacional
A Arte dos Testes de Performance AplicacionalA Arte dos Testes de Performance Aplicacional
A Arte dos Testes de Performance Aplicacional
 
Livro Preço de Venda com Excel_Terceira impressão.pdf
Livro Preço de Venda com Excel_Terceira impressão.pdfLivro Preço de Venda com Excel_Terceira impressão.pdf
Livro Preço de Venda com Excel_Terceira impressão.pdf
 

Mais de Júlio de Lima

[ATC2021] Distribuição de Testes em Diferentes Camadas
[ATC2021] Distribuição de Testes em Diferentes Camadas[ATC2021] Distribuição de Testes em Diferentes Camadas
[ATC2021] Distribuição de Testes em Diferentes CamadasJúlio de Lima
 
ALTER FACE Test Heuristic
ALTER FACE Test HeuristicALTER FACE Test Heuristic
ALTER FACE Test HeuristicJúlio de Lima
 
[ScrumDay2020] A evolução da responsabilidade em testes
[ScrumDay2020] A evolução da responsabilidade em testes[ScrumDay2020] A evolução da responsabilidade em testes
[ScrumDay2020] A evolução da responsabilidade em testesJúlio de Lima
 
Reducing the scope of load test analysis (STAREast 2020)
Reducing the scope of load test analysis (STAREast 2020)Reducing the scope of load test analysis (STAREast 2020)
Reducing the scope of load test analysis (STAREast 2020)Júlio de Lima
 
[TDC2019] Inteligência Artificial e Testes in a Nutshell
[TDC2019] Inteligência Artificial e Testes  in a Nutshell[TDC2019] Inteligência Artificial e Testes  in a Nutshell
[TDC2019] Inteligência Artificial e Testes in a NutshellJúlio de Lima
 
[GaragemTalks2019] Cultura de Testes e Qualidade de Software
[GaragemTalks2019] Cultura de Testes e Qualidade de Software[GaragemTalks2019] Cultura de Testes e Qualidade de Software
[GaragemTalks2019] Cultura de Testes e Qualidade de SoftwareJúlio de Lima
 
[MoT SP #1] PRISMA para Testes Baseados em Risco
[MoT SP #1] PRISMA para Testes Baseados em Risco[MoT SP #1] PRISMA para Testes Baseados em Risco
[MoT SP #1] PRISMA para Testes Baseados em RiscoJúlio de Lima
 
Mindset de QA em Diferentes Contextos
Mindset de QA em Diferentes ContextosMindset de QA em Diferentes Contextos
Mindset de QA em Diferentes ContextosJúlio de Lima
 
[DevelopersBR-2018] Testes de performance usando a nuvem
[DevelopersBR-2018] Testes de performance usando a nuvem[DevelopersBR-2018] Testes de performance usando a nuvem
[DevelopersBR-2018] Testes de performance usando a nuvemJúlio de Lima
 
[7Masters Aug, 2018] Escolhas durante automação de testes de API
[7Masters Aug, 2018] Escolhas durante automação de testes de API[7Masters Aug, 2018] Escolhas durante automação de testes de API
[7Masters Aug, 2018] Escolhas durante automação de testes de APIJúlio de Lima
 
Mindset do QA em diferentes contextos
Mindset do QA em diferentes contextosMindset do QA em diferentes contextos
Mindset do QA em diferentes contextosJúlio de Lima
 
[QANinjaConf2017] Testes de Regressão Visual com Galen Framework
[QANinjaConf2017] Testes de Regressão Visual com Galen Framework[QANinjaConf2017] Testes de Regressão Visual com Galen Framework
[QANinjaConf2017] Testes de Regressão Visual com Galen FrameworkJúlio de Lima
 
[PHPConference 2016] Criando Mocks com Prophecy
[PHPConference 2016] Criando Mocks com Prophecy[PHPConference 2016] Criando Mocks com Prophecy
[PHPConference 2016] Criando Mocks com ProphecyJúlio de Lima
 
[QANinjaConference] Carreira em Testes: Ainda vale a pena?
[QANinjaConference] Carreira em Testes: Ainda vale a pena?[QANinjaConference] Carreira em Testes: Ainda vale a pena?
[QANinjaConference] Carreira em Testes: Ainda vale a pena?Júlio de Lima
 
[QANinjaConference] Automação de Testes com Codeception
[QANinjaConference] Automação de Testes com Codeception[QANinjaConference] Automação de Testes com Codeception
[QANinjaConference] Automação de Testes com CodeceptionJúlio de Lima
 
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)Júlio de Lima
 
[PHPConferenceBR] Automação de testes com Codeception
[PHPConferenceBR] Automação de testes com Codeception[PHPConferenceBR] Automação de testes com Codeception
[PHPConferenceBR] Automação de testes com CodeceptionJúlio de Lima
 
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e WebdriverJúlio de Lima
 
[UNIP2015] Testando a Performance de Aplicações Web com JMeter
[UNIP2015] Testando a Performance de Aplicações Web com JMeter[UNIP2015] Testando a Performance de Aplicações Web com JMeter
[UNIP2015] Testando a Performance de Aplicações Web com JMeterJúlio de Lima
 
Palestra DevOps para Teste de Software
Palestra DevOps para Teste de SoftwarePalestra DevOps para Teste de Software
Palestra DevOps para Teste de SoftwareJúlio de Lima
 

Mais de Júlio de Lima (20)

[ATC2021] Distribuição de Testes em Diferentes Camadas
[ATC2021] Distribuição de Testes em Diferentes Camadas[ATC2021] Distribuição de Testes em Diferentes Camadas
[ATC2021] Distribuição de Testes em Diferentes Camadas
 
ALTER FACE Test Heuristic
ALTER FACE Test HeuristicALTER FACE Test Heuristic
ALTER FACE Test Heuristic
 
[ScrumDay2020] A evolução da responsabilidade em testes
[ScrumDay2020] A evolução da responsabilidade em testes[ScrumDay2020] A evolução da responsabilidade em testes
[ScrumDay2020] A evolução da responsabilidade em testes
 
Reducing the scope of load test analysis (STAREast 2020)
Reducing the scope of load test analysis (STAREast 2020)Reducing the scope of load test analysis (STAREast 2020)
Reducing the scope of load test analysis (STAREast 2020)
 
[TDC2019] Inteligência Artificial e Testes in a Nutshell
[TDC2019] Inteligência Artificial e Testes  in a Nutshell[TDC2019] Inteligência Artificial e Testes  in a Nutshell
[TDC2019] Inteligência Artificial e Testes in a Nutshell
 
[GaragemTalks2019] Cultura de Testes e Qualidade de Software
[GaragemTalks2019] Cultura de Testes e Qualidade de Software[GaragemTalks2019] Cultura de Testes e Qualidade de Software
[GaragemTalks2019] Cultura de Testes e Qualidade de Software
 
[MoT SP #1] PRISMA para Testes Baseados em Risco
[MoT SP #1] PRISMA para Testes Baseados em Risco[MoT SP #1] PRISMA para Testes Baseados em Risco
[MoT SP #1] PRISMA para Testes Baseados em Risco
 
Mindset de QA em Diferentes Contextos
Mindset de QA em Diferentes ContextosMindset de QA em Diferentes Contextos
Mindset de QA em Diferentes Contextos
 
[DevelopersBR-2018] Testes de performance usando a nuvem
[DevelopersBR-2018] Testes de performance usando a nuvem[DevelopersBR-2018] Testes de performance usando a nuvem
[DevelopersBR-2018] Testes de performance usando a nuvem
 
[7Masters Aug, 2018] Escolhas durante automação de testes de API
[7Masters Aug, 2018] Escolhas durante automação de testes de API[7Masters Aug, 2018] Escolhas durante automação de testes de API
[7Masters Aug, 2018] Escolhas durante automação de testes de API
 
Mindset do QA em diferentes contextos
Mindset do QA em diferentes contextosMindset do QA em diferentes contextos
Mindset do QA em diferentes contextos
 
[QANinjaConf2017] Testes de Regressão Visual com Galen Framework
[QANinjaConf2017] Testes de Regressão Visual com Galen Framework[QANinjaConf2017] Testes de Regressão Visual com Galen Framework
[QANinjaConf2017] Testes de Regressão Visual com Galen Framework
 
[PHPConference 2016] Criando Mocks com Prophecy
[PHPConference 2016] Criando Mocks com Prophecy[PHPConference 2016] Criando Mocks com Prophecy
[PHPConference 2016] Criando Mocks com Prophecy
 
[QANinjaConference] Carreira em Testes: Ainda vale a pena?
[QANinjaConference] Carreira em Testes: Ainda vale a pena?[QANinjaConference] Carreira em Testes: Ainda vale a pena?
[QANinjaConference] Carreira em Testes: Ainda vale a pena?
 
[QANinjaConference] Automação de Testes com Codeception
[QANinjaConference] Automação de Testes com Codeception[QANinjaConference] Automação de Testes com Codeception
[QANinjaConference] Automação de Testes com Codeception
 
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
[TDC2016] Ruby in Tests: Automatizando testes de Unidade, API e GUI (Web)
 
[PHPConferenceBR] Automação de testes com Codeception
[PHPConferenceBR] Automação de testes com Codeception[PHPConferenceBR] Automação de testes com Codeception
[PHPConferenceBR] Automação de testes com Codeception
 
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver
[38º GURU SP] Automação de Testes Web em Ruby com Cucumber e Webdriver
 
[UNIP2015] Testando a Performance de Aplicações Web com JMeter
[UNIP2015] Testando a Performance de Aplicações Web com JMeter[UNIP2015] Testando a Performance de Aplicações Web com JMeter
[UNIP2015] Testando a Performance de Aplicações Web com JMeter
 
Palestra DevOps para Teste de Software
Palestra DevOps para Teste de SoftwarePalestra DevOps para Teste de Software
Palestra DevOps para Teste de Software
 

[Front in Sampa 2018] Desenvolvendo como QAs

  • 1. Júlio de Lima Lead QA Engineer
 Capco Desenvolvendo como QAs 15 slides30 min
  • 2. Como um usuário Quero calcular valores usando operações matemáticas Para ser ágil ao atender meus clientes Exemplo de requisito React Calculator
 A Pen by @mjijackson
 codepen.io/mjijackson/pen/xOzyGX Base da nossa discussão! 1
  • 3. Vou verificá-los e desafiá-los antes de iniciar o desenvolvimento Requisitos 2
  • 4. Pessoas podem informar um número, seguido de um operador matemático e mais um número. Se pressionarem igual, o resultado do cálculo deverá ser apresentado. “ Requisito baseado na calculadora do Mac! 3
  • 5. Qualquer pessoa pode informar um número via teclado ou mouse, seguido de um operador matemático e mais um número. Se pressionarem igual ou qualquer operador, o resultado do cálculo deverá ser apresentado mas se pressionar mais uma vez o valor deverá permanecer o mesmo. Quem?Quais? Como? Esse Se, tem E ou OU? Esse resultado, tem MAS? 3
  • 6. Vou validar sua estrutura e suas condições lógicas Componentes 4
  • 7. class CalculatorKey extends React.Component { render() { const { onPress, className } = this.props return ( <PointTarget onPoint={onPress}> <button className={`calculator-key ${className}`}/> </PointTarget> ) } } Classe CalculatorKey 5
  • 8. class CalculatorKey extends React.Component { render() { const { onPress, className } = this.props return ( <PointTarget onPoint={onPress}> <button className={`calculator-key ${className}`}/> </PointTarget> ) } } Classe CalculatorKey Possui a className que eu imputei? Dispara a o método que defini ao clicar? 5
  • 9. inputDigit(digit) { const { displayValue, waitingForOperand } = this.state if (waitingForOperand) { this.setState({ displayValue: String(digit), waitingForOperand: false }) } else { this.setState({ displayValue: displayValue === '0' ? String(digit) : displayValue + digit }) } } Classe Calculator 6
  • 10. inputDigit(digit) { const { displayValue, waitingForOperand } = this.state if (waitingForOperand) { this.setState({ displayValue: String(digit), waitingForOperand: false }) } else { this.setState({ displayValue: displayValue === '0' ? String(digit) : displayValue + digit }) } } Classe Calculator Verdadeiro e Falso desse condicional Verdadeiro e Falso desse condicional 6
  • 11. Vou validar a integração que existe entre os componentes para validar que são capazes de funcionar de maneira integrada Integração entre Componentes 7
  • 12. Qualquer pessoa pode informar um número via teclado ou mouse, seguido de um operador matemático e mais um número. Se pressionarem igual ou qualquer operador, o resultado do cálculo deverá ser apresentado mas se pressionar mais uma vez o valor deverá permanecer o mesmo. “ 8
  • 13. Como um usuário Quero calcular valores usando operações matemáticas Para ser ágil ao atender meus clientes Exemplo de requisito Primeiro valor Número; Operador matemático Operação Matemática Número; Operador matemático Segundo valor Número; Operador matemático Obter resultado Pressionar o operador uma vez; Pressionar o operador duas vezes Partição de Equivalência 9
  • 14. Como um usuário Quero calcular valores usando operações matemáticas Para ser ágil ao atender meus clientes Exemplo de requisito Variáveis Partições T1 T2 T3 T4 T5 T6 Primeiro valor 10 x x x x x x + Operação Matemática 10 x x x x + x x Segundo valor 10 x x x x + x x Obter resultado Pressionar + uma vez x x x Pressionar + duas vezes x x x Resultados Visor da calculadora 101010 101010 1010 1010 20 20 Tabela de Decisão 10
  • 15. Como um usuário Quero calcular valores usando operações matemáticas Para ser ágil ao atender meus clientes Exemplo de requisito Variáveis Partições T1 T2 T3 T4 T5 T6 Primeiro valor 10 x x x x x x + Operação Matemática 10 x x x x + x x Segundo valor 10 x x x x + x x Obter resultado Pressionar + uma vez x x x Pressionar + duas vezes x x x Resultados Visor da calculadora 101010 101010 1010 1010 20 20 Tabela de Decisão -> Testes que falharam! 10
  • 16. Para não ter que repetir os testes sempre que alterar algo no código, vou automatiza-los criando scripts de teste que repitam minhas ações Automatizando os testes da UI 11
  • 17. Como um usuário Quero calcular valores usando operações matemáticas Para ser ágil ao atender meus clientes Exemplo de requisito React Calculator
 A Pen by @mjijackson
 codepen.io/mjijackson/pen/xOzyGX Passos do script de teste: Ação Objeto Valor - - - - - - - - - - - - - - - - - - - - - 12
  • 18. Como um usuário Quero calcular valores usando operações matemáticas Para ser ágil ao atender meus clientes Exemplo de requisito React Calculator
 A Pen by @mjijackson
 codepen.io/mjijackson/pen/xOzyGX Ação Objeto Valor Clicar .calculator-key.key-1 - - - - - - - - - - - - - - - - - - - Passos do script de teste: 12
  • 19. Como um usuário Quero calcular valores usando operações matemáticas Para ser ágil ao atender meus clientes Exemplo de requisito React Calculator
 A Pen by @mjijackson
 codepen.io/mjijackson/pen/xOzyGX Ação Objeto Valor Clicar .calculator-key.key-1 - Clicar .calculator-key.key-0 - - - - - - - - - - - - - - - - Passos do script de teste: 12
  • 20. Como um usuário Quero calcular valores usando operações matemáticas Para ser ágil ao atender meus clientes Exemplo de requisito React Calculator
 A Pen by @mjijackson
 codepen.io/mjijackson/pen/xOzyGX Ação Objeto Valor Clicar .calculator-key.key-1 - Clicar .calculator-key.key-0 - Clicar .calculator-key.key-add - - - - - - - - - - - - - Passos do script de teste: 12
  • 21. Como um usuário Quero calcular valores usando operações matemáticas Para ser ágil ao atender meus clientes Exemplo de requisito React Calculator
 A Pen by @mjijackson
 codepen.io/mjijackson/pen/xOzyGX Ação Objeto Valor Clicar .calculator-key.key-1 - Clicar .calculator-key.key-0 - Clicar .calculator-key.key-add - Clicar .calculator-key.key-1 - - - - - - - - - - Passos do script de teste: 12
  • 22. Como um usuário Quero calcular valores usando operações matemáticas Para ser ágil ao atender meus clientes Exemplo de requisito React Calculator
 A Pen by @mjijackson
 codepen.io/mjijackson/pen/xOzyGX Ação Objeto Valor Clicar .calculator-key.key-1 - Clicar .calculator-key.key-0 - Clicar .calculator-key.key-add - Clicar .calculator-key.key-1 - Clicar .calculator-key.key-0 - - - - - - - Passos do script de teste: 12
  • 23. Como um usuário Quero calcular valores usando operações matemáticas Para ser ágil ao atender meus clientes Exemplo de requisito React Calculator
 A Pen by @mjijackson
 codepen.io/mjijackson/pen/xOzyGX Ação Objeto Valor Clicar .calculator-key.key-1 - Clicar .calculator-key.key-0 - Clicar .calculator-key.key-add - Clicar .calculator-key.key-1 - Clicar .calculator-key.key-0 - Clicar .calculator-key.key-add - - - - Passos do script de teste: 12
  • 24. Como um usuário Quero calcular valores usando operações matemáticas Para ser ágil ao atender meus clientes Exemplo de requisito React Calculator
 A Pen by @mjijackson
 codepen.io/mjijackson/pen/xOzyGX Ação Objeto Valor Clicar .calculator-key.key-1 - Clicar .calculator-key.key-0 - Clicar .calculator-key.key-add - Clicar .calculator-key.key-1 - Clicar .calculator-key.key-0 - Clicar .calculator-key.key-add - Validar .calculator-display 20 Passos do script de teste: 12
  • 25. Vou usar scripts de teste que validam a aplicação sob a perspectiva visual, ou seja, posicionamento e estilos Automatizando testes da estrutura visual 13
  • 26. Como um usuário Quero calcular valores usando operações matemáticas Para ser ágil ao atender meus clientes Exemplo de requisito React Calculator
 A Pen by @mjijackson
 codepen.io/mjijackson/pen/xOzyGX 14
  • 27. Como um usuário Quero calcular valores usando operações matemáticas Para ser ágil ao atender meus clientes Exemplo de requisito React Calculator
 A Pen by @mjijackson
 codepen.io/mjijackson/pen/xOzyGX Regras: - Deve estar ao lado do ponto - Deve estar abaixo do + - Deve ser laranja com fonte branca! 14
  • 28. Jest, Chai, Enzyme, Sion, Cypress e Galen Libraries que poderiam ser utilizadas 15 Teste funcional na UI Testes na estrutura interna do componente Validação estrutural Da interface gráfica
  • 29. Júlio de Lima Lead QA Engineer
 Capco iam@juliodelima.com.br @juliodelimas Dúvidas?