PPT1: How failures come to be

Slides:



Advertisements
Similar presentations
Delta Debugging and Model Checkers for fault localization
Advertisements

Microsoft® Small Basic Debugging Aids Estimated time to complete this lesson: 1 hour.
1 Module 12 Computation and Configurations –Formal Definition –Important Terms –Examples.
Arrays Hanly - Chapter 7 Friedman-Koffman - Chapter 9.
Using Set Operations on Code Coverage Data to Discover Program Properties by Nick Rutar.
Regression testing Tor Stållhane. What is regression testing – 1 Regression testing is testing done to check that a system update does not re- introduce.
Dr. Pedro Mejia Alvarez Software Testing Slide 1 Software Testing: Building Test Cases.
Unit Testing & Defensive Programming. F-22 Raptor Fighter.
Locating Causes of Program Failures Texas State University CS 5393 Software Quality Project Yin Deng.
Software testing basic. Main contents  Why is testing necessary?  What is testing?  Test Design techniques  Test level  Test type  How to write.
Chapter 8 – Software Testing Lecture 1 1Chapter 8 Software testing The bearing of a child takes nine months, no matter how many women are assigned. Many.
Design and Programming Chapter 7 Applied Software Project Management, Stellman & Greene See also:
Bug Localization with Machine Learning Techniques Wujie Zheng
How Failures Come To Be By: Blake Burton. Golden rule: Software testing begins with careful design Modularity of your code is a big part in software testing.
CEN 4072 Software Testing Chapter 1: How Failures Come To Be.
Problem of the Day  Why are manhole covers round?
DEBUGGING. BUG A software bug is an error, flaw, failure, or fault in a computer program or system that causes it to produce an incorrect or unexpected.
Today’s Agenda  HW #1  Finish Introduction  Input Space Partitioning Software Testing and Maintenance 1.
QA and Testing. QA Activity Processes monitoring Standards compliance monitoring Software testing Infrastructure testing Documentation testing Usability.
COMP3190: Principle of Programming Languages
Data Display Debugger (DDD)
How to isolate cause of failure? 최윤라. Contents Introduction Isolating relevant input Isolating relevant states Isolating the error Experiments.
Design - programming Cmpe 450 Fall Dynamic Analysis Software quality Design carefully from the start Simple and clean Fewer errors Finding errors.
Fixing the Defect CEN4072 – Software Testing. From Defect to Failure How a defect becomes a failure: 1. The programmer creates a defect 2. The defect.
Scientific Debugging. Errors in Software Errors are unexpected behaviors or outputs in programs As long as software is developed by humans, it will contain.
1 CEN 4072 Software Testing PPT12: Fixing the defect.
PPT12: Fixing the Defect Software Testing - CEN 4072.
Systematic Debugging Zeller. DAIMIHenrik Bærbak Christensen2 Literature “Why Programs Fail”, 2nd Ed. –Chap 1: TRAFFIC / Overview –Chap 6: Scientific Method.
Defensive Programming. Good programming practices that protect you from your own programming mistakes, as well as those of others – Assertions – Parameter.
Content Coverity Static Analysis Use cases of Coverity Examples
Advanced program design with c++
Regression Testing with its types
Testing Tutorial 7.
Chapter 6 CS 3370 – C++ Functions.
Testing and Debugging PPT By :Dr. R. Mall.
Chapter 8 – Software Testing
Faults, Errors, Failures CS 4501 / 6501 Software Testing
Design by Contract Fall 2016 Version.
C Arrays.
Introduction to Computer Graphics
Introduction to Computer Graphics
PPT and video are due: no later than November 16, 5:00 PM
Introduction to Computer Graphics
PPT9: Asserting expectations
PPT6: Scientific debugging
PPT1: Basics of software engineering
Regression testing Tor Stållhane.
PPT and video are due no later than February 15, 2019
CSE 1002 Fundamentals of Software Development 2 Chapter 9 – Recursion
PPT4: Rational B-spline Curves and Surfaces
PPT12: Shape Modification Tools
PPT3: Project planning and management
PPT3: B-spline Curves and Surfaces
PPT6: Advanced Geometric Algorithms
PPT9: Global and local interpolation
PPT7: Conics and Circles
PPT2: B-spline Basics Functions
PPT4: Requirement analysis
PPT8: Common Surfaces as NURBS
PPT6: Object-oriented design
PPT and video are due no later than March 1, 2019
PPT and video are due no later than March 22, 2019
PPT11: Advanced Surface Construction Techniques
PPT and video are due no later than March 29, 2019
PPT11: System maintenance
PPT10: Global and local approximation
(PART 2) prepared by Senem Kumova Metin modified by İlker Korkmaz
PPT5: Fundamental Geometric Algorithms
Defensive Programming
Unit Testing.
Presentation transcript:

PPT1: How failures come to be CEN 4072 Software Testing PPT1: How failures come to be PPT and video are due: no later than August 31, 5:00 PM Submit to: lpiegl@gmail.com This template file is just an outline of the presentation that you need to complete. Additional pages will be necessary to fully explore the topic above. Each page should contain adequate text as well as illustrations. You are free to use all publically available information (text as well as graphics) as long as the sources are properly acknowledged.

Team members’ contributions Member [name]:

Golden rules Content outline: Software testing begins with careful design Explanation and examples

Golden rules Content outline: Software that cannot be tested is useless Explanation and examples

Facts on debugging Content outline: Examples of software failures Impacts of software failures

Facts on debugging Content outline: Damages caused by software failures Impacts on society

Facts on debugging Content outline: Facts on debugging Costs, validation and improvements

The TRAFFIC principle Content outline: Track Reproduce Automate Find origins Focus Isolate Correct

From defect to failure Content outline: A sequence of events causing the defect to become a failure Explanation and illustration

Efficiency of testing Content outline: How defects and failures are related? Can testing show the absence of errors?

Efficiency of testing Content outline: How infections and defects are related? Explanation and illustration

Search in time and space Content outline: Search from defect to failure in time and space Illustration and explanation

Search in time and space Content outline: Find transition from sane to infected Illustration and explanation

Search in time and space Content outline: Search from defect to failure: the principles Examples of the complexity (number of variables and references among them)

Sample program - main int main(int argc, char *argv[]) { int *a; int i; a = (int *)malloc((argc - 1) * sizeof(int)); for (i = 0; i < argc - 1; i++) a[i] = atoi(argv[i + 1]); shell_sort(a, argc); printf("Output: "); printf("%d ", a[i]); printf("\n"); free(a); return 0; }

Sample program - sort There is a bug somewhere (main or static void shell_sort(int a[], int size) { int i, j; int h = 1; do { h = h * 3 + 1; } while (h <= size); h /= 3; for (i = h; i < size; i++) int v = a[i]; for (j = i; j >= h && a[j - h] > v; j -= h) a[j] = a[j - h]; if (i != j) a[j] = v; } } while (h != 1); There is a bug somewhere (main or shellsort). Find it using the principles below.

Find origins Content outline: Deduce value origins Separate relevant from irrelevant

Search in time Content outline: Observe a transition from sane to infected Example

Observing a run Content outline: Trace the execution for all variables for all steps of execution Illustration in time and space

Specific observations Content outline: Observe the state at specific locations Walk-through example

Specific observations Content outline: Find the transition from sane to infected Example steps

Specific observations Content outline: Fix the defect Regress or not to regress?

Finding causes Content outline: Find the difference between infected and sane states Search in time and space

Automated debugging: program slices Content outline: Separate the part of the program that is relevant to the failure Explanation and illustration

Automated debugging: observing state Content outline: Stop the program to observe the entire state Is this an option for large programs?

Automated debugging: watching state Content outline: Watch a part of the state to find changes during execution Examples and usefulness

Automated debugging: assertions Content outline: Specify expected values and check for them Do we really know the expected values?

Automated debugging: anomalies Content outline: What is an anomaly? Examples

Automated debugging: anomalies Content outline: Observe the difference between passing the failing runs Would this help with anomalies?

Automated debugging: cause-effect chains Content outline: How many chains are there? Is it reasonable to find THE cause-effect chain?

Automated debugging: cause-effect chains Content outline: Identify which variable caused the failure Note: causes are not necessarily errors!

Automated debugging: simplified input Content outline: Simplify the input so that each part contributes to the failure