SlideShare una empresa de Scribd logo
1 de 35
Descargar para leer sin conexión
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 que não validam o propósito ou
ausência de asserts
E o que é legibilidade?
LEGIBILIDADE
● Facilidade de leitura e entendimento
● Bem estruturado/formatado
● Minimizar margem para falsos positivos
● Fácil manutenção
“Decifrar menos. Criar mais”
CALMA! Juramos que têm código!
1. Nome do teste
● Precisa ser
○ Claro e auto-explicativo
○ Coerente com o assert do teste
● Padrões normalmente utilizado no Java
○ Camelcase
● Métodos muito grandes
○ Tornam-se complexos
○ Dificultam entendimento
● Reuso de código
○ Encapsulamento
2. Atenção com
Métodos
???
● Definição de domínios
● Facilita a escrita e leitura dos testes
● Enum próprio para o teste
3. Uso de Enums
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 (Empresa)
“Test code is just as
important as production
code…”
Robert C. Martin - Clean Code
Analista de Testes
Há 7 anos
Alessandra Kajihara
Matera Systems
Há 5 anos
CONTATOS
Linkedin: Alessandra Kajihara Email: sahkaji@gmail.com
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
[1] https://www.guj.com.br/t/legibilidade-de-codigo/61896/6
[2]
https://medium.com/equals-lab/tem-um-tempinho-para-conversarmos-sobre-boas-pr%C3%A1ticas
-de-programa%C3%A7%C3%A3o-com-java-51c5bcc220ea
[3] https://pt.slideshare.net/FelipeVolpone/legibilidade-do-cdigo
[4] https://www.alura.com.br/curso-online-refatorando-na-pratica-com-java
[5] https://google.github.io/styleguide/javaguide.html
REFERÊNCIAS
REFERÊNCIAS
[6] https://www.infoq.com/br/presentations/arquiteturas-profissionais-javaee
[7] https://www.martinfowler.com/bliki/DslQandA.html
[8] https://www.devmedia.com.br/convencoes-de-codigo-java/23871
[9] http://www.eliasnogueira.com/parametrizacao-de-dados-para-automacao-de-teste/
Legibilidade de código não é perfumaria

Más contenido relacionado

La actualidad más candente

DSL - Como construir uma linguagem em 5 minutos
DSL - Como construir uma linguagem em 5 minutosDSL - Como construir uma linguagem em 5 minutos
DSL - Como construir uma linguagem em 5 minutosOpensoft SA
 
P01 - Como ser um desenvolvedor melhor
P01 - Como ser um desenvolvedor melhorP01 - Como ser um desenvolvedor melhor
P01 - Como ser um desenvolvedor melhorLeandro Ferreira
 
TDC2016POA | Trilha PHP - Quero ser desenvolvedor PHP. Como me preparar para ...
TDC2016POA | Trilha PHP - Quero ser desenvolvedor PHP. Como me preparar para ...TDC2016POA | Trilha PHP - Quero ser desenvolvedor PHP. Como me preparar para ...
TDC2016POA | Trilha PHP - Quero ser desenvolvedor PHP. Como me preparar para ...tdc-globalcode
 
Desenvolvimento Web com Rails
Desenvolvimento Web com RailsDesenvolvimento Web com Rails
Desenvolvimento Web com RailsJulio Monteiro
 
TDC2016POA | Trilha PHP - Por que utilizar o Laravel?
TDC2016POA | Trilha PHP - Por que utilizar o Laravel?TDC2016POA | Trilha PHP - Por que utilizar o Laravel?
TDC2016POA | Trilha PHP - Por que utilizar o Laravel?tdc-globalcode
 
Processo de Desenvolvimento de Software - Linguagens Imperativas x Declarativas
Processo de Desenvolvimento de Software - Linguagens Imperativas x DeclarativasProcesso de Desenvolvimento de Software - Linguagens Imperativas x Declarativas
Processo de Desenvolvimento de Software - Linguagens Imperativas x DeclarativasNatanael Simões
 
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çãoNatanael Simões
 
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 Glaucia Lemos
 
Boas práticas técnica para um código limpo (Clean Code)
Boas práticas técnica para um código limpo (Clean Code)Boas práticas técnica para um código limpo (Clean Code)
Boas práticas técnica para um código limpo (Clean Code)Rodrigo Kono
 
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 SulGlaucia Lemos
 

La actualidad más candente (17)

Desenvolvimento web e PHP
Desenvolvimento web e PHPDesenvolvimento web e PHP
Desenvolvimento web e PHP
 
DSL - Como construir uma linguagem em 5 minutos
DSL - Como construir uma linguagem em 5 minutosDSL - Como construir uma linguagem em 5 minutos
DSL - Como construir uma linguagem em 5 minutos
 
P01 - Como ser um desenvolvedor melhor
P01 - Como ser um desenvolvedor melhorP01 - Como ser um desenvolvedor melhor
P01 - Como ser um desenvolvedor melhor
 
TDC2016POA | Trilha PHP - Quero ser desenvolvedor PHP. Como me preparar para ...
TDC2016POA | Trilha PHP - Quero ser desenvolvedor PHP. Como me preparar para ...TDC2016POA | Trilha PHP - Quero ser desenvolvedor PHP. Como me preparar para ...
TDC2016POA | Trilha PHP - Quero ser desenvolvedor PHP. Como me preparar para ...
 
Desenvolvimento Web com Rails
Desenvolvimento Web com RailsDesenvolvimento Web com Rails
Desenvolvimento Web com Rails
 
TDC2016POA | Trilha PHP - Por que utilizar o Laravel?
TDC2016POA | Trilha PHP - Por que utilizar o Laravel?TDC2016POA | Trilha PHP - Por que utilizar o Laravel?
TDC2016POA | Trilha PHP - Por que utilizar o Laravel?
 
Processo de Desenvolvimento de Software - Linguagens Imperativas x Declarativas
Processo de Desenvolvimento de Software - Linguagens Imperativas x DeclarativasProcesso de Desenvolvimento de Software - Linguagens Imperativas x Declarativas
Processo de Desenvolvimento de Software - Linguagens Imperativas x Declarativas
 
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
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Paradigmas de programação
Paradigmas de programaçãoParadigmas de programação
Paradigmas de programação
 
Clean code v3
Clean code v3Clean code v3
Clean code v3
 
Refatorar é preciso. Palestra TDC 2014
Refatorar é preciso. Palestra TDC 2014Refatorar é preciso. Palestra TDC 2014
Refatorar é preciso. Palestra TDC 2014
 
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
 
Boas práticas técnica para um código limpo (Clean Code)
Boas práticas técnica para um código limpo (Clean Code)Boas práticas técnica para um código limpo (Clean Code)
Boas práticas técnica para um código limpo (Clean Code)
 
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
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 

Similar a Legibilidade de código não é perfumaria

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
 
Treinamento TDD - Atech
Treinamento TDD - AtechTreinamento TDD - Atech
Treinamento TDD - Atechcesarcneto
 
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
 
Programação Pragmática
Programação PragmáticaProgramação Pragmática
Programação Pragmáticaelliando dias
 
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
 
Clean Code - Boas práticas para desenvolvimento
Clean Code - Boas práticas para desenvolvimentoClean Code - Boas práticas para desenvolvimento
Clean Code - Boas práticas para desenvolvimentoPaulo Henrique da Silva
 
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
 
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
 
TDD com Código Legado
TDD com Código LegadoTDD com Código Legado
TDD com Código LegadoCesar Romero
 
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
 
Coding Dojo - Aprendendo a programar programando
Coding Dojo - Aprendendo a programar programandoCoding Dojo - Aprendendo a programar programando
Coding Dojo - Aprendendo a programar programandoMauricio Matsuda
 
Clean Code - Conceitos e filosofia
Clean Code - Conceitos e filosofiaClean Code - Conceitos e filosofia
Clean Code - Conceitos e filosofiaAugusto Rosa
 
Coding Dojo - Funcionamento
Coding Dojo - FuncionamentoCoding Dojo - Funcionamento
Coding Dojo - Funcionamentothiagodp
 

Similar a Legibilidade de código não é perfumaria (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
 
Tdd On Rails
Tdd On RailsTdd On Rails
Tdd On Rails
 
Codigo limpo
Codigo limpoCodigo limpo
Codigo limpo
 
Codigo limpo.pptx
Codigo limpo.pptxCodigo limpo.pptx
Codigo limpo.pptx
 
Treinamento TDD - Atech
Treinamento TDD - AtechTreinamento TDD - Atech
Treinamento TDD - Atech
 
Clean code
Clean codeClean code
Clean code
 
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
 
Programação Pragmática
Programação PragmáticaProgramação Pragmática
Programação Pragmática
 
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...
 
Clean Code - Boas práticas para desenvolvimento
Clean Code - Boas práticas para desenvolvimentoClean Code - Boas práticas para desenvolvimento
Clean Code - Boas práticas para desenvolvimento
 
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...
 
Refatoração de Código Legado
Refatoração de Código LegadoRefatoração de Código Legado
Refatoração de Código Legado
 
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
 
TDD com Código Legado
TDD com Código LegadoTDD com Código Legado
TDD com Código Legado
 
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
Clean codeClean code
Clean code
 
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
 
Clean Code - Conceitos e filosofia
Clean Code - Conceitos e filosofiaClean Code - Conceitos e filosofia
Clean Code - Conceitos e filosofia
 
Coding Dojo - Funcionamento
Coding Dojo - FuncionamentoCoding Dojo - Funcionamento
Coding Dojo - Funcionamento
 

Más 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
 

Más 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