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.

您将获得的技能
您将学习的工具
要了解的详细信息

添加到您的领英档案
April 2026
7 项作业
了解顶级公司的员工如何掌握热门技能

该课程共有7个模块
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.
涵盖的内容
2个视频23篇阅读材料1个作业
2个视频•总计4分钟
- Course Overview•1分钟
- 3 Domains•2分钟
23篇阅读材料•总计121分钟
- Course Introduction•2分钟
- Meet Your Faculty•2分钟
- Syllabus - Software Testing for Engineers Part 1•10分钟
- Academic Integrity•1分钟
- Introduction and Motivation•2分钟
- Software Prevalence•6分钟
- Evolving Landscape•3分钟
- Testing in the 21st Century•2分钟
- Changing Market, User, and Safety Necessities•4分钟
- Why Do We Test Software?•3分钟
- The Real Cost of Software Failures•4分钟
- Types of Software Bugs•10分钟
- Software Faults, Errors and Failures•5分钟
- Verification vs. Validation•10分钟
- What is Software Quality?•10分钟
- What is Good Software?•5分钟
- Types of Software Defects•5分钟
- Differing Expectations or Visions•10分钟
- Nine Causes of Software Errors•5分钟
- Specified vs Desired vs Implemented Input•4分钟
- Example 1: Personal Information Form•5分钟
- Example 2: Credit Card Numbers•5分钟
- Test Process Maturity Levels•8分钟
1个作业•总计30分钟
- Module 1 Quiz•30分钟
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.
涵盖的内容
12篇阅读材料1个作业
12篇阅读材料•总计44分钟
- Testing Software•2分钟
- Who Tests Software•4分钟
- Levels of Testing•5分钟
- Regression Testing•8分钟
- Introduction to Test Automation•2分钟
- Cost Benefits of Test Automation•2分钟
- Test Driven Development•2分钟
- Test-Driven Development in Agile Projects•10分钟
- When to Avoid Automated Testing•2分钟
- Test Case Verdicts•3分钟
- When is JUnit Appropriate•2分钟
- More Information•2分钟
1个作业•总计30分钟
- Module 2 Quiz•30分钟
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.
涵盖的内容
8篇阅读材料1个作业1个讨论话题
8篇阅读材料•总计53分钟
- Test Coverage•1分钟
- Test Coverage Example•5分钟
- Black and White Box Testing•5分钟
- Black Box Testing: Equivalence Testing•8分钟
- Equivalence Testing Example•8分钟
- Black Box Testing: Boundary Testing•6分钟
- Advantages and Disadvantages of Black Box Testing•10分钟
- White Box Testing•10分钟
1个作业•总计30分钟
- Module 3 Quiz•30分钟
1个讨论话题•总计20分钟
- How to Test a Self-Driving Car•20分钟
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.
涵盖的内容
16篇阅读材料1个作业1个应用程序项目
16篇阅读材料•总计180分钟
- Introduction to Control Flow Graphs•2分钟
- Program Statements•1分钟
- CFG Steps•2分钟
- Concrete Example•15分钟
- Construct a Control Flow Graph•10分钟
- Create a Sub-Path Unit of Test Coverage•5分钟
- Extend Sub-Path to Complete Path•5分钟
- Solve Conditions•5分钟
- Program Path•2分钟
- Exercise: Construct a CFG•60分钟
- Exercise Answer for Comparison•30分钟
- CFG Path Analysis•2分钟
- Path Selection Criteria•6分钟
- Infeasible Paths•5分钟
- Examples of Possible Coverage Measures•10分钟
- Analyze Paths for the CFG•20分钟
1个作业•总计30分钟
- Module 4 Quiz•30分钟
1个应用程序项目•总计6分钟
- Construct Control Flow Graph•6分钟
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.
涵盖的内容
19篇阅读材料1个作业1个应用程序项目
19篇阅读材料•总计192分钟
- Outline•1分钟
- Basic State Machine Modeling•5分钟
- Entry and Exit Actions•5分钟
- Guard Condition•5分钟
- Transition Actions•5分钟
- Do Activity•5分钟
- Advanced State Machine Modeling•1分钟
- Nested States•5分钟
- History State•5分钟
- Concurrency•5分钟
- Flattening State Machines•5分钟
- Exercise: Develop a State Machine Model for Aliens in Computer Game•30分钟
- Exercise Solution: Develop a State Machine Model for Aliens in Computer Game•20分钟
- Exercise: Flatten the Alien State Machine Model•30分钟
- Exercise Solution: Flatten the Alien State Machine Model•20分钟
- Code Coverage: State-Based Testing•2分钟
- State Machine Test Coverage Metrics•5分钟
- Exercise: Apply State Machine Coverage Metrics•30分钟
- Potential Faults in State-Based Systems•8分钟
1个作业•总计30分钟
- Module 5 Quiz•30分钟
1个应用程序项目•总计10分钟
- State Machine Fault Classification•10分钟
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.
涵盖的内容
12篇阅读材料1个作业
12篇阅读材料•总计390分钟
- Introduction to Use Case Modeling•20分钟
- Key Concepts•4分钟
- Relationship Types•5分钟
- Developing Effective Use Cases•8分钟
- Simple Use Case Example•8分钟
- Develop a Use Case Model•20分钟
- Elaboration Phase (Use Case Scenarios)•10分钟
- Construction of Activity Diagrams•10分钟
- Covering Activity Graphs•3分钟
- Summary of Use Case Testing•2分钟
- Part 1•120分钟
- Part 2•180分钟
1个作业•总计30分钟
- Module 6 Quiz•30分钟
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.
涵盖的内容
14篇阅读材料1个作业1个应用程序项目
14篇阅读材料•总计83分钟
- Introduction•3分钟
- Logic Predicates and Clauses•10分钟
- Example and Facts•8分钟
- Formal vs Informal Expressions•8分钟
- Logic Coverage Criteria•6分钟
- Predicate Coverage•10分钟
- Clause Coverage•8分钟
- Limitations with Predicate Coverage and Clause Coverage•2分钟
- Combinatorial Coverage•10分钟
- Active Clauses•6分钟
- Infeasibility & Subsumption•4分钟
- Repeated Variables•4分钟
- Logic Coverage Summary•2分钟
- Congratulations! •2分钟
1个作业•总计30分钟
- Module 7 Quiz•30分钟
1个应用程序项目•总计15分钟
- Coverage Criteria•15分钟
位教师

提供方

提供方

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.
人们为什么选择 Coursera 来帮助自己实现职业发展

Felipe M.

Jennifer J.

Larry W.

Chaitanya A.
常见问题
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.
更多问题
提供助学金,

