BugCatcher.Net: Detecting Bugs and Proposing Corrective Solutions

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.




References:
[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,
http://www.codeproject.com/KB/msil/ilassembly.aspx
[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, http://research.microsoft.com/specncheck/docs/pincus.ppt
[7] PMD, http://pmd.sourceforge.net/, 2003.
[8] JLint, http://artho.com/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, http://www.got dotnet.com
/team/fxcop/
[11] StyleCop: Microsoft MSDN library, http://code.
msdn.Microsoft.com/sourceanalysis, http://blogs.msdn.com
/sourceanalysis
[12] CodeITRight, http://submain.com/?nav=products.cir.
[13] Resharper, www.JetBrains.com/resharper/
[14] NStatic, http://wesnerm.blogs.com/net_undocumented/
2006/02/nstatic_walkthr.html
[15] http://en.wikipedia.org/wiki/Context-free 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, http://sourceforge.net/
[22] ItextSahrp, http://sourceforge.net/projects/itextsharp/
[23] Airplanewar, http://sourceforge.net/projects/airplane war/
[24] SharpDevelop, http://sourceforge.net/projects/sharp develop/
[25] EulerSharp, http://sourceforge.net/projects/eulersharp/
[26] VNCViewer, http://sourceforge.net/projects/vncviewer
[27] SWAT (Simple Web Automation Toolkit), http://source
forge.net/projects/ulti-swat/
[28] Quartz.net(Quartz Enterprise Scheduler.NET), http://source
forge.net/projects/quartznet/
[29] Nayatel, http://sourceforge.net/projects/nayatelids/
[30] NeuronDotNet, http://sourceforge.net/projects/neuron dotnet/
[31] TemplateEngine, http://sourceforge.net/projects/easy template/