Optimal allocation of test resources for software reliability growth modeling in software development

A component-based software development approach has become a trend in integrating modern software systems. To ensure the overall reliability of an integrated software system, its software components have to meet certain reliability requirements, subject to some testing schedule and resource constraints. Efficiency improvement of the system-testing can be formulated as a combinatorial optimization problem with known cost, reliability, effort and other attributes of the system components. This paper considers "software component testing resource allocation" for a system with single or multiple applications, each with a pre-specified reliability requirement. The relation between failure rates of components and "cost to decrease this rate" is modeled by various types of reliability-growth curves. Closed-form solutions to the problem for systems with one single application are developed, and then "how to solve the multiple application problem using nonlinear programming techniques" are described. Also examined are the interactions between the system components, and inter-component failure dependencies are included in the modeling formula. In addition to regular systems, the technique is extended to address fault-tolerant systems. A procedure for a systematic approach to the testing resource allocation problem is developed, and its application in a case study of a telecommunications software system is described. This procedure is automated in a reliability allocation tool for an easy specification of the problem and an automatic application of the technique. This methodology gives the basic approach to optimization of testing schedules, subject to reliability constraints. This adds "interesting new optimization opportunities in the software testing phase" to the existing optimization literature that is concerned with structural optimization of the software architecture. Merging these two approaches improves the reliability planning accuracy in component-based software development.

[1]  Kam-Fai Wong,et al.  Component-based software engineering: technologies, development frameworks, and quality assurance schemes , 2000, Proceedings Seventh Asia-Pacific Software Engeering Conference. APSEC 2000.

[2]  David W. Coit,et al.  Economic allocation of test times for subsystem-level reliability growth testing , 1998 .

[3]  Albert G. Holzman Mathematical Programming for Operations Researchers and Computer Scientists , 1986, IEEE Transactions on Reliability.

[4]  Sy-Yen Kuo,et al.  Efficient allocation of testing resources for software module testing based on the hyper-geometric distribution software reliability growth model , 1996, Proceedings of ISSRE '96: 7th International Symposium on Software Reliability Engineering.

[5]  A. Dhingra Optimal apportionment of reliability and redundancy in series systems under multiple objectives , 1992 .

[6]  Karama Kanoun,et al.  Software Reliability Analysis of Three Successive Generations of a Switching System , 1994, EDCC.

[7]  Wojtek Kozaczynski,et al.  Component-Based Software Engineering , 1998, IEEE Software.

[8]  Laura Painton,et al.  Genetic algorithms in optimization of system reliability. , 1995 .

[9]  R. Bulfin,et al.  Optimal Allocation of Redundant Components for Large Systems , 1985, IEEE Transactions on Reliability.

[10]  Brian W. Kernighan,et al.  AMPL: A Modeling Language for Mathematical Programming , 1993 .

[11]  Hany H. Ammar,et al.  A component-based approach to reliability analysis of distributed systems , 1999, Proceedings of the 18th IEEE Symposium on Reliable Distributed Systems.

[12]  Santosh K. Shrivastava,et al.  Reliable Computer Systems , 1985, Texts and Monographs in Computer Science.

[13]  Michael R. Lyu,et al.  Handbook of software reliability engineering , 1996 .

[14]  Hiroshi Kamada,et al.  Surrogate Constraints Algorithm for Reliability Optimization Problems with Multiple Constraints , 1981, IEEE Transactions on Reliability.

[15]  Mordecai Avriel,et al.  Nonlinear programming , 1976 .

[16]  Way Kuo,et al.  Determining Component Reliability and Redundancy for Optimum System Reliability , 1977, IEEE Transactions on Reliability.

[17]  Daniel P. Siewiorek,et al.  Reliable computer systems (2nd ed.): design and evaluation , 1992 .

[18]  David W. Coit,et al.  Reliability optimization of series-parallel systems using a genetic algorithm , 1996, IEEE Trans. Reliab..

[19]  Noushin Ashrafi,et al.  Software Reliability Allocation Based on Structure, Utility, Price, and Cost , 1991, IEEE Trans. Software Eng..

[20]  YOSHIHIRO TOHMA,et al.  Structural Approach to the Estimation of the Number of Residual Software Faults Based on the Hyper-Geometric Distribution , 1989, IEEE Trans. Software Eng..

[21]  Yuji Nakagawa,et al.  Surrogate Constraints Algorithm for Reliability Optimization Problems with Two Constraints , 1981, IEEE Transactions on Reliability.

[22]  John D. Musa Validity of Execution-Time Theory of Software Reliability , 1979, IEEE Transactions on Reliability.

[23]  D. Coit Economic allocation of test times for subsystem-level reliability growth testing , 1998 .

[24]  R. E. Taylor,et al.  Optimal Redundancy for Reliability in Series Systems , 1969, Oper. Res..

[25]  K Okumoto,et al.  TIME-DEPENDENT ERROR-DETECTION RATE MODEL FOR SOFTWARE AND OTHER PERFORMANCE MEASURES , 1979 .

[26]  최충현,et al.  시스템 신뢰도 설계시 정수계획법의 해를 구하기 위한 효율적인 해법절차 ( An Efficient Algorithm To Solve Integer-Programming Problems Arising In System-Reliability Design ) , 1993 .

[27]  Amrit L. Goel,et al.  Time-Dependent Error-Detection Rate Model for Software Reliability and Other Performance Measures , 1979, IEEE Transactions on Reliability.

[28]  Oded Berman,et al.  Optimization Models for Reliability of Modular Software Systems , 1993, IEEE Trans. Software Eng..

[29]  John D. Musa,et al.  Software reliability measurement , 1984, J. Syst. Softw..

[30]  Nam Kee Lee,et al.  System Reliability Allocation and a Computational Algorithm , 1968 .

[31]  Michael R. Lyu,et al.  Optimization of reliability allocation and testing schedule for software systems , 1997, Proceedings The Eighth International Symposium on Software Reliability Engineering.

[32]  John D. Musa,et al.  Software reliability - measurement, prediction, application , 1987, McGraw-Hill series in software engineering and technology.

[33]  Hany H. Ammar,et al.  Scenario-based reliability analysis of component-based software , 1999, Proceedings 10th International Symposium on Software Reliability Engineering (Cat. No.PR00443).

[34]  Robert S. Swarz,et al.  Reliable Computer Systems: Design and Evaluation , 1992 .