We may earn an affiliate commission when you visit our partners.
Zoran Horvat

This course will teach you how to develop maintainable and sustainable tests as your production code grows and develops.

Read more

This course will teach you how to develop maintainable and sustainable tests as your production code grows and develops.

Take advantage of the knowledge this course gives you and get equipped with the theory and practical skills you need to start making test suites manageable for the life of your product. In this course, Writing Highly Maintainable Unit Tests, you'll learn advanced techniques in unit testing. First, you'll explore how to turn production code testable in the first place. Next, you'll discover how to make tests survive future implementation changes. Then, you'll learn how to avoid nearly all code duplications in tests. Finally, you'll design reusable testing libraries. By the end of this course, you'll process deep understanding that will make your tests better in many ways.

Enroll now

What's inside

Syllabus

Course Overview
Understanding Provable Code Correctness
The Importance of Knowing What to Test
The Pros and Cons of White-Box Testing
Read more
Modeling Class Dependencies in Tests
Gaining Resilience by Testing Against Abstract Data Types
Testing Against Interfaces to Simplify Maintenance
Implementing Abstract Interfaces TDD Style
Testing Compliance to Design Principles
Design by Contract from Testing Perspective: Binding Theory to Practice

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Provides advanced techniques in unit testing
Covers topics such as testing against interfaces, abstract data types, and design principles
Helps learners design reusable testing libraries
Suitable for developers with experience in unit testing looking to enhance their skills

Save this course

Save Writing Highly Maintainable Unit Tests to your list so you can find it easily later:
Save

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 Writing Highly Maintainable Unit Tests with these activities:
Review the basics of unit testing
Refresh your knowledge of unit testing concepts to prepare for this course.
Show steps
  • Reread a previous chapter or tutorial on unit testing.
  • Review the unit testing framework you plan to use in this course.
Write unit tests for a simple function
Improve your ability to apply unit testing principles by writing unit tests for a simple function.
Show steps
  • Choose a simple function to test.
  • Write unit tests for the function, ensuring they cover different scenarios.
  • Run the unit tests and verify that they pass.
Discuss unit testing techniques with classmates
Gain different perspectives on unit testing techniques by discussing with classmates.
Show steps
  • Find a study partner or group.
  • Discuss different unit testing techniques.
  • Share examples of unit tests you have written.
One other activity
Expand to see all activities and additional details
Show all four activities
Volunteer as a unit tester for an open-source project
Gain practical experience in unit testing by volunteering for an open-source project.
Browse courses on Unit Testing
Show steps
  • Find an open-source project that interests you.
  • Contact the project maintainers and offer to help with unit testing.
  • Write unit tests for the project.
  • Submit your unit tests for review.

Career center

Learners who complete Writing Highly Maintainable Unit Tests will develop knowledge and skills that may be useful to these careers:
QA Engineer
The Writing Highly Maintainable Unit Tests course can be highly beneficial to your career as a QA Engineer. This course teaches advanced techniques in unit testing, including how to turn production code testable, make tests survive future implementation changes, avoid code duplications in tests, and design reusable testing libraries. These skills are essential for QA Engineers who want to ensure that their products are of the highest quality.
Software Engineer
As a Software Engineer, taking the Writing Highly Maintainable Unit Tests course can help you develop the skills you need to write maintainable, sustainable tests as your production code grows and develops. This course will teach you how to test against abstract data types, interfaces, and design principles, which are all essential skills for Software Engineers who want to write high-quality code.
Test Engineer
The Writing Highly Maintainable Unit Tests course is a great choice for Test Engineers who want to learn how to write maintainable and sustainable tests. This course will teach you how to turn production code testable, make tests survive future implementation changes, avoid code duplications in tests, and design reusable testing libraries. These skills are essential for Test Engineers who want to ensure that their products are of the highest quality.
Software Architect
The Writing Highly Maintainable Unit Tests course can be beneficial for Software Architects who want to learn how to design and implement software systems that are maintainable and testable. This course will teach you how to test against abstract data types and interfaces, which are important concepts for Software Architects to understand.
Software Developer
The Writing Highly Maintainable Unit Tests course can be beneficial for Software Developers who want to learn how to write maintainable and sustainable tests. This course will teach you how to test against abstract data types, interfaces, and design principles, which are skills that all Software Developers should have.
Product Manager
The Writing Highly Maintainable Unit Tests course may be helpful for Product Managers who want to learn how to develop software products that are maintainable and testable. This course will teach you how to test against abstract data types and interfaces, which are important concepts for Product Managers to understand.
Project Manager
The Writing Highly Maintainable Unit Tests course may be helpful for Project Managers who want to learn how to manage software development projects that produce maintainable and testable code. This course will teach you how to test against abstract data types and interfaces, which are important concepts for Project Managers to understand.
Business Analyst
The Writing Highly Maintainable Unit Tests course may be helpful for Business Analysts who want to learn how to analyze and document software requirements. This course will teach you how to test against abstract data types and interfaces, which are important concepts for Business Analysts to understand.
Technical Writer
The Writing Highly Maintainable Unit Tests course may be helpful for Technical Writers who want to learn how to write technical documentation for software products. This course will teach you how to test against abstract data types and interfaces, which are important concepts for Technical Writers to understand.
Systems Analyst
The Writing Highly Maintainable Unit Tests course may be helpful for Systems Analysts who want to learn how to analyze and design software systems. This course will teach you how to test against abstract data types and interfaces, which are important concepts for Systems Analysts to understand.
Information Security Analyst
The Writing Highly Maintainable Unit Tests course may be helpful for Information Security Analysts who want to learn how to secure software systems. This course will teach you how to test against abstract data types and interfaces, which are important concepts for Information Security Analysts to understand.
Data Analyst
The Writing Highly Maintainable Unit Tests course may be helpful for Data Analysts who want to learn how to analyze and interpret data. This course will teach you how to test against abstract data types and interfaces, which are important concepts for Data Analysts to understand.
Database Administrator
The Writing Highly Maintainable Unit Tests course may be helpful for Database Administrators who want to learn how to manage and maintain databases. This course will teach you how to test against abstract data types and interfaces, which are important concepts for Database Administrators to understand.
Network Administrator
The Writing Highly Maintainable Unit Tests course may be helpful for Network Administrators who want to learn how to manage and maintain networks. This course will teach you how to test against abstract data types and interfaces, which are important concepts for Network Administrators to understand.
Computer Support Specialist
The Writing Highly Maintainable Unit Tests course may be helpful for Computer Support Specialists who want to learn how to troubleshoot and resolve computer problems. This course will teach you how to test against abstract data types and interfaces, which are important concepts for Computer Support Specialists to understand.

Reading list

We've selected 13 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 Writing Highly Maintainable Unit Tests.
Provides a comprehensive overview of unit testing principles, practices, and patterns. It covers a wide range of topics, including test design, test automation, and test maintenance. This book great resource for anyone who wants to learn more about unit testing.
Provides a practical guide to writing maintainable unit tests. It covers a wide range of topics, including test design, test automation, and test refactoring. This book great resource for anyone who wants to learn more about writing effective unit tests.
Provides a comprehensive guide to refactoring test code. It covers a wide range of topics, including test design, test automation, and test refactoring. This book great resource for anyone who wants to learn more about writing effective unit tests.
Provides a comprehensive guide to software testing. It covers a wide range of topics, including test design, test automation, and test refactoring. This book great resource for anyone who wants to learn more about software testing.
Provides a comprehensive guide to test-driven development with Python. It covers a wide range of topics, including test design, test automation, and test refactoring. This book great resource for anyone who wants to learn more about test-driven development.
Provides a comprehensive guide to refactoring code. It covers a wide range of topics, including test design, test automation, and test refactoring. This book great resource for anyone who wants to learn more about refactoring code.
Provides a comprehensive guide to writing unit tests for object-oriented software. It covers a wide range of topics, including test design, test automation, and test refactoring. This book great resource for anyone who wants to learn more about writing effective unit tests for object-oriented software.
Provides a comprehensive guide to writing quality code. It covers a wide range of topics, including test design, test automation, and test refactoring. This book great resource for anyone who wants to learn more about writing quality code.
Provides a comprehensive guide to design patterns. It covers a wide range of topics, including test design, test automation, and test refactoring. This book great resource for anyone who wants to learn more about design patterns.
Provides a comprehensive guide to writing clean code. It covers a wide range of topics, including test design, test automation, and test refactoring. This book great resource for anyone who wants to learn more about writing clean code.
Provides a comprehensive guide to continuous integration with Jenkins. It covers a wide range of topics, including test automation, test reporting, and test refactoring. This book great resource for anyone who wants to learn more about continuous integration.

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