Reliability Improvement Based on Prioritization of Source Code

Even after thorough testing of a program, usually a few bugs still remain. These residual bugs are randomly distributed through out the code. It is observed that bugs in some parts of a program can cause more frequent and more severe failures compared to those in other parts. So, it is possible to prioritize the program elements at the time of testing according to their potential to cause failures. Based on this idea, we have proposed a metric to compute the influence of an object in an object-oriented program. Influence of an element indicates the potential of the element to cause failures. The intensity with which each element is tested is proportionate to its influence value. We have conducted experiments to compare our scheme with related schemes. The results establish that the failure rate can indeed be minimized using our scheme when the software is executed for some duration after the completion of testing phase. Our proposed metric can be useful in applications such as coding, debugging, test case design and maintenance etc.

[1]  Alessandro Orso,et al.  Automated Testing of Classes , 2000, ISSTA '00.

[2]  Gregg Rothermel,et al.  Prioritizing test cases for regression testing , 2000, ISSTA '00.

[3]  Mary Jean Harrold,et al.  Slicing object-oriented software , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[4]  Thomas A. Alspaugh,et al.  An architectural pattern for non-functional dependability requirements , 2005, ACM SIGSOFT Softw. Eng. Notes.

[5]  Barry Boehm,et al.  Top 10 list [software development] , 2001 .

[6]  James A. Whittaker,et al.  A Markov Chain Model for Statistical Software Testing , 1994, IEEE Trans. Software Eng..

[7]  Rajib Mall,et al.  An efficient interprocedural dynamic slicing method , 2006, J. Syst. Softw..

[8]  Edward N. Adams,et al.  Optimizing Preventive Service of Software Products , 1984, IBM J. Res. Dev..

[9]  Lionel C. Briand,et al.  A Unified Framework for Coupling Measurement in Object-Oriented Systems , 1999, IEEE Trans. Software Eng..

[10]  John D. Musa,et al.  Operational profiles in software-reliability engineering , 1993, IEEE Software.

[11]  Gregg Rothermel,et al.  Test Case Prioritization: A Family of Empirical Studies , 2002, IEEE Trans. Software Eng..

[12]  J. Jenny Li,et al.  Prioritize code for testing to improve code coverage of complex software , 2005, 16th IEEE International Symposium on Software Reliability Engineering (ISSRE'05).

[13]  Gregg Rothermel,et al.  Incorporating varying test costs and fault severities into test case prioritization , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[14]  Daniel Hoffman,et al.  ClassBench: a framework for automated class testing , 1997 .

[15]  Baowen Xu,et al.  A brief survey of program slicing , 2005, SOEN.

[16]  Neelam Gupta,et al.  Experiments with test case prioritization using relevant slices , 2008, J. Syst. Softw..

[17]  Gregg Rothermel,et al.  Computation of interprocedural control dependence , 1998, ISSTA '98.

[18]  David Cordes,et al.  Automated flow graph-based testing of object-oriented software modules , 1993, J. Syst. Softw..

[19]  Lionel C. Briand,et al.  Dynamic coupling measurement for object-oriented software , 2004, IEEE Transactions on Software Engineering.

[20]  Donglin Liang,et al.  Slicing objects using system dependence graphs , 1998, Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272).