We may earn an affiliate commission when you visit our partners.
Course image
Clovis Fernandes and Eduardo Guerra

Neste curso, assumimos que você já sabe projetar e desenvolver programas mais complexos em Java, com método e organização graças às boas práticas e princípios exercitados no curso anterior; mas você talvez não se sinta ainda confortável em projetar programas usando técnicas ágeis, como o desenvolvimento guiado por testes (TDD).

Read more

Neste curso, assumimos que você já sabe projetar e desenvolver programas mais complexos em Java, com método e organização graças às boas práticas e princípios exercitados no curso anterior; mas você talvez não se sinta ainda confortável em projetar programas usando técnicas ágeis, como o desenvolvimento guiado por testes (TDD).

O objetivo deste curso é expor você aos princípios e práticas de desenvolvimento guiado por testes, tanto para modelar quanto para desenvolver aplicações e componentes de software, sem abandonar os conceitos e princípios de orientação a objetos aprendidos no curso anterior. De fato, pregamos que tais conceitos e princípios fortalecem o emprego do TDD no desenvolvimento ágil de software com mais qualidade. Este curso terá um grande foco em atividades hands-on, permitindo a você captar todos os aspectos práticos da técnica e facilitar a sua aplicação quando estiver projetando e desenvolvendo software de maneira ágil nos próximos cursos.

Os conceitos de desenvolvimento de software com Java apresentados neste curso incluem o seguinte: revisão de testes de unidade; automação de testes; desenvolvimento guiado por testes; ciclo do TDD; refatoração de código de produção; ciclo de refatoração; uso de objetos stubs e mocks; boas práticas no TDD; modelagem de software por meio do TDD.

Ao final deste curso, você terá amadurecido de tal modo suas habilidades de programação que será capaz de implementar, agora usando o TDD, versões modificadas e estendidas do componente de gamificação constante do Trabalho de Conclusão da Especialização, com base nas boas práticas exercitadas neste curso.

Enroll now

What's inside

Syllabus

Semana 1
Olá, bem-vindo ao Curso 2 – Desenvolvimento de Software Guiado por Testes. Neste módulo você fará contato com os conceitos básicos de TDD. Ao final desta semana, você será capaz de: 1) entender como funciona o TDD e, principalmente, que o TDD é uma técnica poderosa de projeto e desenvolvimento de software; 2) será capaz de entender o papel fundamental da Refatoracão dentro do ciclo do TDD, permitindo a você alcançar um código de mais qualidade passo a passo e continuamente!
Read more
Semana 2
Olá! Bem-vindo à Semana 2 do curso sobre TDD! Nesta semana você aprofundará seu contato prático com o TDD, bem como com o ciclo de Refatoração. Ao final desta semana, você será capaz de: 1) modelar uma classe com o TDD, entendendo os princípios que estão por trás; 2) entender o papel do mau cheiro" no Ciclo da Refatoração!
Semana 3
Olá! Bem-vindo à Semana 3 do curso sobre TDD! Nesta semana você aprofundará seu contato prático com casos de teste e com dependências entre classes no contexto do TDD. Ao final desta semana, você será capaz de: 1) modelar casos de teste a partir de responsabilidades para uso no ciclo TDD; 2) testar classes com dependências por meio de mock objects.
Semana 4
Olá! Bem-vindo à Semana 4 do curso sobre TDD! Nesta semana você aprofundará seu contato teórico e prático com técnicas de refatoração. Ao final desta semana, você será capaz de identificar alguns dos principais tipos de mau cheiro e aplicar técnicas de refatoração apropriadas para remoção segura desses maus cheiros.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Articula conceitos de desenvolvimento ágil, possibilitando o entendimento do ciclo de vida de um software usando o método de TDD
Traz técnicas de automação de testes e refatoração de código, reforçando o aprendizado prático desde a análise até a implementação de projetos
Destaca a modelagem de software por meio do TDD, capacitando o aluno no uso de técnicas ágeis para a construção de sistemas
Ensina a lidar com classes com dependências, permitindo que o aluno desenvolva aplicações com arquitetura mais complexa
Requer conhecimento prévio em programação Java, o que pode limitar o acesso de iniciantes

Save this course

Save TDD – Desenvolvimento de Software Guiado por Testes to your list so you can find it easily later:
Save

Reviews summary

Tdd – desenvolvimento de software guiado por testes

Este curso mergulha os alunos nos princípios de Desenvolvimento Guiado por Testes (TDD), tanto para modelar quanto para desenvolver software, com ênfase em atividades práticas. Os alunos aprendem a implementar testes unitários, automatizar testes e usar técnicas de refatoração para melhorar a qualidade do código. No geral, os alunos relatam uma experiência de aprendizado positiva com conteúdo bem ensinado e explicado e exercícios práticos valiosos.
Técnicas de depuração de código
"Nesta semana você aprofundará seu contato teórico e prático com técnicas de refatoração."
"...você será capaz de identificar alguns dos principais tipos de mau cheiro e aplicar técnicas de refatoração apropriadas para remoção segura desses maus cheiros."
Entendendo e aplicando o ciclo do TDD
"...você será capaz de entender o papel fundamental da Refatoracão dentro do ciclo do TDD, permitindo a você alcançar um código de mais qualidade passo a passo e continuamente!"
"...será capaz de testar classes com dependências por meio de mock objects."
Ênfase em atividades hands-on
"Este curso terá um grande foco em atividades hands-on, permitindo a você captar todos os aspectos práticos da técnica e facilitar a sua aplicação quando estiver projetando e desenvolvendo software de maneira ágil nos próximos cursos."
Avaliação por pares pode ser tendenciosa
"A avaliação por pares é um completo descaso."
"Estou dando 5 estrelas por causa do aprendizado que me gerou, e porque o curso não tem culpa da má índole dos estudantes."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in TDD – Desenvolvimento de Software Guiado por Testes with these activities:
Review Writing Java Programs
Ensures you have the basic Java programming knowledge to excel in this course.
Browse courses on Java
Show steps
  • Review your lecture notes from previous Java programming courses.
  • Go through your past projects, assignments, and completed quizzes/exams.
  • Set up a Java development environment, if you haven't already done so.
  • Write some basic Java programs to get back into the swing of things.
Organize Your Course Materials
Helps you stay organized and focused throughout the course.
Show steps
  • Gather all of your course materials, including lecture notes, assignments, and quizzes.
  • Create a system for organizing your materials, such as using folders or a note-taking app.
  • Review your materials regularly to ensure you understand the concepts.
Solve Test-Driven Development Challenges
Provides practice in applying TDD principles to solve coding challenges.
Browse courses on Test-Driven Development
Show steps
  • Find a set of TDD challenges online or in a book.
  • Choose a challenge that is appropriate for your skill level.
  • Follow the TDD cycle to solve the challenge.
  • Test your solution thoroughly.
  • Refactor your code to improve its quality.
15 other activities
Expand to see all activities and additional details
Show all 18 activities
Tutoriais do TDD
Seguir tutoriais sobre TDD pode ajudá-lo a aprimorar suas habilidades práticas e entender melhor os conceitos.
Browse courses on TDD
Show steps
  • Pesquise tutoriais online sobre TDD.
  • Siga um tutorial que seja adequado ao seu nível de habilidade.
  • Complete os exercícios práticos fornecidos no tutorial.
Grupo de Estudo de TDD
Participar de um grupo de estudo de TDD pode ajudá-lo a aprender com os outros, compartilhar conhecimento e obter feedback.
Browse courses on TDD
Show steps
  • Forme um grupo de estudo com colegas ou outros alunos.
  • Estabeleça um horário regular para reuniões.
  • Discuta os conceitos de TDD, compartilhe experiências e trabalhe em exercícios juntos.
Participe de um grupo de estudos de TDD
Melhore sua compreensão por meio da colaboração e discussão com colegas.
Show steps
  • Forme ou junte-se a um grupo de estudos com outros alunos que estejam interessados em TDD.
  • Discuta conceitos, problemas e técnicas de TDD durante as reuniões do grupo.
  • Trabalhe em conjunto para resolver problemas de TDD e compartilhar ideias.
Attend a Workshop on Test-Driven Development
Provides hands-on experience and expert guidance in implementing TDD.
Browse courses on Test-Driven Development
Show steps
  • Search for a workshop on TDD in your area.
  • Register for the workshop.
  • Attend the workshop and participate actively.
  • Apply the techniques learned in the workshop to your own projects.
Exercícios Práticos de TDD
Praticar exercícios de TDD pode fortalecer sua compreensão dos conceitos e melhorar suas habilidades de desenvolvimento.
Browse courses on TDD
Show steps
  • Crie um projeto de software simples.
  • Aplique os princípios de TDD para desenvolver o projeto.
  • Refatore o código regularmente para melhorar sua qualidade.
Resolva exercícios de TDD online
Reforce seu aprendizado resolvendo problemas de TDD em plataformas online.
Show steps
  • Acesse uma plataforma de prática de codificação que ofereça problemas de TDD.
  • Escreva testes de unidade para problemas de TDD.
  • Implemente o código de produção para fazer os testes passarem.
  • Refatore o código de produção para melhorar sua qualidade.
Siga tutoriais sobre técnicas avançadas de TDD
Amplie seus conhecimentos sobre TDD explorando tutoriais sobre técnicas avançadas.
Show steps
  • Pesquise por tutoriais sobre técnicas avançadas de TDD, como refatoração de legado.
  • Siga as etapas dos tutoriais, implementando as técnicas em seus próprios projetos.
  • Experimente diferentes abordagens e identifique as que melhor atendem às suas necessidades.
Implementação de TDD em um Projeto Existente
Implementar TDD em um projeto existente pode ajudá-lo a aplicar seus conhecimentos de forma prática e melhorar a qualidade do seu código.
Browse courses on TDD
Show steps
  • Selecione um projeto de software existente.
  • Aplique os princípios de TDD para refatorar o projeto e adicionar novos recursos.
  • Teste extensivamente o projeto para garantir sua qualidade.
Mentor a Junior Developer in TDD
Reinforces your understanding of TDD by teaching it to others.
Browse courses on Test-Driven Development
Show steps
  • Identify a junior developer who is interested in learning TDD.
  • Schedule regular mentoring sessions.
  • Provide guidance and support as the junior developer applies TDD to their projects.
Crie uma coleção de recursos de TDD
Organize e expanda seu conhecimento compilando uma coleção de recursos valiosos sobre TDD.
Show steps
  • Pesquise e reúna artigos, tutoriais, vídeos e outros recursos relacionados ao TDD.
  • Organize os recursos em categorias ou tópicos específicos.
  • Crie uma referência centralizada que possa ser facilmente acessada e compartilhada.
Contribua para projetos de código aberto relacionados ao TDD
Ganhe experiência prática e contribua para a comunidade participando de projetos de código aberto de TDD.
Show steps
  • Identifique projetos de código aberto que estão usando ou implementando TDD.
  • Examine o código-fonte e identifique áreas onde você pode contribuir.
  • Envie solicitações de pull, corrija bugs ou adicione novos recursos.
Crie um guia passo a passo para abordar problemas de TDD
Solidifique seu entendimento criando um guia que detalha seu processo de resolução de problemas de TDD.
Show steps
  • Revise os conceitos e técnicas de TDD abordados no curso.
  • Escolha um problema de TDD específico para se concentrar.
  • Crie um guia passo a passo que descreva sua abordagem para resolver o problema, incluindo os testes de unidade, o código de produção e as técnicas de refatoração usadas.
  • Compartilhe seu guia com colegas ou publique-o online para feedback.
Participe de hackathons ou competições de TDD
Teste suas habilidades e aprenda com os outros participando de desafios competitivos.
Show steps
  • Pesquise por hackathons ou competições de TDD que se alinhem aos seus interesses.
  • Forme uma equipe ou participe individualmente.
  • Trabalhe para resolver problemas de TDD dentro do prazo especificado.
  • Analise as soluções de outras equipes e aprenda com suas abordagens.
Mentoria a alunos iniciantes em TDD
Fortaleça seu aprendizado ensinando e auxiliando outros alunos.
Show steps
  • Ofereça seus serviços como mentor para alunos que estejam iniciando sua jornada em TDD.
  • Compartilhe seus conhecimentos e experiências, respondendo a perguntas e fornecendo orientação.
  • Incentive os alunos e os ajude a superar desafios.
Build a Project Using TDD
Provides an opportunity to apply TDD principles to a real-world project.
Browse courses on Test-Driven Development
Show steps
  • Choose a project idea that interests you.
  • Create a project plan and write test cases for your project.
  • Implement your project using TDD.
  • Test your project thoroughly.
  • Refactor your code to improve its quality.

Career center

Learners who complete TDD – Desenvolvimento de Software Guiado por Testes will develop knowledge and skills that may be useful to these careers:
Software Developer
A Software Developer designs, develops, and maintains software applications. This course can be a valuable learning tool for Software Developers as it equips learners with the knowledge and skills needed to use test-driven development (TDD) in their software development process. By learning how to write tests upfront and refactoring code, Software Developers can improve the quality of their code and reduce the risk of bugs. Additionally, TDD can help Software Developers write more maintainable and extensible code.
Test Engineer
A Test Engineer plans, executes, and evaluates software tests. This course is an excellent foundation for Test Engineers as it provides a comprehensive understanding of TDD principles and practices. By learning how to use TDD in their work, Test Engineers can improve the quality and efficiency of their testing processes.
Quality Assurance Analyst
A Quality Assurance (QA) Analyst ensures the quality of software products and services. This course can be useful for QA Analysts as it provides a deep understanding of TDD principles and practices. By learning how to use TDD in their work, QA Analysts can improve the quality and efficiency of their testing processes.
Software Engineer
A Software Engineer designs, develops, tests, and maintains software systems. This course can be useful for Software Engineers as it provides a deep dive into TDD principles and practices. By learning how to apply TDD in their work, Software Engineers can improve the quality and maintainability of their software systems.
Continuous Integration/Continuous Delivery Engineer
A Continuous Integration/Continuous Delivery (CI/CD) Engineer automates the software development process. This course is useful for CI/CD Engineers as it provides a deep dive into TDD principles and practices. By learning how to use TDD in their work, CI/CD Engineers can improve the quality and efficiency of their software development processes.
DevOps Engineer
A DevOps Engineer combines software development and operations. This course is useful for DevOps Engineers as it provides a deep dive into TDD principles and practices. By learning how to use TDD in their work, DevOps Engineers can improve the quality and efficiency of their software development and operations processes.
Software Architect
A Software Architect designs and implements software systems. This course is beneficial for Software Architects as it provides a deep dive into TDD principles and practices. By learning how to use TDD in their work, Software Architects can improve the quality and maintainability of their software systems.
Software Development Manager
A Software Development Manager manages software development teams and projects. This course is useful for Software Development Managers as it provides a deep dive into TDD principles and practices. By learning how to use TDD in their work, Software Development Managers can improve the quality and efficiency of their software development teams and projects.
Technical Lead
A Technical Lead leads and manages software development teams. This course is useful for Technical Leads as it provides a deep dive into TDD principles and practices. By learning how to use TDD in their work, Technical Leads can improve the quality and efficiency of their software development teams.
Scrum Master
A Scrum Master helps software development teams adopt and implement Scrum, an agile methodology. This course is useful for Scrum Masters as it provides a deep dive into TDD principles and practices. By learning how to use TDD in their work, Scrum Masters can help software development teams improve the quality and efficiency of their work.
Project Manager
A Project Manager plans, executes, and controls software development projects. This course is useful for Project Managers as it provides a deep dive into TDD principles and practices. By learning how to use TDD in their work, Project Managers can improve the quality and efficiency of their software development projects.
Agile Coach
An Agile Coach helps software development teams adopt and implement agile methodologies. This course is useful for Agile Coaches as it provides a deep dive into TDD principles and practices. By learning how to use TDD in their work, Agile Coaches can help software development teams improve the quality and efficiency of their work.
Software Tester
A Software Tester tests software applications to ensure they meet requirements. This course may be useful for Software Testers as it can help them understand the principles of TDD and how to apply them in their work. By learning how to use TDD, Software Testers can improve the quality and efficiency of their testing processes.
Machine Learning Engineer
A Machine Learning Engineer develops and implements machine learning models. This course may be useful for Machine Learning Engineers as it can help them write more maintainable and extensible code. Since Machine Learning Engineers often work with complex models, TDD can help them ensure the accuracy and reliability of their results.
Data Scientist
A Data Scientist collects, analyzes, and interprets data to extract insights. This course may be useful for Data Scientists as it can help them write more maintainable and extensible code. Since Data Scientists often work with complex data sets, TDD can help them ensure the accuracy and reliability of their results.

Reading list

We've selected 14 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in TDD – Desenvolvimento de Software Guiado por Testes.
Lays the foundation for test-driven development (TDD), a set of best practices that helps developers write better code and avoid bugs.
Portuguese-language guide to test-driven development (TDD) for object-oriented software development. It provides a practical introduction to TDD and explores the benefits of using TDD to improve the quality of software code.
Provides practical advice on how to work with legacy code, which is often encountered in real-world development projects.
Provides a practical guide to agile testing, which key part of test-driven development (TDD).
Provides a practical guide to design patterns, which can be used to improve the design of test-driven development (TDD) code.
Provides a practical guide to testing Java code with Mockito, which popular mocking framework.
Provides a comprehensive overview of software testing and quality assurance, including a chapter on test-driven development (TDD).

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to TDD – Desenvolvimento de Software Guiado por Testes.
Princípios de Desenvolvimento Ágil de Software
Most relevant
Desenvolvimento Ágil com Java Avançado
Most relevant
Orientação a Objetos com Java
Most relevant
Desenvolvimento Ágil com Padrões de Projeto
Most relevant
Executivo de Vendas, Vendas Consultivas e Prospecção
Most relevant
Desenvolvimento do Líder
Most relevant
Design Research para Estratégia e Inovação
Most relevant
Gestão de RH e Desenvolvimento de Competências
Most relevant
Criatividade e Inovação Organizacional
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser