Opentocs

ICPE '20: Proceedings of the ACM/SPEC International Conference on Performance Engineering

ICPE '20: Proceedings of the ACM/SPEC International Conference on Performance Engineering

Full Citation in the ACM Digital Library

SESSION: Keynote Talks

Developing Effective Software Productively

  • Gail C. Murphy

It is not uncommon to hear laments about how long it takes to build software systems and how often, once built, those systems fail to meet the needs and desires of users. Given that attention has been paid to how we build large software systems for over fifty years, you might wonder why we have not figured out how to build the systems people want in a reasonable amount of time. To put the problems into perspective, fifty years is half the life-span of a Galapagos turtle and many software systems may be amongst the most complex systems ever built by humans. In that light, perhaps it is not surprising that we have not figured it all out. In this talk, I will explore what productivity means to software developers, how we might track the value that is delivered in software produced by developers and how we might begin to think about measuring the productive delivery of effective software.

Continue reading

ICPE '20: Companion of the ACM/SPEC International Conference on Performance Engineering

ICPE '20: Companion of the ACM/SPEC International Conference on Performance Engineering

Full Citation in the ACM Digital Library

SESSION: The Eighth International Workshop on Load Testing and Benchmarking of Software Systems (LTB'20)

Migrating a Recommendation System to Cloud Using ML Workflow

  • Dheeraj Chahal
  • Ravi Ojha
  • Sharod Roy Choudhury
  • Manoj Nambiar

Inference is the production stage of machine learning workflow in which a trained model is used to infer or predict with real world data. A recommendation system improves customer experience by displaying most relevant items based on historical behavior of a customer. Machine learning models built for recommendation systems are deployed either on-premise or migrated to a cloud for inference in real time or batch. A recommendation system should be cost effective while honoring service level agreements (SLAs). In this work we discuss on-premise implementation of our recommendation system called iPrescribe. We show a methodology to migrate on-premise implementation of recommendation system to a cloud using ML workflow. We also present our study on performance of recommendation system model when deployed on different types of virtual instances.

Continue reading

ICPE '21: Proceedings of the ACM/SPEC International Conference on Performance Engineering

ICPE '21: Proceedings of the ACM/SPEC International Conference on Performance Engineering

Full Citation in the ACM Digital Library

SESSION: Session 1: Testing, Measurement and Profiling

ConfProf: White-Box Performance Profiling of Configuration Options

  • Xue Han
  • Tingting Yu
  • Michael Pradel

Modern software systems are highly customizable through configuration options. The sheer size of the configuration space makes it challenging to understand the performance influence of individual configuration options and their interactions under a specific usage scenario. Software with poor performance may lead to low system throughput and long response time. This paper presents ConfProf, a white-box performance profiling technique with a focus on configuration options. ConfProf helps developers understand how configuration options and their interactions influence the performance of a software system. The approach combines dynamic program analysis, machine learning, and feedback-directed configuration sampling to profile the program execution and analyze the performance influence of configuration options. Compared to existing approaches, ConfProf uses a white-box approach combined with machine learning to rank performance-influencing configuration options from execution traces. We evaluate the approach with 13 scenarios of four real-world, highly-configurable software systems. The results show that ConfProf ranks performance-influencing configuration options with high accuracy and outperform a state of the art technique.

Continue reading

ICPE '21: Companion of the ACM/SPEC International Conference on Performance Engineering

ICPE '21: Companion of the ACM/SPEC International Conference on Performance Engineering

Full Citation in the ACM Digital Library

SESSION: Auto-DaSP 2021 Workshop

An Online Approach to Determine Correlation between Data Streams

  • Devesh Kumar Lal
  • Ugrasen Suman

Real time stream processing demands processed outcomes in minimal latency. Massive streams are generated in real time where linear relationship is determined using correlation. Existing approaches are used for correlating static data sets such as, Kandell, Pearson, Spearman etc. These approaches are insufficient to solve noise free online correlation. In this paper, we propose an online ordinal correlation approach having functionalities such as single pass, avoiding recalculation from scratch, removing outliers, and low memory requirements. In this approach, Compare Reduce Aggregate (CRA) algorithm is used for determining association between two feature vectors in real time using single scanning technique. Time and space complexities in CRA algorithm are measured as O(n) and O(1), respectively. This algorithm is used for reducing noise or error in a stream and used as a replacement of rank based correlation. It is recommended to have distinct elements and less variability in the streams for gaining maximum performance of this algorithm.

Continue reading

ICPE '22: Proceedings of the 2022 ACM/SPEC on International Conference on Performance Engineering

ICPE '22: Proceedings of the 2022 ACM/SPEC on International Conference on Performance Engineering

Full Citation in the ACM Digital Library

SESSION: Keynote Talks

Data Science Driven Methods for Sustainable and Failure Tolerant Edge Systems

  • Ivona Brandic

Nowadays we experience a paradigm shift in our society, where every item around us is becoming a computer facilitating life-changing applications like self-driving cars, tele-medicine, precision agriculture or virtual reality. On one hand, for the execution of such resource demanding applications we need powerful IT facilities. On the other hand, the requirements often include latencies below 100 ms or even below 10 ms -- what is called ''tactile internet''. To facilitate low latency computation has to be placed in the vicinity of the end users by utilizing the concept of Edge Computing. In this talk we explain the challenges of Edge systems in combination with tactile internet. We discuss the recent problems of geographically distributed machine learning applications and novel approaches to balance competing priorities like the energy efficiency and the staleness of the machine learning models. Available failure resilience mechanisms designed for Cloud computing or generic distributed systems cannot be applied to Edge systems due to timeliness, hyper heterogeneity and resource scarcity. Therefore, we discuss a novel machine learning based mechanism that evaluates the failure resilience of a service deployed redundantly on the edge infrastructure. Our approach learns the spatiotemporal dependencies between edge server failures and combines them with the topological information to incorporate link failures by utilizing the concept of the Dynamic Bayesian Networks (DBNs). Eventually, we infer the probability that a certain set of servers fails or disconnects concurrently during service runtime.

Continue reading

ICSE 2014- Proceedings of the 36th International Conference on Software Engineering

ICSE 2014- Proceedings of the 36th International Conference on Software Engineering

Full Citation in the ACM Digital Library

SESSION: Perspectives on Software Engineering

Cowboys, ankle sprains, and keepers of quality: how is video game development different from software development?

  • Emerson Murphy-Hill
  • Thomas Zimmermann
  • Nachiappan Nagappan

Analyze this! 145 questions for data scientists in software engineering

  • Andrew Begel
  • Thomas Zimmermann

The dimensions of software engineering success

  • Paul Ralph
  • Paul Kelly

How do professionals perceive legacy systems and software modernization?

  • Ravi Khadka
  • Belfrit V. Batlajery
  • Amir M. Saeidi
  • Slinger Jansen
  • Jurriaan Hage

SESSION: Testing 1

SimRT: an automated framework to support regression testing for data races

  • Tingting Yu
  • Witawas Srisa-an
  • Gregg Rothermel

Performance regression testing target prioritization via performance risk analysis

  • Peng Huang
  • Xiao Ma
  • Dongcai Shen
  • Yuanyuan Zhou

Code coverage for suite evaluation by developers

  • Rahul Gopinath
  • Carlos Jensen
  • Alex Groce

Time pressure: a controlled experiment of test case development and requirements review

  • Mika V. Mäntylä
  • Kai Petersen
  • Timo O. A. Lehtinen
  • Casper Lassenius

SESSION: Modeling

Verifying component and connector models against crosscutting structural views

  • Shahar Maoz
  • Jan Oliver Ringert
  • Bernhard Rumpe

TradeMaker: automated dynamic analysis of synthesized tradespaces

  • Hamid Bagheri
  • Chong Tang
  • Kevin Sullivan

Lifting model transformations to product lines

  • Rick Salay
  • Michalis Famelis
  • Julia Rubin
  • Alessio Di Sandro
  • Marsha Chechik

Automated goal operationalisation based on interpolation and SAT solving

  • Renzo Degiovanni
  • Dalal Alrajeh
  • Nazareno Aguirre
  • Sebastian Uchitel

SESSION: Configuration, Variability, and Clones

Mining configuration constraints: static analyses and empirical results

  • Sarah Nadi
  • Thorsten Berger
  • Christian Kästner
  • Krzysztof Czarnecki

Which configuration option should I change?

  • Sai Zhang
  • Michael D. Ernst

Detecting differences across multiple instances of code clones

  • Yun Lin
  • Zhenchang Xing
  • Yinxing Xue
  • Yang Liu
  • Xin Peng
  • Jun Sun
  • Wenyun Zhao

Achieving accuracy and scalability simultaneously in detecting application clones on Android markets

  • Kai Chen
  • Peng Liu
  • Yingjun Zhang

SESSION: Social Aspects of Software Engineering

Two's company, three's a crowd: a case study of crowdsourcing software development

  • Klaas-Jan Stol
  • Brian Fitzgerald

Does latitude hurt while longitude kills? geographical and temporal separation in a large scale software development project

  • Patrick Wagstrom
  • Subhajit Datta

Software engineering at the speed of light: how developers stay current using twitter

  • Leif Singer
  • Fernando Figueira Filho
  • Margaret-Anne Storey

Building it together: synchronous development in OSS

  • Qi Xuan
  • Vladimir Filkov

SESSION: Repair

A critical review of "automatic patch generation learned from human-written patches": essay on the problem statement and the evaluation of automatic software repair

  • Martin Monperrus

Data-guided repair of selection statements

  • Divya Gopinath
  • Sarfraz Khurshid
  • Diptikalyan Saha
  • Satish Chandra

The strength of random search on automated program repair

  • Yuhua Qi
  • Xiaoguang Mao
  • Yan Lei
  • Ziying Dai
  • Chengsong Wang

MintHint: automated synthesis of repair hints

  • Shalini Kaleeswaran
  • Varun Tulsian
  • Aditya Kanade
  • Alessandro Orso

SESSION: Formal Analysis

Mining behavior models from user-intensive web applications

  • Carlo Ghezzi
  • Mauro Pezzè
  • Michele Sama
  • Giordano Tamburrelli

Reviser: efficiently updating IDE-/IFDS-based data-flow analyses in response to incremental program changes

  • Steven Arzt
  • Eric Bodden

Automated design of self-adaptive software with control-theoretical formal guarantees

  • Antonio Filieri
  • Henry Hoffmann
  • Martina Maggio

Perturbation analysis of stochastic systems with empirical distribution parameters

  • Guoxin Su
  • David S. Rosenblum

SESSION: Configuration Management

How do centralized and distributed version control systems impact software changes?

  • Caius Brindescu
  • Mihai Codoban
  • Sergii Shmarkatiuk
  • Danny Dig

Transition from centralized to decentralized version control systems: a case study on reasons, barriers, and outcomes

  • Kıvanç Muşlu
  • Christian Bird
  • Nachiappan Nagappan
  • Jacek Czerwonka

An exploratory study of the pull-based software development model

  • Georgios Gousios
  • Martin Pinzger
  • Arie van Deursen

Influence of social and technical factors for evaluating contribution in GitHub

  • Jason Tsay
  • Laura Dabbish
  • James Herbsleb

SESSION: Software Understanding

Understanding JavaScript event-based interactions

  • Saba Alimadadi
  • Sheldon Sequeira
  • Ali Mesbah
  • Karthik Pattabiraman

Understanding understanding source code with functional magnetic resonance imaging

  • Janet Siegmund
  • Christian Kästner
  • Sven Apel
  • Chris Parnin
  • Anja Bethmann
  • Thomas Leich
  • Gunter Saake
  • André Brechmann

Improving automated source code summarization via an eye-tracking study of programmers

  • Paige Rodeghero
  • Collin McMillan
  • Paul W. McBurney
  • Nigel Bosch
  • Sidney D'Mello

Using psycho-physiological measures to assess task difficulty in software development

  • Thomas Fritz
  • Andrew Begel
  • Sebastian C. Müller
  • Serap Yigit-Elliott
  • Manuela Züger

SESSION: Prediction

Dictionary learning based software defect prediction

  • Xiao-Yuan Jing
  • Shi Ying
  • Zhi-Wu Zhang
  • Shan-Shan Wu
  • Jin Liu

Comparing static bug finders and statistical prediction

  • Foyzur Rahman
  • Sameer Khatri
  • Earl T. Barr
  • Premkumar Devanbu

Coverage is not strongly correlated with test suite effectiveness

  • Laura Inozemtseva
  • Reid Holmes

How to make best use of cross-company data in software effort estimation?

  • Leandro L. Minku
  • Xin Yao

SESSION: Concurrency

CARE: cache guided deterministic replay for concurrent Java programs

  • Yanyan Jiang
  • Tianxiao Gu
  • Chang Xu
  • Xiaoxing Ma
  • Jian Lu

Inferring models of concurrent systems from logs of their behavior with CSight

  • Ivan Beschastnikh
  • Yuriy Brun
  • Michael D. Ernst
  • Arvind Krishnamurthy

Unleashing concurrency for irregular data structures

  • Peng Liu
  • Charles Zhang

ConLock: a constraint-based approach to dynamic checking on deadlocks in multithreaded programs

  • Yan Cai
  • Shangru Wu
  • W. K. Chan

SESSION: Apps and Energy

SEEDS: a software engineer's energy-optimization decision support framework

  • Irene Manotas
  • Lori Pollock
  • James Clause

APE: an annotation language and middleware for energy-efficient mobile application development

  • Nima Nikzad
  • Octav Chipara
  • William G. Griswold

Making web applications more energy efficient for OLED smartphones

  • Ding Li
  • Angelica Huyen Tran
  • William G. J. Halfond

SESSION: Testing 2

Micro execution

  • Patrice Godefroid

Unit test virtualization with VMVM

  • Jonathan Bell
  • Gail Kaiser

Interpolated n-grams for model based testing

  • Paolo Tonella
  • Roberto Tiella
  • Cu Duy Nguyen

An analysis of the relationship between conditional entropy and failed error propagation in software testing

  • Kelly Androutsopoulos
  • David Clark
  • Haitao Dan
  • Robert M. Hierons
  • Mark Harman

SESSION: Code Contracts, Invariants, and Robustness

Trading robustness for maintainability: an empirical study of evolving c# programs

  • Nélio Cacho
  • Thiago César
  • Thomas Filipe
  • Eliezio Soares
  • Arthur Cassio
  • Rafael Souza
  • Israel Garcia
  • Eiji Adachi Barbosa
  • Alessandro Garcia

Case studies and tools for contract specifications

  • Todd W. Schiller
  • Kellen Donohue
  • Forrest Coward
  • Michael D. Ernst

Using dynamic analysis to generate disjunctive invariants

  • ThanhVu Nguyen
  • Deepak Kapur
  • Westley Weimer
  • Stephanie Forrest

Inductive verification of data model invariants for web applications

  • Ivan Bocić
  • Tevfik Bultan

SESSION: Search and APIs

How do API documentation and static typing affect API usability?

  • Stefan Endrikat
  • Stefan Hanenberg
  • Romain Robbes
  • Andreas Stefik

Live API documentation

  • Siddharth Subramanian
  • Laura Inozemtseva
  • Reid Holmes

CodeHint: dynamic and interactive synthesis of code snippets

  • Joel Galenson
  • Philip Reames
  • Rastislav Bodik
  • Björn Hartmann
  • Koushik Sen

Spotting working code examples

  • Iman Keivanloo
  • Juergen Rilling
  • Ying Zou

SESSION: Adaptive Systems

Self-adaptation through incremental generative model transformations at runtime

  • Bihuan Chen
  • Xin Peng
  • Yijun Yu
  • Bashar Nuseibeh
  • Wenyun Zhao

Hope for the best, prepare for the worst: multi-tier control for adaptive systems

  • Nicolas D'Ippolito
  • Víctor Braberman
  • Jeff Kramer
  • Jeff Magee
  • Daniel Sykes
  • Sebastian Uchitel

Brownout: building more robust cloud applications

  • Cristian Klein
  • Martina Maggio
  • Karl-Erik Årzén
  • Francisco Hernández-Rodriguez

Integrating adaptive user interface capabilities in enterprise applications

  • Pierre A. Akiki
  • Arosha K. Bandara
  • Yijun Yu

SESSION: Build and Package Management

Programmers' build errors: a case study (at google)

  • Hyunmin Seo
  • Caitlin Sadowski
  • Sebastian Elbaum
  • Edward Aftandilian
  • Robert Bowdidge

Understanding and improving software build teams

  • Shaun Phillips
  • Thomas Zimmermann
  • Christian Bird

Towards efficient optimization in package management systems

  • Alexey Ignatiev
  • Mikoláš Janota
  • Joao Marques-Silva

Easing software component repository evolution

  • Jérôme Vouillon
  • Mehdi Dogguy
  • Roberto Di Cosmo

SESSION: Mining

AR-miner: mining informative reviews for developers from mobile app marketplace

  • Ning Chen
  • Jialiu Lin
  • Steven C. H. Hoi
  • Xiaokui Xiao
  • Boshen Zhang

Mining billions of AST nodes to study actual and potential usage of Java language features

  • Robert Dyer
  • Hridesh Rajan
  • Hoan Anh Nguyen
  • Tien N. Nguyen

Mining interprocedural, data-oriented usage patterns in JavaScript web applications

  • Hung Viet Nguyen
  • Hoan Anh Nguyen
  • Anh Tuan Nguyen
  • Tien N. Nguyen

Mining fine-grained code changes to detect unknown change patterns

  • Stas Negara
  • Mihai Codoban
  • Danny Dig
  • Ralph E. Johnson

SESSION: Automated Bug Detection and Repair

Detecting memory leaks through introspective dynamic behavior modelling using machine learning

  • Sangho Lee
  • Changhee Jung
  • Santosh Pande

Automated memory leak detection for production use

  • Changhee Jung
  • Sangho Lee
  • Easwaran Raman
  • Santosh Pande

Vejovis: suggesting fixes for JavaScript faults

  • Frolin S. Ocariza, Jr.
  • Karthik Pattabiraman
  • Ali Mesbah

Is spreadsheet ambiguity harmful? detecting and repairing spreadsheet smells due to ambiguous computation

  • Wensheng Dou
  • Shing-Chi Cheung
  • Jun Wei

SESSION: Requirements

Us and them: a study of privacy requirements across north america, asia, and europe

  • Swapneel Sheth
  • Gail Kaiser
  • Walid Maalej

Distilling privacy requirements for mobile applications

  • Keerthi Thomas
  • Arosha K. Bandara
  • Blaine A. Price
  • Bashar Nuseibeh

Uncertainty, risk, and information value in software requirements and architecture

  • Emmanuel Letier
  • David Stefan
  • Earl T. Barr

Requirements fixation

  • Rahul Mohanani
  • Paul Ralph
  • Ben Shreeve

SESSION: Testing and Conformance Verification

Exploring variability-aware execution for testing plugin-based web applications

  • Hung Viet Nguyen
  • Christian Kästner
  • Tien N. Nguyen

A study of equivalent and stubborn mutation operators using human analysis of equivalence

  • Xiangjuan Yao
  • Mark Harman
  • Yue Jia

Cross-checking oracles from intrinsic software redundancy

  • Antonio Carzaniga
  • Alberto Goffi
  • Alessandra Gorla
  • Andrea Mattavelli
  • Mauro Pezzè

Mind the gap: assessing the conformance of software traceability to relevant guidelines

  • Patrick Rempel
  • Patrick Mäder
  • Tobias Kuschke
  • Jane Cleland-Huang

SESSION: Modeling and Interfaces

Effects of using examples on structural model comprehension: a controlled experiment

  • Dina Zayan
  • Michał Antkiewicz
  • Krzysztof Czarnecki

Design rule spaces: a new form of architecture insight

  • Lu Xiao
  • Yuanfang Cai
  • Rick Kazman

Controlled modeling environment using flexibly-formatted spreadsheets

  • Hisashi Miyashita
  • Hideki Tai
  • Shunichi Amano

Feature maintenance with emergent interfaces

  • Márcio Ribeiro
  • Paulo Borba
  • Christian Kästner

SESSION: Apps and Verification

Detecting performance anti-patterns for applications developed using object-relational mapping

  • Tse-Hsun Chen
  • Weiyi Shang
  • Zhen Ming Jiang
  • Ahmed E. Hassan
  • Mohamed Nasser
  • Parminder Flora

Characterizing and detecting performance bugs for smartphone applications

  • Yepang Liu
  • Chang Xu
  • Shing-Chi Cheung

Checking app behavior against app descriptions

  • Alessandra Gorla
  • Ilaria Tavecchia
  • Florian Gross
  • Andreas Zeller

AsDroid: detecting stealthy behaviors in Android applications by user interface and program behavior contradiction

  • Jianjun Huang
  • Xiangyu Zhang
  • Lin Tan
  • Peng Wang
  • Bin Liang

SESSION: Symbolic Execution

Patch verification via multiversion interprocedural control flow graphs

  • Wei Le
  • Shannon D. Pattison

Property differencing for incremental checking

  • Guowei Yang
  • Sarfraz Khurshid
  • Suzette Person
  • Neha Rungta

Symbolic assume-guarantee reasoning through BDD learning

  • Fei He
  • Bow-Yaw Wang
  • Liangze Yin
  • Lei Zhu

Enhancing symbolic execution with veritesting

  • Thanassis Avgerinos
  • Alexandre Rebert
  • Sang Kil Cha
  • David Brumley

SESSION: Refactoring and Reverse Engineering

Manual refactoring changes with automated refactoring validation

  • Xi Ge
  • Emerson Murphy-Hill

Alternate refactoring paths reveal usability problems

  • Mohsen Vakilian
  • Ralph E. Johnson

A study and toolkit for asynchronous programming in c#

  • Semih Okur
  • David L. Hartveld
  • Danny Dig
  • Arie van Deursen

Reuse-oriented reverse engineering of functional components from x86 binaries

  • Dohyeong Kim
  • William N. Sumner
  • Xiangyu Zhang
  • Dongyan Xu
  • Hira Agrawal

Continue reading

ICSE '18- Proceedings of the 40th International Conference on Software Engineering

ICSE '18- Proceedings of the 40th International Conference on Software Engineering

Full Citation in the ACM Digital Library

SESSION: Software repair I

Context-aware patch generation for better automated program repair

  • Ming Wen
  • Junjie Chen
  • Rongxin Wu
  • Dan Hao
  • Shing-Chi Cheung

The effectiveness of search-based automated program repair is limited in the number of correct patches that can be successfully generated. There are two causes of such limitation. First, the search space does not contain the correct patch. Second, the search space is huge and therefore the correct patch cannot be generated (i.e., correct patches are either generated after incorrect plausible ones or not generated within the time budget).

Continue reading

ICSE '18- Proceedings of the 40th International Conference on Software Engineering: Companion Proceeedings

ICSE '18- Proceedings of the 40th International Conference on Software Engineering: Companion Proceeedings

Full Citation in the ACM Digital Library

DEMONSTRATION SESSION: Mining repositories

Perceval: software project data at your will

  • Santiago Dueñas
  • Valerio Cosentino
  • Gregorio Robles
  • Jesus M. Gonzalez-Barahona

Software development projects, in particular open source ones, heavily rely on the use of tools to support, coordinate and promote development activities. Despite their paramount value, they contribute to fragment the project data, thus challenging practitioners and researchers willing to derive insightful analytics about software projects. In this demo we present Perceval, a loyal helper able to perform automatic and incremental data gathering from almost any tool related with contributing to open source development, among others, source code management, issue tracking systems, mailing lists, forums, and social media. Perceval is an industry strong free software tool that has been widely used in Bitergia, a company devoted to offer commercial software analytics of software projects. It hides the technical complexities related to data acquisition and eases the definition of analytics. A video showcasing the main features of Perceval can be found at https://youtu.be/eH1sYF0Hdc8.

Continue reading

ICSE '20: Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering

ICSE '20: Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering

Full Citation in the ACM Digital Library

SESSION: Continuous integration

Learning-to-rank vs ranking-to-learn: strategies for regression testing in continuous integration

  • Antonia Bertolino
  • Antonio Guerriero
  • Breno Miranda
  • Roberto Pietrantuono
  • Stefano Russo

In Continuous Integration (CI), regression testing is constrained by the time between commits. This demands for careful selection and/or prioritization of test cases within test suites too large to be run entirely. To this aim, some Machine Learning (ML) techniques have been proposed, as an alternative to deterministic approaches. Two broad strategies for ML-based prioritization are learning-to-rank and what we call ranking-to-learn (i.e., reinforcement learning). Various ML algorithms can be applied in each strategy. In this paper we introduce ten of such algorithms for adoption in CI practices, and perform a comprehensive study comparing them against each other using subjects from the Apache Commons project. We analyze the influence of several features of the code under test and of the test process. The results allow to draw criteria to support testers in selecting and tuning the technique that best fits their context.

Continue reading

ICSE '20: Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering: Companion Proceedings

ICSE '20: Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering: Companion Proceedings

Full Citation in the ACM Digital Library

DEMONSTRATION SESSION: Demonstrations: Cyber-physical systems

SLEMI: finding simulink compiler bugs through equivalence modulo input (EMI)

  • Shafiul Azam Chowdhury
  • Sohil Lal Shrestha
  • Taylor T. Johnson
  • Christoph Csallner

This demo presents usage and implementation details of SLEMI. SLEMI is the first tool to automatically find compiler bugs in the widely used cyber-physical system development tool Simulink via Equivalence Modulo Input (EMI). EMI is a recent twist on differential testing that promises more efficiency. SLEMI implements several novel mutation techniques that deal with CPS language features that are not found in procedural languages. This demo also introduces a new EMI-based mutation strategy that has already found a new confirmed bug in Simulink version R2018a. To increase SLEMI's efficiency further, this paper presents parallel generation of random, valid Simulink models. A video demo of SLEMI is available at https://www.youtube.com/watch?v=oliPgOLT6eY.

Continue reading