Ověřování asercí kódu pomocí zpětné symbolické exekuce
Code Assertions Verification Using Backward Symbolic Execution
diploma thesis (DEFENDED)
View/ Open
Permanent link
http://hdl.handle.net/20.500.11956/2087Identifiers
Study Information System: 179174
Collections
- Kvalifikační práce [10926]
Author
Advisor
Referee
Parízek, Pavel
Faculty / Institute
Faculty of Mathematics and Physics
Discipline
Software and Data Engineering
Department
Department of Distributed and Dependable Systems
Date of defense
6. 2. 2017
Publisher
Univerzita Karlova, Matematicko-fyzikální fakultaLanguage
Czech
Grade
Very good
Keywords (Czech)
analýza kódu, verifikace, zpětná symbolická exekuceKeywords (English)
code analysis, verification, backward symbolic executionPro prevenci, odhalování a opravování chyb v softwaru existuje celá řada nástrojů pro programátory, přičemž některé z nich umožňují pracovat přímo se sémantikou programu. V případě jazyka C# jsou hlavními zástupci Microsoft FxCop, Code Contracts a Pex. Použití těchto nástrojů může velkou měrou přispět k vysoké spolehlivosti programů. Jejich úplné zapojení do procesu vývoje software ve firmách je bohužel značně náročné na prostředky. Z tohoto důvodu jsme vytvořili AskTheCode, zjednodušený nástroj pro verifikaci asercí kódu. Jeho hlavním účelem je pomoci uživateli s jedním konkrétním problémem, který v daném okamžiku řeší. Vzhledem k tomuto přístupu jsme jej implementovali pomocí zpětné symbolické exekuce. Přestože je momentálně schopen pracovat pouze se základními konstrukty a typy jazyka C#, srovnání s existujícími nástroji ukázalo, že při dalším rozvoji má potenciál poskytnout uživateli významnou přidanou hodnotu. Powered by TCPDF (www.tcpdf.org)
In order to prevent, detect and fix errors in software, various tools for programmers are available, while some of them are able to reason about the behaviour of the program. In the case of C# programming language, the main representatives are Microsoft FxCop, Code Contracts and Pex. Those tools can, indeed, help to build a highly reliable software. However, when a company wants to include them in the software development process, there is a significant overhead involved. Therefore, we created a "light- weight" assertion verification tool called AskTheCode that can help the user to focus on a particular problem at a time that needs to be solved. Because of its goal-driven approach, we decided to implement it using backward symbolic execution. Although it can currently handle only basic C# statements and data types, the evaluation against the existing tools shows that it has the potential to eventually provide significant added value to the user once developed further. Powered by TCPDF (www.tcpdf.org)