International Journal of Applied Physics and Mathematics, Vol. 2, No. 5, September 2012
Optimal Release Time with Gain in Reliability of Object Oriented Software Testing and Reusability Dinesh Kumar Saini, Nebras Hasson, and Feras Hasoon
time is a time when we will stop testing release software to the customer. As the software failure may cause a huge loss in the terms of time, cost, organization value and reputation, market value, and the extreme human lives also in case of life critical systems. On the other hand successful software produces a visible amount of gain or profit [8]. So we have to take care of these parameters also at the time of releasing software to customer.
Abstract—As the reliability of Object Oriented Software is a critical criterion for software industry because of dynamic nature of the domain. But to gain higher reliability during the testing phase is a very costly process. So we have to justify the cost for testing against quality of software. In this paper we will try to determine the time to stop testing when the software comes under optimal software release policies. We will also see the factors affecting the testing time and net gain in reliability of software and their effect on the software release policies.
II. SOFTWARE LIFE CYCLE AND SOFTWARE BUG
Index Terms—Software systems, software testing, efforts, optimal release time, reusability, object oriented.
Software which is bug free ensures to some extent the quality of the software product because quality does not only depend upon the bug’s absence but software reliability depends upon the software bugs absence [9] So first of all quantification of software bug importance is established based upon the importance metric which is like Software bug Importance = Frequency of software bug arrival*(Correction cost of the software bug + Installation Cost of Correction + Consequential Cost of the Software Bug) Allocation of testing resources is done according to the proportion to the bug’s importance in the Object Oriented Software, but reusability is the main aim of any object oriented software which is also to be ensured in the test suits [10], [11]. In fig.1 all the activities involved in Software Development Life Cycle is shown. Here both the design approaches are shown but we are restricting our paper for Bottom up design approach only [12], [13]. All the key process area which is must for software quality is shown in the figure but major emphasis is given for two areas one reusability and other reliability and testing is carry out for reusability and reliability.
I. INTRODUCTION In the present time quality of software is prime concern in the software industry. As well as the services which they provide, software products have a number of other associated attributes which reflects the quality of the software. Software testing tries to minimize the presence of bugs but does not guaranty the absence of bugs. It is have clearly summarized the theoretical barriers to complete testing and suggested that it can never be sure that the specification are correct, No verification systems can verify every correct program, it can never be certain that a verification system is correct[1]. Software industry in 21st century faces three key challenges [2]-The legacy challenges, heterogeneous challenge and delivery challenge. The delivery challenge is challenge of shortening delivery times for large and complex systems without compromising system quality [3]. Releasing software at right time causes to take advantage of market scenario shortening delivery time leads minimum testing time but we have to maintain software's quality also, so a solution for this quality and time tradeoff is required [4], [5]. During the development of software we try to prevent the defects or errors and during the testing phase of development process we detect the defects in software and try to correct defects. Software bugs are generally hidden and discovering them requires undefined time [6]. So a maximal time should be decided that will cause balance between time and quality of software [7]. This maximal
III. CALCULATION FOR OPTIMAL RELEASE TIME Notations used in the equation 1) m(T) : expected number of software failures by time T 2) a : total number of software errors to be eventually defected 3) b : exponential index 4) λ(T) : fault detection rate per unit time 5) x : mission time 6) R(x/T): reliability function of software by time T for a mission time x 7) T : software release time 8) C1 : software test cost per unit time 9) C2 : deterministic cost to remove each error per unit time during testing phase
Manuscript received May 18, 2012; revised June 12, 2012 D. K. Saini is with the Faculty of Engineering and IT, University of Queensland, Brisbane, Australia. Now he is with Faculty of Computing and Information Technology, Sohar University, Sultanate of Oman (e-mail:
[email protected]) N. Hasson and F. Hasoon are with the Faculty of Computing and Information Technology, Sohar University, Sultanate of Oman (e-mail:
[email protected],
[email protected]).
309
International Journal of Applied Physics and Mathematics, Vol. 2, No. 5, September 2012
14) NGIR : net gain in reliability if the software works successfully 15) G(T) : expected total NGIR of a software system in time T
10) W: random variable of cost to remove errors during testing 11) Cw : expectation value of variable W 12) C3 : risk cost due to software failure 13) Cp : coefficient of gain in reliability if the software works successfully
Fig. 1. SDLC activities for software development.
Software release policies with gain and reliability justifying the cost” by Hoang Pham and Xuemei Zhang [13]. According to their paper the expected NGIR (net gain in reliability) of the software development process is defined as the economical net gain in reliability that exceeds the expected total cost of the software development [15], [16]. G (T) = Expected gain in reliability – (total development cost + Risk cost) They assume following assumptions in the derivation for G (T). 1) Software companies receive the economic profits if their software products work successfully after release. 2) The cost to perform testing is proportional to the testing time. 3) The cost to remove errors during testing phase depends upon the complexity of the errors, which consist of two parts – the deterministic part and the incremental random part. Software companies have to pay some amount of money if the software fails. There is risk cost due to unreliability after release. As Calculated by Pham and Zhang in their paper G (T) = R(x/T) (Cp +C3) – {C1.T + M (T)[C2 + (Cw ∕ 2)M(T)] +C3}
e b (T) = 1/ {1-c(T)} c (T) = 1- e-b(T) Hence mean value function of expected number of cumulative failure M (T) = a (1- e – b (T) ) To calculate the time for the releasing of software with optimum reliability we use the maxima minima theory. For which we differentiate the G (T) w.r.t. T. After putting the value of m (T) in G (T) G (T) = (Cp + C3) R(x/T) - {C1.T + a (1- e-b(T) )[C2 + (Cw ∕ 2) .a(1- e-b(T) )]+C3} R(x/T) = e-[m (T+x) – m (T)] R(x/T) = exp-[a (1- e-b (T+x) ) - a(1- e-b (T)] R(x/T) = exp-[a*e - b (T) (1- e - b (x))] {1/ R(x/T)}.d R(x/T)/dT = ab*e-b (T) (1- e - b (x) dR(x/T)/dT = R(x/T)*ab*e – b (T) (1- e - b (x)) Now dG (T)/dT = (Cp + C3)*ab*e - b (T) (1- e - b (x)) R(x/T) – C1 – C2*ab*e – b (T) – {Cw*a2b*e – b (T) (1- e – b (T))} For maxima and minima d G(T)/dT = 0 [-C1 – C2ab*e –b (T) – Cw*a2b*e – b (T) (1- e – b (T)) + (Cp + C3)*ab*e – b (T) (1- e – b (x)) R(x/T)] = 0
where R(x/T) is defined as the probability that a software failure does not occur in the time interval (T, T+x), given that the last failure occurred at testing time T (T≥0, x>0).
Since we are calculating release time for software with optimum reliability. Here we assume that software will work for a long life with reliability. In that case here we assume mission time “x” very large when software maintains its reliability upto the mark. Then
R(x/T) = e-[m (T+x) - m (T)] And Error detection rate = coverage rate / percentage of uncovered code b (T) = c’(T)/ {1- c(T)} b (T) = 1/ {1-c(T)} d c(T)/d t ∫b (T) dt = ∫1/ {1-c (T)} d c (T) bt = - ln((1-c(T))
(1-e – b (x)) R(x/T) tends to 1. Hence -C1 – C2*ab*e – b (T) – Cw*a2b*e – b (T) (1- e – b (T)) + (Cp + C3)*ab*e – b (T) = 0 310
International Journal of Applied Physics and Mathematics, Vol. 2, No. 5, September 2012
Let e – b (T) = Y, then -C1 – C2*ab8Y – Cw*a2b*Y (1- Y) + (Cp + C3)*ab*Y = 0 -C1 – C2*ab*Y – Cw*a2b*Y – Cw*a2b*Y2 + (Cp + C3)*ab*Y = 0 Cw*a2b*Y2 + ab*{Cw*a + C2 - (Cp + C3)} Y + C1 = 0 Let {(Cp + C3) - Cw.a - C2} = C. Then Cw.a2bY2 - abCY + C1 = 0 On solving,
[2] [3]
[4]
[5]
Y = [abC ± √ {(abC) 2 - 4Cw.a2bC1}]/2Cw.a2b Y = [bC ±√ (b2C2 - 4Cw.bC1)]/2Cw.ab where C = Cp + C3 –Cw.a – C2 Since
[6]
e – b (T) = Y, hence [7]
e – b (T) = [bC ± √(b2C2 - 4Cw.bC1)]/2Cw.ab -b (T) = ln [bC ± √ (b2C2 - 4Cw.bC1)]/2Cw.ab T = (1/b)ln[2Cw.ab/{bC ± √ (b2C2 - 4Cw.bC1)}]
[8]
where C = Cp + C3 –Cw*a – C2 [9]
IV. CONCLUSION [10]
Thus we can draw conclusion from the derived equation that: 1) Increasing the testing cost coefficient will result in a shorter testing time. 2) Increasing the error removal cost coefficient will result in a shorter testing time. 3) Increasing coefficient of gain in reliability will result in a much longer testing time. 4) Increasing the risk cost coefficient will result in a longer testing time.
[15]
REFERENCE
[16]
[1]
[11] [12]
[13] [14]
D. K. Saini, L. A. Hadimani, and N. Gupta, “Software Testing Approach for Detection and Correction of Design Defects in Object
311
Oriented Software,” Journal of Computing, vol. 3, no. 4, April 2011, ISSN 2151-9617, pp. 44-50, 2011. I. Somerville, Software Engineering, Pearson Education (Singapore) Pte. Ltd, 13, (Ch. 1), 2004. D. K. Saini and N. Gupta, “Fault Detection Effectiveness in GUI Components of Java Environment through Smoke Test,” Journal of Information Technology, ISSN 0973-2896, vol. 3, no. 3, pp.7-17, 2007. H. Pham and X. Zhang, “Software release policies with gain in reliability justifying the costs,” Annals of Software Engineering, vol. 8, pp. 147-166. S. Wagner and T. Seifert, “Software Quality Economics for Defectdetection Techniques Using Failure Prediction,” 3-WoSQ ’05, May 17, 2005, St. Louis, Missouri. USA, 2005. D. K. Saini and H. Saini, “Proactive Cyber Defense and Reconfigurable Framework for Cyber Security,” International Review on computer and Software (IRCOS), vol.2. no. 2. pp. 89-98, 2007. S. Wagner, “Towards Software Quality Economics for Defect Detection Techniques,” In Proc. 29th Annual IEEE/NASA Software Engineering Workshop, 2005. D. K. Saini, “Testing Polymorphism in Object Oriented Systems for improving software Quality,” ACM SIGSOFT, vol. 34, no. 2, SSN: 0163-5948, USA, 2009. B. Littlewood, P. Popov, L. Strigini, and N. Shrayane, “Modeling the Effects of Combining Diverse Software Fault Detection Techniques,” IEEE transactions on Software Engineering, vol. 26, no. 12, pp. 1157-1167, 2000. A. L. Goel, and K. Okumoto, “Time dependent error detection rate model for software reliability and other performance measures,” IEEE Transactions Reliability, vol. 28, pp. 206-211. W. Ehrlich, B. Prasanna, J. Stampfel, and J. Wu, “Determining the Cost of a Stop-Testing Decision,” IEEE Software 10, pp. 33-42, 1993. D. K. Saini, J. H. Yousif, and W. M. Omar, “Enhanced Inquiry Method for Malicious Object Identification,” ACM SIGSOFT, vol. 34, no. 3 ISSN: 0163-5948, USA, 2009. H. Pham, Software Reliability and Testing, IEEE Computer Society Press, 1995. A. Wood, “Predicting Software Reliability,” IEEE Computer, vol. 9, no. pp. 69-77, 1996. M. C. Yang, and A. Chao, “Reliability-Estimation & Stopping-Rules for Software Testing, Based on Repeated Appearances of Bugs,” IEEE transactions on Reliability, vol. 44, no. 2, pp. 315-326, 1995. D. K. Saini “A Mathematical Model for the Effect of Malicious Object on Computer Network Immune System,” Applied Mathematical Modeling, vol. 35, pp. 3777-3787 USA, doi:10.1016/.2011.02.025.