- Level Professional
- Course by Instituto Tecnológico de Aeronáutica
-
Offered by
About
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.Modules
Introdução e Visão Geral do Curso
1
Videos
- Welcome Video
5
Readings
- Sobre o Curso
- Formato dos Exercícios de Programação
- Acompanhando as Aulas de Hands-on
- Ferramentas de Comunicação
- Disciplina Consciente e Plágio nos Exercícios
Primeiros Passos no TDD
1
Assignment
- Como funciona o TDD?
5
Videos
- Conhecendo o TDD
- Ciclo do TDD
- Hands-on: Primeira Classe com TDD - Parte 1
- Hands-on: Primeira Classe com TDD - Parte 2
- Hands-on: Primeira Classe com TDD - Parte 3
Sobre Refatoração
3
Videos
- Conhecendo a Refatoração: O que é?
- Conhecendo a Refatoração: Por que refatorar?
- Conhecendo a Refatoração: Quando refatorar?
Exercício prático da Semana 1
1
Peer Review
- Quebra de Strings com CamelCase
1
Readings
- ATENÇÃO - Cuidados na revisão dos trabalhos de colegas
Material Complementar
4
Videos
- Como Obter Código de Qualidade
- TDD: Projeto Antecipado (BDUF) Versus Nenhum Projeto (NoDUF)
- TDD: Projeto Suficiente com Modelagem CRC
- TDD: Design Dinâmico da Aplicação
Entendendo TDD
1
Assignment
- Quais os princípios do TDD?
7
Videos
- O Chapéu do TDD
- Hands-on: Tradutor com TDD - Parte 1
- Hands-on: Tradutor com TDD - Parte 2
- Hands-on: Tradutor com TDD - Parte 3
- Hands-on: Tradutor com TDD - Parte 4
- Princípios Por Trás do TDD
- Mitos e Lendas sobre TDD
1
Readings
- George Dinwiddie - O Criador do Chapéu do TDD
Bad Smells e Ciclo da Refatoração
6
Videos
- Conhecendo a Refatoração: O Papel do Mau Cheiro!
- Conhecendo a Refatoração: O Ciclo da Refatoração
- Ciclo de Refatoração: Exemplo com Múltiplos Maus Cheiros – Parte 1: Preparação
- Ciclo de Refatoração: Exemplo com Múltiplos Maus Cheiros – Parte 2.1: Antes do Primeiro Mau Cheiro
- Ciclo de Refatoração: Exemplo com Múltiplos Maus Cheiros – Parte 2.2: Até Segundo Mau Cheiro
- Ciclo de Refatoração: Exemplo com Múltiplos Maus Cheiros – Parte 3: Até Quinto Mau Cheiro
Exercício prático da Semana 2
1
Peer Review
- Refatoração do SAB
1
Readings
- ATENÇÃO - Cuidados na revisão dos trabalhos de colegas
Material Complementar
1
Readings
- Código de Produção e Código de Teste de Integração do SAB – Sistema de Automação de Biblioteca
Responsabilidades, Casos de Teste e Ciclo TDD
3
Videos
- Casos de Teste a Partir de Responsabilidades
- Ciclo TDD no Contexto de Casos de Teste
- Ciclo TDD no Contexto de Responsabilidades
Lidando com Dependências
3
Videos
- Testando Classes com Dependências
- Aceitando Mock Objects
- Diretivas de um Mock Object
Modelando com Mock Object
1
Assignment
- Como está seu conhecimento sobre mock objects?
5
Videos
- Quando a dependência ainda não existe...
- Hands-on: Adições no Carrinho de Compras - Parte 1
- Hands-on: Adições no Carrinho de Compras - Parte 2
- Hands-on: Adições no Carrinho de Compras - Parte 3
- Mockar ou não mockar? Eis a questão!
Exercício Prático da Semana 3
1
Peer Review
- Software de Caixa Eletrônico
1
Readings
- ATENÇÃO - Cuidados na revisão dos trabalhos de colegas
Material Complementar
1
Videos
- Exemplo de Definição de Casos de Teste de Responsabilidades do SAB
Boas Práticas na Refatoracao
6
Videos
- Exemplo de Refatoração: Extract Method
- Exemplo de Refatoração: Mau Cheiro "Inveja de Característica"
- Exemplo de Refatoração: Parte Inicial do Decompose Conditional
- Exemplo de Refatoração: Parte Final do Decompose Conditional
- SOLID: Princípios para Projeto de Classes
- Refatoração com SOLID: SRP
Hands-on de Refatoração
1
Assignment
- Prática de refatoração
5
Videos
- Hands-on - Refatorando a Video Locadora - Parte 1
- Hands-on - Refatorando a Video Locadora - Parte 2
- Hands-on - Refatorando a Video Locadora - Parte 3
- Hands-on - Refatorando a Video Locadora - Parte 4
- Hands-on - Refatorando a Video Locadora - Parte 5
Exercício Prático Final
1
Peer Review
- Componente de Gamificação
1
Readings
- ATENÇÃO - Cuidados na revisão dos trabalhos de colegas
Material Complementar
1
Readings
- Código Fonte da Video-Locadora
Auto Summary
Enhance your Java programming skills with the "TDD – Desenvolvimento de Software Guiado por Testes" course, offered by Coursera. This professional-level course, ideal for IT and computer science enthusiasts, dives into Test-Driven Development (TDD) techniques to model and develop software applications efficiently. Through hands-on activities, you will learn unit testing, test automation, and code refactoring, while reinforcing object-oriented principles. Available with Starter and Professional subscriptions, this course is perfect for those looking to adopt agile development practices and elevate their programming prowess.

Clovis Fernandes

Eduardo Guerra