KR101408870B1 - Uml sd로부터 mccfg를 기반으로 하는 다단계 테스트 케이스 생성장치 및 방법 - Google Patents
Uml sd로부터 mccfg를 기반으로 하는 다단계 테스트 케이스 생성장치 및 방법 Download PDFInfo
- Publication number
- KR101408870B1 KR101408870B1 KR1020120124859A KR20120124859A KR101408870B1 KR 101408870 B1 KR101408870 B1 KR 101408870B1 KR 1020120124859 A KR1020120124859 A KR 1020120124859A KR 20120124859 A KR20120124859 A KR 20120124859A KR 101408870 B1 KR101408870 B1 KR 101408870B1
- Authority
- KR
- South Korea
- Prior art keywords
- mccfg
- uml
- metamodel
- model
- test case
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3676—Test management for coverage analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
본 발명은 UML(Unified Modeling Language) SD(Sequence Diagram}로부터 MCCFG(Multiple Condition Control Flow Graph)를 기반으로 하여 소프트웨어를 테스트하기 위한 다단계 테스트 케이스를 발생하는 것으로서 변환하고자 하는 모델에 대하여 정의된 UML SD 메타모델이 저장된 SD 메타모델 저장부와, MCCFG(Multiple Condition Control Flow Graph) 메타모델이 저장되는 MCCFG 메타모델 저장부와, 테스트 케이스를 생성하고자 하는 UML SD를, SD 메타모델 및 MCCFG 메타모델에 따라 모델 변환하여 MCCFG를 생성하는 모델 변환부와, 상기 MCCFG를 트리 구조로 변경한 후 선택명령에 따른 테스트 케이스로 변경하는 커버리지 크리테리아부를 포함하는 UML SD로부터 MCCFG를 기반으로 하는 다단계 테스트 케이스 생성장치 및 방법에 관한 것이다.
Description
본 발명은 UML(Unified Modeling Language) SD(Sequence Diagram}로부터 MCCFG(Multiple Condition Control Flow Graph)를 기반으로 하여 다중의 소프트웨어 단계를 테스트하기 위한 테스트 케이스를 발생하는, UML SD로부터 MCCFG를 기반으로 하는 다단계 테스트 케이스 생성장치 및 방법에 관한 것이다.
소프트웨어의 테스트는 소프트웨어의 문제를 최소화하기 위해서 반드시 필요하다. 최근 소프트웨어의 품질이 중요해지면서 소프트웨어 분야에서는 보다 다양하고 향상된 테스트 방법을 요구하고 있다.
그 이유는 소프트웨어의 테스트를 수행하는 대상인 임베디드 시스템 및 소프트웨어 시스템들이 단일에서 이종 복합으로 변화해 가면서 소프트웨어의 규모가 점점 커져가고 있기 때문이다.
또한 소프트웨어의 테스팅도 기존의 단일 시스템에 대한 테스팅에서 이종 복합 시스템의 테스팅으로 변화되어야 한다.
이에 따라 점점 소프트웨어의 품질 향상을 위한 많은 노력을 요구하고 있다.
소프트웨어의 품질향상에 있어서 소프트웨어 테스팅은 매우 중요한 단계이다. 개발비용 중 약 30∼60%가 소프트웨어의 테스팅에 소요된다.
소프트웨어 테스팅은 소프트웨어의 결함을 나타내기 위한 시도로서, 기존의 소프트웨어 테스팅은 소프트웨어를 개발하는 과정 중에서 마지막 단계로 소프트웨어 개발 생명주기의 전통적인 방법을 적용하게 된다.
그렇지만 마지막 단계에서 적용하는 소프트웨어의 테스팅은 소프트웨어의 개발에 추가비용이 발생할 수 있고, 결함을 수정하는데 상당한 비용이 발생하게 된다.
따라서 소프트웨어의 개발 단계에서 발생할 수 있는 추가 비용을 최소화하고, 각 개발 단계에서 산출된 결과물에 대한 재사용성(reusability) 및 확장성(extensibility)을 높이기 위한 방법으로 각 개발 단계별 요구사항을 분석하고, 설계 단계에서부터 요구사항을 구분하여 설계하며, 테스트 케이스를 추출하는 것이 필요하다.
이러한 의미에서 요구사항을 기반으로 하는 테스트 케이스의 생성은 소프트웨어의 질을 결정하는 테스트 작업에서 매우 중요한 부분을 차지하는 작업이다.
그러나 요구사항을 기반으로 하여 테스트 케이스를 생성하는 방법에 대한 연구는 현재 미미한 실정이다. 또한 소프트웨어의 테스팅은 무한 입력 값, 경로 및 타이밍 등의 이유로 완벽하게 테스팅을 수행하는 것은 불가능하다. 즉, 지극히 간단한 소프트웨어를 제외하고는 모든 가능성을 테스팅하는 것은 불가능하다.
따라서 완벽한 소프트웨어의 테스팅을 수행하는 대신에 우선순위에 따른 테스팅의 활동에 노력을 집중시키고 있다.
완벽한 테스팅은 안전필수 시스템(Safety critical system), 예를 들면, 우주항공 및 의료 등의 소프트웨어를 개발할 경우에 고려되고 있으나, 실제로는 강력한 테스팅일 뿐이고, 완벽한 테스팅은 아닌 것이다.
대부분의 일반 소프트웨어는 완벽한 테스팅의 대상이 아니며 이러한 경우에 완벽하게 테스팅하려는 시도는 불필요한 시간과 자원의 낭비로 볼 수 있다.
그러므로 종래에는 여러 가지 테스트 기법을 혼합하여 테스트 케이스를 생성하는 방법을 사용하고 있다.
그러나 상기 여러 가지 테스트 기법을 혼합하여 테스트 케이스를 생성하는 방법은 테스트 케이스의 생성 방법이 복잡하여 자동화를 어렵게 하고, 이로 인하여 테스팅의 비용이 증가하게 된다.
본 발명이 해결하고자 하는 과제는 다양한 커버리지에 따라 상이한 수준의 테스트 케이스를 자동으로 발생하기 위하여 요구사항을 기반으로 테스트 케이스를 생성하는 UML SD로부터 MCCFG를 기반으로 하는 다단계 테스트 케이스 생성장치 및 방법을 제공한다.
또한 본 발명이 해결하고자 하는 과제는 UML SD를 MCCFG로 모델 변환하고, 모델 변환한 MCCFG에 커버리지를 적용하여 테스트 케이스를 생성하는 UML SD로부터 MCCFG를 기반으로 하는 다단계 테스트 케이스 생성장치 및 방법을 제공한다.
또한 본 발명이 해결하고자 하는 과제는 테스트의 우선순위에 따라 상기한 강도의 테스트 케이스를 생성하는 UML SD로부터 MCCFG를 기반으로 하는 다단계 테스트 케이스 생성장치 및 방법을 제공한다.
본 발명이 해결하고자 하는 과제들은 상기에서 언급한 기술적 과제들로 제한되지 않고, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 명확하게 이해될 수 있을 것이다.
본 발명의 UML SD로부터 MCCFG를 기반으로 하는 다단계 테스트 케이스 생성장치 및 방법에 따르면, 요구사항을 기반으로 하여 테스트 케이스를 생성한다. 상기 요구사항의 표현을 위하여 UML SD를 사용하고, 다양한 수준의 테스트 케이스의 레벨을 적용하기 위해서 CFG(Control Flow Graph)를 사용하는 것으로서 UML SD와 테스트 케이스 사이의 중간 모델로 상기 CFG를 사용한다.
그러나 상기 CFG를 이용해서는 다양한 수준의 테스트 케이스를 생성하지 못한다. 그 이유는 상기 CFG는 멀티플 컨디션(Multiple Condition)에 대한 정보를 표현하지 못하기 때문이다. 그러므로 상기 CFG가 컨디션을 표현 가능하도록 확장할 필요가 있다.
그러므로 본 발명에서는 CFG에 멀티플 컨디션의 개념을 추가 확장한 MCCFG(Multiple Condition CFG)를 정의한다.
상기 CFG에 멀티플 컨디션의 개념을 확장한 MCCFG는 and와 or의 조건을 처리할 수 있도록 하였고 and와 or를 조합하여 여러 개의 조건을 표현할 수 있도록 한다.
두 개의 모델을 자동 변환하기 위해서 각 모델에 대한 메타모델을 MOF(Meta Object Facility)를 이용하여 정의하고 두 모델의 변환을 수행한다.
최종의 테스트 케이스는 MCCFG를 이용하여 커버리지 크리테리어(Coverage Criteria)를 적용하여 각 커버리지 별로 테스트 케이스를 자동 생성할 수 있도록 한다.
여기서, 테스트 케이스의 발생을 효과적으로 수행하기 위해서 MCCFG를 트리(Tree)로 변환한 후에 테스트 케이스를 발생하도록 한다.
그러므로 본 발명의 UML SD로부터 MCCFG를 기반으로 하는 다단계 테스트 케이스 생성장치는, UML(Unified Modeling Language) SD(Sequence Diagram) 메타모델이 저장된 UML SD 메타모델 저장부와, MCCFG(Multiple Condition Control Flow Graph) 메타모델이 저장된 MCCFG 메타모델 저장부와, UML SD를 상기 UML SD 메타모델 및 상기 MCCFG 메타모델에 따라 모델 변환하여 MCCFG를 생성하는 모델 변환부와, 상기 MCCFG를 복수 개의 테스트 케이스로 변환하는 커버리지 크리테리아부를 포함할 수 있다.
상기 UML SD 메타모델 저장부에는, UML 사양(specification)으로부터 추출한 UML SD 메타모델이 저장될 수 있다.
상기 UML SD 메타모델은, Interaction, Lifeline, InteractionFragment 및 Message들 중에서 적어도 하나 이상의 엘레멘트를 포함할 수 있다.
상기 InteractionFragment는, CombinedFragment를 포함하고, 상기 CombinedFragment의 종류에는 seq, alt, opt, break, par 및 loop들 중에서 하나일 수 있다.
상기 MCCFG 메타모델은, MultiConditionGroup에 OR 조건을 표현하는 ORDecisionNode 및 AND 조건을 표현하는 ANDDecisionNode 중 하나 이상을 포함할 수 있다.
상기 모델 변환부는, ATL(Atlas Transformation Language)의 매핑 규칙에 따라 상기 UML SD 메타모델 및 상기 MCCFG 메타모델을 매핑시켜 MCCFG로 모델 변환을 수행할 수 있다.
상기 커버리지 크리테리아부는, 상기 MCCFG를 트리 구조로 변경하고, 상기 트리 구조를 복수 개의 테스트 케이스로 변환할 수 있다.
상기 복수 개의 테스트 케이스는, SC(Statement Coverage), DC(Decision Coverage), CDC(Condition/Decision Coverage) 및 MC/DC(Modified Condition/Decision Coverage)의 테스트 케이스들 중에서 하나 이상일 수 있다.
상기 커버리지 크리테리아부는, 상기 복수 개의 테스트 케이스들 각각을, Test Scenario ID, Testcase ID, Inflow, Event, Condition 및 Outflow들 중에서 적어도 하나 이상으로 구분하여 생성할 수 있다.
그리고 본 발명의 UML SD로부터 MCCFG를 기반으로 하는 다단계 테스트 케이스 생성장치에서의 다단계 테스트 케이스 생성방법은, 모델 변환부가 UML(Unified Modeling Language) SD(Sequence Diagram)를 UML SD 메타모델 및 MCCFG(Multiple Condition Control Flow Graph) 메타모델에 따라 모델 변환하여 MCCFG를 생성하는 단계와, 커버리지 크리테리아부가 상기 MCCFG를 복수 개의 테스트 케이스로 변환하는 단계를 포함할 수 있다.
상기 UML SD 메타모델은, UML 사양(specification)으로부터 추출한 UML SD 메타모델일 수 있다.
상기 UML SD 메타모델은, Interaction, Lifeline, InteractionFragment 및 Message들 중에서 적어도 하나 이상의 엘레멘트를 포함할 수 있다.
상기 InteractionFragment는, CombinedFragment를 포함하고, 상기 CombinedFragment의 종류에는 seq, alt, opt, break, par 및 loop들 중에서 하나 이상일 수 있다.
상기 MCCFG 메타모델은, MultiConditionGroup에 OR 조건을 표현하는 ORDecisionNode 및 AND 조건을 표현하는 ANDDecisionNode중 하나 이상을 포함할 수 있다.
상기 모델 변환부가 UML(Unified Modeling Language) SD(Sequence Diagram)를 SD 메타모델 및 MCCFG(Multiple Condition Control Flow Graph) 메타모델에 따라 모델 변환하여 MCCFG를 생성하는 단계는, ATL(Atlas Transformation Language)의 매핑 규칙에 따라 상기 UML SD 메타모델 및 상기 MCCFG 메타모델을 매핑시켜 MCCFG로 모델 변환을 수행할 수 있다.
상기 커버리지 크리테리아부가 상기 MCCFG를 복수 개의 테스트 케이스로 변환하는 단계는, 상기 MCCFG를 트리 구조로 변경하고, 사용자의 선택명령에 따라 상기 트리 구조를 테스트 케이스로 변경할 수 있다.
상기 복수 개의 테스트 케이스는, SC(Statement Coverage), DC(Decision Coverage), CDC(Condition/Decision Coverage) 및 MC/DC(Modified Condition/Decision Coverage)의 테스트 케이스들 중에서 하나 이상일 수 있다.
상기 커버리지 크리테리아부가 상기 MCCFG를 복수 개의 테스트 케이스로 변환하는 단계는, 상기 복수 개의 테스트 케이스들 각각을, Test Scenario ID, Testcase ID, Inflow, Event, Condition 및 Outflow들 중에서 적어도 하나 이상으로 구분하여 생성할 수 있다.
본 발명의 UML SD를 기반으로 하는 테스트 케이스 생성장치 및 방법에 따르면, 테스트의 우선순위에 따른 강도의 테스트 케이스를 생성하므로 여러 가지 모델을 혼합하여 복잡하게 테스팅을 수행할 필요가 없이 한 가지 모델로 다양한 수준의 테스트를 수행하는 것이 가능하다.
그러므로 테스팅에 사용되는 노력을 줄일 수 있고 테스트 케이스를 설계할 경우에 복잡한 모델을 사용하지 않아 테스팅에 사용되는 비용을 절감할 수 있다.
이하에서는 첨부된 도면들을 참조하여 본 발명을 한정하지 않는 실시 예를 통해 본 발명을 보다 상세히 설명하며, 일부 도면에서 동일한 요소에 대해서는 동일한 부호를 부여한다.
도 1은 본 발명의 테스트 케이스 발생장치의 실시 예의 구성을 보인 블록도,
도 2는 본 발명의 테스트 케이스 발생장치에서 MCCFG 메타모델에 대한 엘레멘트들을 표현한 도면,
도 3은 본 발명의 테스트 케이스 발생장치에서 매핑 규칙을 ATL로 표현한 도면,
도 4는 일반적인 형태의 UML SD를 MCCFG로 변환하여 보인 도면,
도 5는 본 발명의 테스트 케이스 발생장치에서 올터너티브 플래그먼트(Alternatives Flagment) SD를 MCCFG로 변환하여 보인 도면,
도 6의 (a) 내지 (f)는 본 발명의 테스트 케이스 발생장치에서 MCCFG의 컨디션의 종류를 보인 도면,
도 7은 본 발명의 테스트 케이스 발생장치에서 병렬 플래그먼트 SD를 MCCFG로 변환하여 보인 도면,
도 8은 본 발명의 테스트 케이스 발생장치에서 옵션 플래그먼트 SD를 MCCFG로 변환하여 보인 도면,
도 9는 본 발명의 테스트 케이스 발생장치에서 루프 플래그먼트 SD를 MCCFG로 변환하여 보인 도면,
도 10은 본 발명의 테스트 케이스 발생장치에서 테스트 케이스를 생성하기 위하여 MCCFG를 트리로 변환한 도면,
도 11은 본 발명의 테스트 케이스 발생방법을 보인 신호흐름도이다.
도 1은 본 발명의 테스트 케이스 발생장치의 실시 예의 구성을 보인 블록도,
도 2는 본 발명의 테스트 케이스 발생장치에서 MCCFG 메타모델에 대한 엘레멘트들을 표현한 도면,
도 3은 본 발명의 테스트 케이스 발생장치에서 매핑 규칙을 ATL로 표현한 도면,
도 4는 일반적인 형태의 UML SD를 MCCFG로 변환하여 보인 도면,
도 5는 본 발명의 테스트 케이스 발생장치에서 올터너티브 플래그먼트(Alternatives Flagment) SD를 MCCFG로 변환하여 보인 도면,
도 6의 (a) 내지 (f)는 본 발명의 테스트 케이스 발생장치에서 MCCFG의 컨디션의 종류를 보인 도면,
도 7은 본 발명의 테스트 케이스 발생장치에서 병렬 플래그먼트 SD를 MCCFG로 변환하여 보인 도면,
도 8은 본 발명의 테스트 케이스 발생장치에서 옵션 플래그먼트 SD를 MCCFG로 변환하여 보인 도면,
도 9는 본 발명의 테스트 케이스 발생장치에서 루프 플래그먼트 SD를 MCCFG로 변환하여 보인 도면,
도 10은 본 발명의 테스트 케이스 발생장치에서 테스트 케이스를 생성하기 위하여 MCCFG를 트리로 변환한 도면,
도 11은 본 발명의 테스트 케이스 발생방법을 보인 신호흐름도이다.
이하의 상세한 설명은 예시에 지나지 않으며, 본 발명의 실시 예를 도시한 것에 불과하다. 또한 본 발명의 원리와 개념은 가장 유용하고, 쉽게 설명할 목적으로 제공된다.
따라서, 본 발명의 기본 이해를 위한 필요 이상의 자세한 구조를 제공하고자 하지 않았음은 물론 통상의 지식을 가진 자가 본 발명의 실체에서 실시될 수 있는 여러 가지의 형태들을 도면을 통해 예시한다.
도 1은 본 발명의 테스트 케이스 발생장치의 실시 예의 구성을 보인 블록도이다. 여기서, 부호 100은 변환하고자 하는 모델에 대하여 정의된 UML(Unified Modeling Language) SD(Sequence Diagram) 메타모델(Metamodel)이 저장되는 UML SD 메타모델 저장부이다.
UML SD 메타모델을 정의하기 위하여 본 발명에서는 UML(Unified Modeling Language) 사양(specification)으로부터 UML SD 메타모델을 추출하고 추출한 UML SD 메타모델을 상기 UML SD 메타모델 저장부(100)에 저장한다.
상기 UML SD 메타모델 저장부(100)에 저장된 UML SD 메타모델의 주요 엘레멘트(Element)들로 Interaction과, Lifeline과, InteractionFragment와, Message를 포함할 수 있다.
상기 Interaction은 클래스의 인스턴스로서 Lifeline, InteractionFragment 및 Gate들로 구성될 수 있다. 상기 Lifeline은 객체의 생명선으로 객체의 생성부터 소멸까지 이어질 수 있다. 상기 InteractionFragment는 여러 종류의 Fragment를 가지는데 주로 CombinedFragment가 사용되고, 그 종류에는 seq, alt, opt, break, par 및 loop 등을 포함할 수 있다. 상기 Message는 Gate들을 연결한 것이다.
부호 110은 MCCFG(Multiple Condition Control Flow Graph) 메타모델이 저장되는 MCCFG 메타모델 저장부이다. 상기 MCCFG 메타모델 저장부(110)에 저장되는 MCCFG 메타모델은 UML Activity Diagram의 메타모델을 기반으로 하는 것으로서 UML 2.4 사양(specification)에서 정의하고 있는 액티비티 다이어그램(Activity Diagram) 메타모델의 구조를 사용하기 쉬운 구조물로 변경하였고, 새로 추가되는 멀티플 컨디션(Multiple Condition) 부분의 엘레멘트를 추가하였다.
또한 상기 MCCFG 메타모델은 Group을 사용할 수 있도록 하였고, 크게 AbstractNode와 Edge로 구성된다. 상기 AbstractNode는 모든 노드들에 대한 추상노드로 InitialNode, FinalNode 및 Node 등을 포함할 수 있다. 상기 Edge는 노드와 노드를 연결시키는 다리 역할을 한다.
이러한 본 발명의 MCCFG 메타모델은 MultiConditionGroup에 ORDecisionNode 및 ANDDecisionNode를 포함할 수 있다. 상기 ORDecisionNode는 OR 조건을 표현하는 것이고, 상기 ANDDecisionNode는 AND 조건을 표현하는 것이다.
도 2는 MCCFG 메타모델에 대한 엘레멘트들을 표현한 것이다. 여기서, 사용한 MultiConditionGroup의 조건은 'A==true && (B==true || C==true)'일 경우를 표현한 것이다.
상기 MultiConditionGroup의 조건은 우선순위에 따라 표현되는 것으로서 OR 조건의 우선순위가 AND 조건의 우선순위보다 높기 때문에 먼저 표현되고, 그 다음 AND 조건이 표현되었다.
그리고 ORDecisionNode 및 ANDDecisionNode는 각기 2개의 입력만 가능하도록 하였다. 만약에 여러 개의 AND로 연결되어 있을 경우에는 OR를 결합한 것과 같이 AND들로 나열하여 표현하는 것이 가능하다.
CFG(Control Flow Graph)에서 결정 노드는 조건의 개수와 관계없이 모두 하나로 표현되기 때문에 이를 테스트 케이스로 생성할 경우에도 하나의 조건으로 처리된다.
그러므로 종래에는 CFG에서 Modified Condition/Decision Coverage를 적용할 경우에는 조건만 따로 뽑아 테스트 케이스를 발생하였다.
그러나 본 발명에서의 MCCFG는 모델 내에 조건을 모두 표현하기 때문에 MCCFG를 만족하는 테스트 케이스를 발생할 경우에 별도의 작업 없이 테스트 케이스를 생성하는 것이 가능하다.
부호 120은 모델 변환부이다. 상기 모델 변환부(120)는 테스트 케이스를 생성하고자 하는 UML(Unified Modeling Language) SD(Sequence Diagram)에서 제어 흐름이 되는 요소를 추출하여, 상기 UML SD 메타모델 저장부(100)에 저장된 UML SD 메타모델과 상기 MCCFG 메타모델 저장부(110)에 저장된 MCCFG의 메타모델에 따라 모델 변환하여 MCCFG를 생성한다.
상기 모델 변환부(120)가 모델변환을 수행하기 위해서는 상기 UML SD 메타모델 저장부(100)에 저장된 UML SD 메타모델과 상기 MCCFG 메타모델 저장부(110)에 저장된 MCCFG의 메타모델의 매핑을 수행해야 된다.
본 발명에서는 모델 변환을 수행하기 위하여, ATL(Atlas Transformation Language)을 이용하여 표현한다.
상기 ATL은 예를 들면, 하기의 표 1과 같이 6개의 매핑 규칙을 가지고 있다.
SD Metamodel Feature | MCCFG Metamodel Feature |
1. Lifeline | Group |
2. Message | Edge |
3. SendOperationEvent and ReceivedOperationEvent |
Node(source, target) |
4. alt/opt CombinedFragment | DecisionNode or ANDDecisionNode or ORDecisionNode |
5. par CombinedFragment | ForkNode or JointNode |
6. loop CombinedFragment | DecisionNode or ANDDecisionNode or ORDecisionNode |
상기 매핑 규칙을 ATL로 표현하면, 도 3과 같다.
상기 ATL은 프로그램 언어의 메소드와 같이 헬퍼(Helper) 기능을 제공하는 것으로서 노드를 찾기 위한 findNode와, 표현식을 분석하여 AND 및 OR 노드를 생성해주는 CreateNode와, 이벤트 노드를 찾는 findSendEvent와, findReceiveEvent는 Helper로 작성하였다.
상기 ATL 규칙을 도구에 넣고 수행하면, 대상모델의 데이터 파일이 생성된다. 이 데이터 파일을 도구가 읽으면 그래프로 출력된다.
여기서, 모델 변환 규칙을 수행하였을 경우에 나타나는 결과에 대하여 설명한다.
UML SD에서 제어흐름의 그래프를 추출하기 위해서는 객체와 객체간에 메시지를 주고받는 곳의 라벨링이 필요하다. 그리고 다음 분기가 일어나는 지점을 연결하여 만들어 준다.
도 4는 일반적인 형태의 UML SD를 MCCFG로 변환하여 보인 도면으로서 메시지를 주고받는 부분의 객체에 라벨링을 하고 이것들을 순차적으로 연결시켜준다.
일반적으로 UML 2.4의 SD는 플래그먼트(Fragment)를 지원한다. 상기 플래그먼트는 특별한 기능을 가진 표기법으로 alt, opt, break, par, loop, critical, neg, assert, strict, seq, ignore 및 consider의 총 12개의 기능으로 구분된다.
본 발명에서는 상기한 12개의 기능들 중에서 제어흐름과 관련된 alt, opt, par 및 loop의 4가지 요소만 적용하였다.
도 5는 본 발명의 테스트 케이스 발생장치에서 올터너티브 플래그먼트(Alternatives Flagment) SD를 MCCFG로 변환하여 보인 도면이다. alt는 조건에 따라 다른 메시지를 호출할 때 사용한다. 이때 분기가 되는 지점에 대한 라벨링은 한 개로 하여 그것을 중심으로 각각 나누어지도록 한다. 상기 alt에서 두 개의 구문으로 분기가 될 때 조건을 사용하게 되는데 MCCFG는 조건까지 모두 그래프로 표현한다.
도 6의 (a) 내지 (f)는 본 발명의 테스트 케이스 발생장치에서 MCCFG의 컨디션의 종류를 보인 도면이다. 도 6의 (a) 내지 (f)를 살펴보면, 본 발명은 모든 조건을 단일화하여 처리하기 위해서 조건에 입력되는 값은 2개로 제한하였다.
도 6의 (a) 및 (b)는 각기 'A and B'와 'A or B'의 단일 조건을 표현한 것이다. 멀티 컨디션(Multiple Condition)인 도 6의 (c)는 'A and (B or C)'의 조건을 표현한 것이고, 도 6의 (d)는 'A or (B or C)'의 조건을 표현한 것이며, 도 6의 (e)는 'A and (B or C)'의 조건을 표현한 것이며, 도 6의 (f)는 'A or (B and C)'의 조건을 표현한 것이다.
이와 같이 본 발명의 MCCFG는 결정 값에 따른 분기뿐만 아니라 조건까지 표기하여 강도 높은 테스트 케이스를 생성할 수 있는 정보를 제공할 수 있다.
도 7은 본 발명의 테스트 케이스 발생장치에서 병렬 플래그먼트(Parallel Fragment) SD를 MCCFG로 변환하여 보인 도면이다. 병렬 플래그먼트인 pal은 동시에 메시지를 수행할 때 사용한다. 이것은 2개의 메시지가 나눠져 수행되는 것과 같으므로 하나에서 두 개로 분기된다. 이때 ForkNode와 JoinNode를 이용하여 병렬 상태를 표현하게 된다.
도 8은 본 발명의 테스트 케이스 발생장치에서 옵션 플래그먼트(Option Fragment) SD를 MCCFG로 변환하여 보인 도면이다. 옵션 플래그먼트인 opt는 메시지 호출을 선택해서 할 수 있다. 그러므로 메시지가 시작되는 점과 끝점에는 라벨이 있어야 한다.
메시지 호출이 동기가 아닐 경우에 호출 당한 객체로 무조건 넘겨지는 것이 아니라 호출한 객체로 다시 주어질 수 있기 때문이다. opt로 되어 있는 구간은 선택적으로 실행되기 때문에 그래프에서는 다음 메시지를 이동할 수도 있고 opt 구간을 거쳐갈 수 있도록 그래프가 표현된다.
도 9는 본 발명의 테스트 케이스 발생장치에서 루프 플래그먼트(Loop Fragment) SD를 MCCFG로 변환하여 보인 도면이다. 루프 플래그먼트인 loop는 반복적으로 메시지가 수행될 때 사용된다. 이것은 표시된 loop 구간의 메시지가 일정한 조건이 성립할 때까지 계속적으로 수행되는 것과 같다.
상기 모델 변환부(120)에서 모델 변환된 MCCFG는 커버리지 크리테리어부(130)에서 사용자에 의한 선택명령에 따라 테스트 케이스로 변환된다.
상기 커버리지 크리테리어부(130)는 상기 MCCFG로 테스트 케이스를 생성하기 위하여 도 10과 같은 트리 구조로 변경한다. 그리고 상기 트리 구조를 이용하여 테스트 케이스를 발생시킨다.
상기 커버리지 크리테리어부(130)에서 생성되는 테스트 케이스는 하기의 표 2와 같이 Test Scenario ID, Testcase ID, Inflow, Event, Condition 및 Outflow로 구분되어있다.
Test Scenario ID | Testcase ID | Inflow | Event | Condition | Outflow |
TS1 |
TC1 | Node1 | F1() | N/A | Node2 |
TC2 | Node2 | F2() | N/A | Node3 | |
TC3 | Node3 | F3() | D1==true | Node4 | |
TS2 | TC4 | Node1 | F4() | D-==false | Node4 |
상기 Test Scenario ID는 각각의 테스트 케이스들을 연결해서 만들어진 시나리오 패스이다. 예를 들면 TS1은 TC1→TC2→TC3의 순서대로 순차적으로 수행되고 TS2는 TC4가 수행된다.
상기 Testcase ID는 해당되는 테스트 케이스의 식별자를 부여한 것이다.
상기 Inflow는 flow가 시작되는 지점을 나타내고, 상기 Event는 발생되는 메시지를 나타내며, 상기 Condition은 상기 Event가 수행되기 위한 조건을 나타내며, 상기 Outflow는 flow가 끝나는 지점을 나타낸다.
상기 커버리지 크리테리어부(130)가 사용자에 의한 선택명령에 따라 발생하는 테스트 케이스 1인 SC(Statement Coverage)는 프로그램 코드내의 모든 구문을 적어도 한 번 이상 실행되어야 한다. 적은 개수의 테스트 데이터로 쉽게 달성할 수 있지만 코드 상에 존재하는 가능한 경우들 중에서 많은 부분을 검증하지 못하는 보장성이 낮은 커버리지이다.
테스트 케이스의 발생은 트리의 모든 노드를 적어도 한 번 지나가도록 하면 되기 때문에 이미 수행된 패스는 제외하고 깊이 우선 탐색으로 테스트 케이스를 발생한다.
상기 도 10에 도시된 MCCFG로 SC의 테스트 케이스를 발생시키면 하기의 표 3과 같다.
Test Scenario ID | Testcase ID | Inflow | Event | Condition | Outflow |
TS1 | TC1 | Node1 | - | N/A | Node2 |
TC2 | Node2 | - | N/A | Node7 | |
TS2 | TC3 | Node3 | - | N/A | Node5 |
TC4 | Node5 | - | N/A | Node7 | |
TS3 | TC5 | Node6 | - | N/A | Node7 |
TS4 | TC6 | Node4 | - | N/A | Node7 |
상기 커버리지 크리테리어부(130)가 선택명령에 따라 발생하는 테스트 케이스 2인 DC(Decision Coverage)는 결정 포인트 내의 전체 조건식이 '참'과 '거짓'의 모든 값을 갖게 되어 모든 분기로 흐르게 되면 달성된다. 그러므로 트리에서 분기되는 부분을 모두 테스트 케이스로 발생한다.
상기 도 10에 도시된 MCCFG로 DC의 테스트 케이스를 발생시키면 하기의 표 4와 같다.
Test Scenario ID | Testcase ID | Inflow | Event | Condition | Outflow |
TS1 | TC1 | Node1 | - | N/A | Node2 |
TC2 | Node2 | - | N/A | Node7 | |
TS2 | TC3 | Node1 | - | N/A | Node3 |
TC4 | Node3 | - | N/A | Node5 | |
TC5 | Node5 | - | N/A | Node7 | |
TS3 | TC6 | Node3 | - | N/A | Node6 |
TC7 | Node6 | - | N/A | Node7 | |
TS4 | TC8 | Node1 | - | N/A | Node4 |
TC9 | Node4 | - | N/A | Node7 |
상기 커버리지 크리테리어부(130)가 선택명령에 따라 발생하는 테스트 케이스 3인 CDC(Condition/Decision Coverage)는 CC(Condition Coverage)와 DC(Decision Coverage)를 모두 항상 만족시키는 커버리지이다.
CC는 결정 포인트 내에 있는 개개의 개별 조건식이 '참'과 '거짓'의 모든 값을 갖게 되면 달성된다. DC와 CC의 차이는 조건을 한 가지로 볼 것인지 개별적으로 따로 볼 것인지에 따라 나뉘게 된다.
상기 도 10에 도시된 MCCFG로 CDC의 테스트 케이스를 발생시키면 하기의 표 5와 같다.
Test Scenario ID | Testcase ID | Inflow | Event | Condition | Outflow |
TS1 | TC1 | Node1 | - | A==false, B==true, C==false | Node2 |
TC2 | Node1 | - | A==false, B==false, C==true | Node2 | |
TC3 | Node1 | - | A==true, B==true, C==false | Node2 | |
TC4 | Node1 | - | A==true, B==false, C==false | Node2 | |
TS2 | TC5 | Node1 | - | A==false, B==true, C==false | Node3 |
TC6 | Node1 | - | A==false, B==false, C==true | Node3 | |
TC7 | Node1 | - | A==true, B==true, C==false | Node3 | |
TC8 | Node1 | - | A==true, B==false, C==false | Node3 | |
TC9 | Node3 | - | N/A | Node5 | |
TC10 | Node5 | - | N/A | Node7 | |
TS3 | TC11 | Node3 | - | N/A | Node6 |
TC12 | Node6 | - | N/A | Node7 | |
TS4 | TC13 | Node1 | - | A==false, B==true, C==false, | Node4 |
TC14 | Node1 | - | A==false, B==false, C==true | Node4 | |
TC15 | Node1 | - | A==true, B==true, C==false | Node4 | |
TC16 | Node1 | - | A==true, B==false, C==false | Node4 | |
TC17 | Node4 | - | N/A | Node7 |
상기 커버리지 크리테리어부(130)가 선택명령에 따라 발생하는 테스트 케이스 4인 MC/DC(Modified Condition/Decision Coverage)는 각각의 개별 조건식이 다른 개별 조건식에 영향을 받지 않고, 전체 조건식의 결과에 독립적으로 영향을 주도록 하여 CDC를 향상시킨 것이다.
상기 MC/DC를 만들기 위한 방법은 다음과 같다.
프로그램에 있는 모든 결정 포인트 내의 전체 조건식은 적어도 한 번 모든 가능한 결과 값(참, 거짓)을 갖는다. 프로그램에 있는 결정 포인트 내의 모든 개별 조건식은 적어도 한번 모든 가능한 결과 값(참, 거짓)을 갖는다. 결정 포인트에 있는 각각의 개별 조건식은 다른 개별 조건식에 영향을 받지 않고 그 결정 포인트의 결과 값에 독립적으로 영향을 준다.
상기 도 10에 도시된 MCCFG로 MC/DC의 테스트 케이스를 발생시키면 하기의 표 6과 같다.
Test Scenario ID | Testcase ID | Inflow | Event | Condition | Outflow |
TS1 | TC1 | Node | - | A==true, B==true, C==true | Node |
TC2 | Node | - | A==true, B==true, C==false | Node | |
TC3 | Node | - | A==true, B==false, C==true | Node | |
TC4 | Node | - | A==true, B==false, C==false | Node | |
TC5 | Node | - | A==false | Node | |
TS2 | TC6 | Node | - | A==true, B==true, C==true | Node |
TC7 | Node | - | A==true, B==true, C==false | Node | |
TC8 | Node | - | A==true, B==false, C==true | Node | |
TC9 | Node | - | A==true, B==false, C==false | Node | |
TC10 | Node | - | A== | Node | |
TC11 | Node | - | N/A | Node | |
TC12 | Node | - | N/A | Node | |
TS3 | TC13 | Node | - | N/A | Node |
TC14 | Node | - | N/A | Node | |
TS4 | TC15 | Node | - | A==true, B==true, C==true | Node |
TC16 | Node | - | A==true, B==true, C==false | Node | |
TC17 | Node | - | A==true, B==false, C==true | Node | |
TC18 | Node | - | A==true, B==false, C==false | Node | |
TC19 | Node | - | A==false | Node | |
TC20 | Node | - | N/A | Node |
도 11은 본 발명의 본 발명의 테스트 케이스 발생방법을 보인 신호흐름도이다. 도 11을 참조하면, 모델 변환부(120)는 입력되는 UML SD에서 제어 흐름이 되는 요소를 추출하고(S200), 추출한 제어 흐름이 되는 요소를 UML SD 메타모델 저장부(100)에 저장된 UML SD 메타모델과 MCCFG 메타모델 저장부(110)에 저장된 MCCFG 메타모델에 따라 MCCFG로 변환한다(S202).
이와 같은 상태에서 커버리지 크리테리아부(130)는 상기 MCCFG를 트리 구조로 변경하고(S204), 사용자로부터 입력되는 선택명령을 판단하며(S206), 판단한 선택명령에 따라 상기 MCCFG로 SC의 테스트 케이스 1, DC의 테스트 케이스 2, CDC의 테스트 케이스 3 또는 MC/DC의 테스트 케이스 4를 생성한다(S208).
이상에서는 대표적인 실시 예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시 예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다.
그러므로 본 발명의 권리범위는 설명된 실시 예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100 : UML SD 메타모델 저장부 110 : MCCFG 메타모델 저장부
120 : 모델 변환부 130 : 커버리지 크리테리아부
120 : 모델 변환부 130 : 커버리지 크리테리아부
Claims (18)
- 삭제
- UML(Unified Modeling Language) SD(Sequence Diagram) 메타모델이 저장된 UML SD 메타모델 저장부;
MCCFG(Multiple Condition Control Flow Graph) 메타모델이 저장된 MCCFG 메타모델 저장부;
UML SD를 상기 UML SD 메타모델 및 상기 MCCFG 메타모델에 따라 모델 변환하여 MCCFG를 생성하는 모델 변환부; 및
상기 MCCFG를 복수 개의 테스트 케이스로 변환하는 커버리지 크리테리아부;를 포함하고,
상기 UML SD 메타모델 저장부에는,
UML 사양(specification)으로부터 추출한 UML SD 메타모델이 저장된, UML SD로부터 MCCFG를 기반으로 하는 다단계 테스트 케이스 생성장치.
- UML(Unified Modeling Language) SD(Sequence Diagram) 메타모델이 저장된 UML SD 메타모델 저장부;
MCCFG(Multiple Condition Control Flow Graph) 메타모델이 저장된 MCCFG 메타모델 저장부;
UML SD를 상기 UML SD 메타모델 및 상기 MCCFG 메타모델에 따라 모델 변환하여 MCCFG를 생성하는 모델 변환부; 및
상기 MCCFG를 복수 개의 테스트 케이스로 변환하는 커버리지 크리테리아부;를 포함하고,
상기 UML SD 메타모델은,
Interaction, Lifeline, InteractionFragment 및 Message들 중에서 적어도 하나 이상의 엘레멘트를 포함하는, UML SD로부터 MCCFG를 기반으로 하는 다단계 테스트 케이스 생성장치.
- 제 3 항에 있어서,
상기 InteractionFragment는,
CombinedFragment를 포함하고, 상기 CombinedFragment의 종류에는 seq, alt, opt, break, par 및 loop들 중에서 하나인, UML SD로부터 MCCFG를 기반으로 하는 다단계 테스트 케이스 생성장치.
- UML(Unified Modeling Language) SD(Sequence Diagram) 메타모델이 저장된 UML SD 메타모델 저장부;
MCCFG(Multiple Condition Control Flow Graph) 메타모델이 저장된 MCCFG 메타모델 저장부;
UML SD를 상기 UML SD 메타모델 및 상기 MCCFG 메타모델에 따라 모델 변환하여 MCCFG를 생성하는 모델 변환부; 및
상기 MCCFG를 복수 개의 테스트 케이스로 변환하는 커버리지 크리테리아부;를 포함하고,
상기 MCCFG 메타모델은,
MultiConditionGroup에 OR 조건을 표현하는 ORDecisionNode 및 AND 조건을 표현하는 ANDDecisionNode 중 하나 이상을 포함하는, UML SD로부터 MCCFG를 기반으로 하는 다단계 테스트 케이스 생성장치.
- UML(Unified Modeling Language) SD(Sequence Diagram) 메타모델이 저장된 UML SD 메타모델 저장부;
MCCFG(Multiple Condition Control Flow Graph) 메타모델이 저장된 MCCFG 메타모델 저장부;
UML SD를 상기 UML SD 메타모델 및 상기 MCCFG 메타모델에 따라 모델 변환하여 MCCFG를 생성하는 모델 변환부; 및
상기 MCCFG를 복수 개의 테스트 케이스로 변환하는 커버리지 크리테리아부;를 포함하고,
상기 모델 변환부는,
ATL(Atlas Transformation Language)의 매핑 규칙에 따라 상기 UML SD 메타모델 및 상기 MCCFG 메타모델을 매핑시켜 MCCFG로 모델 변환을 수행하는, UML SD로부터 MCCFG를 기반으로 하는 다단계 테스트 케이스 생성장치.
- UML(Unified Modeling Language) SD(Sequence Diagram) 메타모델이 저장된 UML SD 메타모델 저장부;
MCCFG(Multiple Condition Control Flow Graph) 메타모델이 저장된 MCCFG 메타모델 저장부;
UML SD를 상기 UML SD 메타모델 및 상기 MCCFG 메타모델에 따라 모델 변환하여 MCCFG를 생성하는 모델 변환부; 및
상기 MCCFG를 복수 개의 테스트 케이스로 변환하는 커버리지 크리테리아부;를 포함하고,
상기 커버리지 크리테리아부는,
상기 MCCFG를 트리 구조로 변경하고, 상기 트리 구조를 복수 개의 테스트 케이스로 변환하는, UML SD로부터 MCCFG를 기반으로 하는 다단계 테스트 케이스 생성장치.
- UML(Unified Modeling Language) SD(Sequence Diagram) 메타모델이 저장된 UML SD 메타모델 저장부;
MCCFG(Multiple Condition Control Flow Graph) 메타모델이 저장된 MCCFG 메타모델 저장부;
UML SD를 상기 UML SD 메타모델 및 상기 MCCFG 메타모델에 따라 모델 변환하여 MCCFG를 생성하는 모델 변환부; 및
상기 MCCFG를 복수 개의 테스트 케이스로 변환하는 커버리지 크리테리아부;를 포함하고,
상기 복수 개의 테스트 케이스는,
SC(Statement Coverage), DC(Decision Coverage), CDC(Condition/Decision Coverage) 및 MC/DC(Modified Condition/Decision Coverage)의 테스트 케이스들 중에서 하나 이상인, UML SD로부터 MCCFG를 기반으로 하는 다단계 테스트 케이스 생성장치.
- UML(Unified Modeling Language) SD(Sequence Diagram) 메타모델이 저장된 UML SD 메타모델 저장부;
MCCFG(Multiple Condition Control Flow Graph) 메타모델이 저장된 MCCFG 메타모델 저장부;
UML SD를 상기 UML SD 메타모델 및 상기 MCCFG 메타모델에 따라 모델 변환하여 MCCFG를 생성하는 모델 변환부; 및
상기 MCCFG를 복수 개의 테스트 케이스로 변환하는 커버리지 크리테리아부;를 포함하고,
상기 커버리지 크리테리아부는,
상기 복수 개의 테스트 케이스들 각각을, Test Scenario ID, Testcase ID, Inflow, Event, Condition 및 Outflow들 중에서 적어도 하나 이상으로 구분하여 생성하는, UML SD로부터 MCCFG를 기반으로 하는 다단계 테스트 케이스 생성장치.
- 삭제
- 모델 변환부가 UML(Unified Modeling Language) SD(Sequence Diagram)를 UML SD 메타모델 및 MCCFG(Multiple Condition Control Flow Graph) 메타모델에 따라 모델 변환하여 MCCFG를 생성하는 단계; 및
커버리지 크리테리아부가 상기 MCCFG를 복수 개의 테스트 케이스로 변환하는 단계;를 포함하고,
상기 UML SD 메타모델은,
UML 사양(specification)으로부터 추출한 UML SD 메타모델인, UML SD로부터 MCCFG를 기반으로 하는 다단계 테스트 케이스 생성장치에서의 테스트 케이스 생성방법.
- 모델 변환부가 UML(Unified Modeling Language) SD(Sequence Diagram)를 UML SD 메타모델 및 MCCFG(Multiple Condition Control Flow Graph) 메타모델에 따라 모델 변환하여 MCCFG를 생성하는 단계; 및
커버리지 크리테리아부가 상기 MCCFG를 복수 개의 테스트 케이스로 변환하는 단계;를 포함하고,
상기 UML SD 메타모델은,
Interaction, Lifeline, InteractionFragment 및 Message들 중에서 적어도 하나 이상의 엘레멘트를 포함하는, UML SD로부터 MCCFG를 기반으로 하는 다단계 테스트 케이스 생성장치에서의 테스트 케이스 생성방법.
- 제 12 항에 있어서,
상기 InteractionFragment는,
CombinedFragment를 포함하고, 상기 CombinedFragment의 종류에는 seq, alt, opt, break, par 및 loop들 중에서 하나 이상인, UML SD로부터 MCCFG를 기반으로 하는 다단계 테스트 케이스 생성장치에서의 테스트 케이스 생성방법.
- 모델 변환부가 UML(Unified Modeling Language) SD(Sequence Diagram)를 UML SD 메타모델 및 MCCFG(Multiple Condition Control Flow Graph) 메타모델에 따라 모델 변환하여 MCCFG를 생성하는 단계; 및
커버리지 크리테리아부가 상기 MCCFG를 복수 개의 테스트 케이스로 변환하는 단계;를 포함하고,
상기 MCCFG 메타모델은,
MultiConditionGroup에 OR 조건을 표현하는 ORDecisionNode 및 AND 조건을 표현하는 ANDDecisionNode중 하나 이상을 포함하는, UML SD로부터 MCCFG를 기반으로 하는 다단계 테스트 케이스 생성장치에서의 테스트 케이스 생성방법.
- 모델 변환부가 UML(Unified Modeling Language) SD(Sequence Diagram)를 UML SD 메타모델 및 MCCFG(Multiple Condition Control Flow Graph) 메타모델에 따라 모델 변환하여 MCCFG를 생성하는 단계; 및
커버리지 크리테리아부가 상기 MCCFG를 복수 개의 테스트 케이스로 변환하는 단계;를 포함하고,
상기 모델 변환부가 UML(Unified Modeling Language) SD(Sequence Diagram)를 SD 메타모델 및 MCCFG(Multiple Condition Control Flow Graph) 메타모델에 따라 모델 변환하여 MCCFG를 생성하는 단계는,
ATL(Atlas Transformation Language)의 매핑 규칙에 따라 상기 UML SD 메타모델 및 상기 MCCFG 메타모델을 매핑시켜 MCCFG로 모델 변환을 수행하는, UML SD로부터 MCCFG를 기반으로 하는 다단계 테스트 케이스 생성장치에서의 테스트 케이스 생성방법.
- 모델 변환부가 UML(Unified Modeling Language) SD(Sequence Diagram)를 UML SD 메타모델 및 MCCFG(Multiple Condition Control Flow Graph) 메타모델에 따라 모델 변환하여 MCCFG를 생성하는 단계; 및
커버리지 크리테리아부가 상기 MCCFG를 복수 개의 테스트 케이스로 변환하는 단계;를 포함하고,
상기 커버리지 크리테리아부가 상기 MCCFG를 복수 개의 테스트 케이스로 변환하는 단계는,
상기 MCCFG를 트리 구조로 변경하고, 사용자의 선택명령에 따라 상기 트리 구조를 테스트 케이스로 변경하는, UML SD로부터 MCCFG를 기반으로 하는 다단계 테스트 케이스 생성장치에서의 테스트 케이스 생성방법.
- 모델 변환부가 UML(Unified Modeling Language) SD(Sequence Diagram)를 UML SD 메타모델 및 MCCFG(Multiple Condition Control Flow Graph) 메타모델에 따라 모델 변환하여 MCCFG를 생성하는 단계; 및
커버리지 크리테리아부가 상기 MCCFG를 복수 개의 테스트 케이스로 변환하는 단계;를 포함하고,
상기 복수 개의 테스트 케이스는,
SC(Statement Coverage), DC(Decision Coverage), CDC(Condition/Decision Coverage) 및 MC/DC(Modified Condition/Decision Coverage)의 테스트 케이스들 중에서 하나 이상인, UML SD로부터 MCCFG를 기반으로 하는 다단계 테스트 케이스 생성장치에서의 테스트 케이스 생성방법.
- 모델 변환부가 UML(Unified Modeling Language) SD(Sequence Diagram)를 UML SD 메타모델 및 MCCFG(Multiple Condition Control Flow Graph) 메타모델에 따라 모델 변환하여 MCCFG를 생성하는 단계; 및
커버리지 크리테리아부가 상기 MCCFG를 복수 개의 테스트 케이스로 변환하는 단계;를 포함하고,
상기 커버리지 크리테리아부가 상기 MCCFG를 복수 개의 테스트 케이스로 변환하는 단계는,
상기 복수 개의 테스트 케이스들 각각을, Test Scenario ID, Testcase ID, Inflow, Event, Condition 및 Outflow들 중에서 적어도 하나 이상으로 구분하여 생성하는, UML SD로부터 MCCFG를 기반으로 하는 다단계 테스트 케이스 생성장치에서의 테스트 케이스 생성방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120124859A KR101408870B1 (ko) | 2012-11-06 | 2012-11-06 | Uml sd로부터 mccfg를 기반으로 하는 다단계 테스트 케이스 생성장치 및 방법 |
US13/759,179 US8924923B2 (en) | 2012-11-06 | 2013-02-05 | Apparatus and method of generating multi-level test case from unified modeling language sequence diagram based on multiple condition control flow graph |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120124859A KR101408870B1 (ko) | 2012-11-06 | 2012-11-06 | Uml sd로부터 mccfg를 기반으로 하는 다단계 테스트 케이스 생성장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140059319A KR20140059319A (ko) | 2014-05-16 |
KR101408870B1 true KR101408870B1 (ko) | 2014-06-17 |
Family
ID=50623592
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120124859A KR101408870B1 (ko) | 2012-11-06 | 2012-11-06 | Uml sd로부터 mccfg를 기반으로 하는 다단계 테스트 케이스 생성장치 및 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8924923B2 (ko) |
KR (1) | KR101408870B1 (ko) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103246770B (zh) * | 2013-05-08 | 2015-10-14 | 南京大学 | 一种基于活动图模型的***行为仿真方法 |
CN104572031A (zh) * | 2013-10-09 | 2015-04-29 | 腾讯科技(深圳)有限公司 | 一种测试用例的生成方法及装置 |
US10108536B2 (en) | 2014-12-10 | 2018-10-23 | General Electric Company | Integrated automated test case generation for safety-critical software |
US10346140B2 (en) | 2015-08-05 | 2019-07-09 | General Electric Company | System and method for model based technology and process for safety-critical software development |
US9940222B2 (en) | 2015-11-20 | 2018-04-10 | General Electric Company | System and method for safety-critical software automated requirements-based test case generation |
US9792204B2 (en) | 2016-02-02 | 2017-10-17 | General Electric Company | System and method for coverage-based automated test case augmentation for design models |
CN107783895A (zh) * | 2016-08-31 | 2018-03-09 | 上海华虹集成电路有限责任公司 | 基于正交表的多条件参数测试用例设计方法 |
CN112052166B (zh) * | 2020-08-26 | 2021-05-18 | 河海大学 | 一种基于支配关系的测试用例生成方法与装置 |
CN112256591A (zh) * | 2020-11-12 | 2021-01-22 | 北京联创信安科技股份有限公司 | 一种测试用例生成方法、装置、测试设备及存储介质 |
CN113448846A (zh) * | 2021-06-23 | 2021-09-28 | 西安交通大学 | 基于关键程度划分的并发活动图测试场景生成方法及*** |
CN113342686B (zh) * | 2021-06-30 | 2023-01-10 | 中国建设银行股份有限公司 | 一种测试数据生成方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100709664B1 (ko) * | 2004-11-05 | 2007-04-20 | 인스티튜트 포 인포메이션 인더스트리 | 자동 테스트 케이스 생성 방법 및 시스템 |
JP2007133800A (ja) | 2005-11-14 | 2007-05-31 | Fujitsu Ltd | ソフトウェアテスト管理プログラム、ソフトウェアテスト管理装置、ソフトウェアテスト管理方法 |
KR20080018701A (ko) * | 2006-08-25 | 2008-02-28 | 엘지전자 주식회사 | 테스트 환경 적응이 가능한 자동 테스트 장치 및 방법 |
KR20120040883A (ko) * | 2010-10-20 | 2012-04-30 | 홍익대학교 산학협력단 | 유스케이스 다이어그램을 기반으로 하는 테스트 케이스 생성 프로그램 및 이를 이용하여 테스트 케이스를 생성하는 방법 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001306581A (ja) * | 2000-04-18 | 2001-11-02 | Sony Corp | ミドルウェアおよびミドルウェアを用いたメディアデータ視聴機器 |
US7120646B2 (en) * | 2001-04-09 | 2006-10-10 | Health Language, Inc. | Method and system for interfacing with a multi-level data structure |
US7134113B2 (en) * | 2002-11-04 | 2006-11-07 | International Business Machines Corporation | Method and system for generating an optimized suite of test cases |
US20040148590A1 (en) * | 2003-01-27 | 2004-07-29 | Sun Microsystems, Inc., A Delaware Corporation | Hierarchical test suite |
US7664989B2 (en) * | 2005-10-24 | 2010-02-16 | Infosys Technologies Ltd. | Automated software testing architecture using a multi-level framework |
US20070288885A1 (en) * | 2006-05-17 | 2007-12-13 | The Mathworks, Inc. | Action languages for unified modeling language model |
US20070283327A1 (en) * | 2006-06-02 | 2007-12-06 | Microsoft Corporation | Hierarchical test verification using an extendable interface |
US8443336B2 (en) * | 2007-10-03 | 2013-05-14 | Siemens Corporation | System and method for applying model-based testing to train control systems |
US20090172647A1 (en) * | 2007-12-31 | 2009-07-02 | Tarun Telang | System and method for model driven unit testing environment |
US20090178102A1 (en) * | 2008-01-04 | 2009-07-09 | Khaled Alghathbar | Implementing Security Policies in Software Development Tools |
US8869103B2 (en) * | 2008-10-06 | 2014-10-21 | The Mathworks, Inc. | Using intermediate representations to verify computer-executable code generated from a model |
KR100995592B1 (ko) * | 2008-12-02 | 2010-11-22 | 김우열 | 타겟독립모델을 이용한 임베디드 시스템 설계 장치 및 그 방법 |
US20100153150A1 (en) * | 2008-12-12 | 2010-06-17 | Sap Ag | Software for business adaptation catalog modeling |
EP2207104A3 (en) * | 2009-01-06 | 2010-11-17 | Telefonaktiebolaget L M Ericsson (PUBL) | System and method for transforming a UML model into an OWL representation |
US20100251156A1 (en) * | 2009-03-31 | 2010-09-30 | American Express Travel Related Services Company, Inc. | Facilitating Discovery and Re-Use of Information Constructs |
US20100251208A1 (en) * | 2009-03-31 | 2010-09-30 | Fujitsu Limited | Validating Behavioral Diagrams |
US8234303B2 (en) * | 2009-12-04 | 2012-07-31 | International Business Machines Corporation | Single parse, diagram-assisted import into a unified modeling language based meta-model |
CA2734199C (en) * | 2010-03-18 | 2017-01-03 | Accenture Global Services Limited | Evaluating and enforcing software design quality |
US8752003B2 (en) * | 2010-05-03 | 2014-06-10 | Telefonaktiebolaget L M Ericsson (Publ) | Model driven approach for availability management framework (AMF) configuration generation |
KR101418553B1 (ko) * | 2010-09-07 | 2014-07-10 | 한국전자통신연구원 | 서비스 기반 애플리케이션 통합 시험장치, 시스템 및 그 방법 |
US9207935B2 (en) * | 2011-04-07 | 2015-12-08 | Infosys Limited | Early analysis of software design diagrams |
US8719795B2 (en) * | 2011-04-12 | 2014-05-06 | Miami International Security Exchange, Llc | System and method for automating testing of computers |
US8914262B2 (en) * | 2011-11-08 | 2014-12-16 | The Mathworks, Inc. | Visualization of data dependency in graphical models |
-
2012
- 2012-11-06 KR KR1020120124859A patent/KR101408870B1/ko not_active IP Right Cessation
-
2013
- 2013-02-05 US US13/759,179 patent/US8924923B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100709664B1 (ko) * | 2004-11-05 | 2007-04-20 | 인스티튜트 포 인포메이션 인더스트리 | 자동 테스트 케이스 생성 방법 및 시스템 |
JP2007133800A (ja) | 2005-11-14 | 2007-05-31 | Fujitsu Ltd | ソフトウェアテスト管理プログラム、ソフトウェアテスト管理装置、ソフトウェアテスト管理方法 |
KR20080018701A (ko) * | 2006-08-25 | 2008-02-28 | 엘지전자 주식회사 | 테스트 환경 적응이 가능한 자동 테스트 장치 및 방법 |
KR20120040883A (ko) * | 2010-10-20 | 2012-04-30 | 홍익대학교 산학협력단 | 유스케이스 다이어그램을 기반으로 하는 테스트 케이스 생성 프로그램 및 이를 이용하여 테스트 케이스를 생성하는 방법 |
Also Published As
Publication number | Publication date |
---|---|
US20140130006A1 (en) | 2014-05-08 |
KR20140059319A (ko) | 2014-05-16 |
US8924923B2 (en) | 2014-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101408870B1 (ko) | Uml sd로부터 mccfg를 기반으로 하는 다단계 테스트 케이스 생성장치 및 방법 | |
Verma et al. | A comparative study of black box testing and white box testing | |
US20180300226A1 (en) | System and method for equivalence class analysis-based automated requirements-based test case generation | |
EP3367234B1 (en) | Systems and methods for arbitrary software logic modeling | |
CN111694741B (zh) | 一种基于路径深度覆盖的测试用例设计方法 | |
US9904524B2 (en) | Method and device for visually implementing software code | |
CN107092962B (zh) | 一种分布式机器学***台 | |
CN102662644B (zh) | 一种使用流程图生成测试案例的方法 | |
CN106293664A (zh) | 代码生成方法及装置 | |
US9152389B2 (en) | Trace generating unit, system, and program of the same | |
CN104820613A (zh) | 一种异构多核程序的编译方法 | |
CN110262794A (zh) | 一种基于规范与描述语言的aadl功能行为拓展方法及工具 | |
CN106776326B (zh) | 一种数据分析模型的建模方法及*** | |
CN108647146A (zh) | 基于修正条件判定组合覆盖的测试用例生成方法 | |
Wille et al. | Custom-tailored variability mining for block-based languages | |
CN110209584A (zh) | 一种测试数据自动生成方法和相关装置 | |
CN105591779A (zh) | 网元巡检方法及装置 | |
US20050137839A1 (en) | Methods, apparatus and programs for system development | |
CN105446952A (zh) | 用于处理语义片段的方法和*** | |
CN104484156B (zh) | 多语言公式的编辑方法、编辑***和多语言公式编辑器 | |
Langlois et al. | Development of modelling frameworks and viewpoints with Kitalpha | |
EP2996075A1 (en) | Method for integrated modeling of a product portfolio | |
Ubayashi et al. | Abstraction-aware verifying compiler for yet another MDD | |
CN113867714B (zh) | 一种适配多语言的自动代码生成方法 | |
Graics et al. | Formal compositional semantics for Yakindu statecharts |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |