Two approaches to the problem of optimal testing (or release) time for software are described.
Most of the previous models are based on a restrictive assumption that the testing is terminated (i.e., the software is released) at the end of a prescribed period of testing time which is the decision variable to the problem. It implies the in-service reliability are determined prior to its testing. Under the assumption, a software is occasionally released with the reliability unassured, if failure occurrences are more frequent towards the end of testing. It may be inappropriate, if a software is developed by a second party on a contract basis. Because, in this case, the user usually requires a demonstration for justifying software release.
To overcome the weaknesses of the on-going assumption of the previous models, two kinds of release policy which exclude the assumption are proposed. The proposed policies are different from the previous one in that they enable a software user to determine the time of release after observing τ periods of failure-free operation has been occurred. The study is divided into two parts according to the policy proposed.
In the first part, the two stage testing with failure-free release policy is proposed and described: A software, after being tested by the developer for some time (in-house testing), is transferred to acceptance testing performed jointly with the user: During the acceptance testing, it is released when τ units of time specified by user is observed to be failure-free for the first time. The policy may be attractive to a user because he can extend the testing time by increasing τ. A software cost model for the policy is developed. An optimal in-house testing time and various quantities of interests, such as expected periods of acceptance testing, are derived based on the Jelinski-Moranda software reliability model.
In the second part, a release policy based on the inter-failure time is proposed: A software is released during the testing performed jointly with the user when τ units of time specified by developer is observed to be failure-free for the first time. For the policy, optimal failure-free time and various quantities of interest are derived. Numerical examples show this approach is a good alternative to the previous one which uses testing time as a decision variable.
신규개발 소프트웨어의 "양도전 최적 검사기간(양도시기) 결정"은 중요한 의사결정 과제로서 지난 10년간 소프트웨어신뢰도 이론가들에 의해 다양한 접근방법이 개발되어 왔다. 그러나 대부분의 연구는 '일정시간 검사후 무조건 양도'한다는 묵시적인 가정하에 최적 검사시간을 결정하는 것으로, 이는 소프트웨어가 계약에 의해 주문개발될 때에도 여전히 유효한 가정인가는 의문의 여지가 있다. 그 이유는 첫째, 만일 검사종료 싯점에서 고장발생 행태가 증가하는 추세를 보이거나, 둘째, 사용자(발주자)가 소프트웨어 인수에 앞서 개발자만의 자체검사외에 자신과 개발자가 공동으로 실시하는 인수검사를 통해 신뢰도를 확인한 후 소프트웨어를 양도받을려고 할 때는 미리정한 최적검사기간은 지켜지기 어렵기 때문이다.
본 연구는 이러한 관점을 바탕으로, 주문개발 소프트웨어 사용자의 "양도전 무고장 운영요구"하에서의 최적 검사시간을 구하는 방법을 제시한다. 제안된 소프트웨어 양도정책에 따라 두 부분으로 나뉜다.
첫번째로 제안된 양도정책은 2단계 검사정책으로 다음과 같다: 먼저 개발자 혼자 t시간(의사결정변수: 개발자 지정) 동안 자체검사를 실시한 후 2단계로 사용자와 함께 인수검사를 실시한다: 인수검사기간중 τ시간(기 정치: 사용자가 지정)의 무고장 시범운영이 발생하면 소프트웨어를 양도한 다. 이 정책은 소프트웨어 양도시기가 검사전에 결정되지 않고, 사용자로 하여금 자신이 지정한 τ시간의 무고장 시범운영이 만족됨을 확인한 후에 결정된다는 점에서 기존의 정책과는 다른 특성이 있다. 또한 사용자는 τ값을 크게 지정함으로써 양도전 검사시간을 명백히 연장(이는 소프트웨어 신뢰도 향상을 의미)시킬 수 있다는 장점이 있다. Jelinski-Moranda 소프트웨어 신뢰도 모형을 근거로 이 정책하에서의 평균 인수검사기간, 인수검사시 평균 고장수 그리고 평균 비용함수를 구했으며, 마지막으로 최적 자체검사 시간($t^*$)를 구하였다. 예제를 통해 구해진 결과들을 설명했다.
두번째로 제안된 양도정책은 다음과 같다: 개발자와 사용자가 함께 실시하는 검사에서 τ시간(의사결정변수:개발자 지정)의 무고장 운영이 발생하면 소프트웨어를 사용자에게 양도한다. 이정책은 소프트웨어 사용자의 일반적인 속성 [즉 검사기간(기존의 정책에서의 의사결정변수, t)에는 큰 의미를 부여하지 않는 반면에 고장간 시간(제안정책에서의 의사결정변수, τ)은 중요하게 받아들임]을 반영한다는 점이 특징이다. Jelinski-Moranda 소프트웨어 신뢰도 모형을 근거로 이 정책하에서의 평균 검사기간 평균고장수 그리고 평균 비용을 τ의 함수로 유도하였으며, 마지막으로 최적 무고장 운영시간(τ)를 구하였다. 예제를 통해 구해진 결과들을 설명하였다. 여기서 구한 평균검사시간(최적 $τ^*$ 에서의)과 기존의 최적 검사시간 모형에서 구해진 최적 검사시간($t^*$)을 비교한 결과 큰 차이가 없음을 발견하였다. 따라서 제안 모형은 기존의 최적검사시간 모형의 좋은 대안이 될 수 있을 것이다.