(1) The document discusses software testing and provides an introduction to various testing techniques.
(2) It discusses the challenges of software testing including the large input space, different execution paths, and coincidental correctness. Testing aims to find bugs early and is part of quality assurance.
(3) The document then provides short glossaries defining key testing terms like test case, test suite, oracle, and fault model. It also discusses the V-Model and different testing levels from unit to system testing.
Overview of software testing as a quality control measure. Discusses the agenda including topics like continuous integration and different types of testing.
Defines software testing, design principles, and execution strategies. Introduces glossary terms like test cases, test suites, and coverage definitions.Further elaborates on terms and concepts crucial for understanding software testing processes, including fault models and testing strategies.
Presents the V-Model framework illustrating the relationship between specification and implementation phases and various testing types at each phase.
Introduces continuous integration as a practice that aids in frequent integration of code changes and highlights its benefits and methods.
Details the processes involved in continuous integration including tools and techniques for integration and QA.
Presents the uDoo Todo application, outlining its structure with models and controllers.
Focuses on unit testing, its importance, methods for creating effective test cases, and approaches for domain analysis.
Gives a structured approach for developing method scope test cases using category-partition testing.
Introduces class scope testing principles emphasizing encapsulation and state-dependent behavior for effective testing.
Details on defining class invariants and testing procedures for modal classes to prevent invalid states or conditions.
Explains how to test inheritance-related bugs, polymorphic message handling and ensures Liskov Substitution Principle compliance.
Discusses coverage techniques in structural testing: statement coverage, branch coverage, and condition coverage.
Explores the use of mocks for testing in isolation, advantages, and tools available for effective mocking.
Describes testing strategies applied within uDoo, including the use of mocks for verifying criteria.
Defines integration testing types, strategies like bottom-up and top-down, collaboration, and dependency analysis.
Discusses benefits and disadvantages of collaborative integration testing focusing on component interactions.
Integrates testing practices within continuous integration frameworks using tools like Maven in uDoo.
Explains the need for system-level testing for effective verification and user story-based testing strategies.
Stresses the need for regression testing, its implications, safe reduction strategies, and regression patterns.
Explores tools like Hudson, Checkstyle, FindBugs, and PMD for enhancing software quality through automation.
Software Testing
As softwarequality control
Beat Fluri
Zurich SoftSummer 2009
Summer School on Complex Software Systems
University of Zurich
Department of Informatics software evolution & architecture lab