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

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

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.

Digital Object Identifier (DOI): doi.org/10.5281/zenodo.1058841

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

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/