Automated Discovery of Faults and Fault Domains using Random Testing

16
Automated Discovery of Faults and Fault Domains using Random Testing Mian Asbat Ahmad 24-01-2013

description

Automated Discovery of Faults and Fault Domains using Random Testing. Mian Asbat Ahmad 24-01-2013. Why random testing?. Exhausting testing not possible. Infinite values from 0 and 1. Compatibility across multiple systems. Limited Time and Resources Simple algorithm for data selection - PowerPoint PPT Presentation

Transcript of Automated Discovery of Faults and Fault Domains using Random Testing

Page 1: Automated  Discovery of Faults and Fault Domains using Random Testing

Automated Discovery of Faults and Fault Domains using Random Testing

Mian Asbat Ahmad

24-01-2013

Manuel Oriol
Or somehting like that with testing.
Page 2: Automated  Discovery of Faults and Fault Domains using Random Testing

Why random testing?

• Exhausting testing not possible.• Infinite values from 0 and 1.• Compatibility across multiple systems.• Limited Time and Resources

• Simple algorithm for data selection• Easy implementation• Free from human bias• Quick and effective in finding faults• Code Privacy

• Source code not required for Testing

Page 3: Automated  Discovery of Faults and Fault Domains using Random Testing

Random Testing

• Black-box testing technique• Dynamic testing process• Input Domain• Random Selection

• Test Input• Test modules

• Test Execution• Test Evaluation

• Specifications• Language exceptions

• Test Output

Manuel Oriol
What's the message here?
Page 4: Automated  Discovery of Faults and Fault Domains using Random Testing

Automated Random Testing

• Automating the process of random testing that include reading specifications, test data generation, test execution, result analysis and identification of the faulty tests.

• Examples of Automated Random testing tools are YETI, JCrasher, JUnit, Haskel etc…

Page 5: Automated  Discovery of Faults and Fault Domains using Random Testing

• Fault lies in Domains [Chan et al]• Input Domain• Fault Domain

• Point Fault Domain• Block Fault Domain• Strip Fault Domain

Fault Domains

Manuel Oriol
ok write one!
Page 6: Automated  Discovery of Faults and Fault Domains using Random Testing

Enhancement in Random Testing

• Test Strategy?• Need of test strategy variations?

• High No of Faults• Less time• Low resources

• Famous Variations in Random Strategy• ART• MART• RRT• FD-ART• R+• QRT• …

Manuel Oriol
Use syntax highlight (copy/paste from Eclipse)
Page 7: Automated  Discovery of Faults and Fault Domains using Random Testing

Dirt Spot Sweeping Random Strategy

• Combination of strategies• Random

• Input and module selection at random• Random Plus

• Random testing with border values• Spot Sweeping

• Move around it when fault found

Page 8: Automated  Discovery of Faults and Fault Domains using Random Testing

Working of DSSR

• Start with R and R+• Switch to DSSR,

when Fault found• After Evaluating

block/strip, switch back to R and R+

Page 9: Automated  Discovery of Faults and Fault Domains using Random Testing

Evaluation of DSSR

• 60 classes selected from 32 different projects• In 43 classes all the strategies found same number of faults• In 17 classes strategies performed different than one another• DSSR found the highest number of faults• No strategy performed better than DSSR

Page 10: Automated  Discovery of Faults and Fault Domains using Random Testing

Test Results of 17 classes

• DSSR performed better than R and R+• DSSR up to 33% better than R• DSSR up to 17% better than R+

Page 11: Automated  Discovery of Faults and Fault Domains using Random Testing

Example of DSSR

• Implementation

Page 12: Automated  Discovery of Faults and Fault Domains using Random Testing

What is ADFD

• Implementation

Page 13: Automated  Discovery of Faults and Fault Domains using Random Testing

Searching for Fault Patterns

Page 14: Automated  Discovery of Faults and Fault Domains using Random Testing

Working of ADFD

Page 15: Automated  Discovery of Faults and Fault Domains using Random Testing

Graphs Generated by ADFD

Page 16: Automated  Discovery of Faults and Fault Domains using Random Testing

Daikon etc invariants border values…

Manuel Oriol
Detail things here.