SlideShare a Scribd company logo
Log-Based Slicing for
System-Level Test Cases
Salma Messaoudi1, Donghwan Shin1, Annibale Panichella1,2,
Domenico Bianculli1, and Lionel Briand1,3
1
2
3
2
Regression Testing
Introdution
• Arguably one of the most important activities in software testing
• However, its cost-effectiveness can be largely impaired by the cost of individual test cases
Quality assurance technique applied when changes are merged to an existing codebase
Test Case x
Test Case y
Test Case z
2.5 hours
4 hours
2 hours
Even if a perfect test case prioritization technique is applied,
no faults could be detected during the first few hours
3
Observation: Complex System Test Cases
Introduction
• Often very expensive (e.g., took 1h to run a single test case)
• Why?
• Trigger (and wait for) physical components that take a lot of time to complete
• Poorly designed (e.g., containing multiple test scenarios combined into a single test case)
From a collaborative industrial research project
• The execution time of the decomposed test cases would decrease
• The cost-effectiveness of test case prioritization could improve
• Furthermore, providing finer-grained information about test results would facilitate debugging
activities, such as fault localization
What if we decompose complex system test cases?!
4
Simple Idea: Program Slicing on System Test Cases
Introduction
• Decompose a complex system test case containing multiple test scenario into separate ones,
each of them with only one test scenario and its corresponding assertions
Static Slicing on line (4)
Static Slicing on line (7)
Decomposed
Test Case 1?
Decomposed
Test Case 2?
def test_example():
(1) fdm = create_fdm_setup()
(2) ref = read_csv(‘output.csv’)
(3) sim = deploy_proc(‘output.csv’)
(4) self.assertEqual(ref, sim)
(5) new = run_ic()
(6) diff = FindDiffs(ref, new, 1E-8)
(7) self.assertEqual(len(diff), 0)
Simplified Example System Test Case
5
Limitation of Static Slicing
Introduction
‘output.csv’ is written by line (1)
and read by lines (2) and (3)
Static Slicing on line (4)
Not executable due to
the missing “hidden” dependency!
def test_example():
(1) fdm = create_fdm_setup()
(2) ref = read_csv(‘output.csv’)
(3) sim = deploy_proc(‘output.csv’)
(4) self.assertEqual(ref, sim)
(5) new = run_ic()
(6) diff = FindDiffs(ref, new, 1E-8)
(7) self.assertEqual(len(diff), 0)
Example System Test Case
def test_static_01():
(2) ref = read_csv(‘output.csv’)
(3) sim = deploy_proc(‘output.csv’)
(4) self.assertEqual(ref, sim)
Sliced Test Case
6
Other Program Slicing Approaches?
Introduction
• Dynamic slicing*
• Require to instrument the source code and to collect coverage information
• Not feasible for a system composed of 3rd-party components for which the source code is not available
• Does not address the problem of “hidden” dependencies as they are not captured by code coverage
• Observation-based slicing**
• Require to run each system test case multiple times
• Not applicable for time-consuming system test cases (e.g., the ones developed by our industrial partner)
* Bogdan Korel and Janusz Laski. 1988. Dynamic program slicing. Information processing letters 29, 3 (1988), 155–163
** David Binkley, Nicolas Gold, Mark Harman, Syed Islam, Jens Krinke, and Shin Yoo. 2014. ORBS: Language-independent program slicing. In
Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering, 109–120.
7
New Idea: Leaveraging Existing Logs to Refine Static Slices
Approach
• There are test case execution logs, obtained from past regression testing sessions
• The logs include run-time information about the system under test
• There is a traceability between test case statements and log messages (if not, test cases can be instrumented)
• The log contains information on the usage of global resources (if not, a watchdog process can be used)
• We can extract the global resources accessed (e.g., files, network connections) and the actions
performed (e.g., read/write files, open/close connections) upon executing each test statement
...
20210526:10:00:01 INFO [test_example.py:line 1] write ‘output.csv’
20210526:10:00:01 INFO [test_example.py:line 1] fdm initialized
20210526:10:00:02 INFO [test_example.py:line 2] read ‘output.csv’
20210526:10:00:05 INFO [test_example.py:line 3] read ‘output.csv’
...
Example log
8
Our Approach: Decomposing System teSt caSes (DS3)
Approach
System
Test Case
System Test
Cases Logs
Candidate Sliced
Test Cases
Static Slicing
Perform static slice on assertions
1
Def-Use Info for
Global Resources
Def-Use Analysis for
Global Resources
Identify (stmt, entity, def/use)
2
Refined Sliced
Test Cases
Log-based
Slice Refinement
Add missing statements
3
Slice
Minimization
4
Final Sliced
Test Cases
DS3
9
Step 1: Backward Static Slicing
Approach
Using standard static slicing approaches
def test_example():
(1) fdm = create_fdm_setup()
(2) ref = read_csv(‘output.csv’)
(3) sim = deploy_proc(‘output.csv’)
(4) self.assertEqual(ref, sim)
(5) new = run_ic()
(6) diff = FindDiffs(ref, new, 1E-8)
(7) self.assertEqual(len(diff), 0)
Example System Test Case
def test_static_01():
(2) ref = read_csv(‘output.csv’)
(3) sim = deploy_proc(‘output.csv’)
(4) self.assertEqual(ref, sim)
Sliced Test Case 1 (based on line 4)
def test_static_02():
(2) ref = read_csv(‘output.csv’)
(5) new = run_ic()
(6) diff = FindDiffs(ref, new, 1E-8)
(7) self.assertEqual(len(diff), 0)
Sliced Test Case 2 (based on line 7)
10
Step 2: Def-Use Analysis for Global Resources
Approach
Based on the execution logs
...
20210526:10:00:01 INFO [test_example.py:line 1] write ‘output.csv’
20210526:10:00:01 INFO [test_example.py:line 1] fdm initialized
20210526:10:00:02 INFO [test_example.py:line 2] read ‘output.csv’
20210526:10:00:05 INFO [test_example.py:line 3] read ‘output.csv’
...
Example log
(line 1, ‘output.csv’, def)
(line 2, ‘output.csv’, use)
(line 3, ‘output.csv’, use)
Identify (statement, global resources, def/use)
…
Analysis Results
based on keywords
Lines 2 and 3 depends on (à) line 1
11
Step 3: Log-based Slice Refinement
Approach
To add missing “hidden” dependencies into static slices
def test_static_01():
(2) ref = read_csv(‘output.csv’)
(3) sim = deploy_proc(‘output.csv’)
(4) self.assertEqual(ref, sim)
Sliced Test Case 1 (based on line 4)
def test_static_02():
(2) ref = read_csv(‘output.csv’)
(5) new = run_ic()
(6) diff = FindDiffs(ref, new, 1E-8)
(7) self.assertEqual(len(diff), 0)
Sliced Test Case 2 (based on line 7)
def test_static_01():
(1) fdm = create_fdm_setup()
(2) ref = read_csv(‘output.csv’)
(3) sim = deploy_proc(‘output.csv’)
(4) self.assertEqual(ref, sim)
Refefined Sliced Test Case 1
def test_static_02():
(1) fdm = create_fdm_setup()
(2) ref = read_csv(‘output.csv’)
(5) new = run_ic()
(6) diff = FindDiffs(ref, new, 1E-8)
(7) self.assertEqual(len(diff), 0)
Refined Sliced Test Case 2
Lines 2, 3 à line 1
Line 2 à line 1
12
Step 4: Slice Minimization
Approach
Based on our observations in real-world codebases
Observation: If all non-assertion statements of a slice are
also in another slice, both slices share the same test
scenario, and therefore should be merged
def test_static_01():
(1) fdm = create_fdm_setup()
(2) ref = read_csv(‘output.csv’)
(3) sim = deploy_proc(‘output.csv’)
(4) self.assertEqual(ref, sim)
Refefined Sliced Test Case 1
def test_static_02():
(1) fdm = create_fdm_setup()
(2) ref = read_csv(‘output.csv’)
(5) new = run_ic()
(6) diff = FindDiffs(ref, new, 1E-8)
(7) self.assertEqual(len(diff), 0)
Refined Sliced Test Case 2
Not a subset of the other
The slices are final!
13
Evaluation
Evaluation
• Aim to evaluate following aspects of DS3:
• Slicing effectiveness (compared to vanilla static slicing)
• Execution time of sliced test cases (compared to its original)
• Test effectiveness of sliced test cases (compared to its original)
• Evaluation subjects
Programming Language Number of Test Cases
Prop Python 30
JSBSim C++ and Python 81 (76)
Table 1. Evaluation Subjects Summary
14
Research Questions
Evaluation
• RQ1: How effective is DS3 in slicing system test cases compared to standard static slicing?
• RQ2: How efficient are the slices produced by DS3 compared to the original test cases?
• RQ3: What is the code coverage and fault detection capability of the slices produced by DS3
compared to the original test cases?
15
RQ1: Slicing Effectiveness
Evaluation
• The standard static slicer has significantly lower slicing effectiveness than DS3
• Leveraging the global resource usages reported in the logs, DS3 is able to generate well-formed
slices in all cases
System # TCs Appr.
# Slices
SlicingEff
(Pass/Total)
Total Pass Fail
Prop 30
DS3 137 137 0 1.00
Static Slicer 166 40 126 0.24
JSBSim 76
DS3 84 84 0 1.00
Static Slicer 169 56 113 0.33
Table 2. Slicing Effectiveness Comparision Results
16
RQ2: Execution Time
Evaluation
• On average, the execution time of a sliced test case
(239.6s) is much less than that of the original test
case (3196.9s)
• There are some cases where the total execution
time of all slices for a system test case is greater
than that of the original test case
• Because there are the same “fixtures” shared by
multiple slices
• For some cases (e.g., TC30), even the total
execution time of all sliced test cases is much less
than that of the original
• Because the original has “expensive” statements that
actually do not have any dependencies on others
System
Test Case #Slices
Execution Time (s)
Original S-Avg S-Total
TC1 2 1139 520.0 1040
TC2 2 498 342.5 685
TC3 3 245 132.6 398
TC4 1 330 201 201
… … … … …
TC29 10 680 99.1 991
TC30 5 23231 200.8 1004
Average 4.9 3195.9 239.6 967.1
Table 3. Execution Time Results
17
RQ3: Test Effectiveness
Evaluation
• There is no significant difference, meaning sliced test cases are as effective as their original test
cases in terms of coverage and fault detection
• The minor difference is because, again, some of the original test cases include statements that actually
do not have any dependencies on others
Test Case Covered
Branches
Covered
Functions
Killed
Mutants
JSBSim
Original 5736 1831 289
Sliced 5698 1831 288
Table 4. Test Effectiveness Results
18
Conclusion
Conclusion
• DS3 can automatically slice expensive system test cases into far less expensive sliced test cases
• Slicing test cases rarely decrease the effectiveness compared to their original test cases
• Sliced test cases can be further utilized by, for example, test case prioritization and test suite
selection, to increase the cost-effectiveness of regression testing
19
Log-Based Slicing for System-Level Test Cases
@SnT_uni_lu
SnT, Interdisciplinary Centre for
Security, Reliability and Trust
Connect with us
Donghwan Shin
Research Scientist
donghwan.shin@uni.lu
Salma Messaoudi, Donghwan Shin, Annibale Panichella,
Domenico Bianculli, and Lionel Briand
Contact:

More Related Content

What's hot

Test Case Prioritization for Acceptance Testing of Cyber Physical Systems
Test Case Prioritization for Acceptance Testing of Cyber Physical SystemsTest Case Prioritization for Acceptance Testing of Cyber Physical Systems
Test Case Prioritization for Acceptance Testing of Cyber Physical Systems
Lionel Briand
 
Search-Based Robustness Testing of Data Processing Systems
Search-Based Robustness Testing of Data Processing SystemsSearch-Based Robustness Testing of Data Processing Systems
Search-Based Robustness Testing of Data Processing Systems
Lionel Briand
 
Search-driven String Constraint Solving for Vulnerability Detection
Search-driven String Constraint Solving for Vulnerability DetectionSearch-driven String Constraint Solving for Vulnerability Detection
Search-driven String Constraint Solving for Vulnerability Detection
Lionel Briand
 
STAR: Stack Trace based Automatic Crash Reproduction
STAR: Stack Trace based Automatic Crash ReproductionSTAR: Stack Trace based Automatic Crash Reproduction
STAR: Stack Trace based Automatic Crash Reproduction
Sung Kim
 
Incremental Reconfiguration of Product Specific Use Case Models for Evolving ...
Incremental Reconfiguration of Product Specific Use Case Models for Evolving ...Incremental Reconfiguration of Product Specific Use Case Models for Evolving ...
Incremental Reconfiguration of Product Specific Use Case Models for Evolving ...
Lionel Briand
 
Automated Test Suite Generation for Time-Continuous Simulink Models
Automated Test Suite Generation for Time-Continuous Simulink ModelsAutomated Test Suite Generation for Time-Continuous Simulink Models
Automated Test Suite Generation for Time-Continuous Simulink Models
Lionel Briand
 
Effective Test Suites for ! Mixed Discrete-Continuous Stateflow Controllers
Effective Test Suites for ! Mixed Discrete-Continuous Stateflow ControllersEffective Test Suites for ! Mixed Discrete-Continuous Stateflow Controllers
Effective Test Suites for ! Mixed Discrete-Continuous Stateflow Controllers
Lionel Briand
 
A Search-based Testing Approach for XML Injection Vulnerabilities in Web Appl...
A Search-based Testing Approach for XML Injection Vulnerabilities in Web Appl...A Search-based Testing Approach for XML Injection Vulnerabilities in Web Appl...
A Search-based Testing Approach for XML Injection Vulnerabilities in Web Appl...
Lionel Briand
 
Evaluating Model Testing and Model Checking for Finding Requirements Violatio...
Evaluating Model Testing and Model Checking for Finding Requirements Violatio...Evaluating Model Testing and Model Checking for Finding Requirements Violatio...
Evaluating Model Testing and Model Checking for Finding Requirements Violatio...
Lionel Briand
 
Heterogeneous Defect Prediction (

ESEC/FSE 2015)
Heterogeneous Defect Prediction (

ESEC/FSE 2015)Heterogeneous Defect Prediction (

ESEC/FSE 2015)
Heterogeneous Defect Prediction (

ESEC/FSE 2015)
Sung Kim
 
Applying Product Line Use Case Modeling ! in an Industrial Automotive Embedde...
Applying Product Line Use Case Modeling ! in an Industrial Automotive Embedde...Applying Product Line Use Case Modeling ! in an Industrial Automotive Embedde...
Applying Product Line Use Case Modeling ! in an Industrial Automotive Embedde...
Lionel Briand
 
Dissertation Defense
Dissertation DefenseDissertation Defense
Dissertation Defense
Sung Kim
 
When assertthat(you).understandUnitTesting() fails
When assertthat(you).understandUnitTesting() failsWhen assertthat(you).understandUnitTesting() fails
When assertthat(you).understandUnitTesting() fails
Martin Skurla
 
Extracting Domain Models from Natural-Language Requirements: Approach and Ind...
Extracting Domain Models from Natural-Language Requirements: Approach and Ind...Extracting Domain Models from Natural-Language Requirements: Approach and Ind...
Extracting Domain Models from Natural-Language Requirements: Approach and Ind...
Lionel Briand
 
Scalable Software Testing and Verification of Non-Functional Properties throu...
Scalable Software Testing and Verification of Non-Functional Properties throu...Scalable Software Testing and Verification of Non-Functional Properties throu...
Scalable Software Testing and Verification of Non-Functional Properties throu...
Lionel Briand
 
Testing the Untestable: Model Testing of Complex Software-Intensive Systems
Testing the Untestable: Model Testing of Complex Software-Intensive SystemsTesting the Untestable: Model Testing of Complex Software-Intensive Systems
Testing the Untestable: Model Testing of Complex Software-Intensive Systems
Lionel Briand
 
Automated Testing of Autonomous Driving Assistance Systems
Automated Testing of Autonomous Driving Assistance SystemsAutomated Testing of Autonomous Driving Assistance Systems
Automated Testing of Autonomous Driving Assistance Systems
Lionel Briand
 
Testing Dynamic Behavior in Executable Software Models - Making Cyber-physica...
Testing Dynamic Behavior in Executable Software Models - Making Cyber-physica...Testing Dynamic Behavior in Executable Software Models - Making Cyber-physica...
Testing Dynamic Behavior in Executable Software Models - Making Cyber-physica...
Lionel Briand
 
Combining genetic algoriths and constraint programming to support stress test...
Combining genetic algoriths and constraint programming to support stress test...Combining genetic algoriths and constraint programming to support stress test...
Combining genetic algoriths and constraint programming to support stress test...
Lionel Briand
 
Testing Machine Learning-enabled Systems: A Personal Perspective
Testing Machine Learning-enabled Systems: A Personal PerspectiveTesting Machine Learning-enabled Systems: A Personal Perspective
Testing Machine Learning-enabled Systems: A Personal Perspective
Lionel Briand
 

What's hot (20)

Test Case Prioritization for Acceptance Testing of Cyber Physical Systems
Test Case Prioritization for Acceptance Testing of Cyber Physical SystemsTest Case Prioritization for Acceptance Testing of Cyber Physical Systems
Test Case Prioritization for Acceptance Testing of Cyber Physical Systems
 
Search-Based Robustness Testing of Data Processing Systems
Search-Based Robustness Testing of Data Processing SystemsSearch-Based Robustness Testing of Data Processing Systems
Search-Based Robustness Testing of Data Processing Systems
 
Search-driven String Constraint Solving for Vulnerability Detection
Search-driven String Constraint Solving for Vulnerability DetectionSearch-driven String Constraint Solving for Vulnerability Detection
Search-driven String Constraint Solving for Vulnerability Detection
 
STAR: Stack Trace based Automatic Crash Reproduction
STAR: Stack Trace based Automatic Crash ReproductionSTAR: Stack Trace based Automatic Crash Reproduction
STAR: Stack Trace based Automatic Crash Reproduction
 
Incremental Reconfiguration of Product Specific Use Case Models for Evolving ...
Incremental Reconfiguration of Product Specific Use Case Models for Evolving ...Incremental Reconfiguration of Product Specific Use Case Models for Evolving ...
Incremental Reconfiguration of Product Specific Use Case Models for Evolving ...
 
Automated Test Suite Generation for Time-Continuous Simulink Models
Automated Test Suite Generation for Time-Continuous Simulink ModelsAutomated Test Suite Generation for Time-Continuous Simulink Models
Automated Test Suite Generation for Time-Continuous Simulink Models
 
Effective Test Suites for ! Mixed Discrete-Continuous Stateflow Controllers
Effective Test Suites for ! Mixed Discrete-Continuous Stateflow ControllersEffective Test Suites for ! Mixed Discrete-Continuous Stateflow Controllers
Effective Test Suites for ! Mixed Discrete-Continuous Stateflow Controllers
 
A Search-based Testing Approach for XML Injection Vulnerabilities in Web Appl...
A Search-based Testing Approach for XML Injection Vulnerabilities in Web Appl...A Search-based Testing Approach for XML Injection Vulnerabilities in Web Appl...
A Search-based Testing Approach for XML Injection Vulnerabilities in Web Appl...
 
Evaluating Model Testing and Model Checking for Finding Requirements Violatio...
Evaluating Model Testing and Model Checking for Finding Requirements Violatio...Evaluating Model Testing and Model Checking for Finding Requirements Violatio...
Evaluating Model Testing and Model Checking for Finding Requirements Violatio...
 
Heterogeneous Defect Prediction (

ESEC/FSE 2015)
Heterogeneous Defect Prediction (

ESEC/FSE 2015)Heterogeneous Defect Prediction (

ESEC/FSE 2015)
Heterogeneous Defect Prediction (

ESEC/FSE 2015)
 
Applying Product Line Use Case Modeling ! in an Industrial Automotive Embedde...
Applying Product Line Use Case Modeling ! in an Industrial Automotive Embedde...Applying Product Line Use Case Modeling ! in an Industrial Automotive Embedde...
Applying Product Line Use Case Modeling ! in an Industrial Automotive Embedde...
 
Dissertation Defense
Dissertation DefenseDissertation Defense
Dissertation Defense
 
When assertthat(you).understandUnitTesting() fails
When assertthat(you).understandUnitTesting() failsWhen assertthat(you).understandUnitTesting() fails
When assertthat(you).understandUnitTesting() fails
 
Extracting Domain Models from Natural-Language Requirements: Approach and Ind...
Extracting Domain Models from Natural-Language Requirements: Approach and Ind...Extracting Domain Models from Natural-Language Requirements: Approach and Ind...
Extracting Domain Models from Natural-Language Requirements: Approach and Ind...
 
Scalable Software Testing and Verification of Non-Functional Properties throu...
Scalable Software Testing and Verification of Non-Functional Properties throu...Scalable Software Testing and Verification of Non-Functional Properties throu...
Scalable Software Testing and Verification of Non-Functional Properties throu...
 
Testing the Untestable: Model Testing of Complex Software-Intensive Systems
Testing the Untestable: Model Testing of Complex Software-Intensive SystemsTesting the Untestable: Model Testing of Complex Software-Intensive Systems
Testing the Untestable: Model Testing of Complex Software-Intensive Systems
 
Automated Testing of Autonomous Driving Assistance Systems
Automated Testing of Autonomous Driving Assistance SystemsAutomated Testing of Autonomous Driving Assistance Systems
Automated Testing of Autonomous Driving Assistance Systems
 
Testing Dynamic Behavior in Executable Software Models - Making Cyber-physica...
Testing Dynamic Behavior in Executable Software Models - Making Cyber-physica...Testing Dynamic Behavior in Executable Software Models - Making Cyber-physica...
Testing Dynamic Behavior in Executable Software Models - Making Cyber-physica...
 
Combining genetic algoriths and constraint programming to support stress test...
Combining genetic algoriths and constraint programming to support stress test...Combining genetic algoriths and constraint programming to support stress test...
Combining genetic algoriths and constraint programming to support stress test...
 
Testing Machine Learning-enabled Systems: A Personal Perspective
Testing Machine Learning-enabled Systems: A Personal PerspectiveTesting Machine Learning-enabled Systems: A Personal Perspective
Testing Machine Learning-enabled Systems: A Personal Perspective
 

Similar to Log-Based Slicing for System-Level Test Cases

VTU 5TH SEM CSE OPERATING SYSTEMS SOLVED PAPERS
VTU 5TH SEM CSE OPERATING SYSTEMS SOLVED PAPERSVTU 5TH SEM CSE OPERATING SYSTEMS SOLVED PAPERS
VTU 5TH SEM CSE OPERATING SYSTEMS SOLVED PAPERS
vtunotesbysree
 
TMPA-2017: Regression Testing with Semiautomatic Test Selection for Auditing ...
TMPA-2017: Regression Testing with Semiautomatic Test Selection for Auditing ...TMPA-2017: Regression Testing with Semiautomatic Test Selection for Auditing ...
TMPA-2017: Regression Testing with Semiautomatic Test Selection for Auditing ...
Iosif Itkin
 
ISTQB / ISEB Foundation Exam Practice -1
ISTQB / ISEB Foundation Exam Practice -1ISTQB / ISEB Foundation Exam Practice -1
ISTQB / ISEB Foundation Exam Practice -1Yogindernath Gupta
 
Test automation principles, terminologies and implementations
Test automation principles, terminologies and implementationsTest automation principles, terminologies and implementations
Test automation principles, terminologies and implementations
Steven Li
 
ISTQB, ISEB Lecture Notes
ISTQB, ISEB Lecture NotesISTQB, ISEB Lecture Notes
ISTQB, ISEB Lecture Notes
onsoftwaretest
 
Webinar: Performance Tuning + Optimization
Webinar: Performance Tuning + OptimizationWebinar: Performance Tuning + Optimization
Webinar: Performance Tuning + Optimization
MongoDB
 
11 whiteboxtesting
11 whiteboxtesting11 whiteboxtesting
11 whiteboxtesting
asifusman1998
 
Solr Troubleshooting - TreeMap approach
Solr Troubleshooting - TreeMap approachSolr Troubleshooting - TreeMap approach
Solr Troubleshooting - TreeMap approach
Alexandre Rafalovitch
 
Solr Troubleshooting - Treemap Approach: Presented by Alexandre Rafolovitch, ...
Solr Troubleshooting - Treemap Approach: Presented by Alexandre Rafolovitch, ...Solr Troubleshooting - Treemap Approach: Presented by Alexandre Rafolovitch, ...
Solr Troubleshooting - Treemap Approach: Presented by Alexandre Rafolovitch, ...
Lucidworks
 
Advanced NDISTest options
Advanced NDISTest optionsAdvanced NDISTest options
Advanced NDISTest optionsYan Vugenfirer
 
Integration Group - Robot Framework
Integration Group - Robot Framework Integration Group - Robot Framework
Integration Group - Robot Framework
OpenDaylight
 
Container Performance Analysis
Container Performance AnalysisContainer Performance Analysis
Container Performance Analysis
Brendan Gregg
 
Container Performance Analysis Brendan Gregg, Netflix
Container Performance Analysis Brendan Gregg, NetflixContainer Performance Analysis Brendan Gregg, Netflix
Container Performance Analysis Brendan Gregg, Netflix
Docker, Inc.
 
Testing 101
Testing 101Testing 101
Testing 101
Noam Barkai
 
202110 SESUG 49 UNIX X Command Tips and Tricks
202110 SESUG 49 UNIX X Command Tips and Tricks202110 SESUG 49 UNIX X Command Tips and Tricks
202110 SESUG 49 UNIX X Command Tips and Tricks
dhorvath
 
Scaling Security Threat Detection with Apache Spark and Databricks
Scaling Security Threat Detection with Apache Spark and DatabricksScaling Security Threat Detection with Apache Spark and Databricks
Scaling Security Threat Detection with Apache Spark and Databricks
Databricks
 
2016 10-04: tdd++: tdd made easier
2016 10-04: tdd++: tdd made easier2016 10-04: tdd++: tdd made easier
2016 10-04: tdd++: tdd made easier
Christian Hujer
 
Concurrency: Mutual Exclusion and Synchronization
Concurrency: Mutual Exclusion and SynchronizationConcurrency: Mutual Exclusion and Synchronization
Concurrency: Mutual Exclusion and Synchronization
Anas Ebrahim
 
Python advanced 3.the python std lib by example – system related modules
Python advanced 3.the python std lib by example – system related modulesPython advanced 3.the python std lib by example – system related modules
Python advanced 3.the python std lib by example – system related modulesJohn(Qiang) Zhang
 

Similar to Log-Based Slicing for System-Level Test Cases (20)

VTU 5TH SEM CSE OPERATING SYSTEMS SOLVED PAPERS
VTU 5TH SEM CSE OPERATING SYSTEMS SOLVED PAPERSVTU 5TH SEM CSE OPERATING SYSTEMS SOLVED PAPERS
VTU 5TH SEM CSE OPERATING SYSTEMS SOLVED PAPERS
 
BIRTE-13-Kawashima
BIRTE-13-KawashimaBIRTE-13-Kawashima
BIRTE-13-Kawashima
 
TMPA-2017: Regression Testing with Semiautomatic Test Selection for Auditing ...
TMPA-2017: Regression Testing with Semiautomatic Test Selection for Auditing ...TMPA-2017: Regression Testing with Semiautomatic Test Selection for Auditing ...
TMPA-2017: Regression Testing with Semiautomatic Test Selection for Auditing ...
 
ISTQB / ISEB Foundation Exam Practice -1
ISTQB / ISEB Foundation Exam Practice -1ISTQB / ISEB Foundation Exam Practice -1
ISTQB / ISEB Foundation Exam Practice -1
 
Test automation principles, terminologies and implementations
Test automation principles, terminologies and implementationsTest automation principles, terminologies and implementations
Test automation principles, terminologies and implementations
 
ISTQB, ISEB Lecture Notes
ISTQB, ISEB Lecture NotesISTQB, ISEB Lecture Notes
ISTQB, ISEB Lecture Notes
 
Webinar: Performance Tuning + Optimization
Webinar: Performance Tuning + OptimizationWebinar: Performance Tuning + Optimization
Webinar: Performance Tuning + Optimization
 
11 whiteboxtesting
11 whiteboxtesting11 whiteboxtesting
11 whiteboxtesting
 
Solr Troubleshooting - TreeMap approach
Solr Troubleshooting - TreeMap approachSolr Troubleshooting - TreeMap approach
Solr Troubleshooting - TreeMap approach
 
Solr Troubleshooting - Treemap Approach: Presented by Alexandre Rafolovitch, ...
Solr Troubleshooting - Treemap Approach: Presented by Alexandre Rafolovitch, ...Solr Troubleshooting - Treemap Approach: Presented by Alexandre Rafolovitch, ...
Solr Troubleshooting - Treemap Approach: Presented by Alexandre Rafolovitch, ...
 
Advanced NDISTest options
Advanced NDISTest optionsAdvanced NDISTest options
Advanced NDISTest options
 
Integration Group - Robot Framework
Integration Group - Robot Framework Integration Group - Robot Framework
Integration Group - Robot Framework
 
Container Performance Analysis
Container Performance AnalysisContainer Performance Analysis
Container Performance Analysis
 
Container Performance Analysis Brendan Gregg, Netflix
Container Performance Analysis Brendan Gregg, NetflixContainer Performance Analysis Brendan Gregg, Netflix
Container Performance Analysis Brendan Gregg, Netflix
 
Testing 101
Testing 101Testing 101
Testing 101
 
202110 SESUG 49 UNIX X Command Tips and Tricks
202110 SESUG 49 UNIX X Command Tips and Tricks202110 SESUG 49 UNIX X Command Tips and Tricks
202110 SESUG 49 UNIX X Command Tips and Tricks
 
Scaling Security Threat Detection with Apache Spark and Databricks
Scaling Security Threat Detection with Apache Spark and DatabricksScaling Security Threat Detection with Apache Spark and Databricks
Scaling Security Threat Detection with Apache Spark and Databricks
 
2016 10-04: tdd++: tdd made easier
2016 10-04: tdd++: tdd made easier2016 10-04: tdd++: tdd made easier
2016 10-04: tdd++: tdd made easier
 
Concurrency: Mutual Exclusion and Synchronization
Concurrency: Mutual Exclusion and SynchronizationConcurrency: Mutual Exclusion and Synchronization
Concurrency: Mutual Exclusion and Synchronization
 
Python advanced 3.the python std lib by example – system related modules
Python advanced 3.the python std lib by example – system related modulesPython advanced 3.the python std lib by example – system related modules
Python advanced 3.the python std lib by example – system related modules
 

More from Lionel Briand

Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
Lionel Briand
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
Lionel Briand
 
Metamorphic Testing for Web System Security
Metamorphic Testing for Web System SecurityMetamorphic Testing for Web System Security
Metamorphic Testing for Web System Security
Lionel Briand
 
Simulator-based Explanation and Debugging of Hazard-triggering Events in DNN-...
Simulator-based Explanation and Debugging of Hazard-triggering Events in DNN-...Simulator-based Explanation and Debugging of Hazard-triggering Events in DNN-...
Simulator-based Explanation and Debugging of Hazard-triggering Events in DNN-...
Lionel Briand
 
Fuzzing for CPS Mutation Testing
Fuzzing for CPS Mutation TestingFuzzing for CPS Mutation Testing
Fuzzing for CPS Mutation Testing
Lionel Briand
 
Data-driven Mutation Analysis for Cyber-Physical Systems
Data-driven Mutation Analysis for Cyber-Physical SystemsData-driven Mutation Analysis for Cyber-Physical Systems
Data-driven Mutation Analysis for Cyber-Physical Systems
Lionel Briand
 
Many-Objective Reinforcement Learning for Online Testing of DNN-Enabled Systems
Many-Objective Reinforcement Learning for Online Testing of DNN-Enabled SystemsMany-Objective Reinforcement Learning for Online Testing of DNN-Enabled Systems
Many-Objective Reinforcement Learning for Online Testing of DNN-Enabled Systems
Lionel Briand
 
ATM: Black-box Test Case Minimization based on Test Code Similarity and Evolu...
ATM: Black-box Test Case Minimization based on Test Code Similarity and Evolu...ATM: Black-box Test Case Minimization based on Test Code Similarity and Evolu...
ATM: Black-box Test Case Minimization based on Test Code Similarity and Evolu...
Lionel Briand
 
Black-box Safety Analysis and Retraining of DNNs based on Feature Extraction ...
Black-box Safety Analysis and Retraining of DNNs based on Feature Extraction ...Black-box Safety Analysis and Retraining of DNNs based on Feature Extraction ...
Black-box Safety Analysis and Retraining of DNNs based on Feature Extraction ...
Lionel Briand
 
PRINS: Scalable Model Inference for Component-based System Logs
PRINS: Scalable Model Inference for Component-based System LogsPRINS: Scalable Model Inference for Component-based System Logs
PRINS: Scalable Model Inference for Component-based System Logs
Lionel Briand
 
Revisiting the Notion of Diversity in Software Testing
Revisiting the Notion of Diversity in Software TestingRevisiting the Notion of Diversity in Software Testing
Revisiting the Notion of Diversity in Software Testing
Lionel Briand
 
Applications of Search-based Software Testing to Trustworthy Artificial Intel...
Applications of Search-based Software Testing to Trustworthy Artificial Intel...Applications of Search-based Software Testing to Trustworthy Artificial Intel...
Applications of Search-based Software Testing to Trustworthy Artificial Intel...
Lionel Briand
 
Autonomous Systems: How to Address the Dilemma between Autonomy and Safety
Autonomous Systems: How to Address the Dilemma between Autonomy and SafetyAutonomous Systems: How to Address the Dilemma between Autonomy and Safety
Autonomous Systems: How to Address the Dilemma between Autonomy and Safety
Lionel Briand
 
Mathematicians, Social Scientists, or Engineers? The Split Minds of Software ...
Mathematicians, Social Scientists, or Engineers? The Split Minds of Software ...Mathematicians, Social Scientists, or Engineers? The Split Minds of Software ...
Mathematicians, Social Scientists, or Engineers? The Split Minds of Software ...
Lionel Briand
 
Reinforcement Learning for Test Case Prioritization
Reinforcement Learning for Test Case PrioritizationReinforcement Learning for Test Case Prioritization
Reinforcement Learning for Test Case Prioritization
Lionel Briand
 
Mutation Analysis for Cyber-Physical Systems: Scalable Solutions and Results ...
Mutation Analysis for Cyber-Physical Systems: Scalable Solutions and Results ...Mutation Analysis for Cyber-Physical Systems: Scalable Solutions and Results ...
Mutation Analysis for Cyber-Physical Systems: Scalable Solutions and Results ...
Lionel Briand
 
On Systematically Building a Controlled Natural Language for Functional Requi...
On Systematically Building a Controlled Natural Language for Functional Requi...On Systematically Building a Controlled Natural Language for Functional Requi...
On Systematically Building a Controlled Natural Language for Functional Requi...
Lionel Briand
 
Efficient Online Testing for DNN-Enabled Systems using Surrogate-Assisted and...
Efficient Online Testing for DNN-Enabled Systems using Surrogate-Assisted and...Efficient Online Testing for DNN-Enabled Systems using Surrogate-Assisted and...
Efficient Online Testing for DNN-Enabled Systems using Surrogate-Assisted and...
Lionel Briand
 
Guidelines for Assessing the Accuracy of Log Message Template Identification ...
Guidelines for Assessing the Accuracy of Log Message Template Identification ...Guidelines for Assessing the Accuracy of Log Message Template Identification ...
Guidelines for Assessing the Accuracy of Log Message Template Identification ...
Lionel Briand
 
A Theoretical Framework for Understanding the Relationship between Log Parsin...
A Theoretical Framework for Understanding the Relationship between Log Parsin...A Theoretical Framework for Understanding the Relationship between Log Parsin...
A Theoretical Framework for Understanding the Relationship between Log Parsin...
Lionel Briand
 

More from Lionel Briand (20)

Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
Metamorphic Testing for Web System Security
Metamorphic Testing for Web System SecurityMetamorphic Testing for Web System Security
Metamorphic Testing for Web System Security
 
Simulator-based Explanation and Debugging of Hazard-triggering Events in DNN-...
Simulator-based Explanation and Debugging of Hazard-triggering Events in DNN-...Simulator-based Explanation and Debugging of Hazard-triggering Events in DNN-...
Simulator-based Explanation and Debugging of Hazard-triggering Events in DNN-...
 
Fuzzing for CPS Mutation Testing
Fuzzing for CPS Mutation TestingFuzzing for CPS Mutation Testing
Fuzzing for CPS Mutation Testing
 
Data-driven Mutation Analysis for Cyber-Physical Systems
Data-driven Mutation Analysis for Cyber-Physical SystemsData-driven Mutation Analysis for Cyber-Physical Systems
Data-driven Mutation Analysis for Cyber-Physical Systems
 
Many-Objective Reinforcement Learning for Online Testing of DNN-Enabled Systems
Many-Objective Reinforcement Learning for Online Testing of DNN-Enabled SystemsMany-Objective Reinforcement Learning for Online Testing of DNN-Enabled Systems
Many-Objective Reinforcement Learning for Online Testing of DNN-Enabled Systems
 
ATM: Black-box Test Case Minimization based on Test Code Similarity and Evolu...
ATM: Black-box Test Case Minimization based on Test Code Similarity and Evolu...ATM: Black-box Test Case Minimization based on Test Code Similarity and Evolu...
ATM: Black-box Test Case Minimization based on Test Code Similarity and Evolu...
 
Black-box Safety Analysis and Retraining of DNNs based on Feature Extraction ...
Black-box Safety Analysis and Retraining of DNNs based on Feature Extraction ...Black-box Safety Analysis and Retraining of DNNs based on Feature Extraction ...
Black-box Safety Analysis and Retraining of DNNs based on Feature Extraction ...
 
PRINS: Scalable Model Inference for Component-based System Logs
PRINS: Scalable Model Inference for Component-based System LogsPRINS: Scalable Model Inference for Component-based System Logs
PRINS: Scalable Model Inference for Component-based System Logs
 
Revisiting the Notion of Diversity in Software Testing
Revisiting the Notion of Diversity in Software TestingRevisiting the Notion of Diversity in Software Testing
Revisiting the Notion of Diversity in Software Testing
 
Applications of Search-based Software Testing to Trustworthy Artificial Intel...
Applications of Search-based Software Testing to Trustworthy Artificial Intel...Applications of Search-based Software Testing to Trustworthy Artificial Intel...
Applications of Search-based Software Testing to Trustworthy Artificial Intel...
 
Autonomous Systems: How to Address the Dilemma between Autonomy and Safety
Autonomous Systems: How to Address the Dilemma between Autonomy and SafetyAutonomous Systems: How to Address the Dilemma between Autonomy and Safety
Autonomous Systems: How to Address the Dilemma between Autonomy and Safety
 
Mathematicians, Social Scientists, or Engineers? The Split Minds of Software ...
Mathematicians, Social Scientists, or Engineers? The Split Minds of Software ...Mathematicians, Social Scientists, or Engineers? The Split Minds of Software ...
Mathematicians, Social Scientists, or Engineers? The Split Minds of Software ...
 
Reinforcement Learning for Test Case Prioritization
Reinforcement Learning for Test Case PrioritizationReinforcement Learning for Test Case Prioritization
Reinforcement Learning for Test Case Prioritization
 
Mutation Analysis for Cyber-Physical Systems: Scalable Solutions and Results ...
Mutation Analysis for Cyber-Physical Systems: Scalable Solutions and Results ...Mutation Analysis for Cyber-Physical Systems: Scalable Solutions and Results ...
Mutation Analysis for Cyber-Physical Systems: Scalable Solutions and Results ...
 
On Systematically Building a Controlled Natural Language for Functional Requi...
On Systematically Building a Controlled Natural Language for Functional Requi...On Systematically Building a Controlled Natural Language for Functional Requi...
On Systematically Building a Controlled Natural Language for Functional Requi...
 
Efficient Online Testing for DNN-Enabled Systems using Surrogate-Assisted and...
Efficient Online Testing for DNN-Enabled Systems using Surrogate-Assisted and...Efficient Online Testing for DNN-Enabled Systems using Surrogate-Assisted and...
Efficient Online Testing for DNN-Enabled Systems using Surrogate-Assisted and...
 
Guidelines for Assessing the Accuracy of Log Message Template Identification ...
Guidelines for Assessing the Accuracy of Log Message Template Identification ...Guidelines for Assessing the Accuracy of Log Message Template Identification ...
Guidelines for Assessing the Accuracy of Log Message Template Identification ...
 
A Theoretical Framework for Understanding the Relationship between Log Parsin...
A Theoretical Framework for Understanding the Relationship between Log Parsin...A Theoretical Framework for Understanding the Relationship between Log Parsin...
A Theoretical Framework for Understanding the Relationship between Log Parsin...
 

Recently uploaded

2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Nidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, TipsNidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, Tips
vrstrong314
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Game Development with Unity3D (Game Development lecture 3)
Game Development  with Unity3D (Game Development lecture 3)Game Development  with Unity3D (Game Development lecture 3)
Game Development with Unity3D (Game Development lecture 3)
abdulrafaychaudhry
 
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
 

Recently uploaded (20)

2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Nidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, TipsNidhi Software Price. Fact , Costs, Tips
Nidhi Software Price. Fact , Costs, Tips
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Game Development with Unity3D (Game Development lecture 3)
Game Development  with Unity3D (Game Development lecture 3)Game Development  with Unity3D (Game Development lecture 3)
Game Development with Unity3D (Game Development lecture 3)
 
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
 

Log-Based Slicing for System-Level Test Cases

  • 1. Log-Based Slicing for System-Level Test Cases Salma Messaoudi1, Donghwan Shin1, Annibale Panichella1,2, Domenico Bianculli1, and Lionel Briand1,3 1 2 3
  • 2. 2 Regression Testing Introdution • Arguably one of the most important activities in software testing • However, its cost-effectiveness can be largely impaired by the cost of individual test cases Quality assurance technique applied when changes are merged to an existing codebase Test Case x Test Case y Test Case z 2.5 hours 4 hours 2 hours Even if a perfect test case prioritization technique is applied, no faults could be detected during the first few hours
  • 3. 3 Observation: Complex System Test Cases Introduction • Often very expensive (e.g., took 1h to run a single test case) • Why? • Trigger (and wait for) physical components that take a lot of time to complete • Poorly designed (e.g., containing multiple test scenarios combined into a single test case) From a collaborative industrial research project • The execution time of the decomposed test cases would decrease • The cost-effectiveness of test case prioritization could improve • Furthermore, providing finer-grained information about test results would facilitate debugging activities, such as fault localization What if we decompose complex system test cases?!
  • 4. 4 Simple Idea: Program Slicing on System Test Cases Introduction • Decompose a complex system test case containing multiple test scenario into separate ones, each of them with only one test scenario and its corresponding assertions Static Slicing on line (4) Static Slicing on line (7) Decomposed Test Case 1? Decomposed Test Case 2? def test_example(): (1) fdm = create_fdm_setup() (2) ref = read_csv(‘output.csv’) (3) sim = deploy_proc(‘output.csv’) (4) self.assertEqual(ref, sim) (5) new = run_ic() (6) diff = FindDiffs(ref, new, 1E-8) (7) self.assertEqual(len(diff), 0) Simplified Example System Test Case
  • 5. 5 Limitation of Static Slicing Introduction ‘output.csv’ is written by line (1) and read by lines (2) and (3) Static Slicing on line (4) Not executable due to the missing “hidden” dependency! def test_example(): (1) fdm = create_fdm_setup() (2) ref = read_csv(‘output.csv’) (3) sim = deploy_proc(‘output.csv’) (4) self.assertEqual(ref, sim) (5) new = run_ic() (6) diff = FindDiffs(ref, new, 1E-8) (7) self.assertEqual(len(diff), 0) Example System Test Case def test_static_01(): (2) ref = read_csv(‘output.csv’) (3) sim = deploy_proc(‘output.csv’) (4) self.assertEqual(ref, sim) Sliced Test Case
  • 6. 6 Other Program Slicing Approaches? Introduction • Dynamic slicing* • Require to instrument the source code and to collect coverage information • Not feasible for a system composed of 3rd-party components for which the source code is not available • Does not address the problem of “hidden” dependencies as they are not captured by code coverage • Observation-based slicing** • Require to run each system test case multiple times • Not applicable for time-consuming system test cases (e.g., the ones developed by our industrial partner) * Bogdan Korel and Janusz Laski. 1988. Dynamic program slicing. Information processing letters 29, 3 (1988), 155–163 ** David Binkley, Nicolas Gold, Mark Harman, Syed Islam, Jens Krinke, and Shin Yoo. 2014. ORBS: Language-independent program slicing. In Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering, 109–120.
  • 7. 7 New Idea: Leaveraging Existing Logs to Refine Static Slices Approach • There are test case execution logs, obtained from past regression testing sessions • The logs include run-time information about the system under test • There is a traceability between test case statements and log messages (if not, test cases can be instrumented) • The log contains information on the usage of global resources (if not, a watchdog process can be used) • We can extract the global resources accessed (e.g., files, network connections) and the actions performed (e.g., read/write files, open/close connections) upon executing each test statement ... 20210526:10:00:01 INFO [test_example.py:line 1] write ‘output.csv’ 20210526:10:00:01 INFO [test_example.py:line 1] fdm initialized 20210526:10:00:02 INFO [test_example.py:line 2] read ‘output.csv’ 20210526:10:00:05 INFO [test_example.py:line 3] read ‘output.csv’ ... Example log
  • 8. 8 Our Approach: Decomposing System teSt caSes (DS3) Approach System Test Case System Test Cases Logs Candidate Sliced Test Cases Static Slicing Perform static slice on assertions 1 Def-Use Info for Global Resources Def-Use Analysis for Global Resources Identify (stmt, entity, def/use) 2 Refined Sliced Test Cases Log-based Slice Refinement Add missing statements 3 Slice Minimization 4 Final Sliced Test Cases DS3
  • 9. 9 Step 1: Backward Static Slicing Approach Using standard static slicing approaches def test_example(): (1) fdm = create_fdm_setup() (2) ref = read_csv(‘output.csv’) (3) sim = deploy_proc(‘output.csv’) (4) self.assertEqual(ref, sim) (5) new = run_ic() (6) diff = FindDiffs(ref, new, 1E-8) (7) self.assertEqual(len(diff), 0) Example System Test Case def test_static_01(): (2) ref = read_csv(‘output.csv’) (3) sim = deploy_proc(‘output.csv’) (4) self.assertEqual(ref, sim) Sliced Test Case 1 (based on line 4) def test_static_02(): (2) ref = read_csv(‘output.csv’) (5) new = run_ic() (6) diff = FindDiffs(ref, new, 1E-8) (7) self.assertEqual(len(diff), 0) Sliced Test Case 2 (based on line 7)
  • 10. 10 Step 2: Def-Use Analysis for Global Resources Approach Based on the execution logs ... 20210526:10:00:01 INFO [test_example.py:line 1] write ‘output.csv’ 20210526:10:00:01 INFO [test_example.py:line 1] fdm initialized 20210526:10:00:02 INFO [test_example.py:line 2] read ‘output.csv’ 20210526:10:00:05 INFO [test_example.py:line 3] read ‘output.csv’ ... Example log (line 1, ‘output.csv’, def) (line 2, ‘output.csv’, use) (line 3, ‘output.csv’, use) Identify (statement, global resources, def/use) … Analysis Results based on keywords Lines 2 and 3 depends on (à) line 1
  • 11. 11 Step 3: Log-based Slice Refinement Approach To add missing “hidden” dependencies into static slices def test_static_01(): (2) ref = read_csv(‘output.csv’) (3) sim = deploy_proc(‘output.csv’) (4) self.assertEqual(ref, sim) Sliced Test Case 1 (based on line 4) def test_static_02(): (2) ref = read_csv(‘output.csv’) (5) new = run_ic() (6) diff = FindDiffs(ref, new, 1E-8) (7) self.assertEqual(len(diff), 0) Sliced Test Case 2 (based on line 7) def test_static_01(): (1) fdm = create_fdm_setup() (2) ref = read_csv(‘output.csv’) (3) sim = deploy_proc(‘output.csv’) (4) self.assertEqual(ref, sim) Refefined Sliced Test Case 1 def test_static_02(): (1) fdm = create_fdm_setup() (2) ref = read_csv(‘output.csv’) (5) new = run_ic() (6) diff = FindDiffs(ref, new, 1E-8) (7) self.assertEqual(len(diff), 0) Refined Sliced Test Case 2 Lines 2, 3 à line 1 Line 2 à line 1
  • 12. 12 Step 4: Slice Minimization Approach Based on our observations in real-world codebases Observation: If all non-assertion statements of a slice are also in another slice, both slices share the same test scenario, and therefore should be merged def test_static_01(): (1) fdm = create_fdm_setup() (2) ref = read_csv(‘output.csv’) (3) sim = deploy_proc(‘output.csv’) (4) self.assertEqual(ref, sim) Refefined Sliced Test Case 1 def test_static_02(): (1) fdm = create_fdm_setup() (2) ref = read_csv(‘output.csv’) (5) new = run_ic() (6) diff = FindDiffs(ref, new, 1E-8) (7) self.assertEqual(len(diff), 0) Refined Sliced Test Case 2 Not a subset of the other The slices are final!
  • 13. 13 Evaluation Evaluation • Aim to evaluate following aspects of DS3: • Slicing effectiveness (compared to vanilla static slicing) • Execution time of sliced test cases (compared to its original) • Test effectiveness of sliced test cases (compared to its original) • Evaluation subjects Programming Language Number of Test Cases Prop Python 30 JSBSim C++ and Python 81 (76) Table 1. Evaluation Subjects Summary
  • 14. 14 Research Questions Evaluation • RQ1: How effective is DS3 in slicing system test cases compared to standard static slicing? • RQ2: How efficient are the slices produced by DS3 compared to the original test cases? • RQ3: What is the code coverage and fault detection capability of the slices produced by DS3 compared to the original test cases?
  • 15. 15 RQ1: Slicing Effectiveness Evaluation • The standard static slicer has significantly lower slicing effectiveness than DS3 • Leveraging the global resource usages reported in the logs, DS3 is able to generate well-formed slices in all cases System # TCs Appr. # Slices SlicingEff (Pass/Total) Total Pass Fail Prop 30 DS3 137 137 0 1.00 Static Slicer 166 40 126 0.24 JSBSim 76 DS3 84 84 0 1.00 Static Slicer 169 56 113 0.33 Table 2. Slicing Effectiveness Comparision Results
  • 16. 16 RQ2: Execution Time Evaluation • On average, the execution time of a sliced test case (239.6s) is much less than that of the original test case (3196.9s) • There are some cases where the total execution time of all slices for a system test case is greater than that of the original test case • Because there are the same “fixtures” shared by multiple slices • For some cases (e.g., TC30), even the total execution time of all sliced test cases is much less than that of the original • Because the original has “expensive” statements that actually do not have any dependencies on others System Test Case #Slices Execution Time (s) Original S-Avg S-Total TC1 2 1139 520.0 1040 TC2 2 498 342.5 685 TC3 3 245 132.6 398 TC4 1 330 201 201 … … … … … TC29 10 680 99.1 991 TC30 5 23231 200.8 1004 Average 4.9 3195.9 239.6 967.1 Table 3. Execution Time Results
  • 17. 17 RQ3: Test Effectiveness Evaluation • There is no significant difference, meaning sliced test cases are as effective as their original test cases in terms of coverage and fault detection • The minor difference is because, again, some of the original test cases include statements that actually do not have any dependencies on others Test Case Covered Branches Covered Functions Killed Mutants JSBSim Original 5736 1831 289 Sliced 5698 1831 288 Table 4. Test Effectiveness Results
  • 18. 18 Conclusion Conclusion • DS3 can automatically slice expensive system test cases into far less expensive sliced test cases • Slicing test cases rarely decrease the effectiveness compared to their original test cases • Sliced test cases can be further utilized by, for example, test case prioritization and test suite selection, to increase the cost-effectiveness of regression testing
  • 19. 19 Log-Based Slicing for System-Level Test Cases @SnT_uni_lu SnT, Interdisciplinary Centre for Security, Reliability and Trust Connect with us Donghwan Shin Research Scientist donghwan.shin@uni.lu Salma Messaoudi, Donghwan Shin, Annibale Panichella, Domenico Bianculli, and Lionel Briand Contact: