SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
Legibilidade
de código não é perfumaria
Alessandra Kajihara
e Ariane Izac
CONTEXTO
● Piloto de Automação de Testes
● Objetivo: Evoluir a qualidade e cobertura de testes
● Maiores Dificuldades
○ Legibilidade do código
○ Construções complexas
○ Propósito do teste
○ Asserts incoerentes / ausência de asserts
○ Falsos positivos: Riscos na entrega
“Decifrar menos. Criar mais”
E o que é legibilidade?
LEGIBILIDADE
● Facilidade de leitura e entendimento
● Bem estruturado/formatado
● Minimizar margem para falsos positivos
● Fácil manutenção
1. Convenção de Nome
● Padrões utilizado no Java
○ Camelcase
● Para o nome do teste, considere:
○ Claro, curto e objetivo
● Importante
○ Time alinhado com a convenção
● Métodos muito grandes
○ Tornam-se complexos
○ Dificultam entendimento
● Reuso de código
○ Encapsulamento
○ Facilita manutenção
2. Atenção com
Métodos
Original
Refatorado
Encapsulamento
● Definição de domínios
● Facilita a leitura dos testes
● Enum próprio para o teste
3. Uso de Enums
Enum
4. Data Driven Testing
○ O que é Data Driven?
■ Testes orientados a dados
■ Uso de matrizes (tabela-verdade)
○ Quando utilizar
■ Vários testes com o mesmo fluxo e
dados diferentes de entrada e/ou saída
○ Como?
5. Uso de DSL
● O que é DSL?
○ Domain Specific Language: Linguagem de
domínio específico
○ Pequenas Linguagens - Resolve um problema
específico
○ Camada de abstração
● Tipos de DSL
○ DSL Interna: Utiliza linguagem host
○ DSL Externa: Utiliza uma outranova
linguagem para atender o domínio
● Quando utilizar?
○ Casos complexos
○ Casos com muito reuso de código
● Como utilizar?
○ Linguagem de negócio
○ Encapsulamento do método
● Vantagens
○ Facilita o entendimento do código - Intuitivo
○ Aumenta a produtividade - manutenção
5. Uso de DSL
Estrutura DSL
E pra fechar...
● Legibilidade não é perfumaria
● Facilita entendimento
● Facilita a manutenção
● Deixa seu código limpo
● Adotar padrões ou diretrizes
○ Linguagem
○ Time
“Test code is just as
important as production
code…”
Robert C. Martin - Clean Code
Analista de Testes
Há 12 anos
Ariane Izac
Matera Systems
Há 7 anos
Blogueira
Grupo no LinkedIN
Diário de uma Paixão:
Teste de Software
CONTATOS
Linkedin: Ariane Izac Email: afizac@gmail.com Twitter: @arianizac
Legibilidade de código não é perfumaria: dicas para melhorar a qualidade dos testes automatizados

Mais conteúdo relacionado

Mais procurados (14)

Defenda seus consumidores
Defenda seus consumidoresDefenda seus consumidores
Defenda seus consumidores
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Por que Ruby on Rails?
Por que Ruby on Rails?Por que Ruby on Rails?
Por que Ruby on Rails?
 
ASP.NET MVC 3
ASP.NET MVC 3ASP.NET MVC 3
ASP.NET MVC 3
 
Desenvolvimento web e PHP
Desenvolvimento web e PHPDesenvolvimento web e PHP
Desenvolvimento web e PHP
 
Palestra: Introdução à TypeScript & Features Ts 2.x
Palestra: Introdução à TypeScript & Features Ts 2.x Palestra: Introdução à TypeScript & Features Ts 2.x
Palestra: Introdução à TypeScript & Features Ts 2.x
 
Apresentação Introdução Typescript - .Net Caxias do Sul
Apresentação   Introdução Typescript - .Net Caxias do SulApresentação   Introdução Typescript - .Net Caxias do Sul
Apresentação Introdução Typescript - .Net Caxias do Sul
 
Refatorar é preciso! 2.0
Refatorar é preciso! 2.0Refatorar é preciso! 2.0
Refatorar é preciso! 2.0
 
Refatorar é preciso. Palestra TDC 2014
Refatorar é preciso. Palestra TDC 2014Refatorar é preciso. Palestra TDC 2014
Refatorar é preciso. Palestra TDC 2014
 
Introdução a Front-end
Introdução a Front-endIntrodução a Front-end
Introdução a Front-end
 
Clean code v3
Clean code v3Clean code v3
Clean code v3
 
Html slide
Html slideHtml slide
Html slide
 
Processo de Desenvolvimento de Software - Programação
Processo de Desenvolvimento de Software - ProgramaçãoProcesso de Desenvolvimento de Software - Programação
Processo de Desenvolvimento de Software - Programação
 
Html slide
Html slideHtml slide
Html slide
 

Semelhante a Legibilidade de código não é perfumaria: dicas para melhorar a qualidade dos testes automatizados

Protractor style guide - Agile Testers Conference 2016
Protractor style guide - Agile Testers Conference 2016Protractor style guide - Agile Testers Conference 2016
Protractor style guide - Agile Testers Conference 2016Walmyr Lima e Silva Filho
 
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...Adam Victor Brandizzi
 
Programação Pragmática
Programação PragmáticaProgramação Pragmática
Programação Pragmáticaelliando dias
 
Treinamento TDD - Atech
Treinamento TDD - AtechTreinamento TDD - Atech
Treinamento TDD - Atechcesarcneto
 
Coding Dojo - Aprendendo a programar programando
Coding Dojo - Aprendendo a programar programandoCoding Dojo - Aprendendo a programar programando
Coding Dojo - Aprendendo a programar programandoMauricio Matsuda
 
Sobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis UberlândiaSobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis UberlândiaRogerio Fontes
 
Programe a eficácia do seu código
Programe a eficácia do seu códigoPrograme a eficácia do seu código
Programe a eficácia do seu códigoAna Claudia Nogueira
 
Coding Dojo - Funcionamento
Coding Dojo - FuncionamentoCoding Dojo - Funcionamento
Coding Dojo - Funcionamentothiagodp
 
Clean Code: Por um mundo com códigos melhores - SETI 2017
Clean Code: Por um mundo com códigos melhores - SETI 2017Clean Code: Por um mundo com códigos melhores - SETI 2017
Clean Code: Por um mundo com códigos melhores - SETI 2017Thiago Barradas
 
Clean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everisClean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everisRogerio Fontes
 
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...Thiago Barradas
 

Semelhante a Legibilidade de código não é perfumaria: dicas para melhorar a qualidade dos testes automatizados (20)

Protractor style guide - Agile Testers Conference 2016
Protractor style guide - Agile Testers Conference 2016Protractor style guide - Agile Testers Conference 2016
Protractor style guide - Agile Testers Conference 2016
 
Codigo limpo
Codigo limpoCodigo limpo
Codigo limpo
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Tdd On Rails
Tdd On RailsTdd On Rails
Tdd On Rails
 
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...
 
Programação Pragmática
Programação PragmáticaProgramação Pragmática
Programação Pragmática
 
Codigo limpo.pptx
Codigo limpo.pptxCodigo limpo.pptx
Codigo limpo.pptx
 
Treinamento TDD - Atech
Treinamento TDD - AtechTreinamento TDD - Atech
Treinamento TDD - Atech
 
Clean code part 2
Clean code   part 2Clean code   part 2
Clean code part 2
 
Coding Dojo - Aprendendo a programar programando
Coding Dojo - Aprendendo a programar programandoCoding Dojo - Aprendendo a programar programando
Coding Dojo - Aprendendo a programar programando
 
Sobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis UberlândiaSobre TDD - Tech Friday da Everis Uberlândia
Sobre TDD - Tech Friday da Everis Uberlândia
 
Clean code
Clean codeClean code
Clean code
 
BDD em Ação
BDD em AçãoBDD em Ação
BDD em Ação
 
Programe a eficácia do seu código
Programe a eficácia do seu códigoPrograme a eficácia do seu código
Programe a eficácia do seu código
 
Coding Dojo - Funcionamento
Coding Dojo - FuncionamentoCoding Dojo - Funcionamento
Coding Dojo - Funcionamento
 
Clean Code: Por um mundo com códigos melhores - SETI 2017
Clean Code: Por um mundo com códigos melhores - SETI 2017Clean Code: Por um mundo com códigos melhores - SETI 2017
Clean Code: Por um mundo com códigos melhores - SETI 2017
 
Clean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everisClean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everis
 
Frameworks PHP
Frameworks PHPFrameworks PHP
Frameworks PHP
 
Object calisthenics
Object calisthenicsObject calisthenics
Object calisthenics
 
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
 

Mais de Ariane Izac

Panorama geral sobre testes e qualidade de software
Panorama geral sobre testes e qualidade  de softwarePanorama geral sobre testes e qualidade  de software
Panorama geral sobre testes e qualidade de softwareAriane Izac
 
Quer monitorar sua aplicação Java com Open Source? Com Fligth Recorder e M...
Quer monitorar sua aplicação  Java com Open Source?  Com Fligth Recorder  e M...Quer monitorar sua aplicação  Java com Open Source?  Com Fligth Recorder  e M...
Quer monitorar sua aplicação Java com Open Source? Com Fligth Recorder e M...Ariane Izac
 
Estratégias de testes em 10 passos, step by step!
Estratégias de testes em 10 passos, step by step!Estratégias de testes em 10 passos, step by step!
Estratégias de testes em 10 passos, step by step!Ariane Izac
 
Como a comunicação influencia em times ágeis?
Como a comunicação influencia em times ágeis?Como a comunicação influencia em times ágeis?
Como a comunicação influencia em times ágeis?Ariane Izac
 
5 dicas para estruturar seu teste de performance
5 dicas para estruturar seu teste de performance5 dicas para estruturar seu teste de performance
5 dicas para estruturar seu teste de performanceAriane Izac
 
O que eu deveria saber antes de testar performance?
O que eu deveria saber antes de testar performance?O que eu deveria saber antes de testar performance?
O que eu deveria saber antes de testar performance?Ariane Izac
 
Planejamento de testes em um mundo ágil
Planejamento de testes em um mundo ágilPlanejamento de testes em um mundo ágil
Planejamento de testes em um mundo ágilAriane Izac
 
O que eu deveria saber antes de testar performance?
O que eu deveria saber antes de testar performance?O que eu deveria saber antes de testar performance?
O que eu deveria saber antes de testar performance?Ariane Izac
 
[Mentorado de Teste] Dicas para palestrar - Ariane Izac
[Mentorado de Teste] Dicas para palestrar - Ariane Izac[Mentorado de Teste] Dicas para palestrar - Ariane Izac
[Mentorado de Teste] Dicas para palestrar - Ariane IzacAriane Izac
 
Divando nos testes com as práticas do Agile Testing
Divando nos testes com as práticas do Agile TestingDivando nos testes com as práticas do Agile Testing
Divando nos testes com as práticas do Agile TestingAriane Izac
 
Upgrade na sprint com práticas do agile testing - QA Ladies 2a Noite
Upgrade na sprint com práticas do agile testing - QA Ladies 2a NoiteUpgrade na sprint com práticas do agile testing - QA Ladies 2a Noite
Upgrade na sprint com práticas do agile testing - QA Ladies 2a NoiteAriane Izac
 
Acredite, você pode agilizar feedbacks aplicando Dev Box Testing
Acredite, você pode agilizar feedbacks aplicando Dev Box TestingAcredite, você pode agilizar feedbacks aplicando Dev Box Testing
Acredite, você pode agilizar feedbacks aplicando Dev Box TestingAriane Izac
 
Upgrade na Sprint com práticas do Agile Testing - MTC2017
Upgrade na Sprint com práticas do Agile Testing - MTC2017Upgrade na Sprint com práticas do Agile Testing - MTC2017
Upgrade na Sprint com práticas do Agile Testing - MTC2017Ariane Izac
 
Acredite, você pode agilizar feedbacks aplicando Dev Box Testing
Acredite, você pode agilizar feedbacks aplicando Dev Box Testing Acredite, você pode agilizar feedbacks aplicando Dev Box Testing
Acredite, você pode agilizar feedbacks aplicando Dev Box Testing Ariane Izac
 
Você já aplicou dev box testing hoje?
Você já aplicou dev box testing hoje?Você já aplicou dev box testing hoje?
Você já aplicou dev box testing hoje?Ariane Izac
 

Mais de Ariane Izac (15)

Panorama geral sobre testes e qualidade de software
Panorama geral sobre testes e qualidade  de softwarePanorama geral sobre testes e qualidade  de software
Panorama geral sobre testes e qualidade de software
 
Quer monitorar sua aplicação Java com Open Source? Com Fligth Recorder e M...
Quer monitorar sua aplicação  Java com Open Source?  Com Fligth Recorder  e M...Quer monitorar sua aplicação  Java com Open Source?  Com Fligth Recorder  e M...
Quer monitorar sua aplicação Java com Open Source? Com Fligth Recorder e M...
 
Estratégias de testes em 10 passos, step by step!
Estratégias de testes em 10 passos, step by step!Estratégias de testes em 10 passos, step by step!
Estratégias de testes em 10 passos, step by step!
 
Como a comunicação influencia em times ágeis?
Como a comunicação influencia em times ágeis?Como a comunicação influencia em times ágeis?
Como a comunicação influencia em times ágeis?
 
5 dicas para estruturar seu teste de performance
5 dicas para estruturar seu teste de performance5 dicas para estruturar seu teste de performance
5 dicas para estruturar seu teste de performance
 
O que eu deveria saber antes de testar performance?
O que eu deveria saber antes de testar performance?O que eu deveria saber antes de testar performance?
O que eu deveria saber antes de testar performance?
 
Planejamento de testes em um mundo ágil
Planejamento de testes em um mundo ágilPlanejamento de testes em um mundo ágil
Planejamento de testes em um mundo ágil
 
O que eu deveria saber antes de testar performance?
O que eu deveria saber antes de testar performance?O que eu deveria saber antes de testar performance?
O que eu deveria saber antes de testar performance?
 
[Mentorado de Teste] Dicas para palestrar - Ariane Izac
[Mentorado de Teste] Dicas para palestrar - Ariane Izac[Mentorado de Teste] Dicas para palestrar - Ariane Izac
[Mentorado de Teste] Dicas para palestrar - Ariane Izac
 
Divando nos testes com as práticas do Agile Testing
Divando nos testes com as práticas do Agile TestingDivando nos testes com as práticas do Agile Testing
Divando nos testes com as práticas do Agile Testing
 
Upgrade na sprint com práticas do agile testing - QA Ladies 2a Noite
Upgrade na sprint com práticas do agile testing - QA Ladies 2a NoiteUpgrade na sprint com práticas do agile testing - QA Ladies 2a Noite
Upgrade na sprint com práticas do agile testing - QA Ladies 2a Noite
 
Acredite, você pode agilizar feedbacks aplicando Dev Box Testing
Acredite, você pode agilizar feedbacks aplicando Dev Box TestingAcredite, você pode agilizar feedbacks aplicando Dev Box Testing
Acredite, você pode agilizar feedbacks aplicando Dev Box Testing
 
Upgrade na Sprint com práticas do Agile Testing - MTC2017
Upgrade na Sprint com práticas do Agile Testing - MTC2017Upgrade na Sprint com práticas do Agile Testing - MTC2017
Upgrade na Sprint com práticas do Agile Testing - MTC2017
 
Acredite, você pode agilizar feedbacks aplicando Dev Box Testing
Acredite, você pode agilizar feedbacks aplicando Dev Box Testing Acredite, você pode agilizar feedbacks aplicando Dev Box Testing
Acredite, você pode agilizar feedbacks aplicando Dev Box Testing
 
Você já aplicou dev box testing hoje?
Você já aplicou dev box testing hoje?Você já aplicou dev box testing hoje?
Você já aplicou dev box testing hoje?
 

Legibilidade de código não é perfumaria: dicas para melhorar a qualidade dos testes automatizados

  • 3. CONTEXTO ● Piloto de Automação de Testes ● Objetivo: Evoluir a qualidade e cobertura de testes ● Maiores Dificuldades ○ Legibilidade do código ○ Construções complexas ○ Propósito do teste ○ Asserts incoerentes / ausência de asserts ○ Falsos positivos: Riscos na entrega
  • 5. E o que é legibilidade?
  • 6. LEGIBILIDADE ● Facilidade de leitura e entendimento ● Bem estruturado/formatado ● Minimizar margem para falsos positivos ● Fácil manutenção
  • 7. 1. Convenção de Nome ● Padrões utilizado no Java ○ Camelcase ● Para o nome do teste, considere: ○ Claro, curto e objetivo ● Importante ○ Time alinhado com a convenção
  • 8. ● Métodos muito grandes ○ Tornam-se complexos ○ Dificultam entendimento ● Reuso de código ○ Encapsulamento ○ Facilita manutenção 2. Atenção com Métodos
  • 12. ● Definição de domínios ● Facilita a leitura dos testes ● Enum próprio para o teste 3. Uso de Enums
  • 13. Enum
  • 14. 4. Data Driven Testing ○ O que é Data Driven? ■ Testes orientados a dados ■ Uso de matrizes (tabela-verdade) ○ Quando utilizar ■ Vários testes com o mesmo fluxo e dados diferentes de entrada e/ou saída ○ Como?
  • 15.
  • 16.
  • 17.
  • 18. 5. Uso de DSL ● O que é DSL? ○ Domain Specific Language: Linguagem de domínio específico ○ Pequenas Linguagens - Resolve um problema específico ○ Camada de abstração ● Tipos de DSL ○ DSL Interna: Utiliza linguagem host ○ DSL Externa: Utiliza uma outranova linguagem para atender o domínio
  • 19. ● Quando utilizar? ○ Casos complexos ○ Casos com muito reuso de código ● Como utilizar? ○ Linguagem de negócio ○ Encapsulamento do método ● Vantagens ○ Facilita o entendimento do código - Intuitivo ○ Aumenta a produtividade - manutenção 5. Uso de DSL
  • 20.
  • 21.
  • 23. E pra fechar... ● Legibilidade não é perfumaria ● Facilita entendimento ● Facilita a manutenção ● Deixa seu código limpo ● Adotar padrões ou diretrizes ○ Linguagem ○ Time
  • 24. “Test code is just as important as production code…” Robert C. Martin - Clean Code
  • 25. Analista de Testes Há 12 anos Ariane Izac Matera Systems Há 7 anos Blogueira Grupo no LinkedIN Diário de uma Paixão: Teste de Software CONTATOS Linkedin: Ariane Izac Email: afizac@gmail.com Twitter: @arianizac