dc.description.abstract |
Assertions are often used by programmers to test assumptions that they have about the program. Meaningful assertions often help in early detection of bugs, and also help developers in understanding the working of their code better. Formal verification is an important field with increasing studies in the domain focusing on it. However, most developers do not have the background for formal verification, and they use assertions to test their understanding about the code. Assertions used by developers are generally much weaker than inductive verification conditions. Understanding assertions itself is an important problem and might be a good first step toward generating inductive invariants and verification conditions as a study. Our work aims to understand the use of assertions across Java projects on GitHub. In later stages, we aim to provide an IDE based tool to generate meaningful candidate assertions at suitable program points using program analysis and deep learning techniques for software development based Java programs. This report discusses our experiment design, implementation and results for few research questions. |
en_US |