TDD – Desenvolvimento de Software Guiado por Testes

Instituto Tecnológico de Aeronáutica via Coursera

Go to Course: https://www.coursera.org/learn/tdd-desenvolvimento-de-software-guiado-por-testes

Introduction

### Course Review: TDD – Desenvolvimento de Software Guiado por Testes The course **TDD – Desenvolvimento de Software Guiado por Testes** on Coursera is an excellent program designed for those who have a solid understanding of Java programming but want to take their skills to the next level by mastering Test-Driven Development (TDD). This four-week course guides students through the principles and practices of TDD, equipping them with the necessary tools to design and build high-quality software using agile techniques. #### Course Overview From the outset, the course is tailored for individuals who are familiar with programming but may feel uncomfortable applying agile methodologies, particularly TDD. It aims to demystify TDD, illustrating its effectiveness as a design and development technique. Participants will also learn the critical role of refactoring within the TDD cycle, which helps achieve continuous improvement in code quality. #### Weekly Breakdown **Week 1: Introduction to TDD** In the first week, students are introduced to the fundamental concepts of TDD. By the end of the week, participants will understand how TDD functions and why it is considered a powerful state-of-the-art development practice. The importance of refactoring is also emphasized, showing how it enables gradual and consistent enhancements in code quality. **Week 2: Practical TDD Application** The focus of the second week shifts to practical application. Here, students will deepen their understanding of TDD by working on class modeling using TDD principles. They'll also learn to identify "code smells" which indicate areas in need of refactoring, advancing their skills in recognizing and addressing potential issues in their code. **Week 3: Testing and Dependencies** In the third week, the course delves into the complexities of testing, particularly concerning classes that possess dependencies. Participants will become adept at modeling test cases based on responsibilities crucial for TDD and will learn how to utilize mock objects effectively to test these classes. This week is vital for any developer looking to manage dependencies intelligently. **Week 4: Refactoring Techniques** The final week emphasizes understanding and applying refactoring techniques. This includes identifying the various types of "code smells" and utilizing relevant refactoring methods to safely eliminate them. This knowledge is essential for maintaining a clean code base, facilitating greater readability, and enabling easier future modifications. #### Recommendation Overall, the **TDD – Desenvolvimento de Software Guiado por Testes** course is highly recommended for Java developers who wish to enhance their programming skills through TDD. The course structure is logical and builds progressively, making it accessible for those who may not have previous experience with TDD while still being informative for those who are more familiar with the concepts. The combination of theory and practical exercises ensures that participants leave the course with a solid grasp of TDD principles and their implementation in real-world scenarios. If you're looking to improve your software design and development capabilities, this course is an invaluable resource that can significantly elevate your programming proficiency.

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!

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.

Overview

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

Skills

Software Testing Code Refactoring Software Quality Junit

Reviews

Excelente curso! Os hands-on são práticos, simples e excelente. O que mais foi aproveitoso para mim foi o fluxo de trabalho do TDD e as técnicas de refatoração.

O curso em si foi muito bom, porém as aulas do professor Clóvis foram cansativas e percebe-se que as vezes ele se perdia.

Acho que os enunciados dos problemas poderiam ser melhores e, também, a qualidade dos vídeos. A correção por pares, também, não é muito boa.

O conteúdo do curso é muito bom, há somente alguns problemas na qualidade dos vídeos e nas atividades avaliadas por pares onde há uma demora considerável para receber avaliações.

O curso foi bem esclarecedor, com aulas bem distribuidas. A qualidade das gravaçoes pode melhorar, mas no geral, o curso atendeu minhas expectativas!