O documento discute técnicas de teste de software, incluindo desenvolvimento orientado a testes (TDD). Apresenta diferentes tipos de testes, como unitário, de integração e de sistema, além de abordar tópicos como planejamento, execução e resultados de testes. Também explica princípios e benefícios do TDD, como aumento da qualidade e produtividade.
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
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
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.
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.
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.
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.
TDD - Pós Graduação em Engenharia de Software ÁgilBruno Eustáquio
Apresentação sobre TDD para a disciplna de metodologias ágeis de desenvolvimento de software do curso de pósgraduação em engenharia de software centrada em métodos ágeis.
Apresentação do Coderage Brasil 2018 sobre TDD com Código Legado com Delphi usando Spring.Testing e TestInsight.
Dicas de Refactory, como identificar Code Smell e Antipatterns e Hands on do refactory do exemplo GettingStarted do FireDAC
Aplicando eXtreming Programing ao cenário do Borland ALM - BorCon 2003Edgar Silva
Esta é uma apresentação que resgatei do BorCon(Borland Conference) em
2003, nesta época XP, Métodos Ágeis estavam começando a ganhar
notoriedade ainda no Brasil. Neste evento, lembro que pude mostrar e
quebrar alguns paradigmas de uma platéia cética a respeito do assunto,
mas que no final, depois de várias perguntas e dúvidas, acredito ter
conseguido fazer com que algumas pessoas desde essa época começarem a
olhar para Práticas Ágeis de forma melhor.
Não! Eu não quero voltar a ser um "Profanador" em prol de métodos
Ágeis, hoje em dia já existem pessoas, muito mais capacitadas,
atualizadas e engajadas do que eu.
Uma apresentação do tunel do tempo, de uma época muito feliz na minha
vida, quando pude passar algum tempo com minha família e amigos, além
de ter sido sócio de uma empresa que também quebrou padrões em Belém:
Argos Tecnologia, que teve também como sócio Alexandre Magno (hoje
Diretor da Adaptworks).
Se estes slides ainda forem atuais, por favor, comentem, critiquem,
fiquem a vontade :)
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.
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.
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.
TDD - Pós Graduação em Engenharia de Software ÁgilBruno Eustáquio
Apresentação sobre TDD para a disciplna de metodologias ágeis de desenvolvimento de software do curso de pósgraduação em engenharia de software centrada em métodos ágeis.
Apresentação do Coderage Brasil 2018 sobre TDD com Código Legado com Delphi usando Spring.Testing e TestInsight.
Dicas de Refactory, como identificar Code Smell e Antipatterns e Hands on do refactory do exemplo GettingStarted do FireDAC
Aplicando eXtreming Programing ao cenário do Borland ALM - BorCon 2003Edgar Silva
Esta é uma apresentação que resgatei do BorCon(Borland Conference) em
2003, nesta época XP, Métodos Ágeis estavam começando a ganhar
notoriedade ainda no Brasil. Neste evento, lembro que pude mostrar e
quebrar alguns paradigmas de uma platéia cética a respeito do assunto,
mas que no final, depois de várias perguntas e dúvidas, acredito ter
conseguido fazer com que algumas pessoas desde essa época começarem a
olhar para Práticas Ágeis de forma melhor.
Não! Eu não quero voltar a ser um "Profanador" em prol de métodos
Ágeis, hoje em dia já existem pessoas, muito mais capacitadas,
atualizadas e engajadas do que eu.
Uma apresentação do tunel do tempo, de uma época muito feliz na minha
vida, quando pude passar algum tempo com minha família e amigos, além
de ter sido sócio de uma empresa que também quebrou padrões em Belém:
Argos Tecnologia, que teve também como sócio Alexandre Magno (hoje
Diretor da Adaptworks).
Se estes slides ainda forem atuais, por favor, comentem, critiquem,
fiquem a vontade :)
Uma reflexão sobre desenvolvimento de software, qualidade e como o TDD pode nos ajudar a melhorar em tudo isso.
A versão em PPT, que possui comentários adicionais para cada Slide, pode ser baixada no Google Drive: https://drive.google.com/folderview?id=0B4k-4pdeaM58SEpYcHZSbFdoS0E&usp=sharing
Para maiores informações sobre a palaestra, acesse: http://luizricardo.org/2014/10/pensando-tdd/
Slides da apresentação sobre TDD para a equipe de IW da empresa Inove Informática.
* Slides adaptados de uma outra apresentação realizada por Felipe Pimentel (http://slidesha.re/9OWwgk)
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.
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.
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.
Introdução ao Teste de Software - Uma abordagem práticaFabrício Campos
Apresentação do curso "Introdução ao Teste de Software - Uma abordagem prática", ministrado por Fabrício Ferrari de Campos no primeiro Ensina aí! realizado na Voice Technology.
Greenbar - Testes automatizados na sua empresaRafael Ponte
Experiência de quase 2 anos tentando inserir e manter a cultura de testes automatizados numa empresa. Desafios e as barreiras enfrentadas ao adotar a cultura de testes automatizados nesta empresa, onde acertamos e onde erramos, como a equipe (e isso inclui os gerentes) responderam a mudança e como isso impactou nos sprints e entrega de software.
What's new with Scala 2.10.0? A brief look at the past, and a detailed look at what's coming down the pipeline.
Note: at the time this presentation was created, Scala 2.10.0 had not been released yet. The final version will probably differ in some ways.
Last update: September 20th
Scala 2.10.0 -- de onde viemos, e para onde vamos? Breve olhar nas funcionalidades a serem introduzidas por Scala 2.10.0.
Nota: Scala 2.10.0 não foi lançada, e a versão final terá diferenças em relação ao apresentado.
Palestra do FLISOL 2011 DF, sobre uso do Ganeti e do Puppet para administração de ambientes virtualizados.
Essa palestra possui problemas de formatação.
Tutorial dos conceitos básicos de Puppet, uma ferramenta de gestão automática de configuração de servidores.
Essa apresentação está incompleta, pois foi parte de um curso básico sobre Puppet.
Akka - Uma plataforma para o desenvolvimento de sistemas concorrentes e distr...Daniel Sobral
Apresentação sobre programação de sistemas concorrentes usando Akka, em Java e Scala, apresentada na QConSP 2011.
Ementa:
Conheça Akka, uma plataforma para o JVM para desenvolvimento de sistemas concorrentes e/ou distribuídos através do paradigma de Atores.
Descreveremos o paradigma de atores, suas vantagens e desvantagens, e mostraremos exemplos da API em Java e em Scala, com execução local e distribuída, memória transacional e tolerância a falhas.
3. Taxonomias
• Funcional • Automático • Caixa Preta • Exploratório • Teste
• Não • Manual • Caixa Branca • Pré-definido Primeiro
Funcional • Caixa Cinza • Teste por
Último
Informação Momento de
Objeto de teste Execução Planejamento
sobre o sistema escrita
• Qualitativo • Estático • Estado • Verificação • TDD
• Quantitativo (tipos, • Interação • Validação • ATDD
provas) • BDD
• Dinâmico
Execução do Comportamento Contratado vs Técnica de
Resultado
código testado observado Desejado Escrita
4. Níveis
Escopo do Objeto Testado
Unit Testing
Integration Testing
System Testing
System Integration Testing
8. O que é TDD?
TDD é sobre como
escrever código de
aplicação. Teste Unitário
Automatizado
Teste
Primeiro
Técnica de
Desenvolvimento de
Software
TDD não é sobre
como escrever
testes!
9. Porque não fazer TDD?
Curva de Aprendizado Íngreme:
• Como escrever testes?
• Como escrever código testável?
• Como usar as ferramentas?
• Como se faz TDD?
Menor Produtividade
• Mais linhas de código
• Interrupções constantes
Maior Custo de Manutenção
• Mais código, mais manutenção
• Mudanças de arquitetura quebram testes!
• Mudanças de comportamento quebram testes!
10. Porque fazer TDD?
Menor Custo de Manutenção
• Confiança para efetuar mudanças
• Testes resguardam contra regressão
Maior Produtividade
• YAGNI! (You Ain’t Gonna Need It!) significa menos desperdício
• Menos tempo corrigindo bugs: estava funcionando a cinco minutos atrás!
Maior Qualidade
• Mais testes leva a menos bugs
• Testes unitários compreensivos resultam em baixo acoplamento
11. O que dizem os estudos?
• Inconclusivo
• Boa correlação, mas...
• Isolamento
• TDD ou outras práticas ágeis?
• TDD ou número de testes?
Maior • Mais testes levam a menos bugs? Confirmado.
Qualidade? • Curva de aprendizado íngreme dificulta grupos de controle
• Inconclusivo
• Conforme estudo, melhor, pior ou indiferente
Ea
Produtividade?
13. Dificuldades
Que nome dar
aos testes?
Quanto se
O que não
testar de cada
testar?
vez?
O que testar?
Como
Onde entender
começar? porque o teste
falhou?
Como separar
uma unidade
de suas
dependências?
Fonte: Introducing BDD, Dan North
14. O que é um bom teste unitário?
Deve ser fácil de implementar.
Deve ser automatizável e reproduzível de forma confiável.
Qualquer um deve ser capaz de executá-lo, sem setups complicados.
Deve ser executável com um simples click.
Deve executar rapidamente.
Uma vez escrito, deve ser preservado para uso futuro.
Fonte: The Art of Unit Testing, Roy Osherove
15. Teste (automatizado) é Código
Arcabouço, Armação, Andaime
Removido ao fim da Mas software sem manutenção
Ajuda a construir
construção é software morto!
Atenção com
Manutenção Qualidade Legibilidade Refatoração Code Rot
Em outras palavras, deve receber as mesmas atenções que o código da
aplicação!
18. Três leis de TDD
Você não pode escrever código de aplicação exceto para
fazer passar um teste unitário.
Você não pode escrever código de teste mais do que o
necessário para falhar; falhar compilação também conta.
Você não pode escrever código de aplicação mais do que o
suficiente para fazer um teste unitário passar.
Segundo Robert Martin
19. Três fases de TDD
Vermelho
• Escrever código
de teste para
evidenciar
falha
Azul Verde
• Refactoring de • Escrever código
código de aplicação
(aplicação e para corrigir
testes) falha
20. Fluxo de TDD Não
Executa teste
Escrever teste Falhou?
Sim
Sim
Sim Não
Passou? Escrever aplicação
Executa teste Executa teste
Refatoração Sim Não
Passou?
(aplicação e testes)
21.
22. Demonstração
Jogo de Boliche
Regras:
10 jogadas (frames)
1 ou 2 arremessos por jogada (1ª à 9ª)
2 ou 3 arremessos na 10ª jogada
10 pinos
1 ponto por pino derrubado
Spare – 10 pinos derrubados em 2 arremessos
10 pontos + próximo arremesso
Strike – 10 pinos derrubados em 1 arremesso
10 pontos + 2 próximos arremessos
26. Referências
Clean Coders (Robert Martin)
Making Software: What Really Works, and Why We
Believe It (Andy Oram & Greg Wilson)
The Art of Unit Testing: with Examples in .Net (Roy
Osherove)
Introducing BDD (Dan North)
Wikipedia (duh!)
Test Driven Development: By Example (Kent Beck)