ch11lect1_UD - Using UML Patterns and Java Object-Oriented...

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

This note was uploaded on 02/19/2011 for the course CS 319 taught by Professor Ugurdogrusoz during the Fall '10 term at Bilkent University.

Page1 / 26

ch11lect1_UD - Using UML Patterns and Java Object-Oriented...

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