Which Configuration Option Should I Change? Sai Zhang, Michael D. Ernst University of Washington Presented by: Kıvanç Muşlu.

Slides:



Advertisements
Similar presentations
Software change management
Advertisements

Delta Debugging and Model Checkers for fault localization
TaintScope: A Checksum-Aware Directed Fuzzing Tool for Automatic Software Vulnerability Detection Tielei Wang 1, Tao Wei 1, Guofei Gu 2, Wei Zou 1 1 Peking.
Software Quality Assurance Plan
Object-Oriented Software Development CS 3331 Fall 2009.
Using Programmer-Written Compiler Extensions to Catch Security Holes Authors: Ken Ashcraft and Dawson Engler Presented by : Hong Chen CS590F 2/7/2007.
1 Integrating Influence Mechanisms into Impact Analysis for Increased Precision Ben Breech Lori Pollock Mike Tegtmeyer University of Delaware Army Research.
Search Engines and Information Retrieval
Software Reliability Methods Sorin Lerner. Software reliability methods: issues What are the issues?
SIM5102 Software Evaluation
Michael Ernst, page 1 Improving Test Suites via Operational Abstraction Michael Ernst MIT Lab for Computer Science Joint.
1 Predictors of customer perceived software quality Paul Luo Li (ISRI – CMU) Audris Mockus (Avaya Research) Ping Zhang (Avaya Research)
(c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 1 Software Test and Analysis in a Nutshell.
1 Detecting Logic Vulnerabilities in E- Commerce Applications Presenter: Liu Yin Slides Adapted from Fangqi Sun Computer Science Department College of.
Software Bug Localization with Markov Logic Sai Zhang, Congle Zhang University of Washington Presented by Todd Schiller.
Automated Diagnosis of Software Configuration Errors
SEG Software Maintenance1 Software Maintenance “The modification of a software product after delivery to correct faults, to improve performance or.
Impact Analysis of Database Schema Changes Andy Maule, Wolfgang Emmerich and David S. Rosenblum London Software Systems Dept. of Computer Science, University.
Unit Testing & Defensive Programming. F-22 Raptor Fighter.
Business Process Performance Prediction on a Tracked Simulation Model Andrei Solomon, Marin Litoiu– York University.
Root Cause Analysis for HTML Presentation Failures using Search-Based Techniques Sonal Mahajan, Bailan Li, William G.J. Halfond Department of Computer.
Reverse Engineering State Machines by Interactive Grammar Inference Neil Walkinshaw, Kirill Bogdanov, Mike Holcombe, Sarah Salahuddin.
System Analysis and Design
Module CC3002 Post Implementation Issues Lecture for Week 6 AY 2013 Spring.
Software Engineering CS3003 Lecture 3 Software maintenance and evolution.
Verification and Validation Overview References: Shach, Object Oriented and Classical Software Engineering Pressman, Software Engineering: a Practitioner’s.
Change Impact Analysis for AspectJ Programs Sai Zhang, Zhongxian Gu, Yu Lin and Jianjun Zhao Shanghai Jiao Tong University.
Automatically Synthesizing SQL Queries from Input-Output Examples Sai Zhang University of Washington Joint work with: Yuyin Sun.
Mini-Project on Web Data Analysis DANIEL DEUTCH. Data Management “Data management is the development, execution and supervision of plans, policies, programs.
Bug Localization with Machine Learning Techniques Wujie Zheng
CSC-682 Cryptography & Computer Security Sound and Precise Analysis of Web Applications for Injection Vulnerabilities Pompi Rotaru Based on an article.
WebVizOr: A Fault Detection Visualization Tool for Web Applications Goal: Illustrate and evaluate the uses of WebVizOr, a new tool to aid web application.
C++ Programming Language Lecture 2 Problem Analysis and Solution Representation By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department.
CS527 Topics in Software Engineering (Software Testing and Analysis) Darko Marinov September 9, 2010.
Automatically Repairing Broken Workflows for Evolving GUI Applications Sai Zhang University of Washington Joint work with: Hao Lü, Michael D. Ernst.
CS Data Structures I Chapter 2 Principles of Programming & Software Engineering.
Chapter 3: Software Project Management Metrics
The basics of the programming process The development of programming languages to improve software development Programming languages that the average user.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
“Isolating Failure Causes through Test Case Generation “ Jeremias Rößler Gordon Fraser Andreas Zeller Alessandro Orso Presented by John-Paul Ore.
Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
1 Debugging and Syntax Errors in C++. 2 Debugging – a process of finding and fixing bugs (errors or mistakes) in a computer program.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
CISC Machine Learning for Solving Systems Problems Presented by: Suman Chander B Dept of Computer & Information Sciences University of Delaware Automatic.
When Tests Collide: Evaluating and Coping with the Impact of Test Dependence Wing Lam, Sai Zhang, Michael D. Ernst University of Washington.
1 Software Testing Strategies: Approaches, Issues, Testing Tools.
Survey of Tools to Support Safe Adaptation with Validation Alain Esteva-Ramirez School of Computing and Information Sciences Florida International University.
The Hashemite University Computer Engineering Department
Sai Zhang Michael D. Ernst Google Research University of Washington
PLC '06 Experience in Testing Compiler Optimizers Using Comparison Checking Masataka Sassa and Daijiro Sudo Dept. of Mathematical and Computing Sciences.
Automating Configuration Troubleshooting with Dynamic Information Flow Analysis Mona Attariyan Jason Flinn University of Michigan.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Software testing techniques Software testing techniques REGRESSION TESTING Presentation on the seminar Kaunas University of Technology.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
CIS-NG CASREP Information System Next Generation Shawn Baugh Amy Ramirez Amy Lee Alex Sanin Sam Avanessians.
Chapter 25 – Configuration Management 1Chapter 25 Configuration management.
Experience Report: System Log Analysis for Anomaly Detection
ICS 3UI - Introduction to Computer Science
The Development Process of Web Applications
Chapter 18 Maintaining Information Systems
Chapter 8 – Software Testing
Verification and Validation Overview
Secure Software Development: Theory and Practice
RDE: Replay DEbugging for Diagnosing Production Site Failures
Course: Module: Lesson # & Name Instructional Material 1 of 32 Lesson Delivery Mode: Lesson Duration: Document Name: 1. Professional Diploma in ERP Systems.
Jason Flinn Michael Chow, David Devecsery, Xianzheng Dou, Andrew Quinn
Dongyun Jin, Patrick Meredith, Dennis Griffith, Grigore Rosu
Outline System architecture Current work Experiments Next Steps
Review of Previous Lesson
Continuously Reasoning about Programs
Presentation transcript:

Which Configuration Option Should I Change? Sai Zhang, Michael D. Ernst University of Washington Presented by: Kıvanç Muşlu

2 Developers Users I have released a new software version … I cannot get used to the UI I do not know how to configure it …

Diagnosis of User-Fixable Software Errors Goal: –enable users to fix software errors Challenges: –Errors can be crashing or non-crashing –Users much less understand source code –Developer tools are of little use 3

4 A new software version Our previous work [ISSTA’13] Help users adapt to the new UI Users I cannot get used to the UI

5 A new software version This paper: How to help users configure the new software version (i.e., diagnosis of configuration errors) Users I do not know how to configure it

Software system often requires configuration 6 Configuration options … Configuration errors: - Users use wrong values for options - The software exhibits unintended behaviors Example: --port_num = Should be a valid integer

Configuration errors are common and severe 7 Root causes of high-severity issues in a major storage company [Yin et al, SOSP’11] Configuration errors can have disastrous impacts (downtime costs 3.6% of revenue)

Configuration errors are difficult to diagnose Error messages are absent or ambiguous –e.g., Infeasible to automatically search for a good configuration –Need to know the spec of a valid configuration option value (e.g., regex, date time, integer value range) –Huge search space −Need to specify a testing oracle for automation Cannot directly use existing debugging techniques [Zhang et al., ICSE’13] 8 ( after setting --port_num = in webs server)

Goal: diagnosing configuration errors for evolving software 9 To maintain the desired behavior on the new version Which configuration option should I change? Old version New version Requires configuration! a different output

10 Old version New version a different output Diagnosing configuration errors with ConfSuggester Our technique: ConfSuggester Suspicious configuration options … Key idea: The execution trace on the old version as the “intended behavior”

Design constraints for ConfSuggester Accessible: no assumption about user background (e.g., users cannot read or write code annotations) Easy-to-use: fully automated Portable: no changes to OS or runtime environment Accurate: few false positives 11

Outline Example A Study of Configuration Evolution The ConfSuggester Technique Evaluation Related Work Contributions 12

Outline Example A Study of Configuration Evolution The ConfSuggester Technique Evaluation Related Work Contributions 13

14 A popular performance testing tool Use Jmeter to monitor a website’s performance Managers

15 Use Jmeter to monitor a website’s performance Managers Version 2.8 Version 2.9 All regression tests passed

16 Version 2.8 Version 2.9 All regression tests passed The new version behaves as designed, but differently from a user expects. No regression bugs. Causes XML parsing error

17 Version 2.8 Version 2.9 All regression tests passed ConfSuggester Suspicious configuration options … output_format Resolve the problem : set output_format = XML

18 Version 2.8 Version 2.9 All regression tests passed

Outline Example A Study of Configuration Evolution The ConfSuggester Technique Evaluation Related Work Contributions 19

Do configuration changes arise in software evolution? 8 open-source programs versions released in the past 6 years Searched for “configuration changes”-related messages in 7022 commits and 28 change logs ‒ Count the number of changes made to configuration options

Results Configuration changes arise in every version of all software systems 21 Configuration change can lead to unexpected behaviors (details later) (394 configuration changes in total) Added Options Modified Options Deleted Options Enhance features Fix bugs Renaming Reliability

Outline Example A Study of Configuration Evolution The ConfSuggester Technique Evaluation Related Work Contributions 22

Key insights of ConfSuggester Control flow propagates most configuration options’ effects The execution traces on the old version can serve as the “intended behavior” –The control flow difference and their impacts provides diagnosis clues /* a configuration option in JMeter */ String output_format = readFromCommandLine();... if (output_format == “XML”) { saveAsXML(); } else { saveAsCSV(); } The evaluation result of this predicate affects the next instructions 23

Workflow of ConfSuggester 24 Old version New version A new trace An old trace Trace Comparison Deviated execution parts (at the predicate-level) Root Cause Analyzer … Report

Workflow of ConfSuggester 25 Old version New version A new trace An old trace Trace Comparison Deviated execution parts (at the predicate-level) Root Cause Analyzer … Report User demonstration: show the error Dynamic analysis: understand the behavior Static analysis: compute the solution

Workflow of ConfSuggester 26

User demonstration 27 Old version New version A new trace An old trace Code instrumentation, monitoring: 1.predicate execution frequency and result 2.execution of each other instruction

Execution trace comparison 28 An old trace A new trace : a predicate : a deviated predicate Ranking deviated predicates Identifying deviated predicates Matching predicates

Matching predicate across traces 29 JDiff algorithm [ Apiwattanapong’07 ] −Tolerate small changes between versions... if (output_format == “XML”) { saveAsXML(); } else { saveAsCSV(); }... Old version... if (isValidFormat(output_format) { //check validity } if (output_format == “XML”) { checkXMLParser(); saveAsXML(); } else { saveAsCSV(); }... New version

Identifying deviated predicates 30 … An old trace A new trace : a predicate : a deviated predicate a predicate p ’s behavior in an execution trace t: ϕ (p, t) = a predicate p ’s behavior difference across executions: deviation(p, t old, t new ) = | ϕ (p, t old ) - ϕ (p, t new ) | p is a deviated predicate, if deviation(p, t old, t new ) > δ Goal:

Ranking deviated predicates 31 Rank predicates by their impacts A predicate p ’s deviation impact = deviation(p, t old, t new ) × (controlled_instructions(p, t old ) + controlled_instructions(p, t new ) )... if (output_format == “XML”) { saveAsXML(); } else { saveAsCSV(); }... Old trace if(..) saveAsXML()saveAsCSV() Old trace # of instructions executed Defined in the previous slide predicate p :

Ranking deviated predicates if (output_format == “XML”) { saveAsXML(); } else { saveAsCSV(); }... if(..) saveAsXML()saveAsCSV() New trace # of instructions executed New trace predicate p : Rank predicates by their impacts A predicate p ’s deviation impact = deviation(p, t old, t new ) × (controlled_instructions(p, t old ) + controlled_instructions(p, t new ) )

Ranking deviated predicates if (output_format == “XML”) { saveAsXML(); } else { saveAsCSV(); }... if(..) saveAsXML()saveAsCSV() New trace # of instructions executed New trace predicate p : Rank predicates by their impacts A predicate p ’s deviation impact = deviation(p, t old, t new ) × (controlled_instructions(p, t old ) + controlled_instructions(p, t new ) ) Approximate the impact of a predicate’s behavior change to the subsequent program execution.

Root Cause Analyzer 34 Find configuration options affecting the deviated predicate −Using static thin slicing [Sridharan ’07] // a configuration option in JMeter String output_format =...;... if (output_format == “XML”) { saveAsXML(); } else { saveAsCSV(); } The behavior of this predicate deviates Compute a backward thin slice from here Find the affecting predicate … Report output_format

Outline Example A Study of Configuration Evolution The ConfSuggester Technique Evaluation Related Work Contributions 35

8 configuration errors from 6 subjects 36 SubjectLOC#Options∆LOC#Config errors Randoop Weka Synoptic JChord JMeter Javalanche Non-trivial code changes Reproduced from change logs and user reports.

ConfSuggester’s accuracy 37 Measure accuracy by the rank of the actual root cause in ConfSuggester’s output …

ConfSuggester’s accuracy 38 Measure accuracy by the rank of the actual root cause in ConfSuggester’s output … TechniqueAverage Root Cause Rank Baseline23.3 ConfAnalyzer [Rabkin’11]22 ConfDiagnoser [Zhang’13]15.3 ConfSuggester1.9 Baseline: ‒ Users select options in an arbitrary order ‒ Half of the total number of available options

ConfSuggester’s accuracy 39 Measure accuracy by the rank of the actual root cause in ConfSuggester’s output … TechniqueAverage Root Cause Rank Baseline23.3 ConfAnalyzer [Rabkin’11]22 ConfDiagnoser [Zhang’13]15.3 ConfSuggester1.9 ConfAnalyzer: ‒ Use program slicing for error diagnosis

ConfSuggester’s accuracy 40 Measure accuracy by the rank of the actual root cause in ConfSuggester’s output … TechniqueAverage Root Cause Rank Baseline23.3 ConfAnalyzer [Rabkin’11]22 ConfDiagnoser [Zhang’13]15.3 ConfSuggester1.9 ConfDiagnoser: ‒ Use trace comparison (on the same version) for error diagnosis

ConfSuggester’s accuracy 41 Measure accuracy by the rank of the actual root cause in ConfSuggester’s output … TechniqueAverage Root Cause Rank Baseline23.3 ConfAnalyzer [Rabkin’11]22 ConfDiagnoser [Zhang’13]15.3 ConfSuggester (this paper)1.9 ConfSuggester: -6 errors: root cause ranks 1 st -1 error: root cause ranks 3 rd -1 error: root cause ranks 6 th

ConfSuggester’s efficiency User demonstration – 6 minutes per error, on average Error diagnosis – 4 minutes per error, on average 42

Outline Example A Study of Configuration Evolution The ConfSuggester Technique Evaluation Related Work Contributions 43

Related work on configuration error diagnosis Tainting-based techniques –Dynamic tainting [Attariyan’08], static tainting [Rabkin’11] Focuses exclusively on crashing errors Search-based techniques –Delta debugging [Zeller’02], Chronus [Whitaker’04] Requires a correct state for comparison, or OS-level support Domain-specific techniques –PeerPressure [Wang’04], RangeFixer [Xiong’12] Targets a specific kind of configuration errors, and does not support a general language like Java 44 A common limitation: do not support configuration error diagnosis in software evolution.

Outline Example A Study of Configuration Evolution The ConfSuggester Technique Evaluation Related Work Contributions 45

A technique to diagnose configuration errors for evolving software Compare relevant predicate behaviors between executions from two versions The ConfSuggester tool implementation Accessible: no assumption about user background Easy-to-use: fully automated Portable: no changes to OS or runtime environment Accurate: few false positives Contributions 46 Configuration errors ConfSuggester … Report