ch11lect1_UD - Using UML, Patterns, and Java...

Info iconThis preview shows pages 1–8. Sign up to view the full content.

View Full Document Right Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 11, Testing Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 2 Terminology Failure : Any deviation of the observed behavior from the specified behavior Erroneous state ( error ): The system is in a state such that further processing by the system can lead to a failure Fault : The mechanical or algorithmic cause of an error (bug) Validation : Activity of checking for deviations between the observed behavior of a system and its specification. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 3 Examples of Faults and Errors Faults in the Interface specification Mismatch between what the client needs and what the server offers Mismatch between requirements and implementation Algorithmic Faults Missing initialization Incorrect branching condition Missing test for null Mechanical Faults (very hard to find) Operating temperature outside of equipment specification Errors Null reference errors Concurrency errors Exceptions. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 4 Another View on How to Deal with Faults Fault avoidance Use methodology to reduce complexity Use configuration management to prevent inconsistency Apply verification to prevent algorithmic faults Use Reviews Fault detection Testing : Activity to provoke failures in a planned way Debugging : Find and remove the cause (Faults) of an observed failure Monitoring : Deliver information about state => Used during debugging Fault tolerance Exception handling Modular redundancy. Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 5 Taxonomy for Fault Handling Techniques Fault Handling Fault Avoidance Fault Detection Fault Tolerance Verification Configuration Management Methodoloy Atomic Transactions Modular Redundancy System Testing Integration Testing Unit Testing Testing Debugging Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 6 Observations It is impossible to completely test any nontrivial module or system Practical limitations: Complete testing is prohibitive in time and cost Theoretical limitations: e.g. Halting problem Testing can only show the presence of bugs, not their absence (Dijkstra). Testing is not for free => Define your goals and priorities Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 7 Testing takes creativity To develop an effective test, one must have:...
View Full Document

Page1 / 26

ch11lect1_UD - Using UML, Patterns, and Java...

This preview shows document pages 1 - 8. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online