Northeastern University

Software Testing for Engineers Part 2

kurs ist nicht verfügbar in Deutsch (Deutschland)

Wir übersetzen es in weitere Sprachen.
Northeastern University

Software Testing for Engineers Part 2

Bei Coursera Plus enthalten

Verschaffen Sie sich einen Einblick in ein Thema und lernen Sie die Grundlagen.
2 Wochen zu vervollständigen
unter 10 Stunden pro Woche
Flexibler Zeitplan
In Ihrem eigenen Lerntempo lernen
Verschaffen Sie sich einen Einblick in ein Thema und lernen Sie die Grundlagen.
2 Wochen zu vervollständigen
unter 10 Stunden pro Woche
Flexibler Zeitplan
In Ihrem eigenen Lerntempo lernen

Kompetenzen, die Sie erwerben

  • Kategorie: Regression Testing
  • Kategorie: Performance Metric
  • Kategorie: Test Data
  • Kategorie: Software Quality Assurance
  • Kategorie: Code Coverage
  • Kategorie: White-Box Testing
  • Kategorie: Continuous Integration
  • Kategorie: Test Engineering
  • Kategorie: Software Testing
  • Kategorie: Test Tools
  • Kategorie: Usability Testing
  • Kategorie: Integration Testing
  • Kategorie: Security Testing
  • Kategorie: Test Case
  • Kategorie: Performance Testing
  • Kategorie: Quality Assurance
  • Kategorie: Test Automation
  • Kategorie: Verification And Validation

Wichtige Details

Zertifikat zur Vorlage

Zu Ihrem LinkedIn-Profil hinzufügen

Kürzlich aktualisiert!

April 2026

Bewertungen

7 Aufgaben

Unterrichtet in Englisch

Erfahren Sie, wie Mitarbeiter führender Unternehmen gefragte Kompetenzen erwerben.

 Logos von Petrobras, TATA, Danone, Capgemini, P&G und L'Oreal

In diesem Kurs gibt es 7 Module

In this module, you will learn about the Category-Partition Method, a systematic approach to automatically generating comprehensive test cases and test data for functional testing. You'll learn to tackle one of testing's fundamental challenges: selecting an appropriate subset from the practically infinite input space that most programs accept, including both valid and invalid inputs. Through a structured six-step process, you'll learn to identify independently testable features (typically individual methods or functions), decompose parameters into meaningful categories that capture different aspects worth testing, partition those categories into interesting choices, including boundary values and edge cases, and identify constraints that eliminate impossible or meaningless combinations. You'll discover how to produce language-independent test case specifications (test frames) that can later be instantiated into concrete test cases for multiple programming languages and platforms—enabling you to begin testing activities even before development starts. By the end of this module, you will learn an important method to automatically generate both test data and test cases.

Das ist alles enthalten

1 Video17 Lektüren1 Aufgabe

In this module, you will learn about Syntax-Based Testing, a powerful approach to systematically generating comprehensive test cases by formally defining input specifications using grammars. You'll learn to tackle one of testing's most sophisticated challenges: creating both valid and strategically invalid test inputs from complex, structured data spaces that traditional testing methods struggle to cover systematically. Through Backus-Naur Form (BNF) grammars and mutation operators, you'll learn to formalize any program input as a set of production rules, generate ground strings that represent valid test cases directly from these grammatical specifications, apply mutation operators to create both valid variants and intentionally invalid test cases. You'll discover how to extend these techniques beyond simple inputs to structured documents like XML and HTML, database queries, and API specifications. By the end of this module, you will master what is widely considered as the "gold standard" of testing effectiveness: mutation testing, which provides unparalleled rigor in evaluating both your test suite quality and your software's robustness against edge cases and malformed inputs.

Das ist alles enthalten

1 Video14 Lektüren1 Aufgabe

In this module, you will learn about Integration Testing, a critical phase that bridges the gap between unit testing and full system validation by systematically verifying that individually tested components work together as intended. You'll learn to tackle one of software engineering's most complex challenges: integrating modules that may be developed by different teams, on different timelines, and with varying levels of documentation—circumstances that make testing particularly difficult for large, distributed software systems. Through test scaffolding techniques including stubs and drivers, you'll learn to facilitate testing even when dependent components are unavailable, apply strategic integration approaches including Big Bang, Top-Down, Bottom-Up, and Sandwich strategies to methodically combine software modules based on your system's architecture and development constraints, implement regression testing to ensure new changes don't break existing functionality, and leverage mock objects to isolate components and control test conditions with precision. You'll discover how to adapt these integration strategies to diverse architectural patterns including two-tier client-server systems, three-tier architectures, and complex multi-layered applications—enabling you to design integration test plans that catch interface discrepancies, data exchange faults, and system-level defects before they reach production. By the end of this module, you will understand how to balance the trade-offs between different integration approaches, recognize when to prioritize critical components through risk-driven testing, and apply modern mocking frameworks like Mockito to create maintainable, automated integration tests that support continuous development and deployment practices.

Das ist alles enthalten

1 Video15 Lektüren1 Aufgabe

In this module, you will learn about State Space Exploration, a rigorous testing methodology that systematically examines all possible states and transitions a system can take during execution to verify correctness and uncover critical structural flaws. You'll learn to tackle one of the most challenging aspects of testing concurrent and reactive systems: understanding and validating behavior across potentially infinite combinations of states, process interactions, and timing scenarios that traditional testing approaches cannot comprehensively address. Through reachability graphs and exploration algorithms, you'll learn to model systems as state machines where each node represents a unique configuration of processes, variables, and message queues. You'll also learn to identify and analyze reachable versus theoretically possible states to understand the true behavior space of your system. We'll discuss how to detect fundamental structural problems including deadlocks (where all processes halt waiting for each other), unspecified receptions (where processes receive unexpected messages), and queue overflows (where communication buffers exceed capacity). Lastly, you'll learn how to apply depth-first and breadth-first exploration strategies to navigate complex state spaces efficiently. You'll discover how these techniques extend to real-world scenarios including mutual exclusion protocols, concurrent process synchronization, and safety-critical systems where proving that certain dangerous states are unreachable is essential. This will enable you to provide mathematical guarantees about system behavior that testing alone cannot achieve. By the end of this module, you will understand the state explosion problem (where adding variables or processes causes exponential growth in possible states), and recognize when state space exploration is feasible versus when approximation techniques are necessary.

Das ist alles enthalten

17 Lektüren1 Aufgabe1 App-Element

As software systems grow more complex and internet-facing, two dimensions of quality that can no longer be treated as afterthoughts are performance and security. In this module, you will explore testing practices that address both. On the performance side, you will examine how engineers define and measure runtime metrics—throughput, response time, memory utilization—and how structured testing phases (planning, execution, and analysis) help identify whether a system meets its performance requirements under realistic and peak-load conditions. You will also work with Apache JMeter, an industry-standard open-source tool for simulating concurrent user loads on web applications. Shifting to security, the module introduces the foundational principles of security testing—confidentiality, integrity, authentication, authorization, availability, non-repudiation, and resilience—and surveys the major categories of security testing tools, from static and dynamic analysis (SAST/DAST) to runtime protection (RASP). Together, these topics equip you to evaluate software not just for functional correctness, but for the systemic qualities that determine whether it can be trusted in production environments.

Das ist alles enthalten

10 Lektüren1 Aufgabe

In this module, you will learn about Usability Testing, a critical discipline that evaluates how effectively users can interact with software interfaces to accomplish their goals while identifying design deficiencies that could frustrate users or impede task completion. You'll learn to address one of software engineering's most human-centered challenges: ensuring that technically sound systems are also intuitive, learnable, and satisfying to use—recognizing that even perfectly functional software fails if users cannot navigate it successfully. Through three distinct evaluation approaches, you'll learn to conduct passive testing methods that unobtrusively gather real-world usage data through system logs, user-reported problems, and surveys to understand how systems perform under actual conditions. You'll learn how to apply active testing techniques, including videotaped observation sessions and controlled experiments where you directly engage with representative users to uncover interaction problems and measure usability metrics. You'll leverage predictive evaluation methods like heuristic evaluation and cognitive walkthroughs that allow expert reviewers to identify potential problems early in the design process before expensive user testing begins. You'll discover how to apply Nielsen's ten usability heuristics to systematically identify interface violations. You'll learn how to design and conduct traditional scientific experiments with proper control of independent and dependent variables, walk through interfaces from users' cognitive perspectives to evaluate learnability, and use structured evaluation protocols to generate actionable recommendations for interface improvements. By the end of this module, you will understand how to select appropriate evaluation methods based on development stage and available resources. You'll also learn how to balance the trade-offs between time-intensive but insight-rich active methods versus efficient predictive techniques. Lastly, you'll learn to recognize that usability testing is not a one-time activity but a continuous process that spans from early prototypes through post-release refinement—ultimately ensuring that your software serves users effectively rather than creating barriers to their success.

Das ist alles enthalten

27 Lektüren1 Aufgabe1 App-Element

Throughout this course, you have built a strong foundation in testing methods, coverage criteria, and quality assurance strategies. In this final module, you will bring it all together by exploring what it means to truly put testing first. You will examine how traditional and agile approaches define correctness differently, and why that distinction matters for the way teams plan and execute testing across a project lifecycle. From test-driven development and continuous integration to the challenges of testing legacy and untestable systems, this module challenges you to think critically about not just how to test, but when, why, and at what cost. You will also apply your knowledge to real-world case studies—including the Boeing 737 MAX failures—to evaluate how gaps in testing strategy can have serious, even catastrophic, consequences. By the end of this module, you will be equipped to advocate for a culture of quality in your own engineering practice.

Das ist alles enthalten

14 Lektüren1 Aufgabe

Dozent

Omar Badreldin
Northeastern University
2 Kurse34 Lernende

von

Warum entscheiden sich Menschen für Coursera für ihre Karriere?

Felipe M.

Lernender seit 2018
„Es ist eine großartige Erfahrung, in meinem eigenen Tempo zu lernen. Ich kann lernen, wenn ich Zeit und Nerven dazu habe.“

Jennifer J.

Lernender seit 2020
„Bei einem spannenden neuen Projekt konnte ich die neuen Kenntnisse und Kompetenzen aus den Kursen direkt bei der Arbeit anwenden.“

Larry W.

Lernender seit 2021
„Wenn mir Kurse zu Themen fehlen, die meine Universität nicht anbietet, ist Coursera mit die beste Alternative.“

Chaitanya A.

„Man lernt nicht nur, um bei der Arbeit besser zu werden. Es geht noch um viel mehr. Bei Coursera kann ich ohne Grenzen lernen.“
Coursera Plus

Neue Karrieremöglichkeiten mit Coursera Plus

Unbegrenzter Zugang zu 10,000+ Weltklasse-Kursen, praktischen Projekten und berufsqualifizierenden Zertifikatsprogrammen - alles in Ihrem Abonnement enthalten

Bringen Sie Ihre Karriere mit einem Online-Abschluss voran.

Erwerben Sie einen Abschluss von erstklassigen Universitäten – 100 % online

Schließen Sie sich mehr als 3.400 Unternehmen in aller Welt an, die sich für Coursera for Business entschieden haben.

Schulen Sie Ihre Mitarbeiter*innen, um sich in der digitalen Wirtschaft zu behaupten.

Häufig gestellte Fragen