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.
[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/
[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/
@article{"International Journal of Information, Control and Computer Sciences:52403", author = "Sheetal Chavan and P. J. Kulkarni and Vivek Shanbhag", title = "BugCatcher.Net: Detecting Bugs and Proposing Corrective Solutions", abstract = "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 = "Dependence, Early solution, Finite State Automata,Grammar, Late solution, Parser State Transition Diagram, StaticProgram Analysis.", volume = "4", number = "2", pages = "211-8", }