Descrição da palestra no TDC 2014 Poa:
http://www.thedevelopersconference.com.br/tdc/2014/portoalegre/trilha-agile
TDD (Test-driven development) é uma técnica para construção de software que guia o desenvolvimento de software através da escrita de testes. Muito se falou nesse ano, mas pouco se aprendeu. Mas qual é essência real do TDD? A resposta é simples, a essência está em seu mantra: Red / Green / Refactor. O TDD será destilado, explicando seus detalhes além do seu mantra.
Será mostrado o TDD no eXtreme Programming (XP), a importância da refatoração para o TDD, frameworks xUnit, como solucionar problemas complexos com Baby Steps, o valor do Clean Code, e como isso é importante para Coding Dojos. Patterns do TDD serão apresentados, dando a base para a essência do TDD. As relações do TDD com Agile Testing, ATDD e BDD também serão discutidas.
Introdução ao TDD (Test-Driven Development) - #guma10anosDionatan default
Introdução ao TDD (Test-Driven Development) palestrado no #guma10anos. Fazendo uma relação com o TFD (Test First Development) e Refatoração, xUnit, Baby Steps, Clean Code, Patters para TDD, Agile Testing e ATDD (Acceptance Test-Driven Development). Ao final os Coding Dojos já realizados pelo RSJUG. Ao final um Prepared Kata demonstrando o TDD na prática.
Nessa palestra divertida, eu falo um pouco sobre a importância do TDD para garantir uma maior qualidade no código quanto um aumento da confiança nas habilidades do desenvolvedor e do time.
Nessa palestra relato minha experiência não como um desenvolvedor de software altamente sinistro com duzentos anos de experiência e mil livros publicados - mas sim como um "mero mortal", um desenvolvedor "de verdade", do "mundo real" aplicando a teoria que aprendeu do TDD.
Apresentação sobre TDD(Test-Driven Development) realizada em 18/04/2013.
Tópicos abordados:
- Motivos que contribuem para a falta de testes
- Quais os impactos da falta de testes?
- Visão geral dos diferentes tipos de testes na área de software
- Testes unitários e a plataforma .NET
- TDD: conceitos gerais
- Implementação de um exemplo prático
- Testes unitários e o Visual Studio 2015
Facilitando o desenvolvimento orientado a testes em aplicações PHPPedro Chaves
Palestra sobre Desenvolvimento Orientado a Testes (TDD) em PHP utilizando o framework de testes Codeception. Apresentada no iMasters Developer Week de Belo Horizonte, ocorrido entre 26 e 28 de maio de 2015
Introdução ao TDD (Test-Driven Development) - #guma10anosDionatan default
Introdução ao TDD (Test-Driven Development) palestrado no #guma10anos. Fazendo uma relação com o TFD (Test First Development) e Refatoração, xUnit, Baby Steps, Clean Code, Patters para TDD, Agile Testing e ATDD (Acceptance Test-Driven Development). Ao final os Coding Dojos já realizados pelo RSJUG. Ao final um Prepared Kata demonstrando o TDD na prática.
Nessa palestra divertida, eu falo um pouco sobre a importância do TDD para garantir uma maior qualidade no código quanto um aumento da confiança nas habilidades do desenvolvedor e do time.
Nessa palestra relato minha experiência não como um desenvolvedor de software altamente sinistro com duzentos anos de experiência e mil livros publicados - mas sim como um "mero mortal", um desenvolvedor "de verdade", do "mundo real" aplicando a teoria que aprendeu do TDD.
Apresentação sobre TDD(Test-Driven Development) realizada em 18/04/2013.
Tópicos abordados:
- Motivos que contribuem para a falta de testes
- Quais os impactos da falta de testes?
- Visão geral dos diferentes tipos de testes na área de software
- Testes unitários e a plataforma .NET
- TDD: conceitos gerais
- Implementação de um exemplo prático
- Testes unitários e o Visual Studio 2015
Facilitando o desenvolvimento orientado a testes em aplicações PHPPedro Chaves
Palestra sobre Desenvolvimento Orientado a Testes (TDD) em PHP utilizando o framework de testes Codeception. Apresentada no iMasters Developer Week de Belo Horizonte, ocorrido entre 26 e 28 de maio de 2015
Como TDD pode influenciar na construção do seu Produto?Raphael Paiva
Mostra as vantagens que o Test Driven Development trás para o design de sua aplicação, além do aprendizadoque ele trouxe no desenvolvimento do JTrace, uma biblioteca de computação gráfica.
Palestra sobre Desenvolvimento Dirigido por Testes (TDD) apresentada no Agile Vale 2010 em São José dos Campos.
http://www.webgoal.com.br/desenvolvimento/9º-dojo-tente-…gile-vale-2010/
Apesar de muitas empresas ainda não utilizarem técnicas de teste de software para o desenvolvimento dos seus produtos, alegando o atraso, o tempo ou o custo para esta tarefa, as pesquisas indicam que os testes ajudam na garantia de qualidade do software.
Esta apresentação fala sobre boas práticas no desenvolvimento de software utilizando o conceito de TDD.
Também apresenta no final um case sobre documentação de APIs Restful utilizando testes de integração, integração contínua e deploy contínuo.
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...Developer Academy
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com Visual Studio 2019. Mais informações podem ser obtidas em www.developeracademy.com.br ou www.developeracademy.dev.
Apresentação feita para a equipe da RBS sobre automatização de testes. Em quatro passos, verificamos qual a parte do nosso código que precisa mais atenção, e auxiliado por ferramentas ampliamos a confiabilidade dos códigos.
Pesquisa em Métodos Ágeis para o Desenvolvimento de SoftwareAdolfo Neto
Slides do mini-curso apresentado em 10.06.2011 no X Simpósio Brasileiro em Qualidade de Software (Curitiba-PR).
Mais informações em http://bit.ly/eyYo8Y
Como TDD pode influenciar na construção do seu Produto?Raphael Paiva
Mostra as vantagens que o Test Driven Development trás para o design de sua aplicação, além do aprendizadoque ele trouxe no desenvolvimento do JTrace, uma biblioteca de computação gráfica.
Palestra sobre Desenvolvimento Dirigido por Testes (TDD) apresentada no Agile Vale 2010 em São José dos Campos.
http://www.webgoal.com.br/desenvolvimento/9º-dojo-tente-…gile-vale-2010/
Apesar de muitas empresas ainda não utilizarem técnicas de teste de software para o desenvolvimento dos seus produtos, alegando o atraso, o tempo ou o custo para esta tarefa, as pesquisas indicam que os testes ajudam na garantia de qualidade do software.
Esta apresentação fala sobre boas práticas no desenvolvimento de software utilizando o conceito de TDD.
Também apresenta no final um case sobre documentação de APIs Restful utilizando testes de integração, integração contínua e deploy contínuo.
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...Developer Academy
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com Visual Studio 2019. Mais informações podem ser obtidas em www.developeracademy.com.br ou www.developeracademy.dev.
Apresentação feita para a equipe da RBS sobre automatização de testes. Em quatro passos, verificamos qual a parte do nosso código que precisa mais atenção, e auxiliado por ferramentas ampliamos a confiabilidade dos códigos.
Pesquisa em Métodos Ágeis para o Desenvolvimento de SoftwareAdolfo Neto
Slides do mini-curso apresentado em 10.06.2011 no X Simpósio Brasileiro em Qualidade de Software (Curitiba-PR).
Mais informações em http://bit.ly/eyYo8Y
Quantas vezes você precisou lidar com achar e corrigir bugs mesmo meses depois do desenvolvimento?
Quantas vezes o seu budget estourou pois nem todos os cenários foram cobertos pelos desenvolvedores nos seus testes?
Nesta palestra vamos ver como uma pessoa ou time dedicada ao controle de qualidade pode trabalhar com o gerente do projeto e/ou líder técnico/arquiteto para garantir uma melhor cobertura de casos de usos e testes em múltiplos projetos, e como isso impactará a entrega final.
Isso não é um ataque aos desenvolvedores. Eu também sou um desenvolvedor!
Mas já passou o momento de levarmos QA mais a sério durante o desenvolvimento.
Desenvolvimento Orientado a Documentação? Utilizando doctests para tornar seu...Adam Victor Brandizzi
Documentar é difícil e trabalhoso. Mas precisa ser? Nesta apresentação, vou mostrar que, ao menos em Python, não precisa! O módulo doctest ajuda você a documentar e ainda melhora a qualidade do seu código.
Segunda aula sobre testes, na qual é apresentada a turma a regra fundamental de desenvolvimento orientado a testes, o desafio existente no desenvolvimento e manutenção de software e como podemos manter a qualidade interna e externa de nosso código com TDD e ATDD. Por fim é apresentado o ciclo de desenvolvimento com TDD e como conseguimos software melhor e mais condizente com as necessidades de nosso clientes com ATDD.
Trabalhar como desenvolvedor de software pode ser um pouco frustrante, as vezes por estar preso a um projeto, as vezes por causa da linguagem que é usada, mas principalmente quando você está em um lugar que não tem nada a ver com você.
Nessa palestra eu vou falar sobre a minha experiência saindo de uma grande empresa tradicional para uma empresa ágil e como essa mudança me mostrou que algumas coisas que muitas empresas negligênciam são na verdade, extremamente importantes. Coisas como testes, continuous integration, pair programming, code review, open-source, como adaptar metodologias ágeis a sua realidade, python (é claro) e django, um framework que faz o desenvolvimento de uma aplicação web parecer simples
Do imperador Marco Aurélio, do senador Sêneca, ao ex-escravo Epíteto, grandes nomes estoicos tornaram uma filosofia prática de vida sobreviver milênios. Das ruas de Atenas a dois milênios atrás, no mercado aberto (stoa) no meio do povo, os filósofos estoicos conversaram com as pessoas sobre a vida e como torná-la melhor.
San Francisco Software Craftsmanship Meetup
Test Driven Developers Bay Area Meetup
TDD Flow: The Mantra in Action” is a talk + hands-on about the mantra of TDD and its core patterns. Here are some questions for this talk: What is TDD? How to write a good test that fails? How to write code enough to make the test pass? How to remove duplication? How to refactor code? How to create clean code? Is TDD about testing or design? How small should a test be? Should I only write unit tests? Should I estimate TDD? How to use TDD with other agile methods like Scrum, Kanban or BDD? And finally, how to flow in TDD?
Lean Thinking: Mentalidade Enxuta para Desenvolvimento Ágil de SoftwareDionatan default
Palestra realizada na Quarta do Conhecimento sobre Lean Thinking: Mentalidade Enxuta para Desenvolvimento Ágil de Software, aprensentando os conceitos de Lean e relacionando com Ágil em software.
https://www.youtube.com/watch?v=Q_hIRRb9NpM
Como Management 3.0 pode potencializar a Agilidade?Dionatan default
Como Management 3.0 pode potencializar a Agilidade?
Palestra sobre Management 3.0 ministrada no Dia Ágil, evento da PROCERGS em parceria com a ThoughtWorks.
Chega de Trabalhar! Ou seja, chega de passar trabalho!
Palestra que fiz na trilha de Management 3.0 no TDC Poa 2014. http://www.thedevelopersconference.com.br/tdc/2014/portoalegre/trilha-management
Vamos falar da origem do termo trabalho, seus problemas de motivação, ambiente de trabalho, liderança, Teoria X e Teoria Y de Douglas McGregor, Auto-conhecimento, Teoria da Equidade, Princípio de Pareto, Gerenciamento da Própria Energia, Flow (Fluxo), Hierarquia de Necessidades de Maslow, Ócio Criativo, JoyCracy (Manoel Pimentel), Princípio de Peter, Lei de Putt's, Engajamento, Motivação, General Patton, Gemba Walk, Management 3.0, Gestor 3.0, Martie, Delegation Poker, Identity Symbols, o lado humano do trabalho.
Lean tem foco total na qualidade. Essa palestra explora os conceitos do Lean e fazer uma relação com testes de software, trazendo os conceitos fundamentais do Lean: Qualidade total, redução de desperdícios, melhoria contínua, produção puxada, variabilidade, autonomação, nivelamento de carga, just-in-time, fluxo de produção, kanban e gestão visual.
2. Sobre o Palestrante.
● Trabalho como coach ágil nas equipes de desenvolvimento de
software na PROCERGS, buscando a melhor entrega de valor ao
cidadão gaúcho. Mestre em Engenharia de Software na UFRGS,
graduado em Ciência da Computação na UFRGS. Sou generalista
especialista. Trabalho com Java desde 2006, sou coordenador do
RSJUG e da trilha Java do TDC Porto Alegre. Ministro palestras
e facilito Coding Dojos em eventos de métodos ágeis, tais como
do TDC, GUMA-RS e GUTS-RS. Possuo as certificações SAFe
Agilist SA, Scrum Master PSM I, Product Owner CSPO, Certified
Scrum Developer CSD, Java Programmer OCPJP, testes de
software CTFL, gestão de TI ITILv3 e melhoria de processos
de software MPS-BR.
3. Introdução ao TDD
➔ Extreme Programming
➔ TDD
➔ Refatoração
➔ xUnit
➔ Clean Code
➔ Baby Steps
➔ Patterns para TDD
➔ Red Bar
➔ Test
➔ Green Bar
➔ Design Patterns
➔ ATDD
➔ BDD
➔ Agile Testing
➔ Coding Dojos
➔ Fechamento
4.
5. “Test-Driven Development (TDD) é uma técnica para
contrução de software que guia o desenvolvimento de
software através da escrita de testes.
http://commons.wikimedia.org/wiki/File:Creador_de_la_metodologia_xp.jpg
Kent Beck
9. Regras
I. Escrever novo código somente se
já existir um teste automatizado
falhando
II. Eliminar duplicação
10. 3 Passos
Escreva um teste
para o próximo
pedaço da
funcionalidade.
http://www.pro-tools-expert.com
11. 3 Passos
Escreva um teste
para o próximo
pedaço da
funcionalidade.
Escreva código
funcional até o
teste passar.
Refatore o código
novo (e antigo)
até ficar bem
estruturado.
http://www.pro-tools-expert.com
12. 3 Passos
Escreva um teste
para o próximo
pedaço da
funcionalidade.
Escreva código
funcional até o
teste passar.
Refatore o código
novo (e antigo)
até ficar bem
estruturado.
http://www.pro-tools-expert.com
13. Mantra do TDD
http://agileinaflash.blogspot.com.br/2009/02/red-green-refactor.html
16. TDD.equals(TFD + Refatoração);
Refatoração
“Uma mudança feita na
estrutura interna do
software para deixá-lo
mais fácil de entender e
barato de modificar sem
mudar seu
comportamento
observável.”
Martin Fowler
http://martinfowler.com
52. Green Bar Patterns
Fake It
Qual será a primeira
implementação do teste?
Retorne uma constante, e depois refatore
em variáveis.
53. Green Bar Patterns
Triangulate
Como fazer a maior abstração
conservativa com testes?
Abstraia apenas quando houver 2+ testes.
(Similar à indução matemática)
54. Green Bar Patterns
Obvious Implementation
Como implementar operações
simples?
Apenas implemente-as.
55. Green Bar Patterns
One to Many
Como implementar uma operação
de coleção de objetos?
Implemente inicialmente sem coleções.
64. “O ato de escrever um
teste de unidade é mais
um ato de design do
que de verificação.”
Uncle Bob (Robert C. Martin)
http://www.techcn.com.cn
65. Mas e o ATDD?
http://greatmiddleway.wordpress.com
66. <Título>
Como um <papel de usuário>
Eu quero <objetivo>
Para que <razão>
ATDD
Acceptance Test-Driven
Development
Critério de Aceitação
Dado que <pré-condição>
Quando <ação>
Então <resultado>
78. Coding Dojos
● Ambiente de Aprendizado!
– Sem competição
– Colaborativo
– Ambiente divertido
– Todos níveis de conhecimento são
bem-vindos
– Segurança em tentar novas ideias
79. Coding Dojos
● Infra
– Local com cadeiras suficientes
– Um computador ao menos
– Projetor
80. Coding Dojos
● Diversos estilos
– Prepared Kata
– Randori Kata
– Kake Kata
81. Coding Dojos
● Prepared Kata
– O facilitador mostra como fazer do início,
com TDD e Baby Steps.
– Cada passo deve fazer sentido para
todos.
– As pessoas devem interromper somente se
não entenderem.
82. Coding Dojos
● Randori Kata
– O desafio é resolvido em pares (piloto e copiloto)
– Todos são convidados a ajudar
– Cada par tem um timebox (5-7 min)
● Baby Steps
● TDD
– Comentários e críticas somente no verde
– Silêncio no vermelho
● Ao final, piloto sai do par, copiloto vira piloto
e entra um novo copiloto
83. Coding Dojos
● Kake Kata
– Nível mais avançado
– Diversos pares simultâneos
● Randori Katas em paralelo
– Alta diversidade
– Alto nível de aprendizado
85. “Ensinar não é transferir
conhecimento, mas criar
as possibilidades para a
sua própria produção ou
a sua construção.”
Paulo Freire
http://aosmestresdaeducacao.blogspot.com.br