SlideShare une entreprise Scribd logo
1  sur  35
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

Tendances (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
 

Similaire à Legibilidade de código não é perfumaria

Programação Pragmática
Programação PragmáticaProgramação Pragmática
Programação Pragmática
elliando dias
 

Similaire à 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
 

Plus de Ariane Izac

Plus 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?
 

Dernier

Dernier (8)

Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 

Legibilidade de código não é perfumaria