Automated Software Transplantation

Similar documents
Automated smart test design! and its applications in! software transplantation, improvement and android testing!

An Unsystematic Review of Genetic Improvement. David R. White University of Glasgow UCL Crest Open Workshop, Jan 2016

Babel Pidgin: SBSE Can Grow and Graft Entirely New Functionality into a Real World System

Scaling Regression Testing to Large Software Systems

Highly Scalable Multi-Objective Test Suite Minimisation Using Graphics Card

Searching for Configurations in Clone Evaluation A Replication Study

Testing and Debugging C Programming and Software Tools. N.C. State Department of Computer Science

An Extensive Study of Static Regression Test Selection in Modern Software Evolution

Automatic Repair of Real Bugs in Java: A Large-Scale Experiment on the Defects4J Dataset

Overview of SBSE. CS454, Autumn 2017 Shin Yoo

Amortised Optimisation as a Means to Achieve Genetic Improvement

JenkinsPipelineUnit. Test your Continuous Delivery Pipeline. Ozan Gunalp - Emmanuel Quincerot

The Quest for Cheaper Variable Tracking in GCC Alexandre Oliva

Exceptions Programming 1 C# Programming. Rob Miles

Exceptions. Exceptions. Exceptional Circumstances 11/25/2013

Developer Recommendation for Crowdsourced Software Development Tasks

Testing Django Configurations Using Combinatorial Interaction Testing

TRANSACTIONS ON SOFTWARE ENGINEERING, VOL. X, NO. X, MONTH YEAR 1

Testing, code coverage and static analysis. COSC345 Software Engineering

OSSPolice - Identifying Open-Source License Violation and 1-day Security Risk at Large Scale

RELIABLE SOFTWARE SYSTEMS

Multi-Objective Higher Order Mutation Testing with Genetic Programming

Counterexample Guided Inductive Optimization Applied to Mobile Robot Path Planning SBR/LARS 2017

Evolving Human Competitive Research Spectra-Based Note Fault Localisation Techniques

Video Encoding with. Multicore Processors. March 29, 2007 REAL TIME HD

A CP approach of the variability testing of software product lines

A Serializability Violation Detector for Shared-Memory Server Programs

Programming Multicore Systems

Test Automation. 20 December 2017

CNIT 127: Exploit Development. Ch 2: Stack Overflows in Linux

4. Jump to *RA 4. StackGuard 5. Execute code 5. Instruction Set Randomization 6. Make system call 6. System call Randomization

Aria VMX Emulation Framework

Software Testing 2. OOD and Testability. White box vs Black box Testing. Software Testing 2 Semester 1, 2006

Evolving a CUDA Kernel from an nvidia Template

Genetic improvement of software: a case study

Automatically Finding Patches Using Genetic Programming. Westley Weimer, Claire Le Goues, ThanVu Nguyen, Stephanie Forrest

Checkpointing using DMTCP, Condor, Matlab and FReD

Research compiler that will become Scala 3 Type system internals redesigned, inspired by DOT, but externally very similar More info:

Microsoft SAGE and LLVM KLEE. Julian Cohen Manual and Automatic Program Analysis

arxiv: v1 [cs.se] 1 Mar 2017

Java Software Solutions for AP Computer Science 3rd Edition, Lewis et al. 2011

Install Vlc Manually Ubuntu

CREATIVE BUILD GUIDE LOWRIDER

Optimized architectures of CABAC codec for IA-32-, DSP- and FPGAbased

Automatic Error Elimination by Horizontal Code Transfer Across Multiple Applications

MINTS: A General Framework and Tool for Supporting Test-suite Minimization

Automatically Finding Patches Using Genetic Programming

Test Factoring: Focusing test suites on the task at hand

Lecture 20. Delta Debugging Regression Testing. EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim

Crawlability Metrics for Web Applications

Intel Parallel Studio XE 2015 Composer Edition for Linux* Installation Guide and Release Notes

Cost of Concurrency in Hybrid Transactional Memory. Trevor Brown (University of Toronto) Srivatsan Ravi (Purdue University)

Regression testing for the effective upgrade of an automatic track protection system

Design of a High Speed CAVLC Encoder and Decoder with Parallel Data Path

Approximate Computing Is Dead; Long Live Approximate Computing. Adrian Sampson Cornell

DSPACE: LISA Methodology

KLEE: Effective Testing of Systems Programs Cristian Cadar

KLEE Workshop Feeding the Fuzzers. with KLEE. Marek Zmysłowski MOBILE SECURITY TEAM R&D INSTITUTE POLAND

Towards Automatic Cost Model Discovery for Combinatorial Interaction Testing

Masternode Setup Guide Local Wallet with VPS Server

Be Conservative: Enhancing Failure Diagnosis with Proactive Logging

Hardware Software Co-design and SoC. Neeraj Goel IIT Delhi

Chromium Blink on Wayland with HW accelerated video playback using Gstreamer

Call Paths for Pin Tools

Directed Test Suite Augmentation

Measuring Z-stage accuracy using a force sensor

Genetic Improvement Demo: count blue pixels Goal: reduced runtime

HLS Authoring Update. Media #WWDC17. Eryk Vershen, AVFoundation Engineer

Memory & Thread Debugger

Augmenting a C++/PLI/VCS Based Verification Environment with SystemC

HOMI: Searching Higher Order Mutants for Software Improvement

Combining Bug Detection and Test Case Generation

Dynamic Inference of Abstract Types

Lab-1: Profiling/Optimizing Video Decoder Using ADS. National Chiao Tung University Chun-Jen Tsai 3/3/2011

Opening Mobile Phones to Multimodal Interaction - The Multimodal Hub Approach

CSCE 463/612: Networks and Distributed Processing Homework 1 Part 2 (25 pts) Due date: 1/29/19

KClone: A Proposed Approach to Fast Precise Code Clone Detection

EE458 - Embedded Systems Lecture 4 Embedded Devel.

Enhancing cloud energy models for optimizing datacenters efficiency.

Acceleration of Virtual Machine Live Migration on QEMU/KVM by Reusing VM Memory

VOCEWEB R&D Center CTO 이재규

Midterm Wednesday Oct. 27, 7pm, room 142

Kitsune: Efficient, General-Purpose Dynamic Software Updating for C

Performance Tuning NGINX

High-Level Synthesis of Programmable Hardware Accelerators Considering Potential Varieties

Quantifying and Assessing the Merge of Cloned Web-Based System: An Exploratory Study

FFmpeg The Media Swiss Army Knife. Jess Portnoy Kaltura, Inc

Open2Test Test Automation Framework Introduction - TestPartner

Source level debugging. October 18, 2016

texdoc 2.0 An update on creating LaTeX documents from within Stata Example 1

Early Performance-Cost Estimation of Application-Specific Data Path Pipelining

SOFTWARE MAINTENANCE AND EVOLUTION --- REFACTORING FOR ASYNC --- CS563 WEEK 3 - THU

More performance options

picoq: Parallel Regression Proving for Large-Scale Verification Projects

Evolving a CUDA Kernel from an nvidia Template

Analyzing the Product Line Adequacy of Existing Components

Safe Reactive Programming: the FunLoft Proposal

DownloadToshiba satellite a350 10a drivers. Get file exe GdipRecordMetafileStream AUDIOSES. Toshiba satellite a350 10a drivers

Fixing software bugs in 10 minutes or less using evolutionary computation

Unable to import. ive read the docs/searched forums Posted by BuddyElkor - 05 May :02

Transcription:

Automated Software Transplantation Earl T. Mark Yue Alexandru Justyna Barr Harman Jia Marginean Petke CREST, University College London

Why Autotransplantation? ~100 players Why not handle H.264? Video Player Check open source repositories Start from scratch

Related Work Manual Code Transplants Clone Detection Code Migration In-Situ Code Reusal Dependence Analysis Feature Location Automatic Error Fixing Code Salvaging Autotransplantation Feature Extraction In-Situ Code Reuse Synchronising Manual Transplants Automatic Replay Copy- Paste

Related Work Miles et al.: In situ reuse of logically extracted functional components In-Situ Code Reusal Manual Code Transplants Debugger Automatic Error Fixing Binary Organ Autotransplantation Running Program

Related Work Sidiroglou-Douskos et al.: Automatic Error Elimination by Multi-Application Code Transfer Manual Code Transplants Automatic Error Fixing In-Situ Code Reusal Donors Autotransplantation

Related Work Autotransplantation Manual Code Transplants In-Situ Code Reusal Automatic Error Fixing

Human Organ Transplantation

Automated Software Transplantation Donor Manual Work: Organ Entry V ENTRY Organ O Organ s Test Suite Organ s Test Suite Implantation Point

μtrans Donor Stage 1: Static Analysis Stage 2: Genetic Programming Stage 3: Organ Implantation Organ s Test Suite Beneficiary

Stage 1 Static Analysis Vein Donor Organ ENTRY OE H Implantation Point Matching Table Dependency Graph Donor: Stm: int x = X 10; -> : -> Decl: int int A, B, x; C

Stage 2 GP Individual S1 S2 S3 S4 S5 Sn Donor Variable ID V1 D V2 D Matching Table Variable ID (set) V3 H V4 H H V5 V1 H V2 H Genetic Programming Var Matching Stateme nts fitness(i) = M1: V1 D M2: V2 D Does it compile? S1 S7 S73 V1 H V4 H ( 1 3 (1 + TX i T + TP i T ) i 2 I C 0 i/2 I C Strong Weak Proxies: Proxies: Does it Does produce it execute the correct test cases output? without crashing?

Research Questions Acceptance Regression Tests Donor Organ RQ1: RQ2: RQ4: RQ3: Do Have Is autotransplantation we How we break about really the the added initial computational new functionality? useful? effort?

Research Questions RQ1: Do we break the initial functionality? RQ2: Have we really added new functionality? Empirical Study 15 Transplantations 300 Runs 5 Donors 3 s Case Study: H.264 Encoding Transplantation RQ3: How about the computational effort? RQ4: Is autotransplantation useful?

Validation Regression Tests Donor Acceptance Tests RQ1.1 Augmented Regression Tests RQ1.2 Acceptance Tests RQ2 Beneficiary Manual Validation

ISSTA * * Artifact Consistent * Complete * Well Documented * Easy to Reuse * Evaluated * AEC * Subjects Subjects Type Size KLOC Reg. Tests Organ Test Suite Idct Donor 2.3-3-5 Mytar Donor 0.4-4 Cflow Donor 25-6-20 Webserver Donor 1.7-3 TuxCrypt Donor 2.7-4-5 Pidgin 363 88 - Cflow 25 21 - SoX 43 157 - Case Study x264 Donor 63-5 VLC 422 27 - Minimal size: 0.4k; Max size: 422k; Average Donor: 16k; Average : 213k;

Experimental Methodology Count LOC and Setup CLOC Donor x 20 Implantation Point Organ s Test Suite OE Validation Test Suites GNU Time Ubuntu 14.10, 16 GB Ram 8 threads μscalpel Beneficiary Implantation Point Coverage Information: Gcov Organ

ISSTA * * Artifact Consistent * Complete * Well Documented * Easy to Reuse * Evaluated * AEC * Empirical Study RQ1,2 All Test Suites Donor Passed Regression Regression++ Acceptance Idct Pidgin 16 20 17 16 Mytar Pidgin 16 20 18 20 Web Pidgin 0 20 0 18 Cflow Pidgin 15 20 15 16 Tux Pidgin 15 20 17 16 Idct Cflow 16 17 16 16 Mytar Cflow 17 17 17 20 Web Cflow 0 0 0 17 Cflow Cflow 20 20 20 20 Tux Cflow 14 15 14 16 Idct SoX 15 18 17 16 Mytar SoX 17 17 17 20 Web SoX 0 0 0 17 Cflow SoX 14 16 15 14 Tux SoX 13 13 13 14 TOTAL 188/300 233/300 196/300 256/300 RQ1.1 RQ1.2 RQ2

ISSTA * * Artifact Consistent * Complete * Well Documented * Easy to Reuse * Evaluated * AEC * Empirical Study RQ3 Donor Timing Information Execution Time (minutes) Std. Dev. Idct Pidgin 5 7 97 Mytar Pidgin 3 1 65 Web Pidgin 8 5 160 Cflow Pidgin 58 16 1151 Tux Pidgin 29 10 574 Idct Cflow 3 5 59 Mytar Cflow 3 1 53 Web Cflow 5 2 102 Cflow Cflow 44 9 872 Tux Cflow 31 11 623 Idct SoX 12 17 233 Mytar SoX 3 1 60 Web SoX 7 3 132 Cflow SoX 89 53 74 Tux SoX 34 13 94 Total Average 334 (min) 10 (Average) RQ3 Total 72 (hours)

ISSTA * * Artifact Consistent * Complete * Well Documented * Easy to Reuse * Evaluated * AEC * Case Study RQ4 Second Annual MSU MPEG-4 AVC/ H.264 Codecs Comparison MSU Sixth MPEG-4 AVC/H.264 Transplant Time & Test Suites Video Codecs Comparison, Time with (hours) ~24% better Regression encoding Regression++ Acceptance than second place. H.264 26 100% 100% 100% Doom9's 2005 Codec Shoot-Out

Automated Software Transplantation μtrans D Manual Work: Organ Entry Organ s Test Suite V ENTRY O H Organ s Test Suite Donor Stage 1: Static Analysis Stage 2: Genetic Programming Stage 3: Organ Implantation Implantation Point Organ s Test Suite Beneficiary Validation ISSTA * * Artifact Consistent * Complete * Well Documented * Easy to Reuse * Evaluated * AEC * Subjects Regression Tests RQ1.a Augmented Regression Tests RQ1.b Beneficiary Donor Acceptance Tests Acceptance Tests RQ2 Manual Validation Subjects Type Size KLOC Reg. Tests Organ Test Suite Idct Donor 2.3-3-5 Mytar Donor 0.4-4 Cflow Donor 25-6-20 Webserver Donor 1.7-3 TuxCrypt Donor 2.7-4-5 Pidgin 363 88 - Cflow 25 21 - SoX 43 157 - Case Study x264 Donor 63-5 VLC 422 27 - Minimal size: 0.4k; Max size: 422k; Average Donor: 16k; Average : 213k;