We may earn an affiliate commission when you visit our partners.
Vladimir Khorikov

This course serves as a descriptive, in-depth guideline for pragmatic unit testing.

Read more

This course serves as a descriptive, in-depth guideline for pragmatic unit testing.

Unit testing is everywhere. It is one of the most widely spread engineering practices in the world of software development. It’s important to know how to apply it in a way that helps, and not prevents you from building successful products. This course, Building a Pragmatic Unit Test Suite, is going to show you how to do that. First, you'll learn about what makes a test valuable. Next, you'll learn about the different styles of unit testing, as well as the use of mocks. Finally, you'll wrap up the course by learning about integration testing and unit testing anti-patterns. By the end of this course, you’ll know how to make the most out of your unit and integration tests.

Enroll now

What's inside

Syllabus

Course Overview
Introduction
Understanding Styles of Unit Testing
Getting the Most out of Your Unit Tests
Read more
Refactoring to More Valuable Unit Tests
Getting the Most out of Your Integration Tests
Avoiding Unit Testing Anti-patterns

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Develops valuable unit testing techniques, which are core skills for software development
Taught by Vladimir Khorikov, who is recognized for their work in unit testing
Provides a comprehensive study of unit testing, which is highly relevant in industry
Examines styles of unit testing and integration testing, which is standard in the industry

Save this course

Save Building a Pragmatic Unit Test Suite 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 Building a Pragmatic Unit Test Suite with these activities:
Write a test plan
Help students recall their knowledge of writing effective test plans, which is necessary for unit testing.
Browse courses on Unit Testing
Show steps
  • Review the course syllabus and identify the unit testing topics that will be covered.
  • Identify the different types of unit tests that can be written.
  • Write test cases for each type of unit test.
Follow a tutorial on how to unit test a specific programming language
Help students learn how to apply unit testing to the specific programming languages they will be using in the course.
Browse courses on Unit Testing
Show steps
  • Identify the programming language that will be used in the course.
  • Find a tutorial on how to unit test in that programming language.
  • Follow the tutorial and complete the exercises.
Write unit tests for a simple function
Help students practice writing unit tests for simple functions, which is a fundamental skill for unit testing.
Browse courses on Unit Testing
Show steps
  • Write a simple function that takes in a number and returns its square.
  • Write unit tests for the function to ensure that it works correctly.
Three other activities
Expand to see all activities and additional details
Show all six activities
Create a blog post or article about unit testing
Help students synthesize their knowledge of unit testing by creating a blog post or article about it, which can also serve as a valuable resource for others.
Browse courses on Unit Testing
Show steps
  • Choose a topic related to unit testing that you are interested in.
  • Research the topic and gather information from various sources.
  • Write a blog post or article that shares your knowledge and insights on the topic.
Develop a unit testing framework for a small project
Help students apply their knowledge of unit testing to a real-world project, which can help them develop a deeper understanding of the concepts.
Browse courses on Unit Testing
Show steps
  • Choose a small project that you are interested in developing.
  • Design and develop a unit testing framework for the project.
  • Implement the unit testing framework and write unit tests for the project.
Participate in a unit testing competition
Help students challenge themselves and improve their unit testing skills by participating in a competition.
Browse courses on Unit Testing
Show steps
  • Find a unit testing competition that you are interested in participating in.
  • Prepare for the competition by practicing writing unit tests and studying the relevant concepts.
  • Participate in the competition and do your best!

Career center

Learners who complete Building a Pragmatic Unit Test Suite will develop knowledge and skills that may be useful to these careers:
Quality Assurance Analyst
Quality Assurance Analysts (QAAs) are responsible for ensuring the quality of software applications. They may work with SDETs to develop and maintain test suites, and they may also perform manual testing. This course can help QAAs to develop the skills and knowledge they need to be successful in their roles. The course covers topics such as test planning, test execution, and test reporting. This knowledge can help QAAs to ensure that software applications are of high quality.
Software Tester
Software Testers are responsible for testing software applications to find defects. They may work with SDETs and QAAs to develop and maintain test suites. This course can help Software Testers to develop the skills and knowledge they need to be successful in their roles. The course covers topics such as test planning, test execution, and test reporting. This knowledge can help Software Testers to find defects and improve the quality of software applications.
Software Development Engineer in Test
Software Development Engineers in Test (SDETs) are responsible for the design, development, and maintenance of test suites that ensure the quality and reliability of software applications. This course, Building a Pragmatic Unit Test Suite, can help SDETs to build unit tests that are valuable, maintainable, and effective. The course covers topics such as test-driven development, test automation, and unit test anti-patterns. This knowledge can help SDETs to develop and maintain high-quality software applications.
Data Analyst
Data Analysts are responsible for collecting, cleaning, and analyzing data. They may work with SDETs and QAAs to ensure the quality of software applications. This course can help Data Analysts to develop the skills and knowledge they need to be successful in their roles. The course covers topics such as test planning, test execution, and test reporting. This knowledge can help Data Analysts to ensure that software applications are based on accurate and reliable data.
Database Administrator
Database Administrators are responsible for the design, implementation, and maintenance of database systems. They may work with SDETs and QAAs to ensure the quality of software applications. This course can help Database Administrators to develop the skills and knowledge they need to be successful in their roles. The course covers topics such as test planning, test execution, and test reporting. This knowledge can help Database Administrators to ensure that database systems are reliable and efficient.
Network Administrator
Network Administrators are responsible for the design, implementation, and maintenance of computer networks. They may work with SDETs and QAAs to ensure the quality of software applications. This course can help Network Administrators to develop the skills and knowledge they need to be successful in their roles. The course covers topics such as test planning, test execution, and test reporting. This knowledge can help Network Administrators to ensure that computer networks are reliable and secure.
Product Manager
Product Managers are responsible for the planning, development, and marketing of software applications. They may work with SDETs and QAAs to ensure the quality of software applications. This course can help Product Managers to develop the skills and knowledge they need to be successful in their roles. The course covers topics such as test planning, test execution, and test reporting. This knowledge can help Product Managers to ensure that software applications meet the needs of users.
Project Manager
Project Managers are responsible for the planning, execution, and control of software development projects. They may work with SDETs and QAAs to ensure the quality of software applications. This course can help Project Managers to develop the skills and knowledge they need to be successful in their roles. The course covers topics such as test planning, test execution, and test reporting. This knowledge can help Project Managers to ensure that software development projects are completed on time, within budget, and to the required quality.
Systems Analyst
Systems Analysts are responsible for the analysis, design, and implementation of software systems. They may work with SDETs and QAAs to ensure the quality of software applications. This course can help Systems Analysts to develop the skills and knowledge they need to be successful in their roles. The course covers topics such as test planning, test execution, and test reporting. This knowledge can help Systems Analysts to ensure that software systems meet the needs of users.
Security Analyst
Security Analysts are responsible for the design, implementation, and maintenance of security systems. They may work with SDETs and QAAs to ensure the quality of software applications. This course can help Security Analysts to develop the skills and knowledge they need to be successful in their roles. The course covers topics such as test planning, test execution, and test reporting. This knowledge can help Security Analysts to ensure that security systems are effective and efficient.
Software Architect
Software Architects are responsible for the design and architecture of software systems. They may work with SDETs and QAAs to ensure the quality of software applications. This course can help Software Architects to develop the skills and knowledge they need to be successful in their roles. The course covers topics such as test planning, test execution, and test reporting. This knowledge can help Software Architects to ensure that software systems are scalable, reliable, and maintainable.
Test Manager
Test Managers are responsible for the planning, execution, and control of software testing projects. They may work with SDETs and QAAs to ensure the quality of software applications. This course can help Test Managers to develop the skills and knowledge they need to be successful in their roles. The course covers topics such as test planning, test execution, and test reporting. This knowledge can help Test Managers to ensure that software testing projects are completed on time, within budget, and to the required quality.
Technical Writer
Technical Writers are responsible for creating documentation for software applications. They may work with SDETs and QAAs to ensure the quality of software applications. This course can help Technical Writers to develop the skills and knowledge they need to be successful in their roles. The course covers topics such as test planning, test execution, and test reporting. This knowledge can help Technical Writers to create documentation that is clear, concise, and accurate.
Business Analyst
Business Analysts are responsible for understanding the needs of users and stakeholders and translating those needs into software requirements. They may work with SDETs and QAAs to ensure the quality of software applications. This course can help Business Analysts to develop the skills and knowledge they need to be successful in their roles. The course covers topics such as test planning, test execution, and test reporting. This knowledge can help Business Analysts to ensure that software applications meet the needs of users.
Software Engineer
Software Engineers are responsible for the design, development, and maintenance of software applications. They may work with SDETs and QAAs to develop and maintain test suites. This course can help Software Engineers to develop the skills and knowledge they need to be successful in their roles. The course covers topics such as test-driven development, test automation, and unit test anti-patterns. This knowledge can help Software Engineers to develop and maintain high-quality software applications.

Reading list

We've selected 21 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 Building a Pragmatic Unit Test Suite.
Written by the instructor of the course, this book provides a comprehensive overview of unit testing principles, practices, and patterns. It covers a wide range of topics, including test design, test automation, and mocking.
Offers a practical and accessible guide to unit testing, covering both the technical aspects of writing tests and the broader principles of test-driven development.
This classic book on test-driven development provides a step-by-step guide to writing effective unit tests and using them to drive the design and implementation of software systems.
Provides a comprehensive guide to refactoring techniques, which can be used to improve the design and maintainability of code and make it easier to write and maintain unit tests.
Provides a concise and practical guide to unit testing in Java, offering valuable insights and best practices.
While not specifically focused on unit testing, this book provides valuable insights into the role of testing in software development and how to design and evolve software systems in a test-driven manner.
While not specifically about unit testing, this book provides valuable insights into the principles of writing clean and maintainable code, which is essential for writing effective unit tests.
Provides a comprehensive guide to best practices for writing effective Java code. It covers a wide range of topics, including code organization, error handling, and concurrency.
Provides a comprehensive guide to behavior-driven development (BDD). It covers a wide range of topics, including writing effective BDD scenarios and using BDD tools.
Introduces some core principles that promote good software design, many of which are relevant to good unit testing practices.
Focuses on JUnit, a widely-used Java unit testing framework, and provides practical guidance on using it effectively.
Introduces design patterns and refactoring techniques specifically for unit testing, helping to improve code quality and maintainability.
Provides a practical guide to agile testing practices. It covers a wide range of topics, including test planning, test execution, and test reporting.
Provides a fun and accessible introduction to design patterns. It covers a wide range of patterns, including creational, structural, and behavioral patterns.
Will dovetail with the pattern of having multiple test suites into different parts of an application that models a domain.
Provides a comprehensive guide to continuous delivery practices. It covers the entire software delivery pipeline, from development to deployment.

Share

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

Similar courses

Here are nine courses similar to Building a Pragmatic Unit Test Suite.
Testing Django Applications
Most relevant
JavaScript Unit Testing - The Practical Guide
Most relevant
Learn Unit Testing with NUnit and C#
Most relevant
Automated Software Testing with Python
Most relevant
Implementing a Test Pyramid Strategy in Java
Most relevant
Unit testing your Javascript with jasmine
Most relevant
Unit Testing for Typescript & NodeJs Developers with Jest
Most relevant
JUnit 5 Fundamentals
Testing Spring Boot App with JUnit, Mockito &...
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