Software Engineering Class 13 - Software Engineering(CSC 4350\/6350 Rao Casturi Testing Software Engineering-CSC4350\/6350 Rao Casturi 2 Testing What is

Software Engineering Class 13 - Software Engineering(CSC...

This preview shows page 1 - 10 out of 34 pages.

Software Engineering (CSC 4350/6350) Rao Casturi
Testing Software Engineering -CSC4350/6350 - Rao Casturi 2
Testing What is testing? Process of finding the divergence between the expected behavior of the designed system model vs implemented final system. Why testing is important? Cost to fix is high Credibility What is the goal? Who Should Do Testing? 3 Software Engineering -CSC4350/6350 - Rao Casturi
Stages in Testing Unit Testing Differences between a specification of an object and its realization as a component Structural Testing Differences between the system design model and a subset of integrated subsystems Functional Testing Differences between the use case model and the system Performance Testing Differences between nonfunctional requirements and actual system performance 4 Software Engineering -CSC4350/6350 - Rao Casturi
Testing Concepts Software reliability is the probability that a software system will not cause system failure for a specified time under specified conditions. Failure is any deviation of the observed behavior from the specified behavior. An erroneous state (also called an error ) means the system is in a state such that further processing by the system will lead to a failure, which then causes the system to deviate from its intended behavior. A fault , also called “defect” or “bug,” is the mechanical or algorithmic cause of an erroneous state. The goal of testing is to maximize the number of discovered faults, which then allows developers to correct them and increase the reliability of the system. 5 Software Engineering -CSC4350/6350 - Rao Casturi
How to increase the Software Reliability? Fault avoidance Technique Fault Detection Technique Fault Tolerance Technique 6 Software Engineering -CSC4350/6350 - Rao Casturi
Fault avoidance Technique Detect faults before they can happen This includes Development methodologies: Unambiguous relationship Data Encapsulation Coupling and Coherence Configuration Management: Better communications and upgrades/edits in other parts of the system Verification Check pre and post conditions Trust but verify Review Methods. (Walkthrough and inspection) Frequent Code Review 7 Software Engineering -CSC4350/6350 - Rao Casturi
Fault detection & Tolerance Techniques Detection: During the development or after the release. Debugging. Uncontrolled and controlled experiments used during the development to find faults in the system. Testing (Planned way) Tolerance: Know issues but ready to release. Fault resistance systems with redundancy built in 8 Software Engineering -CSC4350/6350 - Rao Casturi
Overall Testing Activities Test Planning Component Inspection Finding faults with manual inspection of the code Usability Testing User Interface Testing Unit Testing Integration Testing & Structural Testing System Testing Functional Testing (Requirements from RAD and User Manual)