diff options
author | Carlo Zancanaro <carlo@pc-4w14-0.cs.usyd.edu.au> | 2012-11-27 18:20:06 +1100 |
---|---|---|
committer | Carlo Zancanaro <carlo@pc-4w14-0.cs.usyd.edu.au> | 2012-11-27 18:20:06 +1100 |
commit | 839764bd955d2bddedb4a38ab1d4d92c797c56b9 (patch) | |
tree | ba18f19658c62f5d515d1bdadbf37969f9e99711 /tex/thesis/abstract | |
parent | 8b9d3f9880824523c16a1101967987f998dc1cb4 (diff) |
Thesis and performance testing related stuff.
Diffstat (limited to 'tex/thesis/abstract')
-rw-r--r-- | tex/thesis/abstract/abstract.tex | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/tex/thesis/abstract/abstract.tex b/tex/thesis/abstract/abstract.tex index fc10f32..7302dca 100644 --- a/tex/thesis/abstract/abstract.tex +++ b/tex/thesis/abstract/abstract.tex @@ -1,26 +1,26 @@ \chapter*{Abstract} In today's increasingly technological world, software bugs can have -significant consequences. In order to limit the effect of these bugs -software engineers employ a wide variety of tests, but these are -insufficient to guarantee that software is bug free. +significant consequences. In order to limit the effect of software bugs, +engineers employ a wide range testing strategies. However, testing +cannot guarantee that software is bug free. -Guaranteeing that software is bug-free requires some sort of formal -verification. While it is possible to manually prove software correct, +Guaranteeing that software is bug-free requires formal +verification. While it is possible to manually prove software correctness, it is a difficult and expensive process, usually requiring programs to -be written in a particular way and requiring a high level of skill on -the part of the proof writer. +be written with annotations amenable for software verification tools. +For this process, a high level of skill on the part of the proof writer +is required as well. -There has been considerable research interest in providing a method of -automatically producing these types of proofs, but due to Rice's -Theorem we know it is not possible, in general, to prove the -correctness of programs. - -By using Abstract Interpretation we can perform an imprecise analysis -of our program, allowing us to find some, but not all, classes of bugs -in general programs. This imperfect analysis is sufficient to provide -some level of assurance about a program's correctness while still -remaining a practical approach. +There has been considerable research interest in devising verification +techniques for software, but due to Rice's +Theorem the problem becomes undecidable to prove whether a program +is correct. + +By using Abstract Interpretation a sound approximation of the program's +semantics can be constructed. The approximation reports all bugs but +may report false positives. In general the precision of the approximation +depends on the complexity class of the program analysis. In this thesis we present an implementation of a game-theoretic static analyser described in \cite{EasyChair:117} as a method of finding bugs |