Abstract:
Program analysis tools are based on four reasoning techniques: (1) deduction from code to concrete runs, (2) observation of concrete runs, (3) induction from observations into abstractions, and (4) experimentation to find causes for specific effects. These techniques form a hierarchy, where each technique can make use of lower levels, and where each technique induces capabilities and limits of the associated tools. 1.
Citations
| 445 | A survey of program slicing techniques – Tip - 1995 |
| 325 | Dynamically discovering likely program invariants to support program evolution – Ernst, Cockrell, et al. - 2001 |
| 219 | Programmers Use Slices When Debugging – Weiser - 1982 |
| 214 | Dynamic program slicing – Agrawal, Horgan - 1990 |
| 149 | Tracking down software bugs using automatic anomaly detection – Hangal, Lam - 2002 |
| 71 | Isolating cause-effect chains from computer programs – Zeller - 2002 |
| 66 | Visualization of test information to assist fault localization – Jones, Harrold, et al. - 2001 |
| 65 | Dynamic slicing of computer programs – Korel, Laski |
| 26 | Coca: An automated debugger for C – Ducassé - 1999 |
| 25 | Jinsight: Visualizing the execution of Java programs – Pauw, Gruber, et al. - 2000 |
| 24 | An Efficient Relevant Slicing Method for Debugging – Gyimothy, Beszedes, et al. - 1999 |
| 13 | Simplifying failure-inducing input – Hildebrandt, Zeller |
| 6 | Advanced Debugging Methods – Lencevicius - 2000 |

