MétaCan
Menu
Retour à la cohorte
Enregistrement W6921162394 · doi:10.6084/m9.figshare.22693525.v3

Fuzzing for CPS Mutation Testing

2023· other· en· W6921162394 sur OpenAlexaboutno aff

Notice bibliographique

RevueFigshare · 2023
Typeother
Langueen
DomaineSocial Sciences
ThématiquePublic Administration and Political Analysis
Établissements canadiensnon disponible
Organismes subventionnairesnon disponible
Mots-clésFuzz testingSymbolic executionMutationMutation testingReplication (statistics)Software testingProcess (computing)White-box testingTest caseTest strategy

Résumé

récupéré en direct d'OpenAlex

This is the replication package for the paper `Fuzzing for CPS Mutation Testing`, which is accepted by ASE 2023.<br><b>Abstract</b>Mutation testing can help reduce the risks of releasing faulty software. For such reason, it is a desired practice for the development of embedded software running in safety-critical cyber-physical systems (CPS). Unfortunately, state-of-the-art test data generation techniques for mutation testing of C and C++ software, two typical languages for CPS software, rely on symbolic execution, whose limitations often prevent its application (e.g., it cannot test black-box components).We propose a mutation testing approach that leverages fuzz testing, which has proved effective with C and C++ software. Fuzz testing automatically generates diverse test inputs that exercise program branches in a varied number of ways and, therefore, exercise statements in different program states, thus maximizing the likelihood of killing mutants, our objective.We performed an empirical assessment of our approach with software components used in satellite systems currently in orbit. Our empirical evaluation shows that mutation testing based on fuzz testing kills a significantly higher proportion of live mutants than symbolic execution (i.e., up to an additional 47 percentage points). Further, when symbolic execution cannot be applied, fuzz testing provides significant benefits (i.e., up to 41% mutants killed). Our study is the first one comparing fuzz testing and symbolic execution for mutation testing; our results provide guidance towards the development of fuzz testing tools dedicated to mutation testing.<b>Package description</b>This replication package contains all the source code for <i>MOTIF</i> and <i>SEMuP</i> and singularity images containing dependencies that we used for our experiments. The MOTIF singularity image does not include AFL++ so that we can replace it without rebuilding the image. Additionally, we provide case study packages for each subject where it is open-source. The following list is the description of each file in this package:<i>MOTIF.tar</i> : all the source codes for the <i>MOTIF</i> pipeline<i>motif_default.sif</i> : singularity image that we used for our experiments<i>AFL++4.05a.tar</i> : the version of AFL we used for our experiments<i>MLFS.tar</i> : case study package of MLFS for <i>MOTIF</i><i>ASN1.tar </i>: case study package of ASN1 for <i>MOTIF</i><i>SEMUP.tar </i>: all the source codes for the <i>SEMuP</i> pipeline<i>semup_full.sif</i> : singularity image that we used for our experiments<i>ASN1_SEMuP.tar</i> : case study package of ASN1 for <i>SEMuP</i><i>results.tar</i> : experiment results that are used in the paper<br><b>Pre-requisition</b>We use Singularity to provide the same environment for all the users. Users who work on Linux operating systems can install Singularity directly on their machines. But Windows and Mac OS users need to rely on a Linux virtual machine since Singularity only supports Linux. SyLabs, which has developed Singularity, provides Vagrant images (boxes) that are pre-installed Singularity on Linux. We recommend you install Vagrant. For the installation, please follow the guidelines from the official website: https://docs.sylabs.io/guides/3.8/admin-guide/installation.htmlNote that we used Singularity 3.8 CE version.<br><br><b>Getting Started with MOTIF</b><b>Preparing working directory</b>Download MOTIF.tar and extract them into a working directory$ wget -O MOTIF.tar https://figshare.com/ndownloader/files/41997960$ tar xf MOTIF.tar$ cd MOTIFDownload Singularity image$ wget -O containers/motif_default.sif https://figshare.com/ndownloader/files/41974680Download AFL++ (will make AFL++ directory in the working directory)$ wget -O AFL++-4.05a.tar https://figshare.com/ndownloader/files/40299817$ tar xf AFL++-4.05a.tarDownload the subject MLFS$ wget -O case_studies/MLFS.tar https://figshare.com/ndownloader/files/41974686$ tar xf case_studies/MLFS.tar -C case_studies/Download the subject ASN1$ wget -O case_studies/ASN1.tar https://figshare.com/ndownloader/files/41974683$ tar xf case_studies/ASN1.tar -C case_studies/<b>Connecting to a vagrant box (for Windows or Mac OS users)</b>The command below creates a virtual machine instance according to the Vagrantfile in the root repository. This will automatically bind the root repository to the directory /vagrant inside of the vagrant instance and connect to the vagrant instance:$ vagrant up &amp;&amp; vagrant sshMove to the bound directory, which is sharing between the vagrant instance and the host OS:[vagrant]$ cd /vagrant<b>Executing MOTIF with each subject</b>By executing run_list.py, you can do mutation testing for all the mutants that are listed in a file. The following are the example commands for the target subjects.$ ./run_list.py -c case_studies/MLFS/config-mlfs.py --singularity -J _exp1 --timeout 600 case_studies/MLFS/live_mutants all$ ./run_list.py -c case_studies/ASN1/config-asn1.py --singularity -J _exp1 --timeout 600 case_studies/ASN1/live_mutants allYou can find the results in the directories `case_studies/MLFS/_exp1` and `case_studies/ASN1/_exp1`.For more detail, please take a look at the guideline (README.md) in the MOTIF.tar.<br><br><b>Getting Started with SEMuP</b><b>Preparing working directory</b>Download MOTIF.tar and extract them into a working directory$ wget -O SEMUP.tar https://figshare.com/ndownloader/files/41998002$ tar xf SEMUP.tar$ cd SEMUPDownload singularity image$ wget -O containers/semup_full.sif https://figshare.com/ndownloader/files/40458779Download the subject ASN1$ wget -O case_studies/ASN1_SEMuP.tar https://figshare.com/ndownloader/files/41974677$ tar xf case_studies/ASN1_SEMuP.tar -C case_studies/<b>Connecting to a vagrant box (for Windows or Mac OS users)</b>We also provide a separate vagrant box for the SEMuP. Using the following commands, users can create the vagrant instance and connect. Note that /vagrant is the shared directory with the host OS.$ vagrant up &amp; vagrant ssh[vagrant]$ cd /vagrant<b>Executing SEMuP with each subject</b>By executing `run_local.sh`, you can do mutation testing for all the mutants that are listed in a file. The following are the example commands for the target subject.$ cd case_studies/ASN1case_studies/ASN1$ scripts/run_local.sh presemu ./WORKSPACE/DOWNLOADED/live_mutants ./WORKSPACE/_expLocalYou can find the results in the directory `./WORKSPACE/_expLocal`. Note that each line in the `live_mutants` file will be a mutant ID in the result directory.For more detail, please take a look at the guideline (README.md) in the SEMuP.tar.<br><br><b>Acknowledgment</b>This research was supported by ESA via a GSTP element contract (RFQ/3-17554/21/NL/AS/kkIMPROVE) and by the NSERC Discovery and Canada Research Chair programs. The authors would like to thank Thierry Titcheu Chekam to help with the development of the SEMUs pipeline.

Récupéré en direct depuis OpenAlex et désinversé. Les résumés ne sont pas conservés dans cette base de données : les index inversés représentent 8,6 Go des 9,3 Go de texte de la base, et le serveur dispose de 13 Go libres.

Comment cette classification a été obtenuedéplier

Prédiction distillée sur la base complète

Imitation des enseignants

Ni prévalence calibrée, ni vérité terrain. Validation humaine à venir. Apprise à partir de 10 348 étiquettes directes de Codex et de 10 348 étiquettes directes de Gemma. Le mode candidate est l'union des têtes enseignantes seuillées; le consensus est leur intersection. Ces sorties portent le statut machine_predicted_unvalidated et ne sont ni des étiquettes humaines ni des étiquettes directes de modèles de pointe.

score de la tête « metaresearch » (Codex)0,000
score de la tête « metaresearch » (Gemma)0,010
Version: codex-gemma-dda1882f352aStatut de validation: machine_predicted_unvalidated
Catégories candidatesMétarecherche, Charge utile insuffisante (le modèle a refusé de juger)
Catégories consensuellesCharge utile insuffisante (le modèle a refusé de juger)
DomaineSignal candidat: aucune · Signal consensuel: aucune
Devis d'étudeSignal candidat: Sans objet · Signal consensuel: Sans objet
GenreSignal candidat: Autre · Signal consensuel: Autre
Score de désaccord entre enseignants0,273
Score d'incertitude au seuil0,998

Scores Codex et Gemma par catégorie

CatégorieCodexGemma
Métarecherche0,0000,010
Méta-épidémiologie (sens strict)0,0000,000
Méta-épidémiologie (sens large)0,0000,000
Bibliométrie0,0000,000
Études des sciences et des technologies0,0000,000
Communication savante0,0000,000
Science ouverte0,0000,000
Intégrité de la recherche0,0000,000
Charge utile insuffisante (le modèle a refusé de juger)0,2760,003

Scores machine (provisoires)

Les deux têtes enseignantes du modèle étudiant, lues sur ce travail. Un score ordonne la base pour la relecture; il n'affirme jamais une catégorie, et le statut de validation accompagne chaque rangée tel quel.

Scores de référence d'un modèle non mature (critères de maturité non atteints, 7 itérations). Un score ordonne; il n'affirme jamais une catégorie.

Tête enseignante Opus0,206
Tête enseignante GPT0,412
Écart entre enseignants0,207 · la distance entre les deux têtes enseignantes sur ce seul travail
Statut de validationscore_only:v0-immature-baseline · tel quel depuis la passe de notation : score_only signifie que le nombre peut ordonner les travaux, et qu'aucune étiquette de catégorie n'en découle

Classification

machine, non validée

Prédiction automatique; les deux têtes enseignantes s’accordent sur ce qui est montré ici.

Devis d'étudeSans objet
Domainenon disponible
GenreAutre

Le détail, modèle par modèle et score par score, se trouve en fin de page sous « Comment cette classification a été obtenue ».

En bref

Citations0
Publié2023
Routes d'admission1
Résumé présentoui

Explorer davantage

Même revueFigshareMême sujetPublic Administration and Political AnalysisTravaux en français237 207