Change contract is a language used to specify intended effect of program changes. Change contract focuses only on the program changes and their intended semantic effect. Program behavior that is unchanged across version does not need to be captured.
We conducted a survey of 16 final year undergraduate students in a senior year course (formal verification of embedded software) at the National University of Singapore in 2012. The survey can be downloaded here.
The responses we obtained from the survey can be downloaded from the table below:
We asked the following three types of questions. Sample answers for the survey questionaire can be downloaded here.
|Distribution of correct answer rates depending on the criterion used to categorize questions|
The table above shows the results of our survey, i.e., the distribution of correct answer rates depending on the criterion used to categorize questions. The correct answer rate is high throughout all categories, forming the overall correct answer rate at 92%.
Overall, our survey results indicate that the participants reasonably easily learned and used change contracts. Also notice in the results that the correct answer rate was not affected by whether a subject program is artificially made or extracted from a real-life program (i.e., AspectJ). It is also interesting that structural changes were more easily handled than behavioral changes were (97% vs 85%).
Jooyong Yi, Dawei Qi, Shin Hwei Tan, Abhik Roychoudhury
International Symposium on Software Testing and Analysis (ISSTA) 2013.
We are very interested in getting feedback on how to improve Software Change Contract. Feedback will be welcomed by any of us.