ch11lect1_UD - Object-Oriented Software Engineering Using UML Patterns and Java Chapter11,Testing Terminology Failure: Erroneousstate(error: f

ch11lect1_UD - Object-Oriented Software Engineering Using...

This preview shows page 1 - 8 out of 26 pages.

Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 11, Testing
Image of page 1
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.
Image of page 2
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.
Image of page 3
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.
Image of page 4
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
Image of page 5
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
Image of page 6
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: Detailed understanding of the system
Image of page 7
Image of page 8

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture