We may earn an affiliate commission when you visit our partners.
Course image
Doug Purcell

In this course, we will apply skills related to test-driven development in a capstone project. This will test your ability to use exception handling, mock objects, and unit tests in a TDD lifecycle. After completion, you'll have a portfolio piece program that demonstrates you have a solid understanding of all concepts related to TDD!

Enroll now

What's inside

Syllabus

Capstone Project: Random Person Generator
This is the capstone project for the course. Get ready to pull together everything you learned about TDD in the previous courses.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Applies TDD concepts in various programming scenarios
Provides hands-on practice with industry-standard exception handling, mock objects, and unit tests
Results in a portfolio piece program showcasing solid understanding of TDD principles
Taught by Doug Purcell, an experienced TDD instructor
May require prior knowledge or experience in TDD

Save this course

Save Test-Driven Development Project: Random Person Generator to your list so you can find it easily later:
Save

Reviews summary

Tdd project: random generator

Students largely agree that this Random Person Generator Project provides a great opportunity to apply concepts learned from the first three lessons, especially mocking. Overall, learners say they are satisfied.
The project's emphasis on mocking is well-received by learners.
"Great opportunity to apply all the concepts learned in the first 3 lessons especially mocking!"

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 Test-Driven Development Project: Random Person Generator with these activities:
Organize course materials
Organizing your course materials will help you stay on top of the course and easily find what you need.
Show steps
  • Create a folder for the course.
  • Download and save all course materials.
  • Create subfolders for different types of materials (e.g., notes, assignments, quizzes).
Review exception handling
Reviewing exception handling concepts will equip you to better grasp how to use it in your TDD project.
Browse courses on Exception Handling
Show steps
  • Read the class notes on exception handling.
  • Complete the practice problems on exception handling.
Unit testing drills
Completing unit testing drills will strengthen your understanding of unit testing and prepare you for the capstone project.
Browse courses on Unit Testing
Show steps
  • Find a set of unit testing practice problems online.
  • Solve at least 10 unit testing problems.
Six other activities
Expand to see all activities and additional details
Show all nine activities
Learn about TDD and Mocking
Learn about TDD and mocking to enhance your understanding and prepare for the capstone project.
Browse courses on Test Driven Development
Show steps
  • Watch a video tutorial on TDD
  • Read an article on mocking
  • Try implementing TDD in a simple project
  • Use a mocking framework to mock objects
  • Share your learnings with others
Practice TDD Unit Testing
Practice TDD unit testing to reinforce your understanding and improve your skills.
Browse courses on Unit Testing
Show steps
  • Install a testing framework
  • Create a new project
  • Write unit tests for a function
  • Run your unit tests
  • Refactor your code
Mock object project
Creating a mock object project will provide you with hands-on experience using mock objects, which is essential for the capstone project.
Browse courses on Mock Objects
Show steps
  • Identify a simple system that you can mock.
  • Create a mock object for the system.
  • Write unit tests that use the mock object.
Build a Random Person Generator
Build a random person generator to apply your knowledge of exception handling, mock objects, and TDD in a capstone project.
Show steps
  • Design the data model for your project
  • Develop unit tests for your data model
  • Implement your data model using TDD
  • Write unit tests for your TDD implementation
  • Create a user interface for your project
Study group
Participating in a study group will provide you with opportunities to discuss the course material with other students and clarify your understanding.
Show steps
  • Find a group of students who are taking the same course.
  • Choose a meeting time and place.
  • Meet regularly to discuss the course material.
Capstone project: Random Person Generator
Starting the capstone project early will give you ample time to complete it and demonstrate your understanding of TDD.
Browse courses on Capstone Project
Show steps
  • Review the project requirements.
  • Design the architecture of your program.
  • Start writing code.

Career center

Learners who complete Test-Driven Development Project: Random Person Generator will develop knowledge and skills that may be useful to these careers:
Software Developer
As a Software Developer, your daily work tasks involve designing, developing, testing, deploying, maintaining, and troubleshooting software solutions. This course will help you build a foundation in test-driven development (TDD), which is an essential software development practice that can help improve the quality and reliability of your software products. TDD can also help you to write more efficient and maintainable code, which can lead to increased productivity and reduced costs for your organization.
Quality Assurance Analyst
As a Quality Assurance (QA) Analyst, you will be responsible for testing software products to ensure that they meet the requirements and specifications. This course will help you to develop the skills necessary to write effective test cases, execute tests, and analyze test results. You will also learn about the different types of testing techniques and how to use them to improve the quality of software products.
Software Test Engineer
Software Test Engineers are responsible for designing and executing test cases to ensure that software products meet the requirements and specifications. This course will help you to develop the skills necessary to write effective test cases, execute tests, and analyze test results. You will also learn about the different types of testing techniques and how to use them to improve the quality of software products.
Software Development Manager
As a Software Development Manager, you will be responsible for leading and managing software development teams. This course will help you to develop the skills necessary to plan, organize, and control software development projects. You will also learn about the different software development methodologies and how to use them to improve the efficiency and effectiveness of your team.
Technical Project Manager
As a Technical Project Manager, you will be responsible for managing the technical aspects of software development projects. This course will help you to develop the skills necessary to plan, organize, and control software development projects. You will also learn about the different software development methodologies and how to use them to improve the efficiency and effectiveness of your team.
Software Architect
As a Software Architect, you will be responsible for designing and developing the architecture of software systems. This course will help you to develop the skills necessary to design and implement software systems that are scalable, reliable, and efficient. You will also learn about the different software design patterns and how to use them to improve the quality of your software products.
DevOps Engineer
As a DevOps Engineer, you will be responsible for bridging the gap between software development and operations teams. This course will help you to develop the skills necessary to automate the software development process, including testing, deployment, and monitoring. You will also learn about the different DevOps tools and technologies and how to use them to improve the efficiency and effectiveness of your team.
Data Scientist
As a Data Scientist, you will be responsible for collecting, analyzing, and interpreting data to solve business problems. This course will help you to develop the skills necessary to write efficient and maintainable code. You will also learn about the different data science techniques and how to use them to extract valuable insights from data.
Machine Learning Engineer
As a Machine Learning Engineer, you will be responsible for designing and developing machine learning models. This course will help you to develop the skills necessary to write efficient and maintainable code. You will also learn about the different machine learning techniques and how to use them to solve complex problems.
Business Analyst
As a Business Analyst, you will be responsible for gathering and analyzing business requirements to develop software solutions. This course will help you to develop the skills necessary to write efficient and maintainable code. You will also learn about the different business analysis techniques and how to use them to improve the efficiency and effectiveness of an organization.
IT Consultant
As an IT Consultant, you will be responsible for providing advice and assistance to organizations on how to use technology to improve their business. This course will help you to develop the skills necessary to write efficient and maintainable code. You will also learn about the different IT consulting techniques and how to use them to help organizations achieve their business goals.
Product Manager
As a Product Manager, you will be responsible for planning, developing, and launching new software products. This course will help you to develop the skills necessary to write efficient and maintainable code. You will also learn about the different product management techniques and how to use them to create successful software products.
Quantitative Analyst
As a Quantitative Analyst, you will be responsible for developing and using mathematical and statistical models to analyze financial data. This course will help you to develop the skills necessary to write efficient and maintainable code. You will also learn about the different financial modeling techniques and how to use them to make informed investment decisions.
Risk Manager
As a Risk Manager, you will be responsible for identifying, assessing, and mitigating risks to an organization. This course will help you to develop the skills necessary to write efficient and maintainable code. You will also learn about the different risk management techniques and how to use them to protect an organization from financial loss.
Software Engineer in Test
A Software Engineer in Test is responsible for designing, developing, and executing test cases to ensure that software products meet the requirements and specifications. This course may help you develop the skills necessary to write effective test cases, execute tests, and analyze test results. It may also help you to learn about the different types of testing techniques and how to use them to improve the quality of software products.

Reading list

We've selected ten 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 Test-Driven Development Project: Random Person Generator.
Provides a set of principles and practices for writing clean code. Clean code is code that is easy to read, understand, and maintain.
Classic in the software design field. It provides a catalog of design patterns that can be used to solve common software design problems.
More accessible introduction to design patterns than the classic book by Gamma et al. It uses a humorous and engaging style to explain the concepts of design patterns.
Provides a comprehensive overview of agile testing. It covers the principles of agile testing, as well as the specific techniques and tools that can be used to implement agile testing in a software development project.
Provides a catalog of refactoring patterns for test code. Refactoring patterns are techniques that can be used to improve the design of test code without changing its functionality.
Classic in the TDD field. It provides a simple and straightforward introduction to TDD.
Provides a practical guide to object-oriented design and development. It shows how to use TDD to design and develop object-oriented software that is flexible, maintainable, and extensible.
Provides a comprehensive overview of domain-driven design (DDD). DDD software development approach that focuses on designing and developing software that is closely aligned with the business domain.
Provides a comprehensive overview of agile software development. It covers the principles of agile software development, as well as the specific techniques and tools that can be used to implement agile software development in a software development project.

Share

Help others find this course page by sharing it with your friends and followers:
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