For recent years, software product line engineering has gained great attention from industry, because it is known as the best development method for cost effective and time to market. A Software product line saves development cost and development time by systematic reuse method. To make reuse efficiently, it captures commonalities and variabilities among the products of same class that the organization produces, and develops reference architecture and reusable assets based on the analyzed commonalities and variability. There are many researches and studies to develop this reuse based development method to make more cost efficient. But, to save total cost economically, not only development cost but also quality cost are considered. If there are defects on a reusable asset, reuse multiplies the negative cost effect more seriously. If one failure is happened, all the applications that uses the asset are affected, and cost increases proportionally to the number of applications that use the asset. So, testing of reusable assets needs to consider this quality cost seriously caused by defect, and make it minimized. Till now, there are quite a few researches that handle unit test of product line domain engineering. Moreover it is not easy to find researches related with product line unit test to consider this quality cost influence. In this paper, we will propose effective unit test strategy based on the quality cost of unit testing, especially external failur cost in domain engineering. External failure cost is a cost that is spent when defects of application cause failure after the application is delivered to the customer. This external failure cost can be estimated through the marketing plan and customer requirements. With this cost information, each module`s cost influence can be estimated also. Then this module`s cost influence can be used to make unit test strategies those are module level strategy and test case level strategy.
최근 소프트웨어 제품라인은 산업계의 주목을 받아왔다. 소프트웨어 제품라인 개발 방법론을 이용하면, 개발 기간도 줄일 수 있고, 개발 비용도 절감할 수 있다고 알려져 왔기 때문이다. 이 소프트웨어 제품라인 공학은 재사용을 보다 시스템적이고 효과적으로 이용할 수 있는 방법을 제시함으로써, 이러한 장점들을 극대화 하고 있다. 이렇게 재사용을 효과적으로 하기 위하여, 소프트웨어 제품라인은 동일한 도메인에서의 공통부와 가변부를 분석하여 이를 정의하고, 이를 기반으로 공통으로 사용할 수 있는 아키텍쳐와 재사용 가능한 모듈들을 개발한다. 이런 재사용 방법을 기반으로하여 여러 가지 제품들을 개발을 한다. 이뿐 아니라, 재사용을 통한 효과적인 개발 방법론에 대한 여러가지 연구가 있어왔다. 그러나, 전체적인 비용 효과적인 개발 방법을 추구하기 위해서는, 개발 비용의 절감뿐만이 아니라, 품질비용도 최소화 할 수 있는 방법이 필요하다. 재사용의 장점은 동일한 소스코드를 여러 번 사용함으로써, 이로 인한 개발 비용 절감이지만, 이 재사용 모듈에 고장이 발생하게 되면, 그 품질 비용은 재사용된 횟수만큼 늘어나게 되는 위험도 있다.
전체 비용 효율적인 개발방법론이 되기 위해서는 이러한 품질비용을 최소화 할 수 있는 테스트 방법도 필요하다. 그러나 안타깝게도 도메인 공학에서의 효과적인 테스트 방법에 대한 연구가 많이 진행되지 못했다. 뿐만 아니라, 품질비용을 고려한 테스트 방법론은 더욱 찾기 어려운 상황이다. 본 연구에서는 품질비용을 고려하여, 이 비용을 최소화 할 수 있는 도메인 공학의 단위 테스트(모듈 테스트)방법을 제시했다. 제품별 외부실패비용을 구하고, 이 외부실패비용에 영향을 주는 모듈의 비용 영향력을 각각을 구한다. 이를 MI, PMI, PMC, TPMC 를 구하는 과정을 통해, 각 모듈별 외부실패비용의 영향력을 구했다. 이렇게 구해진 모듈의 외부실패비용을 이용하여, 각 테스트 케이스별 외부실패비용을 구하고, 이 비용이 큰 순서로 테스트케이스를 우선순위화 한다. 이렇게 우선순위화 된 테스트 케이스를, 자원이 허용하는 만큼 순서대로 실행을 하면, 최대의 외부실패비용 절감을 가능하게 할 수 있다.