From 012580d5797e62505fcf9a7c8f658d9245cc5400 Mon Sep 17 00:00:00 2001 From: Nguyễn Gia Phong Date: Mon, 13 Nov 2023 17:02:11 +0900 Subject: Rename background chapter --- all.tex | 2 +- bg.tex | 7 ++++ praelimen.tex | 7 ---- ref.bib | 107 ++++++++++++++++++++++++++++++++++++++++++---------------- 4 files changed, 86 insertions(+), 37 deletions(-) create mode 100644 bg.tex delete mode 100644 praelimen.tex diff --git a/all.tex b/all.tex index b195a57..ba7aeed 100644 --- a/all.tex +++ b/all.tex @@ -92,7 +92,7 @@ \clearpage \include{intro.tex} -\include{praelimen.tex} +\include{bg.tex} \include{technique.tex} \include{eval.tex} \include{result.tex} diff --git a/bg.tex b/bg.tex new file mode 100644 index 0000000..6bc4638 --- /dev/null +++ b/bg.tex @@ -0,0 +1,7 @@ +\section{Background} +Our \gls{difftest} generation is based on the symbolic executor +\textsc{klee}'s architecture, which at a high level is an interpreter loop. +At each iteration, it selects a symbolic process, also known as a \gls{state}, +in whose context an instruction is then executed~\cite{klee}. + +% TODO: base symb exec algo diff --git a/praelimen.tex b/praelimen.tex deleted file mode 100644 index e2dfea3..0000000 --- a/praelimen.tex +++ /dev/null @@ -1,7 +0,0 @@ -\section{Preliminaries} -Our \gls{difftest} generation is based on the symbolic executor -\textsc{klee}'s architecture, which at a high level is an interpreter loop. -At each iteration, it selects a symbolic process, also known as a \gls{state}, -in whose context an instruction is then executed. - -% TODO: base symb exec algo diff --git a/ref.bib b/ref.bib index 52e1f75..4d4598d 100644 --- a/ref.bib +++ b/ref.bib @@ -1,6 +1,14 @@ +@inproceedings{klee, + author = {Cristian {Cadar} and Daniel {Dunbar} and Dawson {Engler}}, + title = {{KLEE}: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs}, + booktitle = {USENIX Symp. Oper. Syst. Des. and Implement. (OSDI)}, + year = 2008, + url = {https://www.usenix.org/conference/osdi-08/klee-unassisted-and-automatic-generation-high-coverage-tests-complex-systems}, + month = dec, + doi = {10.5555/1855741.1855756}} + @inproceedings{join-split, - author = {{Hansen}, Trevor and {Schachte}, Peter and {S{\o}ndergaard}, Harald}, - editor= {Bensalem, Saddek and Peled, Doron A.}, + author = {Trevor {Hansen} and Peter {Schachte} and Harald {S{\o}ndergaard}}, title = {State Joining and Splitting for the Symbolic Execution of Binaries}, booktitle = {Runtime Verification}, year = 2009, @@ -10,26 +18,23 @@ doi = {10.1007/978-3-642-04694-0_6}} @inproceedings{rsc, - author = {Qi, Dawei and Nguyen, Hoang D.T. and Roychoudhury, Abhik}, + author = {{Qi} Dawei and {Nguyen} D.T. Hoang and Abhik {Roychoudhury}}, title = {Path Exploration Based on Symbolic Output}, year = 2011, isbn = {9781450304436}, publisher = {Association for Computing Machinery}, - address = {New York, NY, USA}, url = {https://doi.org/10.1145/2025113.2025152}, doi = {10.1145/2025113.2025152}, - booktitle = {Proceedings of the 19th ACM SIGSOFT Symposium and the 13th European Conference on Foundations of Software Engineering}, + booktitle = {Proc. ACM SIGSOFT Symp. and Eur. Conf. Found. Softw. Eng.}, pages = {278--288}, numpages = 11, keywords = {relevant slice condition, symbolic execution, path exploration}, - location = {Szeged, Hungary}, series = {ESEC/FSE '11}} @article{merge, - author = {Kuznetsov, Volodymyr and Kinder, Johannes and Bucur, Stefan and Candea, George}, + author = {Volodymyr {Kuznetsov} and Johannes {Kinder} and Stefan {Bucur} and George {Candea}}, title = {Efficient State Merging in Symbolic Execution}, year = 2012, - issue_date = {June 2012}, publisher = {Association for Computing Machinery}, address = {New York, NY, USA}, volume = 47, @@ -44,28 +49,51 @@ keywords = {verification, symbolic execution, bounded software model checking, state merging, testing}} @inproceedings{cgs, - author = {Seo, Hyunmin and Kim, Sunghun}, + author = {{Seo} Hyunmin and {Kim} Sunghun}, title = {How We Get There: A Context-Guided Search Strategy in Concolic Testing}, year = 2014, isbn = {9781450330565}, publisher = {Association for Computing Machinery}, - address = {New York, NY, USA}, url = {https://doi.org/10.1145/2635868.2635872}, doi = {10.1145/2635868.2635872}, - booktitle = {Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering}, + booktitle = {Proc. ACM SIGSOFT Int. Symp. Found. Softw. Eng.}, pages = {413-424}, numpages = 12, keywords = {symbolic execution, search strategies, Concolic testing}, - location = {Hong Kong, China}, series = {FSE 2014}} +@inproceedings{overfit, + author = {Edward K. {Smith} and Earl T. {Barr} and Claire {Le Goues} and Yuriy {Brun}}, + title = {Is the Cure Worse than the Disease? Overfitting in Automated Program Repair}, + year = 2015, + isbn = {9781450336758}, + publisher = {Association for Computing Machinery}, + url = {https://doi.org/10.1145/2786805.2786825}, + doi = {10.1145/2786805.2786825}, + booktitle = {Proc. Joint Meet. Found. Softw. Eng.}, + pages = {532--543}, + numpages = 12, + keywords = {GenProg, TrpAutoRepair, independent evaluation, IntroClass, empirical evaluation, automated program repair}, + series = {ESEC/FSE 2015}} + +@article{repairnator, + author = {Martin {Monperrus} and Simon {Urli} and Thomas {Durieux} and Matias {Martinez} and Benoit {Baudry} and Lionel {Seinturier}}, + title = {Repairnator Patches Programs Automatically}, + year = 2019, + publisher = {Association for Computing Machinery}, + volume = 2019, + url = {https://doi.org/10.1145/3349589}, + doi = {10.1145/3349589}, + journal = {Ubiquity}, + month = jul, + articleno = 2, + numpages = 12} + @article{shadow, - author = {Kuchta, Tomasz and Palikareva, Hristina and Cadar, Cristian}, + author = {Tomasz {Kuchta} and Hristina {Palikareva} and Cristian {Cadar}}, title = {Shadow Symbolic Execution for Testing Software Patches}, year = 2018, - issue_date = {July 2018}, publisher = {Association for Computing Machinery}, - address = {New York, NY, USA}, volume = 27, number = 3, issn = {1049-331X}, @@ -78,56 +106,77 @@ keywords = {regression bugs, cross-version checks, Symbolic patch testing}} @inproceedings{homi, - author = {Cha, Sooyoung and Oh, Hakjoo}, + author = {{Cha} Sooyoung and {Oh} Hakjoo}, title = {Making Symbolic Execution Promising by Learning Aggressive State-Pruning Strategy}, year = 2020, isbn = {9781450370431}, publisher = {Association for Computing Machinery}, - address = {New York, NY, USA}, url = {https://doi.org/10.1145/3368089.3409755}, doi = {10.1145/3368089.3409755}, - booktitle = {Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering}, + booktitle = {Proc. ACM Joint Meet. Eur. Softw. Eng. Conf. and Symp. Found. Softw. Eng.}, pages = {147--158}, numpages = 12, keywords = {Online Learning, Dynamic Symbolic Execution}, - location = {Virtual Event, USA}, series = {ESEC/FSE 2020}} @inproceedings{hydiff, - author = {Noller, Yannic and P\u{a}s\u{a}reanu, Corina S. and B\"{o}hme, Marcel and Sun, Youcheng and Nguyen, Hoang Lam and Grunske, Lars}, + author = {Yannic {Noller} and Corina S. {P\u{a}s\u{a}reanu} and Marcel {B\"{o}hme} and {Sun} Youcheng and {Nguyen} Hoang Lam and Lars {Grunske}}, title = {HyDiff: Hybrid Differential Software Analysis}, year = 2020, isbn = {9781450371216}, publisher = {Association for Computing Machinery}, - address = {New York, NY, USA}, url = {https://doi.org/10.1145/3377811.3380363}, doi = {10.1145/3377811.3380363}, - booktitle = {Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering}, + booktitle = {Proc. ACM/IEEE Int. Conf. Softw. Eng.}, pages = {1273--1285}, numpages = 13, keywords = {fuzzing, symbolic execution, differential program analysis}, - location = {Seoul, South Korea}, series = {ICSE '20}} @inproceedings{ddset, - author = {Gopinath, Rahul and Kampmann, Alexander and Havrikov, Nikolas and Soremekun, Ezekiel O. and Zeller, Andreas}, + author = {Rahul {Gopinath} and Alexander {Kampmann} and Nikolas {Havrikov} and Ezekiel O. {Soremekun} and Andreas {Zeller}}, title = {Abstracting Failure-Inducing Inputs}, year = 2020, isbn = {9781450380089}, publisher = {Association for Computing Machinery}, - address = {New York, NY, USA}, url = {https://doi.org/10.1145/3395363.3397349}, doi = {10.1145/3395363.3397349}, - booktitle = {Proceedings of the 29th ACM SIGSOFT International Symposium on Software Testing and Analysis}, + booktitle = {Proc. ACM SIGSOFT Int. Symp. Softw. Test. and Analysis}, pages = {237--248}, numpages = 12, keywords = {failure-inducing inputs, debugging, error diagnosis, grammars}, - location = {Virtual Event, USA}, series = {ISSTA 2020}} +@inproceedings{test-based, + author = {{Liu} Kui and {Wang} Shangwen and Anil {Koyuncu} and {Kim} Kisub and Tegawend\'{e} F. {Bissyand\'{e}} and {Kim} Dongsun and {Wu} Peng and Jacques {Klein} and {Mao} Xiaoguang and Yves {Le Traon}}, + title = {On the Efficiency of Test Suite Based Program Repair: A Systematic Assessment of 16 Automated Repair Systems for Java Programs}, + year = 2020, + isbn = {9781450371216}, + publisher = {Association for Computing Machinery}, + doi = {10.1145/3377811.3380338}, + booktitle = {Proc. ACM/IEEE Int. Conf. Softw. Eng.}, + pages = {615--627}, + numpages = 13, + keywords = {patch generation, program repair, empirical assessment, efficiency}, + series = {ICSE '20}} + +@article{apr, + author = {Claire {Le Goues} and M. {Pradel} and Abhik {Roychoudhury} and S. {Chandra}}, + journal = {IEEE Software}, + title = {Automatic Program Repair}, + year = 2021, + volume = 38, + number = {04}, + issn = {1937-4194}, + pages = {22--27}, + doi = {10.1109/MS.2021.3072577}, + publisher = {IEEE Computer Society}, + address = {Los Alamitos, CA, USA}, + month = jul} + @article{paradyse, - author = {Cha, Sooyoung and Hong, Seongjoon and Bak, Jiseong and Kim, Jingyoung and Lee, Junhee and Oh, Hakjoo}, - journal = {IEEE Transactions on Software Engineering}, + author = {{Cha} Sooyoung and {Hong} Seongjoon and {Bak} Jiseong and {Kim} Jingyoung and {Lee} Junhee and {Oh} Hakjoo}, + journal = {IEEE Trans. Softw. Eng.}, title = {Enhancing Dynamic Symbolic Execution by Automatically Learning Search Heuristics}, year = 2022, volume = 48, -- cgit 1.4.1