Commenced in January 2007
Frequency: Monthly
Edition: International
Paper Count: 31097
BugCatcher.Net: Detecting Bugs and Proposing Corrective Solutions

Authors: Sheetal Chavan, P. J. Kulkarni, Vivek Shanbhag


Although achieving zero-defect software release is practically impossible, software industries should take maximum care to detect defects/bugs well ahead in time allowing only bare minimums to creep into released version. This is a clear indicator of time playing an important role in the bug detection. In addition to this, software quality is the major factor in software engineering process. Moreover, early detection can be achieved only through static code analysis as opposed to conventional testing. BugCatcher.Net is a static analysis tool, which detects bugs in .NET® languages through MSIL (Microsoft Intermediate Language) inspection. The tool utilizes a Parser based on Finite State Automata to carry out bug detection. After being detected, bugs need to be corrected immediately. BugCatcher.Net facilitates correction, by proposing a corrective solution for reported warnings/bugs to end users with minimum side effects. Moreover, the tool is also capable of analyzing the bug trend of a program under inspection.

Keywords: Grammar, dependence, Early solution, Finite State Automata, Late solution, Parser State Transition Diagram, StaticProgram Analysis

Digital Object Identifier (DOI):

Procedia APA BibTeX Chicago EndNote Harvard JSON MLA RIS XML ISO 690 PDF Downloads 1259


[1] V. Channakeshava, S. Chavan, and V. Shanbhag, "Bug Detection through Static Analysis of MSIL", ACTA Press, Proceedings of Software Engineering and Applications, 2008.
[2] D. Hovemeyer and W. Pugh, Finding Bugs Is Easy, Companion of the 19th Ann. ACM SIGPLAN Conf. Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA -04), Oct. 2004.
[3] Introduction to IL Assembly Language - The Code Project - _NET,
[4] David Evans, John Guttag, James Horning, Yang Meng Tan, LCLint: a tool for using specifications to check code, Proceedings of the 2nd ACM SIGSOFT symposium on Foundations of software engineering, p. 87-96, December 06-09, 1994, New Orleans, Louisiana, United States.
[5] Roger F. Crew, ASTLOG: A language for examining abstract syntax trees, USENIX Conference on Domain Specific Languages, Santa Barbara, 1997.
[6] PREfast,
[7] PMD,, 2003.
[8] JLint,
[9] J. C. Corbett, M. B. Dwyer, J. Hatcliff, S. Laubach, C. S. Pasareanu, Robby, H. Zheng, Bandera: Extracting Finite-state Models from Java Source Code, Proceedings of the 22nd International Conf. on Software Engineering, pages 439-448, Limerick Ireland, June 2000.
[10] FxCop: Microsoft MSDN library, /team/fxcop/
[11] StyleCop: Microsoft MSDN library, http://code., /sourceanalysis
[12] CodeITRight,
[13] Resharper,
[14] NStatic, 2006/02/nstatic_walkthr.html
[15] grammar.
[16] Giovanni Vigna, Reliable Software Group, University of California, Santa Barbara, Static disassembly and code analysis.
[17] J. E. Hopcroft, R. Motwani, J. D. Ullman, Introduction to Automata Theory, Langauges and Computation, second edition, Pearson Education.
[18] Chadd C. Williams, Jeffrey K. Hollingsworth, Automatic Mining of Source Code Repositories to Improve Bug Finding Techniques, IEEE transactions on software Engineering, vol. 31, no. 6, June 2005.
[19] Hongyu Zhang, On the Distribution of Software Faults, IEEE Transactions on Software Engineering, Vol. 34, No. 2, March 2008.
[20] Norman E. Fenton, Niclas Ohisson, Quantitative Analysis of Faults and Failures in a Complex Software System, IEEE Transactions on Software Engineering, Vol. 26, No. 8, August 2000.
[21] SourceForge,
[22] ItextSahrp,
[23] Airplanewar, war/
[24] SharpDevelop, develop/
[25] EulerSharp,
[26] VNCViewer,
[27] SWAT (Simple Web Automation Toolkit), http://source
[28] Enterprise Scheduler.NET), http://source
[29] Nayatel,
[30] NeuronDotNet, dotnet/
[31] TemplateEngine, template/