SlideShare a Scribd company logo
Fault Interaction and its
             Repercussions
Nicholas DiGiuseppe                James A. Jones



                       UC Irvine
                      Spider Lab
Fault Interaction Defined
4 Types of Interaction
  Pass/Fail Independence
  Obfuscation
  Synergy
  Multi-Type
Fault Interaction Defined
4 Types of Interaction
  Pass/Fail Independence
  Obfuscation
  Synergy
  Multi-Type
Fault Interaction Defined
4 Types of Interaction
  Pass/Fail Independence
  Obfuscation
  Synergy
  Multi-Type
Fault Interaction Defined
4 Types of Interaction
  Pass/Fail Independence
  Obfuscation
  Synergy
  Multi-Type
We Need More Fault Understanding


                   Conferences:
        ASE, FSE, ICSE, ICSM, ICST, ISSTA

                 Years: 2008–2009

27 Fault Localization = 2.25 per conference per year

4 Fault Behavior = 0.333 per conference per year
Motivating Example
                               X = input [0] - 2
                               Y = input [0] - 2

                               If (X == Y)
                                   print 1
                               else
                                   print 0


                           Expected          Actual    Pass/Fail
                           Results           Results   Status
Test Case 1: input [0,0]   1                 1         Pass
Test Case 2: input [2,0]   0                 1         Fail
Motivating Example
                               X = input [0] - 2
                               Y = input [1] / 2

                               If (X == Y)
                                   print 1
                               else
                                   print 0


                           Expected          Actual    Pass/Fail
                           Results           Results   Status
Test Case 1: input [0,0]   1                 0         Fail
Test Case 2: input [2,0]   0                 1         Fail
Motivating Example
                               X = input [0] * 2
                               Y = input [1] / 2

                               If (X == Y)
                                   print 1
                               else
                                   print 0


                           Expected          Actual    Pass/Fail
                           Results           Results   Status
Test Case 1: input [0,0]   1                 1         Pass
Test Case 2: input [2,0]   0                 0         Pass
Our Experiment
                     Flex        Gzip        Replace      Schedule Sed             Space        Total


1 Fault              21          20          25           20           20          33           139
2 Faults             189         182         185          165          188         200          1109
3 Faults             502         505         598          500          660         200          2965
4 Faults             1000        1000        700          500          950         200          4350
5 Faults             1000        1000        700          500          950         200          4350




17 Faults            1000        1000        700          500          950         200          4350

Total Versions       14,712      14,707      10,608       7,685        14,168      3,233        65,113
Size of Test Suite   527         214         5,542        2,650        363         13,527       22,733
Number of            7,753,224   3,147,298   58,798,536   17,673,600   6,253,984   43,732,791   138,239,433
Executions
Our Experiment
                     Flex        Gzip        Replace      Schedule Sed             Space        Total


1 Fault              21          20          25           20           20          33           139
2 Faults             189         182         185          165          188         200          1109
3 Faults             502         505         598          500          660         200          2965
4 Faults             1000        1000        700          500          950         200          4350
5 Faults             1000        1000        700          500          950         200          4350




17 Faults            1000        1000        700          500          950         200          4350

 Total Versions
Total Versions
         14,712 14,707                       10,608       65,113
                                                          7,68514,168              3,233        65,113
Size of Test Suite   527         214         5,542        2,650        363         13,527       22,733

  Number of Executions 138,239,433
Number of
Executions
                     7,753,224   3,147,298   58,798,536   17,673,600   6,253,984   43,732,791   138,239,433
a                                                        Results
                              1.0
                               1.0
                                                                                          Obfuscation      Multi Type                               1.0


                              0.8
                               0.8                                                                                                                  0.8
Percentage of Interaction
Percentage of Interaction




                                                                                                                        Percentage of Interaction
                              0.6
                               0.6                                                        Synergy       Independence                                0.6


                              0.4
                               0.4                                                                                                                  0.4


                              0.2
                               0.2                                                                                                                  0.2


                              0.0
                               0.0                                                                                                                  0.0
                                 00 11 22 33 44 55 66 77 88 99 10 11 12 13 14 15 16 17
                                                                10 11 12 13 14 15 16 17                                                                0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
                                                  The Quantity of Faults
                                                   The Quantity of Faults                                                                                         The Quantity of Faults

                              1.0                                                                                                                   1.0


                              0.8                                                                                                                   0.8
  Percentage of Interaction




                                                                                                                        Percentage of Interaction
                              0.6                                                                                                                   0.6


                              0.4                                                                                                                   0.4


                              0.2                                                                                                                   0.2


                              0.0                                                                                                                   0.0
                                 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17                                                                           0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
                                            The Quantity of Faults                                                                                                The Quantity of Faults

                                    1.0                                                                                                             1.0


                                    0.8                                                                                                             0.8




                                                                                                                        Percentage of Interaction
        Percentage of Interaction




                                    0.6                                                                                                             0.6


                                    0.4                                                                                                             0.4


                                    0.2                                                                                                             0.2


                                    0.0                                                                                                             0.0
                                       0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17                                                                     0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
                                                  The Quantity of Faults                                                                                          The Quantity of Faults
Impact of Fault Interaction
                                        Regression Testing
Fault Localization                            Two Faults Fix a Fault One Fault
                                     Test 1     Pass                     Fail

                                     Test 2     Pass                     Pass

                                     Test 3     Fail                     Pass

                                                             Time




                     Failure Clustering
                                  Run Test                 Fix Faults
                                   Suite                   in Clusters




                                  Cluster                 Assign Clusters
                                  Failures                 to Developers
Results Continued
                Gzip     Flex      Replace   Schedule   Sed       Space

LoEC            2013     4020      242       150        2253      3651

Branches        1727     2680      182       66         2554      1190

Methods         514      1261      63        41         416       717

Data Dep        45,291   143,075   2005      1327       94,614    29,883

Control Dep     26,766   61,279    1444      1074       21,991    25,047

Total Dep       72,057   204,354   3449      2401       116,605   54,930

LoEC:           1.165    1.5       3.818     2.273      1.893     3.068
Branches
LoEC: Methods   3.916    3.188     3.841     3.659      5.416     5.092

LoEC: Data      0.044    0.028     0.121     0.113      0.024     0.122
Dep
LoEC: Control   0.075    0.066     0.168     0.140      0.103     0.146
Dep
LoEC: Total     0.028    0.020     0.070     0.062      0.019     0.067
Dep
Conclusions

Defined Fault Interaction

Demonstrated that Fault Interaction is prominent (primarily
fault obfuscation)

Demonstrated that Fault Interaction can have a real
impact on practice and research

Demonstrated that the size of a program affects Fault
Interaction
Conclusions


     Take Home Message

  Fault Interaction is prevalent
 Fault Obfuscation is prevalent
We need to adapt our techniques
Thank You!


This work was partially funded by:




University of California, Irvine

More Related Content

Viewers also liked

ERA - Measuring Disruption from Software Evolution Activities Using Graph-Bas...
ERA - Measuring Disruption from Software Evolution Activities Using Graph-Bas...ERA - Measuring Disruption from Software Evolution Activities Using Graph-Bas...
ERA - Measuring Disruption from Software Evolution Activities Using Graph-Bas...
ICSM 2011
 
Traceability - Structural Conformance Checking with Design Tests: An Evaluati...
Traceability - Structural Conformance Checking with Design Tests: An Evaluati...Traceability - Structural Conformance Checking with Design Tests: An Evaluati...
Traceability - Structural Conformance Checking with Design Tests: An Evaluati...
ICSM 2011
 
Metrics - Using Source Code Metrics to Predict Change-Prone Java Interfaces
Metrics - Using Source Code Metrics to Predict Change-Prone Java InterfacesMetrics - Using Source Code Metrics to Predict Change-Prone Java Interfaces
Metrics - Using Source Code Metrics to Predict Change-Prone Java Interfaces
ICSM 2011
 
Natural Language Analysis - Mining Java Class Naming Conventions
Natural Language Analysis - Mining Java Class Naming ConventionsNatural Language Analysis - Mining Java Class Naming Conventions
Natural Language Analysis - Mining Java Class Naming Conventions
ICSM 2011
 
ERA - Measuring Maintainability of Spreadsheets in the Wild
ERA - Measuring Maintainability of Spreadsheets in the Wild ERA - Measuring Maintainability of Spreadsheets in the Wild
ERA - Measuring Maintainability of Spreadsheets in the Wild
ICSM 2011
 
ERA - Tracking Technical Debt
ERA - Tracking Technical DebtERA - Tracking Technical Debt
ERA - Tracking Technical Debt
ICSM 2011
 
Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...
Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...
Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...
ICSM 2011
 
Reliability and Quality - Predicting post-release defects using pre-release f...
Reliability and Quality - Predicting post-release defects using pre-release f...Reliability and Quality - Predicting post-release defects using pre-release f...
Reliability and Quality - Predicting post-release defects using pre-release f...
ICSM 2011
 
Metrics - You can't control the unfamiliar
Metrics - You can't control the unfamiliarMetrics - You can't control the unfamiliar
Metrics - You can't control the unfamiliar
ICSM 2011
 
Industry - The Evolution of Information Systems. A Case Study on Document Man...
Industry - The Evolution of Information Systems. A Case Study on Document Man...Industry - The Evolution of Information Systems. A Case Study on Document Man...
Industry - The Evolution of Information Systems. A Case Study on Document Man...
ICSM 2011
 
Impact Analysis - ImpactScale: Quantifying Change Impact to Predict Faults in...
Impact Analysis - ImpactScale: Quantifying Change Impact to Predict Faults in...Impact Analysis - ImpactScale: Quantifying Change Impact to Predict Faults in...
Impact Analysis - ImpactScale: Quantifying Change Impact to Predict Faults in...
ICSM 2011
 
Components - Crossing the Boundaries while Analyzing Heterogeneous Component-...
Components - Crossing the Boundaries while Analyzing Heterogeneous Component-...Components - Crossing the Boundaries while Analyzing Heterogeneous Component-...
Components - Crossing the Boundaries while Analyzing Heterogeneous Component-...
ICSM 2011
 
Natural Language Analysis - Expanding Identifiers to Normalize Source Code Vo...
Natural Language Analysis - Expanding Identifiers to Normalize Source Code Vo...Natural Language Analysis - Expanding Identifiers to Normalize Source Code Vo...
Natural Language Analysis - Expanding Identifiers to Normalize Source Code Vo...
ICSM 2011
 
Components - Graph Based Detection of Library API Limitations
Components - Graph Based Detection of Library API LimitationsComponents - Graph Based Detection of Library API Limitations
Components - Graph Based Detection of Library API Limitations
ICSM 2011
 
Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...
Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...
Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...
ICSM 2011
 
Industry - Precise Detection of Un-Initialized Variables in Large, Real-life ...
Industry - Precise Detection of Un-Initialized Variables in Large, Real-life ...Industry - Precise Detection of Un-Initialized Variables in Large, Real-life ...
Industry - Precise Detection of Un-Initialized Variables in Large, Real-life ...
ICSM 2011
 
Migration and Refactoring - Identifying Overly Strong Conditions in Refactori...
Migration and Refactoring - Identifying Overly Strong Conditions in Refactori...Migration and Refactoring - Identifying Overly Strong Conditions in Refactori...
Migration and Refactoring - Identifying Overly Strong Conditions in Refactori...
ICSM 2011
 
Industry - Estimating software maintenance effort from use cases an indu...
Industry - Estimating software maintenance effort from use cases an      indu...Industry - Estimating software maintenance effort from use cases an      indu...
Industry - Estimating software maintenance effort from use cases an indu...
ICSM 2011
 
Postdoc Symposium - Abram Hindle
Postdoc Symposium - Abram HindlePostdoc Symposium - Abram Hindle
Postdoc Symposium - Abram Hindle
ICSM 2011
 
Industry - Relating Developers' Concepts and Artefact Vocabulary in a Financ...
Industry -  Relating Developers' Concepts and Artefact Vocabulary in a Financ...Industry -  Relating Developers' Concepts and Artefact Vocabulary in a Financ...
Industry - Relating Developers' Concepts and Artefact Vocabulary in a Financ...
ICSM 2011
 

Viewers also liked (20)

ERA - Measuring Disruption from Software Evolution Activities Using Graph-Bas...
ERA - Measuring Disruption from Software Evolution Activities Using Graph-Bas...ERA - Measuring Disruption from Software Evolution Activities Using Graph-Bas...
ERA - Measuring Disruption from Software Evolution Activities Using Graph-Bas...
 
Traceability - Structural Conformance Checking with Design Tests: An Evaluati...
Traceability - Structural Conformance Checking with Design Tests: An Evaluati...Traceability - Structural Conformance Checking with Design Tests: An Evaluati...
Traceability - Structural Conformance Checking with Design Tests: An Evaluati...
 
Metrics - Using Source Code Metrics to Predict Change-Prone Java Interfaces
Metrics - Using Source Code Metrics to Predict Change-Prone Java InterfacesMetrics - Using Source Code Metrics to Predict Change-Prone Java Interfaces
Metrics - Using Source Code Metrics to Predict Change-Prone Java Interfaces
 
Natural Language Analysis - Mining Java Class Naming Conventions
Natural Language Analysis - Mining Java Class Naming ConventionsNatural Language Analysis - Mining Java Class Naming Conventions
Natural Language Analysis - Mining Java Class Naming Conventions
 
ERA - Measuring Maintainability of Spreadsheets in the Wild
ERA - Measuring Maintainability of Spreadsheets in the Wild ERA - Measuring Maintainability of Spreadsheets in the Wild
ERA - Measuring Maintainability of Spreadsheets in the Wild
 
ERA - Tracking Technical Debt
ERA - Tracking Technical DebtERA - Tracking Technical Debt
ERA - Tracking Technical Debt
 
Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...
Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...
Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...
 
Reliability and Quality - Predicting post-release defects using pre-release f...
Reliability and Quality - Predicting post-release defects using pre-release f...Reliability and Quality - Predicting post-release defects using pre-release f...
Reliability and Quality - Predicting post-release defects using pre-release f...
 
Metrics - You can't control the unfamiliar
Metrics - You can't control the unfamiliarMetrics - You can't control the unfamiliar
Metrics - You can't control the unfamiliar
 
Industry - The Evolution of Information Systems. A Case Study on Document Man...
Industry - The Evolution of Information Systems. A Case Study on Document Man...Industry - The Evolution of Information Systems. A Case Study on Document Man...
Industry - The Evolution of Information Systems. A Case Study on Document Man...
 
Impact Analysis - ImpactScale: Quantifying Change Impact to Predict Faults in...
Impact Analysis - ImpactScale: Quantifying Change Impact to Predict Faults in...Impact Analysis - ImpactScale: Quantifying Change Impact to Predict Faults in...
Impact Analysis - ImpactScale: Quantifying Change Impact to Predict Faults in...
 
Components - Crossing the Boundaries while Analyzing Heterogeneous Component-...
Components - Crossing the Boundaries while Analyzing Heterogeneous Component-...Components - Crossing the Boundaries while Analyzing Heterogeneous Component-...
Components - Crossing the Boundaries while Analyzing Heterogeneous Component-...
 
Natural Language Analysis - Expanding Identifiers to Normalize Source Code Vo...
Natural Language Analysis - Expanding Identifiers to Normalize Source Code Vo...Natural Language Analysis - Expanding Identifiers to Normalize Source Code Vo...
Natural Language Analysis - Expanding Identifiers to Normalize Source Code Vo...
 
Components - Graph Based Detection of Library API Limitations
Components - Graph Based Detection of Library API LimitationsComponents - Graph Based Detection of Library API Limitations
Components - Graph Based Detection of Library API Limitations
 
Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...
Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...
Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...
 
Industry - Precise Detection of Un-Initialized Variables in Large, Real-life ...
Industry - Precise Detection of Un-Initialized Variables in Large, Real-life ...Industry - Precise Detection of Un-Initialized Variables in Large, Real-life ...
Industry - Precise Detection of Un-Initialized Variables in Large, Real-life ...
 
Migration and Refactoring - Identifying Overly Strong Conditions in Refactori...
Migration and Refactoring - Identifying Overly Strong Conditions in Refactori...Migration and Refactoring - Identifying Overly Strong Conditions in Refactori...
Migration and Refactoring - Identifying Overly Strong Conditions in Refactori...
 
Industry - Estimating software maintenance effort from use cases an indu...
Industry - Estimating software maintenance effort from use cases an      indu...Industry - Estimating software maintenance effort from use cases an      indu...
Industry - Estimating software maintenance effort from use cases an indu...
 
Postdoc Symposium - Abram Hindle
Postdoc Symposium - Abram HindlePostdoc Symposium - Abram Hindle
Postdoc Symposium - Abram Hindle
 
Industry - Relating Developers' Concepts and Artefact Vocabulary in a Financ...
Industry -  Relating Developers' Concepts and Artefact Vocabulary in a Financ...Industry -  Relating Developers' Concepts and Artefact Vocabulary in a Financ...
Industry - Relating Developers' Concepts and Artefact Vocabulary in a Financ...
 

Recently uploaded

Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
Zilliz
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 

Recently uploaded (20)

Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 

Faults and Regression Testing - Fault interaction and its repercussions

  • 1. Fault Interaction and its Repercussions Nicholas DiGiuseppe James A. Jones UC Irvine Spider Lab
  • 2. Fault Interaction Defined 4 Types of Interaction Pass/Fail Independence Obfuscation Synergy Multi-Type
  • 3. Fault Interaction Defined 4 Types of Interaction Pass/Fail Independence Obfuscation Synergy Multi-Type
  • 4. Fault Interaction Defined 4 Types of Interaction Pass/Fail Independence Obfuscation Synergy Multi-Type
  • 5. Fault Interaction Defined 4 Types of Interaction Pass/Fail Independence Obfuscation Synergy Multi-Type
  • 6. We Need More Fault Understanding Conferences: ASE, FSE, ICSE, ICSM, ICST, ISSTA Years: 2008–2009 27 Fault Localization = 2.25 per conference per year 4 Fault Behavior = 0.333 per conference per year
  • 7. Motivating Example X = input [0] - 2 Y = input [0] - 2 If (X == Y) print 1 else print 0 Expected Actual Pass/Fail Results Results Status Test Case 1: input [0,0] 1 1 Pass Test Case 2: input [2,0] 0 1 Fail
  • 8. Motivating Example X = input [0] - 2 Y = input [1] / 2 If (X == Y) print 1 else print 0 Expected Actual Pass/Fail Results Results Status Test Case 1: input [0,0] 1 0 Fail Test Case 2: input [2,0] 0 1 Fail
  • 9. Motivating Example X = input [0] * 2 Y = input [1] / 2 If (X == Y) print 1 else print 0 Expected Actual Pass/Fail Results Results Status Test Case 1: input [0,0] 1 1 Pass Test Case 2: input [2,0] 0 0 Pass
  • 10. Our Experiment Flex Gzip Replace Schedule Sed Space Total 1 Fault 21 20 25 20 20 33 139 2 Faults 189 182 185 165 188 200 1109 3 Faults 502 505 598 500 660 200 2965 4 Faults 1000 1000 700 500 950 200 4350 5 Faults 1000 1000 700 500 950 200 4350 17 Faults 1000 1000 700 500 950 200 4350 Total Versions 14,712 14,707 10,608 7,685 14,168 3,233 65,113 Size of Test Suite 527 214 5,542 2,650 363 13,527 22,733 Number of 7,753,224 3,147,298 58,798,536 17,673,600 6,253,984 43,732,791 138,239,433 Executions
  • 11. Our Experiment Flex Gzip Replace Schedule Sed Space Total 1 Fault 21 20 25 20 20 33 139 2 Faults 189 182 185 165 188 200 1109 3 Faults 502 505 598 500 660 200 2965 4 Faults 1000 1000 700 500 950 200 4350 5 Faults 1000 1000 700 500 950 200 4350 17 Faults 1000 1000 700 500 950 200 4350 Total Versions Total Versions 14,712 14,707 10,608 65,113 7,68514,168 3,233 65,113 Size of Test Suite 527 214 5,542 2,650 363 13,527 22,733 Number of Executions 138,239,433 Number of Executions 7,753,224 3,147,298 58,798,536 17,673,600 6,253,984 43,732,791 138,239,433
  • 12. a Results 1.0 1.0 Obfuscation Multi Type 1.0 0.8 0.8 0.8 Percentage of Interaction Percentage of Interaction Percentage of Interaction 0.6 0.6 Synergy Independence 0.6 0.4 0.4 0.4 0.2 0.2 0.2 0.0 0.0 0.0 00 11 22 33 44 55 66 77 88 99 10 11 12 13 14 15 16 17 10 11 12 13 14 15 16 17 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 The Quantity of Faults The Quantity of Faults The Quantity of Faults 1.0 1.0 0.8 0.8 Percentage of Interaction Percentage of Interaction 0.6 0.6 0.4 0.4 0.2 0.2 0.0 0.0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 The Quantity of Faults The Quantity of Faults 1.0 1.0 0.8 0.8 Percentage of Interaction Percentage of Interaction 0.6 0.6 0.4 0.4 0.2 0.2 0.0 0.0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 The Quantity of Faults The Quantity of Faults
  • 13. Impact of Fault Interaction Regression Testing Fault Localization Two Faults Fix a Fault One Fault Test 1 Pass Fail Test 2 Pass Pass Test 3 Fail Pass Time Failure Clustering Run Test Fix Faults Suite in Clusters Cluster Assign Clusters Failures to Developers
  • 14. Results Continued Gzip Flex Replace Schedule Sed Space LoEC 2013 4020 242 150 2253 3651 Branches 1727 2680 182 66 2554 1190 Methods 514 1261 63 41 416 717 Data Dep 45,291 143,075 2005 1327 94,614 29,883 Control Dep 26,766 61,279 1444 1074 21,991 25,047 Total Dep 72,057 204,354 3449 2401 116,605 54,930 LoEC: 1.165 1.5 3.818 2.273 1.893 3.068 Branches LoEC: Methods 3.916 3.188 3.841 3.659 5.416 5.092 LoEC: Data 0.044 0.028 0.121 0.113 0.024 0.122 Dep LoEC: Control 0.075 0.066 0.168 0.140 0.103 0.146 Dep LoEC: Total 0.028 0.020 0.070 0.062 0.019 0.067 Dep
  • 15. Conclusions Defined Fault Interaction Demonstrated that Fault Interaction is prominent (primarily fault obfuscation) Demonstrated that Fault Interaction can have a real impact on practice and research Demonstrated that the size of a program affects Fault Interaction
  • 16. Conclusions Take Home Message Fault Interaction is prevalent Fault Obfuscation is prevalent We need to adapt our techniques
  • 17. Thank You! This work was partially funded by: University of California, Irvine