This course covers the principles and processes of validation, verification, and integration for software, and software-intensive systems, including cyber-physical systems. The topics include test automation, testing metrics, test coverage, integration testing, state space exploration for cyber-physical systems, software assurance, and software reliability. Students in this course will learn the principles, tools, applications, and processes that efficiently integrate software elements to meet customer requirements and needs.

Software Testing for Engineers Part 1

Skills you'll gain
Tools you'll learn
Details to know

Add to your LinkedIn profile
April 2026
7 assignments
See how employees at top companies are mastering in-demand skills

There are 7 modules in this course
In this module, you will explore the fundamental drivers behind modern software testing practices and understand why testing has evolved from a simple debugging activity into a critical discipline. You will examine how software's pervasiveness across critical infrastructure, financial systems, and safety-critical applications has transformed user expectations and market dynamics, making software failures both intolerable and potentially catastrophic. You will also learn the distinction between verification, validation and the different types of software failures.
What's included
2 videos23 readings1 assignment
2 videos•Total 4 minutes
- Course Overview•1 minute
- 3 Domains•2 minutes
23 readings•Total 121 minutes
- Course Introduction•2 minutes
- Meet Your Faculty•2 minutes
- Syllabus - Software Testing for Engineers Part 1•10 minutes
- Academic Integrity•1 minute
- Introduction and Motivation•2 minutes
- Software Prevalence•6 minutes
- Evolving Landscape•3 minutes
- Testing in the 21st Century•2 minutes
- Changing Market, User, and Safety Necessities•4 minutes
- Why Do We Test Software?•3 minutes
- The Real Cost of Software Failures•4 minutes
- Types of Software Bugs•10 minutes
- Software Faults, Errors and Failures•5 minutes
- Verification vs. Validation•10 minutes
- What is Software Quality?•10 minutes
- What is Good Software?•5 minutes
- Types of Software Defects•5 minutes
- Differing Expectations or Visions•10 minutes
- Nine Causes of Software Errors•5 minutes
- Specified vs Desired vs Implemented Input•4 minutes
- Example 1: Personal Information Form•5 minutes
- Example 2: Credit Card Numbers•5 minutes
- Test Process Maturity Levels•8 minutes
1 assignment•Total 30 minutes
- Module 1 Quiz•30 minutes
In this module, you will explore the organizational structure and processes that support effective software testing in modern development environments. You will examine the distinct roles various stakeholders play in testing—from developers conducting unit tests to QA professionals orchestrating comprehensive test strategies—and understand how these roles contribute to software quality. This module introduces other concepts, such as test-driven development and regression testing. This module also includes your first lab, where you gain experience with unit testing using Junit.
What's included
12 readings1 assignment
12 readings•Total 44 minutes
- Testing Software•2 minutes
- Who Tests Software•4 minutes
- Levels of Testing•5 minutes
- Regression Testing•8 minutes
- Introduction to Test Automation•2 minutes
- Cost Benefits of Test Automation•2 minutes
- Test Driven Development•2 minutes
- Test-Driven Development in Agile Projects•10 minutes
- When to Avoid Automated Testing•2 minutes
- Test Case Verdicts•3 minutes
- When is JUnit Appropriate•2 minutes
- More Information•2 minutes
1 assignment•Total 30 minutes
- Module 2 Quiz•30 minutes
In this module, you will learn to measure and evaluate test coverage using both black box and white box testing techniques, examining software from the perspective of external behavior as well as internal code structure. Through equivalence testing and boundary value analysis, you will discover how to strategically partition infinite input spaces into manageable test cases that provide meaningful coverage. The module will guide you through the advantages and limitations of both black box and white box approaches, helping you understand when each method is most appropriate and how they complement each other in comprehensive testing strategies. By the end of this module, you will be able to identify equivalence classes, select boundary values, and evaluate test coverage using line-based, decision-based, and method-based metrics.
What's included
8 readings1 assignment1 discussion prompt
8 readings•Total 53 minutes
- Test Coverage•1 minute
- Test Coverage Example•5 minutes
- Black and White Box Testing•5 minutes
- Black Box Testing: Equivalence Testing•8 minutes
- Equivalence Testing Example•8 minutes
- Black Box Testing: Boundary Testing•6 minutes
- Advantages and Disadvantages of Black Box Testing•10 minutes
- White Box Testing•10 minutes
1 assignment•Total 30 minutes
- Module 3 Quiz•30 minutes
1 discussion prompt•Total 20 minutes
- How to Test a Self-Driving Car•20 minutes
In this module, you will explore Control Flow Graphs (CFGs), a powerful white box testing technique that allows you to analyze the internal structure of your code to design comprehensive test cases. While previous modules focused on black box strategies like equivalence partitioning and boundary testing, CFGs shift your attention inward—transforming source code into visual graph representations that reveal all possible execution paths through a program. You'll learn to construct CFGs by systematically labeling statements and decisions, then use these graphs to identify feasible test paths, analyze coverage, and evaluate the thoroughness of your testing strategy. This approach is particularly valuable when working with complex code structures where the number of potential paths can be infinite, requiring you to apply strategic path selection criteria to ensure effective test coverage. By the end of this module, you'll be equipped to bridge the gap between theoretical testing concepts and practical implementation through hands-on work with industry-standard coverage tools.
What's included
16 readings1 assignment1 app item
16 readings•Total 180 minutes
- Introduction to Control Flow Graphs•2 minutes
- Program Statements•1 minute
- CFG Steps•2 minutes
- Concrete Example•15 minutes
- Construct a Control Flow Graph•10 minutes
- Create a Sub-Path Unit of Test Coverage•5 minutes
- Extend Sub-Path to Complete Path•5 minutes
- Solve Conditions•5 minutes
- Program Path•2 minutes
- Exercise: Construct a CFG•60 minutes
- Exercise Answer for Comparison•30 minutes
- CFG Path Analysis•2 minutes
- Path Selection Criteria•6 minutes
- Infeasible Paths•5 minutes
- Examples of Possible Coverage Measures•10 minutes
- Analyze Paths for the CFG•20 minutes
1 assignment•Total 30 minutes
- Module 4 Quiz•30 minutes
1 app item•Total 6 minutes
- Construct Control Flow Graph•6 minutes
In this module, you will explore state machine-based testing, a powerful approach that allows you to formally model and test the behavior of software systems. You'll begin by reviewing UML State Machine fundamentals, learning how to construct state machines using basic elements like states, transitions, events, and actions, then progress to advanced modeling features, including guard conditions, entry/exit actions, do activities, nested states, history states, and concurrency. Once you've mastered state machine modeling, we shift to focus on leveraging these models as testing tools—learning how to apply state machine coverage metrics such as state coverage, transition coverage, and path coverage to measure the thoroughness of your test suites. Finally, you'll explore how to classify faults in state-based systems using eight distinct categories, helping you systematically identify whether discrepancies arise from implementation errors, specification problems, or test design issues. By the end of this module, you'll be equipped to create formal behavioral models that can drive comprehensive, measurable testing strategies.
What's included
19 readings1 assignment1 app item
19 readings•Total 192 minutes
- Outline•1 minute
- Basic State Machine Modeling•5 minutes
- Entry and Exit Actions•5 minutes
- Guard Condition•5 minutes
- Transition Actions•5 minutes
- Do Activity•5 minutes
- Advanced State Machine Modeling•1 minute
- Nested States•5 minutes
- History State•5 minutes
- Concurrency•5 minutes
- Flattening State Machines•5 minutes
- Exercise: Develop a State Machine Model for Aliens in Computer Game•30 minutes
- Exercise Solution: Develop a State Machine Model for Aliens in Computer Game•20 minutes
- Exercise: Flatten the Alien State Machine Model•30 minutes
- Exercise Solution: Flatten the Alien State Machine Model•20 minutes
- Code Coverage: State-Based Testing•2 minutes
- State Machine Test Coverage Metrics•5 minutes
- Exercise: Apply State Machine Coverage Metrics•30 minutes
- Potential Faults in State-Based Systems•8 minutes
1 assignment•Total 30 minutes
- Module 5 Quiz•30 minutes
1 app item•Total 10 minutes
- State Machine Fault Classification•10 minutes
In this module, you will explore use case- and scenario-based testing, learning how to leverage requirements-level models to drive comprehensive test coverage strategies. You'll begin by mastering use case modeling fundamentals, understanding how to identify actors, define use cases, and construct use case diagrams that capture the functional requirements of a system from the end user's perspective. You'll learn to work with, include, and extend relationships, define system boundaries, and distinguish between what's inside and outside your system's scope. Moving beyond basic modeling, you'll dive into the elaboration phase where you'll transform high-level use cases into detailed scenarios that document preconditions, postconditions, main flows, and alternative flows—capturing all the ways users interact with your system, including error conditions and exceptions. You'll then learn to convert these detailed textual scenarios into activity diagrams, which provide visual, graph-based representations of complex workflows. Finally, you'll apply graph coverage criteria to these models, using node coverage, edge coverage, and scenario testing to ensure your test suite thoroughly exercises the system's behavior. By the end of this module, you'll understand how to bridge the gap between requirements and testing, using use case models and activity diagrams not just as documentation tools but as powerful frameworks for defining acceptance tests and measuring test completeness.
What's included
12 readings1 assignment
12 readings•Total 390 minutes
- Introduction to Use Case Modeling•20 minutes
- Key Concepts•4 minutes
- Relationship Types•5 minutes
- Developing Effective Use Cases•8 minutes
- Simple Use Case Example•8 minutes
- Develop a Use Case Model•20 minutes
- Elaboration Phase (Use Case Scenarios)•10 minutes
- Construction of Activity Diagrams•10 minutes
- Covering Activity Graphs•3 minutes
- Summary of Use Case Testing•2 minutes
- Part 1•120 minutes
- Part 2•180 minutes
1 assignment•Total 30 minutes
- Module 6 Quiz•30 minutes
In this module, you will explore logic-based testing, a rigorous approach to analyzing and testing the logical expressions embedded throughout your software systems. You'll learn to dissect predicates (expressions that evaluate to boolean values) into their component clauses and understand how logical operators like AND, OR, and NOT combine these clauses into complex decision logic. Starting with basic coverage criteria, you'll master Predicate Coverage, which requires testing each predicate as both true and false, and Clause Coverage, which ensures each individual clause is exercised in both states. You'll discover the limitations of these approaches—notably that Clause Coverage doesn't guarantee Predicate Coverage—leading you to explore Combinatorial Coverage, which tests all possible combinations of clause values but comes with an exponential cost. To address this practical challenge, you'll learn about active (or major) clauses—clauses that actually determine a predicate's value—and advanced coverage criteria that focus testing efforts on these critical elements. By the end of this module, you'll be equipped with a sophisticated toolkit for ensuring thorough testing of the decision logic that drives software behavior, particularly essential in safety-critical systems where regulatory compliance may legally mandate logic coverage.
What's included
14 readings1 assignment1 app item
14 readings•Total 83 minutes
- Introduction•3 minutes
- Logic Predicates and Clauses•10 minutes
- Example and Facts•8 minutes
- Formal vs Informal Expressions•8 minutes
- Logic Coverage Criteria•6 minutes
- Predicate Coverage•10 minutes
- Clause Coverage•8 minutes
- Limitations with Predicate Coverage and Clause Coverage•2 minutes
- Combinatorial Coverage•10 minutes
- Active Clauses•6 minutes
- Infeasibility & Subsumption•4 minutes
- Repeated Variables•4 minutes
- Logic Coverage Summary•2 minutes
- Congratulations! •2 minutes
1 assignment•Total 30 minutes
- Module 7 Quiz•30 minutes
1 app item•Total 15 minutes
- Coverage Criteria•15 minutes
Instructor

Offered by

Offered by

Founded in 1898, Northeastern is a global research university with a distinctive, experience-driven approach to education and discovery. The university is a leader in experiential learning, powered by the world’s most far-reaching cooperative education program. The spirit of collaboration guides a use-inspired research enterprise focused on solving global challenges in health, security, and sustainability.
Why people choose Coursera for their career

Felipe M.

Jennifer J.

Larry W.

Chaitanya A.

Open new doors with Coursera Plus
Unlimited access to 10,000+ world-class courses, hands-on projects, and job-ready certificate programs - all included in your subscription
Advance your career with an online degree
Earn a degree from world-class universities - 100% online
Join over 3,400 global companies that choose Coursera for Business
Upskill your employees to excel in the digital economy
Frequently asked questions
To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.
When you purchase a Certificate you get access to all course materials, including graded assignments. Upon completing the course, your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.
Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.
More questions
Financial aid available,