-
Notifications
You must be signed in to change notification settings - Fork 10
Home
Our coprus of public Simulink models
We are developing automated testing schemes to generate random, valid Cyber-Physical System (CPS) models to use them in differential testing of commercial CPS development tool chains (e.g. the popular MATLAB/Simulink tool chain from The MathWorks). Our tool SLforge parses modeling specifications from the vendor-provided documentations, and utilizes them to construct valid Simulink models, which can be used for randomized differential testing of Simulink. Our technique has already found 10+ confirmed bugs in the Simulink tool chain.
Tool implementation for Simulink is located under slsf
directory. Check out how to run the tool.
- Our paper Automatically Finding Bugs in a Commercial Cyber-Physical System Development Tool Chain with SLforge has been accepted in 40th International Conference on Software Engineering (ICSE) 2018; ICSE 2018 Artifacts
- Our SLforge poster has received third prize in the ACM Student Research Competition at 40th International Conference on Software Engineering (ICSE) 2018.
- Presented poster Understanding and Improving Cyber-Physical System Models and Development Tools at the Doctoral Symposium at 40th International Conference on Software Engineering (ICSE) 2018
- Presented our paper A Curated Corpus or Simulink Models for Model-based Empirical Studies at 4th International Workshop on Software Engineering for Smart Cyber-Physical Systems (SEsCPS), co-located at 40th International Conference on Software Engineering (ICSE) 2018
- Presented in the students' presentation session and tools demonstration session at Seventh Summer School on Formal Techniques, by Stanford Research Institute (SRI) International, May 2017
- Presented demo Fuzzing Cyber-Physical Systems Development Environments with CyFuzz in HSCC 2017
- Presented at the 6th Workshop on Design, Modeling, and Evaluation of Cyber Physical Systems (CyPhy'16)
- ICSE 2018 Artifacts
- Tool demo (video)
We welcome new contributors! Please check out getting started guide. We manage the project in GitHub. Development branch is random-generation
where you can find latest code. Stable code can be found in master
.
- Matlab with Simulink version R2017a. Matlab scripts can be run from either Windows or Linux.
Optional requirements:
- Python3: if you want to detect crash-bugs. Python2 might not work. Also requires Linux (We have tested the scripts in Ubuntu 14.04+) to run the Python scripts, as we have not tested them in other platforms.
- https://embed.cs.utah.edu/csmith/: if you want to generate custom blocks (see below for instructions)
- Please clone source code from (customized Csmith)[ttps://github.com/shafiul/csmith].
- To build csmith, follow official doc at https://embed.cs.utah.edu/csmith/
- If using Ubuntu: You need
m4
library (apt-get
it) - Once built, the Csmith binary is located inside
src
directory. - We have to ensure csmith executable and
include
directory is in operating system path (see below).
Adding following in your bash.rc
will add Csmith
and Matlab
executables in OS path:
export CSMITH_PATH=/path/to/csmith
export PATH=$PATH:/$CSMITH_PATH/src:path/to/matlab/binary
export C_INCLUDE_PATH=$CSMITH_PATH/runtime
export CSMITH_HOME=$CSMITH_PATH # Needed for running csmith test driver
Jump to: Home Page
This material is based upon work supported by the National Science Foundation under Grants No. 1117369, 1464311, and 1527398. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.