Introduction to Software Testing (Coursera)

Introduction to Software Testing (Coursera)

After completing this course, you will have an understanding of the fundamental principles and processes of software testing. You will have actively created test cases and run them using an automated testing tool. You will being writing and recognizing good test cases, including input data and expected outcomes.

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

After completing this course, you will be able to…

  • Describe the difference between verification and validation.
  • Explain the goal of testing.
  • Use appropriate test terminology in communication; specifically: test fixture, logical test case, concrete test case, test script, test oracle, and fault.
  • Describe the motivations for white and black box testing.
  • Compare and contrast test-first and test-last development techniques.
  • Measure test adequacy using statement and branch coverage.
  • Reason about the causes and acceptability of and poor coverage
  • Assess the fault-finding effectiveness of a functional test suite using mutation testing.
  • Critique black-box and white-box testing, describing the benefits and use of each within the greater development effort.
  • Distinguish among the expected-value (true), heuristic, consistency (as used in A/B regression), and probability test oracles and select the one best-suited to the testing objective.
  • Craft unit and integration test cases to detect defects within code and automate these tests using JUnit. To achieve this, students will employ test doubles to support their tests, including stubs (for state verification) and mocks (for behavioral verification).

This course is primarily aimed at those learners interested in any of the following roles: Software Engineer, Software Engineer in Test, Test Automation Engineer, DevOps Engineer, Software Developer, Programmer, Computer Enthusiast. We expect that you should have an understanding of the Java programming language (or any similar object-oriented language and the ability to pick up Java syntax quickly) and some knowledge of the Software Development Lifecycle.

Course 1 of 4 in the Software Testing and Automation Specialization.

What You Will Learn

  • You will gain an understanding of the theory of testing.
  • You will practice writing tests for a variety of quality intent, including code coverage, defect finding, and statistical testing.
  • You will develop test plans to guide the testing stage of the software development lifecycle.
  • You will create defect reports to provide transparency and understanding to supervisors, colleagues, and users.

Syllabus

WEEK 1
Introduction
In this module, you will be introduced to the basics of testing, especially the variety of terminology to be used through the rest of the course.

WEEK 2
Testing Foundations
In this module, you will investigate a variety of testing principles, models of testing, and types of systematic testing strategies.

WEEK 3
Testing in the Software Development Lifecycle
In this module, you will learn about the social aspects of testing. We will learn about test plans, testing status reports, and defect reporting.

WEEK 4
Writing Good Unit Tests
In this module, you will learn about writing unit tests and gain practice in writing these tests through three coding assignments, each with additional testing sophistication.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Learn Software Testing Certification course (Eduonix) Eduonix
Eduonix Learning Solutions Pvt. Ltd.

Learn Software Testing Certification course (Eduonix)

Software Testing is one of the most important and critical component of Software development life cycle. The testing team is ultimately responsible of Software quality and forms the bedrock before it goes out to actual users and to market place. Over the years with innovative development techniques the software testing and quality assurance field has undergone a sea change. With new techniques like TDD(Test driven development) taking hold in industry the software developers must understand the nuances of new approaches to software quality. This is a free course with a MOOC List coupon.

Self Paced
Self-Paced
Verification and Synthesis of Autonomous Systems (Coursera) Coursera
University of Colorado Boulder

Verification and Synthesis of Autonomous Systems (Coursera)

This course will provide different techniques on the verification of autonomous systems against stability, regular, or omega-regular properties. Such techniques include Lyapunov theories, reachability analysis, barrier certificates, and model checking. Finally, it will introduce several techniques on designing controllers enforcing properties of interest over the original autonomous systems.

Oct 12th 2026
4 Weeks
Python and Rust with Linux Command Line Tools (Coursera) Coursera
Duke University

Python and Rust with Linux Command Line Tools (Coursera)

This course is designed for beginners and those with some programming experience in either Python or Rust that want to implement automation and utilities in the command-line. Although no prior knowledge of Python or Rust is required, basic programming knowledge is recommended as well as some familiarity with the command-line interface (CLI).

Oct 5th 2026
4 Weeks
Product Design (Udacity) Udacity
Udacity

Product Design (Udacity)

There is nothing more powerful than an idea whose time has come. This course is designed to help you materialize your game-changing idea and transform it into a product that you can build a business around. Product Design blends theory and practice to teach you product validation, UI/UX practices, Google’s Design Sprint and the process for setting and tracking actionable metrics.

Self Paced
Self-Paced
Automated Software Testing: Model and State-based Testing (edX) EdX
Delft University of Technology,DelftX

Automated Software Testing: Model and State-based Testing (edX)

Learn the advanced software testing techniques, tools, and best practices required to deliver high-quality software. Software testing gets a bad rap for being difficult, time-consuming, redundant, and above all - boring. But in fact, it is a proven way to ensure that your software will work flawlessly and can meet release schedules.

Self Paced
Self-Paced
Model Building and Validation (Udacity) Udacity
Udacity

Model Building and Validation (Udacity)

Advanced Techniques for Analyzing Data. This course will teach you how to start from scratch in answering questions about the real world using data. Machine learning happens to be a small part of this process. The model building process involves setting up ways of collecting data, understanding and paying attention to what is important in the data to answer the questions you are asking, finding a statistical, mathematical or a simulation model to gain understanding and make predictions.

Self Paced
Self-Paced
Software Testing for Developers (Coursera) Coursera
Codio

Software Testing for Developers (Coursera)

Code and run software tests websites without installing anything! This course is designed for learners who have some experience with JavaScript but a novice to software testing. The modules in this course covers the fundamentals of testing with Jest; popular testing paradigms like test-driven development, behavior-driven development, user accepting testing, etc.; and commonly used tools like JMeter, Postman, and Cucumber.

Oct 12th 2026
3 Weeks
Agile with Atlassian Jira (Coursera) Coursera
Atlassian

Agile with Atlassian Jira (Coursera)

Agile teams use “just enough” planning and an incremental approach to accomplishing the work of the team. Every project and every team uses a custom agile methodology. This course discusses common foundational principles and practices used by agile methodologies, providing the student a flexible set of tools to use in any role (e.g. product owner, scrum master, project manager, team member) on any agile team.

Oct 26th 2026
4 Weeks
Meaningful Predictive Modeling (Coursera) Coursera
University of California, San Diego

Meaningful Predictive Modeling (Coursera)

This course will help us to evaluate and compare the models we have developed in previous courses. So far we have developed techniques for regression and classification, but how low should the error of a classifier be (for example) before we decide that the classifier is "good enough"? Or how do we decide which of two regression algorithms is better?

Oct 12th 2026
4 Weeks