KR20100136773A - Method for determining test alternation factor in robot software white box test and automated testing system - Google Patents

Method for determining test alternation factor in robot software white box test and automated testing system Download PDF

Info

Publication number
KR20100136773A
KR20100136773A KR1020090055053A KR20090055053A KR20100136773A KR 20100136773 A KR20100136773 A KR 20100136773A KR 1020090055053 A KR1020090055053 A KR 1020090055053A KR 20090055053 A KR20090055053 A KR 20090055053A KR 20100136773 A KR20100136773 A KR 20100136773A
Authority
KR
South Korea
Prior art keywords
test
factors
alternating
factor
relationship
Prior art date
Application number
KR1020090055053A
Other languages
Korean (ko)
Other versions
KR101038397B1 (en
Inventor
박홍성
강정석
최형섭
맹상우
홍창호
Original Assignee
강원대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 강원대학교산학협력단 filed Critical 강원대학교산학협력단
Priority to KR1020090055053A priority Critical patent/KR101038397B1/en
Publication of KR20100136773A publication Critical patent/KR20100136773A/en
Application granted granted Critical
Publication of KR101038397B1 publication Critical patent/KR101038397B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases

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)
  • Stored Programmes (AREA)

Abstract

PURPOSE: A method for determining a test alternation factor for a robot software white box test and an automatic testing system are provided to execute a test as much as the number of needs without testing a combination of all factors. CONSTITUTION: A source recognizing module(102) recognizes a test target function in a source code inputted by a user. A factor pattern analyzing module(103) determines a test alternation factor number from the mutual relation between test factors of the test target function. A test case generating module(104) generates a test case by a combination of the test factor according to the test alternation factor number. The factor pattern analyzing module determines a test alternation factor number of timing when analyzing the test target function ends as a final test alternation factor number.

Description

로봇 소프트웨어 화이트 박스 테스트를 위한 테스트 교호강도 결정 방법 및 자동화 테스트 시스템{METHOD FOR DETERMINING TEST ALTERNATION FACTOR IN ROBOT SOFTWARE WHITE BOX TEST AND AUTOMATED TESTING SYSTEM}METHOD FOR DETERMINING TEST ALTERNATION FACTOR IN ROBOT SOFTWARE WHITE BOX TEST AND AUTOMATED TESTING SYSTEM}

본 발명의 실시예들은 로봇 소프트웨어에 대한 단위 테스트 적용 시 테스트의 신뢰도를 높이기 위한 테스트 교호강도 결정 방법 및 자동화 테스트 시스템에 관한 것이다.Embodiments of the present invention relate to a method for determining test alternating strength and to an automated test system for increasing the reliability of a test when applying unit tests to robot software.

소프트웨어는 점점 복잡해지고 끊임없이 변화하므로 소프트웨어 검증(test)에 대한 요구 또한 갈수록 복잡해지고 어려워지고 있다. 일반적으로, 소프트웨어의 테스트 타입은 소프트웨어의 유닛 단위로 테스트하는 유닛 테스트(Unit Test), 복수의 유닛인 인터그레이션 단위로 테스트하는 인테그레이션 테스트(Integration Test), 또는 시스템 단위로 테스트하는 시스템 테스트(System Test)로 크게 구분된다. 소프트웨어의 테스트는 소프트웨어의 기능을 테스트하기 위한 테스트 프로그램에 각종 변수를 대입하여 소프트웨어를 시뮬레이션 하는 형식으로 이루어진다.As software becomes more complex and ever-changing, the demand for software testing is becoming increasingly complex and difficult. In general, a test type of software is a unit test for testing in units of software, an integration test for testing in units of integration, or a system test for testing in system units. Test). The test of the software is performed in the form of simulating software by assigning various variables to a test program for testing the function of the software.

여기서, 유닛 테스트란, 테스트 대상 소프트웨어의 최소 모듈을 결정한 후, 결정된 최소 모듈을 나머지 코드와 분리하고, 분리한 최소 모듈이 예상대로 정확하 게 동작하는지 여부를 테스트하는 방법이다. 또한, 인터그레이션 테스트(통합 테스트)란, 유닛 테스트가 논리적으로 확장된 테스트 방법이다. 가장 단순한 형태의 인터그레이션 테스트는 이미 테스트를 마친 두 유닛을 하나의 구성 요소로 통합하고 두 유닛 사이의 인터페이스를 테스트하는 것이다. 즉, 인터그레이션 테스트는 유닛이 결합될 때 발생하는 문제점을 식별하기 위한 테스트 방법이다. 한편, 시스템 테스트란, 하나의 시스템 단위로 테스트 하는 방법으로 개별적인 소프트웨어 프로그램들의 테스트가 끝난 후 실행되는 전체적인 테스트 방법이다. 여기서, 시스템 테스트는 프로그램 테스트뿐 아니라 사용자가 직접 시스템을 이용하는 부분까지도 테스트할 수 있다.Here, the unit test is a method of determining the minimum module of the software to be tested, separating the determined minimum module from the rest of the code, and testing whether the separated minimum module operates correctly as expected. The integration test (integration test) is a test method in which the unit test is logically extended. The simplest form of integration test is to combine two units that have already been tested into one component and test the interface between the two units. That is, the integration test is a test method for identifying a problem that occurs when units are combined. On the other hand, the system test is a test method for each system unit, which is an overall test method executed after testing of individual software programs. Here, the system test may test not only a program test but also a part where the user directly uses the system.

그러나, 이러한 소프트웨어 테스트는 사용자가 소프트웨어의 테스트 타입을 선택하고 테스트하는데 사용되는 변수, 서브 함수 등을 모두 별도로 정의하고 테스트 케이스를 만들어야 하는 완전수동 방식으로 수행되게 된다.However, these software tests are performed in a completely manual way, in which the user must separately define all the variables, sub-functions, etc. used to select and test the test type of software, and create a test case.

한편, 로봇 소프트웨어 분야에서 역시 마찬가지로 소프트웨어의 기술이 발전하면서 소프트웨어 검증에 대한 부담이 늘어나고 비용도 늘어나게 된다. 로봇 소프트웨어의 경우 사람의 안전에 관련될 수 있기 때문에 매우 높은 안정성과 신뢰성이 요구되고 있다. 소프트웨어 테스트시 가장 먼저 시행되는 것이 각 소프트웨어 모듈의 단위 테스트가 될 것이다. 이는 개발하는 모든 코드에 대해 시행하게 되는데 이때 테스트의 인자로 들어가는 값들의 조합을 모두 고려하여 테스트하게 되면 시간이 매우 오래 걸리게 된다. 때문에, 모든 조합을 테스트하지 않고 상관 관계가 있는 인자들의 조합을 중심적으로 테스트 하게 되는데, 이때 몇 가지의 인 자의 교호강도를 가지고 테스트 할 것인지는 개발자만이 알 수 있다. 기존의 방법에 의한 소프트웨어 테스트는 인자의 교호강도의 수가 휴리스틱하다고 할 수 있다.Meanwhile, in the field of robot software as well, as software technology advances, the burden on software verification increases and costs increase. In the case of robot software, since it may be related to human safety, very high stability and reliability are required. The first thing to do when testing software will be unit testing each software module. This is done for all the code you develop, which takes a very long time if you consider all the combinations of values that are passed as test arguments. Therefore, instead of testing all the combinations, the combination of correlated factors is tested centrally, and only the developer knows how many alternating factors to test. In the software test by the conventional method, the number of alternating strengths of the factors can be said to be heuristic.

본 발명의 일실시예는 로봇 소프트웨어의 단위 테스트 적용 시 모든 인자의 조합을 테스트 하지 않고 필요한 만큼의 테스트를 진행하여 테스트의 시간과 비용을 아낄 수 있는 로봇 소프트웨어 테스트의 교호강도 결정 방법을 제공한다.An embodiment of the present invention provides a method of determining alternating strength of a robot software test that can save time and cost of a test by performing a test as necessary without testing a combination of all factors when applying a unit test of the robot software.

본 발명의 일실시예는 로봇 소프트웨어 테스트의 교호강도 결정 방법을 이용하여 인자의 모든 조합의 테스트 케이스를 생성하지 않고 최적의 테스트 케이스를 자동으로 생성할 수 있는 로봇 소프트웨어의 자동화 테스트 시스템을 제공한다.One embodiment of the present invention provides an automated test system for robot software that can automatically generate an optimal test case without generating a test case of all combinations of factors by using the alternating strength determination method of the robot software test.

본 발명의 일실시예에 따른 로봇 소프트웨어의 자동화 테스트 시스템은 사용자가 입력한 소스코드에서 테스트 대상함수를 인식하는 소스 인식 모듈; 상기 테스트 대상함수의 테스트 인자 간 상호관계로부터 테스트 교호강도 수를 결정하는 인자 패턴 분석 모듈; 및, 상기 테스트 교호강도 수에 따라 상기 테스트 인자의 조합으로 테스트 케이스를 생성하는 테스트 케이스 생성 모듈을 포함한다.An automated test system for robot software according to an embodiment of the present invention includes a source recognition module for recognizing a test target function from a source code input by a user; A factor pattern analysis module for determining a number of test alternating intensities from correlations between test factors of the test target function; And a test case generation module generating a test case with a combination of the test factors according to the number of test alternating strengths.

본 발명의 일실시예에 따른 로봇 소프트웨어의 단위 테스트를 위한 테스트 교호강도 결정 방법은 소스 인식 모듈과 인자 패턴 분석 모듈로 구성된 자동화 테스트 시스템의 테스트 교호강도 결정 방법에 있어서, 상기 소스 인식 모듈에서 사용자가 입력한 소스코드에서 테스트 대상함수를 인식하는 단계; 및, 상기 인자 패턴 분석 모듈에서 상기 테스트 대상함수의 테스트 인자 간 상호관계로부터 테스트 교호강도 수를 결정하는 단계를 포함한다.According to an embodiment of the present invention, a method for determining test alternating strength for unit test of robot software is a method for determining test alternating strength of an automated test system including a source recognition module and a factor pattern analysis module. Recognizing a test target function in the input source code; And determining, by the factor pattern analysis module, a number of test alternating strengths from correlations between test factors of the test target function.

본 발명의 일실시예에서 상기 테스트 교호강도 수를 결정하는 단계는, 상기 테스트 대상함수에서 상기 테스트 인자 간의 상호관계를 분석하는 단계와, 상기 상호관계에 있는 테스트 인자가 발견되면 상기 테스트 교호강도 수를 증가시키는 단계와, 상기 테스트 대상함수에 대한 분석이 끝나는 시점의 테스트 교호강도 수를 최종 테스트 교호강도 수로 결정하는 단계를 포함한다.In the embodiment of the present invention, the determining of the test alternating intensity number may include: analyzing the correlation between the test factors in the test object function; and if the test factor in the correlation is found, the test alternating intensity number may be determined. And increasing the number of test alternating strengths at the end of the analysis of the test target function as the final number of test alternating strengths.

본 발명의 일실시예에서 상기 테스트 인자 간의 상호관계는 서로 다른 둘 이상의 테스트 인자가 한 문장에 같이 사용되는 동시 사용 관계, 서로 다른 둘 이상의 테스트 인자 중 한 문장에 선택적으로 사용되는 선택적 사용 관계, 서로 다른 둘 이상의 테스트 인자 중 하나의 테스트 인자가 사용된 문장과 연속적으로 나타나는 문장에서 다른 하나의 테스트 인자가 사용되는 종속 관계, 서로 다른 둘 이상의 테스트 인자 중 하나의 테스트 인자 이후의 블록 문장 내에서 다른 하나의 테스트 인자가 사용되는 포함 관계를 포함한다.In an embodiment of the present invention, the interrelationship between the test factors is a simultaneous use relationship in which two or more different test factors are used together in one sentence, an optional use relationship selectively used in one sentence of two or more different test factors, and mutually A statement in which one test argument of one or more of the other test arguments is used, and a dependency relationship in which another test argument is used in subsequent statements, and another one in a block statement after one test argument of two or more different test arguments. The test argument of contains the containment relationship used.

본 발명의 일실시예에서 상기 테스트 인자 간의 상호관계는 상기 동시 사용 관계, 선택적 사용 관계, 종속 관계, 포함 관계 중 적어도 두 개의 관계가 조합된 관계 또는, 상기 테스트 대상함수의 리턴 값에 직접 영향을 주는 관계를 더 포함한다.In one embodiment of the present invention, the interrelationship between the test factors directly affects a return value of the test target function or a combination of at least two of the simultaneous use, selective use, dependency, and containment relationships. Note includes more relationships.

본 발명의 일실시예에 따른 로봇 소프트웨어의 단위 테스트를 위한 테스트 교호강도 결정 방법은 상기 자동화 테스트 시스템은 테스트 케이스 생성 모듈을 더 포함하는 것으로, 상기 테스트 케이스 생성 모듈에서 상기 결정된 테스트 교호강도 수에 따라 상기 테스트 인자의 조합으로 테스트 케이스를 생성하는 단계를 더 포함 한다.According to an embodiment of the present invention, a method of determining test alternating strength for unit test of robot software may further include a test case generation module, wherein the automated test system further includes a test case generation module. Generating a test case with a combination of the test factors.

본 발명의 일실시예에서 상기 테스트 케이스를 생성하는 단계는 상기 테스트 교호강도 수에 따라 상기 테스트 인자의 직교배열을 이용하여 상기 테스트 케이스를 생성한다.In the embodiment of the present invention, generating the test case generates the test case using an orthogonal array of test factors according to the number of test alternating intensities.

본 발명의 일실시예에 따르면, 로봇 소프트웨어의 단위 테스트 시 테스트되는 함수의 인자들의 교호강도 수를 임의로 정하는 것을 소스 코드를 분석함으로써 최적의 교호강도 수를 제시할 수 있다. 이를 통하여 최소한의 테스트 케이스를 생성하여 최대한의 테스트 효과를 얻음으로써 테스트에 소요되는 시간과 비용을 현저히 줄일 수 있다. 특히, 테스트 케이스를 작성하는 과정을 자동화 함으로써 로봇 소프트웨어의 테스트를 더욱 신속하게 진행할 수 있다.According to an embodiment of the present invention, an optimal number of alternating intensities may be suggested by analyzing source code to arbitrarily determine the number of alternating intensities of the arguments of a function to be tested in the unit test of the robot software. This can significantly reduce the time and cost of testing by creating a minimum number of test cases to achieve maximum test effectiveness. In particular, by automating the creation of test cases, testing of robotic software can be made faster.

이하에서, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. However, the present invention is not limited or limited by the embodiments. Like reference numerals in the drawings denote like elements.

본 발명의 일실시예는 로봇 소프트웨어의 단위 테스트 적용 시 최적의 테스트 케이스를 자동으로 생성할 수 있는 테스트 교호강도 결정 방법 및 자동화 테스트 시스템을 제공한다.One embodiment of the present invention provides a test alternation strength determination method and an automated test system that can automatically generate an optimal test case when applying unit test of robot software.

도 1은 본 발명의 일실시예에 따른 로봇 소프트웨어의 자동화 테스트 시스템의 내부 구성을 도시한 도면이다.1 is a view showing the internal configuration of an automated test system of robot software according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일실시예에 따른 로봇 소프트웨어의 자동화 테스트 시스템은 사용자 인터페이스(101)와, 소스 인식 모듈(102)과, 인자 패턴 분석 모듈(103)과, 테스트 케이스 생성 모듈(104)과, 테스트 케이스 저장소(105)로 구성된다.Referring to FIG. 1, an automated test system for robot software according to an embodiment of the present invention includes a user interface 101, a source recognition module 102, a factor pattern analysis module 103, and a test case generation module ( 104 and a test case store 105.

사용자 인터페이스(101)는 사용자와의 인터페이스 역할을 수행하는 것으로 사용자로부터 소프트웨어의 소스 코드를 입력 받는다.The user interface 101 serves as an interface with a user and receives source code of software from the user.

소스 인식 모듈(102)은 사용자의 요청에 따라 사용자가 사용자 인터페이스(101)를 통해 입력한 소스 코드에서 테스트 대상이 되는 함수 즉, 테스트 대상함수를 인식하는 기능을 수행한다.The source recognition module 102 performs a function of recognizing a test target function, that is, a test target function, from the source code input by the user through the user interface 101 according to the user's request.

인자 패턴 분석 모듈(103)은 소스 코드 내에서 테스트 대상함수의 인자(이하, '테스트 인자'라 칭함)들이 어떻게 사용되는지를 분석하면서 테스트 인자 간의 상호관계로부터 테스트 교호강도 수를 결정하는 기능을 수행한다.The factor pattern analysis module 103 determines the number of test alternating strengths from the interrelationships between the test factors while analyzing how the factors of the test target function (hereinafter referred to as 'test factors') are used in the source code. do.

테스트 케이스 생성 모듈(104)은 인자 패턴 분석 모듈(103)에서 결정된 테스트 교호강도 수에 따라 테스트 인자의 조합으로 테스트 케이스를 생성하는 기능을 수행한다.The test case generation module 104 performs a function of generating a test case with a combination of test factors according to the number of test alternating intensities determined by the factor pattern analysis module 103.

테스트 케이스 저장소(105)는 테스트 케이스 생성 모듈(104)에서 생성된 테스트 케이스를 저장하기 위한 수단으로, 테스트 케이스를 생성 날짜와 해당 테스트 대상함수의 이름을 기준으로 구별하여 저장한다.The test case store 105 is a means for storing test cases generated by the test case generation module 104. The test case storage 105 distinguishes and stores test cases based on a creation date and a name of a corresponding test target function.

인자 패턴 분석 모듈(103)에서 테스트 교호강도 수를 결정하는 과정을 상세하게 설명한다.The process of determining the number of test alternating intensities in the factor pattern analysis module 103 will be described in detail.

인자 패턴 분석 모듈(103)은 테스트 대상함수 내에서 교호작용이 일어나는 테스트 인자를 분석한다. 교호작용이란 테스트 대상함수로 들어가는 각 테스트 인자 간의 상호작용에 의해 해당 함수의 결과가 달라지는 것을 의미한다. 이때, 각기 다른 테스트 대상함수는 테스트 인자의 수가 다르며 특히 교호작용이 일어나는 테스트 인자의 수가 다르게 된다. 이러한 교호작용이 일어나는 테스트 인자들의 수 중에서 가장 큰 값을 교호강도라고 한다. 예를 들어, 테스트 대상함수에 테스트 인자 A,B,C,D,E가 있을 때 A와 B가 교호작용을 하고 C,D,E가 교호작용을 한다면 해당 테스트 대상함수의 교호강도는 3이 된다.The factor pattern analysis module 103 analyzes a test factor in which an interaction occurs in the test object function. Interaction means that the result of the function is changed by the interaction between each test factor entering the test target function. In this case, different test target functions have different numbers of test factors, and in particular, the number of test factors in which interaction occurs. The largest value among the number of test factors in which this interaction occurs is called the alternating intensity. For example, if there are test factors A, B, C, D, and E in the test target function, A and B interact, and C, D, and E interact, the alternating intensity of the test target function is 3 do.

로봇 소프트웨어 화이트 박스 단위 테스트 시에 테스트 커버리지를 만족하면서 테스트의 신뢰성을 높이기 위해서는 테스트 교호강도의 수를 결정하는 것이 바람직하다. 본 발명의 일실시예는 인자 패턴 분석 모듈(103)을 통해 프로그램 소스에서 테스트 대상함수의 테스트 인자가 어떤 식으로 사용되는지를 분석하여 테스트 교호강도의 수를 자동으로 결정할 수 있다. 인자 패턴 분석 모듈(103)은 소스 상에서 테스트 인자 간의 상호 관계 즉, 테스트 인자의 사용 패턴을 분석하여 특정 상호 관계에 있는 테스트 인자가 발견되면 테스트 교호강도의 수를 늘리는 방식으로 테스트 대상함수에 대한 분석이 끝나는 시점에 최적의 테스트 교호강도 수를 결정할 수 있다.It is desirable to determine the number of test alternating strengths in order to increase the reliability of the test while satisfying the test coverage during the robot software white box unit test. An embodiment of the present invention may automatically determine the number of test alternating strengths by analyzing how the test factor of the test target function is used in the program source through the factor pattern analysis module 103. The factor pattern analysis module 103 analyzes the correlation between the test factors on the source, that is, the usage pattern of the test factors, and increases the number of test alternating intensities when a test factor having a specific correlation is found. At this end, the optimal number of test alternating strengths can be determined.

도 2는 본 발명의 일실시예에 따른 로봇 소프트웨어의 단위 테스트를 위한 테스트 교호강도 결정 방법의 과정을 설명하기 위한 도면이다. 여기서, 본 발명의 일실시예에 따른 테스트 교호강도 결정 방법은 도 1에 도시한 자동화 테스트 시스 템에 의해 실행될 수 있다.2 is a view for explaining the process of the test alternating strength determination method for unit testing of the robot software according to an embodiment of the present invention. Here, the test alternating strength determination method according to an embodiment of the present invention can be executed by the automated test system shown in FIG.

소스 코드의 분석을 시작하는 시점에 소스에 들어있는 문장의 끝을 나타내는 플래그 값(EndFlag)과 테스트 교호강도 수를 나타내는 교호강도 값(N)은 0(zero)으로 설정된다(S201)(S202).At the start of analysis of the source code, the flag value EndFlag indicating the end of the sentence contained in the source and the alternating intensity value N indicating the number of test alternating intensities are set to zero (S201) (S202). .

소스에서 한 문장씩 읽어오고 현재 읽어온 문장이 끝 문장인지 판단한다(S203)(S204). 이때, 상기 읽어온 문장이 끝 문장일 경우 플래그 값을 1로 변경하고(S205), 끝 문장이 아닐 경우 상기 읽어온 문장에서 테스트 대상함수의 테스트 인자들이 존재하는지 여부를 확인한다(S206).It reads one sentence from the source and determines whether the currently read sentence is the end sentence (S203) (S204). In this case, if the read sentence is the end sentence, the flag value is changed to 1 (S205). If the read sentence is not the end sentence, it is checked whether test factors of the test target function exist in the read sentence (S206).

테스트 대상함수에 테스트 인자가 존재하지 않으면 다른 문장을 읽어오고 테스트 인자가 존재하면 테스트 인자 간에 교호작용이 일어나는 상호관계를 분석하여 테스트 인자 간의 상호관계에 따라 교호강도 수를 증가시킨다(S207)(S208)(S209).If a test factor does not exist in the test target function, another sentence is read, and if the test factor exists, the correlation between the test factors is analyzed and the number of alternating strengths is increased according to the correlation between the test factors (S207) (S208). (S209).

테스트 인자 간의 상호관계는 동시 사용 관계, 선택적 사용 관계, 종속 관계, 포함 관계가 있을 수 있다. 테스트 대상함수의 파라미터에는 입력 인자와 출력 인자가 포함되어 있는데 테스트 인자 간의 상호관계는 함수의 출력에 영향을 주게 되는 입력인자의 상호관계를 의미할 수 있다.Interrelationships between test factors may include concurrent, selective, dependent, and containment relationships. The parameters of the test target function include input and output arguments. The interrelationship between the test arguments may refer to the interrelationship of input factors that affect the output of the function.

테스트 인자 간의 상호관계는 다음과 같이 정리할 수 있다.The interrelationship between the test factors can be summarized as follows.

(1) 동시 사용 관계: 동시 사용이란 소스코드의 한 문장(이때, 문장이란, ;로 끝나는 코드를 의미한다.) 안에서 입력으로 들어가는 인자들이 같이 사용되는 경우를 의미한다. 한 문장에서 같은 인자가 사용되는 것은 두 인자 사이의 관계가 함수 출력에 영향을 줄 수 있다. 표기는 '∧'로 한다.(1) Concurrency relationship: Concurrency refers to the case where arguments to input are used together in a sentence of the source code (where a sentence means a code that ends with;). If the same argument is used in a sentence, the relationship between the two arguments can affect the function output. The notation shall be '∧'.

(2) 선택적 사용 관계: 선택적 사용이란 소스코드의 한 문장 안에서 입력 인자가 둘 이상 사용되는 경우를 의미한다. 이는 인자들 간에 서로 영향을 끼치지 않기 때문에 이 인자들의 조합을 테스트할 필요가 없게 된다. 표기는 '∨'로 한다.(2) Optional use relationship: Optional use means that more than one input argument is used in one sentence of the source code. Since this does not affect each other, there is no need to test the combination of these factors. The notation shall be '∨'.

(3) 종속 관계: 테스트 인자들이 종속 관계에 있다는 것은 소스 코드 내에서 출력에 영향을 줄 수 있다는 것을 의미한다. 영향을 주기 위해서는 출력에 영향을 주는 변수와 관련된 곳에 사용되는 경우이다. 소스 상에서 대괄호 안의 연속된 문장에서 인자들이 사용되게 될 때 종속 관계에 있다고 하며 표기는 '←'로 한다.(3) Dependency: The dependency of test factors means that the output can be affected within the source code. In order to affect, it is used where related to the variable affecting the output. When arguments are used in consecutive statements in square brackets in the source, they are said to be dependent, and the notation is '←'.

(4) 포함 관계: 포함 관계란 테스트 인자 하나가 다른 인자의 사용에 영향을 주는 것으로, 하나의 인자가 사용되고 그 다음에 오는 문장에 앞서 사용된 인자의 문장에 포함되는 경우를 의미한다. 표기는 '⊃'로 한다.(4) Inclusion Relationships: Inclusion relationships are those in which one test argument affects the use of another argument, where one argument is used and included in the statement of the argument used before the statement that follows. The notation shall be '⊃'.

본 발명의 일실시예는 기본적인 4가지 형식의 테스트 인자 간 상호관계를 이용하여 소스 코드를 분석할 수 있다. 또한, 테스트 인자 간 상호관계는 상기한 4가지의 기본적인 상호관계 중 적어도 두 개의 관계가 조합된 형식을 가질 수 있다.One embodiment of the present invention can analyze the source code using the interrelationship between the four basic types of test factors. In addition, the correlation between test factors may have a form in which at least two of the above four basic correlations are combined.

테스트 인자 간의 상호관계 형식은 표 1과 같이 정의할 수 있다.Correlation type between test factors can be defined as shown in Table 1.

(여기서, 테스트 인자는 A, B, C를 일례로 한다.)(In this case, the test factors are A, B, and C as an example.) 번호number 상호관계의 형식Form of interrelationship 설명Explanation 예시example 교호강도Alternating strength 수 계산법 Number calculation 1One A∧BA∧B 한 문장 내에서 인자가 함께 쓰이는 경우When arguments are used together in a sentence If(A=0 &&B="dd"){
If(A = =B){
If, for, while
If (A = 0 && B = "dd") {
If (A = = B) {
If, for, while
1 증가1 increase
22 A∨BA∨B A 또는 B가 선택적으로 사용되는 경우When A or B is used optionally If (A) {}
else (B){}
If (A) {}
else (B) {}
증가 없음No increase
33 A←BA ← B A의 사용 후 연속적으로 나타나는 문장에서 B가 쓰이는 경우When B is used in consecutive sentences after using A
int a=A
int b=B

int a = A
int b = B
1 증가1 increase
44 A⊃BA⊃B A 이후의 블록문 내에서 B가 사용되는 경우When B is used within a block statement after A If(A){
int b=B;
}
If (A) {
int b = B;
}
1 증가1 increase
55 (A∧B)∨C
즉, 1∧2
(A∧B) ∨C
Ie 1∧2
If(A&&C){}
else (B) {}
If (A && C) {}
else (B) {}
1 증가1 increase
66 (A∧B)←C
즉, 1∧3
(A∧B) ← C
That is 1∧3
A나 B의 조합 다음 C가 따라서 오는 경우A combination of A or B followed by C If(A=0&&B="dd"){
int c=C;
}
If (A = 0 && B = "dd") {
int c = C;
}
2 증가2 increase
77 (A∧B)∨(A⊃B)
즉, 1∧4
(A∧B) ∨ (A⊃B)
That is 1∧4
3 증가3 increase
88 (A∨B)∨(A←B)
즉, 2∧3
(A∨B) ∨ (A ← B)
That is, 2∧3
1 증가1 increase
99 (A∨B)⊃C
즉, 2∧4
(A∨B) ⊃C
That is, 2∧4
A나 B의 조합 다음 C가 따라서 오는 경우A combination of A or B followed by C 3 증가3 increase
1010 (A←B)⊃C
즉, 3∧4
(A ← B) ⊃C
That is, 3∧4
If(A){
int c=C
int b=B
}
If (A) {
int c = C
int b = B
}
3 증가3 increase
1111 return⊃Areturn⊃A 리턴에 영향을 주는 인자를 추적Trace the factors that affect the return 인자의 개수만큼 증가Increase by the number of arguments 1212 출력에 관계된 인자Arguments related to the output 출력에 관계된 인자는 테스트 케이스의 조합에 포함하지 않는다.Arguments related to the output are not included in the test case combination. 증가 없음No increase 1313 A∧B∧C
(상호작용이 일어나는 인자의 수가 지속적으로 늘어날 경우)
A∧B∧C
(When the number of factors that interact with it continues to increase)
교호강도 수의 증가에 영향을 주는 형식은 1,3,4로서 이 조합이 더해지게 되면 교호강도 수를 증가시킨다.The types that affect the increase in the number of alternating intensities are 1, 3, and 4, which, when added, increases the number of alternating intensities. 더해지는 인자의 수 만큼 증가Increase by the number of factors added
1414 중복overlap 같은 인자가 여러 곳에서 사용될 경우 가장 큰 값만을 계산한다.If the same argument is used in multiple places, only the largest value is calculated.

여기서, 번호 1 내지 4는 기본적인 형식에 해당하는 동시 사용 관계, 선택적 사용 관계, 종속 관계, 포함 관계를 의미하고, 번호 5 내지 10은 번호 1 내지 4의 기본적인 형식을 조합으로 나타낸 패턴을 의미한다. 그리고, 번호 11은 함수의 리턴에 직접 영향을 주는 경우의 패턴을 의미하고 번호 12는 인자가 함수에 대한 입력이 아닌 값을 받아오는 경우의 패턴을 의미한다. 마지막으로, 번호 13은 번호 1 내지 4 중 어느 하나의 형식이 연속적으로 나타날 경우의 패턴을 의미하는데 이때는 추가되는 인자의 수에 따라 조합 수를 증가시키면 된다.Here, numbers 1 to 4 mean concurrent use relations, selective use relations, dependency relations, and inclusion relations corresponding to basic formats, and numbers 5 to 10 refer to patterns representing the basic formats of numbers 1 to 4 in combination. In addition, the number 11 indicates a pattern in which the function directly affects the return of the function, and the number 12 indicates a pattern in which the argument receives a value rather than an input to the function. Finally, the number 13 means a pattern in which any one of the numbers 1 to 4 appears consecutively, in which case the number of combinations may be increased according to the number of additional factors.

본 발명의 일실시예는 테스트 대상함수를 분석할 때 테스트 인자가 4가지 기본적인 조합이 있는지 먼저 살펴본 후 다시 기본적인 조합에 또 다른 조합이 있는지 살펴야 한다. 상기한 방식으로 소스를 분석할 수 있는데 나올 수 있는 테스트 교호강도의 경우의 수는 매우 많아질 수 있다. 하지만, 표 1에 나타낸 바와 같이 조합 수를 증가시켜야 할 경우는 번호 1,3,4의 패턴이 관련된 경우와 번호 11과 같이 함수의 리턴 값에 직접 영향을 주는 경우가 있다고 할 수 있다.In an embodiment of the present invention, when analyzing the test target function, the test factors first have four basic combinations, and then again, the basic combinations should be examined for another combination. The source can be analyzed in the manner described above and the number of test alternating intensities that can emerge can be very large. However, as shown in Table 1, when the number of combinations needs to be increased, it can be said that there are cases where the patterns of numbers 1, 3, and 4 are related, and the return value of the function is directly affected as shown in number 11.

다시 도 2에서, 상기한 과정(S203~S209)을 통해 테스트 인자가 무엇인지를 인식한 후 교호강도 값(N)이 0이나 1이면 교호강도 값(N)을 2로 초기화한다(S211). 이는, 최소한의 교호강도 수가 2가 되어야 하기 때문이다. 이후, 상기 과정(S203~S209)을 반복하여 소스에 들어있는 문장 중 끝 문장(EndFlag=1)까지 테스트 인자의 패턴을 분석한다(S210).In FIG. 2, after recognizing what the test factor is through the processes S203 to S209, when the alternating strength value N is 0 or 1, the alternating strength value N is initialized to 2 (S211). This is because the minimum number of alternating strengths must be two. Thereafter, the process (S203 ~ S209) is repeated to analyze the pattern of the test factor until the end sentence (EndFlag = 1) of the sentences contained in the source (S210).

본 발명의 일실시예는 테스트 대상함수에 들어있는 테스트 인자 간 상호관계에 의해 테스트 교호강도 수를 결정하고 테스트 교호강도 수에 따른 테스트 인자의 조합으로 테스트 케이스를 작성할 수 있다. 본 발명의 일실시예에서 테스트 케이스는 직교 배열에 의한 알고리즘과 같이 2-way 또는 3-way 등의 방법을 이용하여 작성할 수 있다. 상기한 알고리즘은 자동화 된 것으로 테스트 교호강도 수가 결정되면 테스트 케이스를 자동으로 얻을 수 있다.According to an embodiment of the present invention, the number of test alternating strengths may be determined by the interrelationship between test factors included in the test target function, and a test case may be prepared by combining test factors according to the number of test alternating strengths. In one embodiment of the present invention, the test case may be written using a method such as 2-way or 3-way, such as an orthogonal array algorithm. The above algorithm is automated and the test case can be automatically obtained once the number of test alternating strengths is determined.

표 2는 4개(a,b,c,d)의 인자를 가진 test 함수를 일례로 교호강도 수를 결정하는 과정을 설명하기 위한 것이다.Table 2 illustrates the process of determining the number of alternating intensities as an example of a test function with four (a, b, c, d) arguments.

void test (int a, int b, int c, int d)
{
int x=0, y=0;
if (a>0)
{
x=2;
}
else
{
x=5;
}

if (b>0)
{
y=1+x;
}

if (c>0)
{
if (d>0)
{
output(x);
}
else
{
output(10);
}
}
else
{
output (1/(y-6));
}
}
void test (int a, int b, int c, int d)
{
int x = 0, y = 0;
if (a> 0)
{
x = 2;
}
else
{
x = 5;
}

if (b> 0)
{
y = 1 + x;
}

if (c> 0)
{
if (d> 0)
{
output (x);
}
else
{
output (10);
}
}
else
{
output (1 / (y-6));
}
}

int mid(int x, int y, int z)
{
int mid
mid=z
if (y<z)
{
if(x<y){
mid=y
}
else{
if (x<z)
{
mid=x
}
}
}
else
{
if (x>y)
{
mid=y
}
else
{
if (x>z)
{
mid=x
}
}
}
return (mid);
}

int mid (int x, int y, int z)
{
int mid
mid = z
if (y <z)
{
if (x <y) {
mid = y
}
else {
if (x <z)
{
mid = x
}
}
}
else
{
if (x> y)
{
mid = y
}
else
{
if (x> z)
{
mid = x
}
}
}
return (mid);
}

표 2의 test 함수에서 사용된 인자 a,b,c,d를 표 1에 적용하면 인자 중 a,b는 상호관계에 있지 않고 인자 c,d의 경우 선택적 사용 관계(번호 2)에 있다는 것을 알 수 있다. 그러나, 선택적 사용 관계의 경우 교호강도 수에 영향을 주지 않으므로 교호강도 수를 초기 교호강도 값인 2로 결정한다. 이때, 4개의 인자들의 모든 조합을 고려하지 않고 2개의 조합만 가지고 테스트 케이스를 생성하여 실행하더라도 모든 커버리지를 만족할 수 있게 된다. 표 2의 test 함수의 경우 각각의 인자에 대한 후보의 범위가 -10부터 10까지 있다. 이때, 동등 분할 방법을 이용하여 테스트 케이스를 만들게 되면 각 인자의 후보가 5개씩 만들어지게 된다. 표 3에서 알 수 있듯이, 모든 조합을 사용하게 되면 총 5의 5승에 해당하는 개수만큼의 테스트 케이스가 만들어지게 되나, 본 발명의 일실시예에 따르면 테스트 교호강도 수를 2로 하여 테스트 케이스를 만들게 되면 32가지의 테스트 케이스만이 생성되게 된다. mid 함수 또한 test 함수와 마찬가지로 각각의 인자의 후보가 -10부터 10까지 이다. 인자 x,y,z의 인자들의 상관관계를 살펴보게 되면 각각의 인자가 조합될 때 교호강도 수는 +2 증가하여 교호강도 수가 2가 된다. 표 3에서 알 수 있듯이, 모든 조합의 테스트 케이스를 만들게 되면 총 5의 3승인 125개의 테스트 케이스가 만들어지지만 본 발명의 일실시예에 따른 2-way 방법으로 하게 되면 26 가지의 테스트 케이스를 가지고 모든 커버리지를 만족시킬 수 있다.Applying the arguments a, b, c, d used in the test function in Table 2 to Table 1, we see that a, b of the arguments are not interrelated, and in the optional use relationship (number 2) for the arguments c, d Can be. However, the selective use relationship does not affect the number of alternating strengths, so the number of alternating strengths is determined to be the initial alternating strength value of 2. In this case, all the coverages may be satisfied even if the test case is generated and executed using only two combinations without considering all combinations of the four factors. In the test function of Table 2, the range of candidates for each argument ranges from -10 to 10. In this case, if a test case is created using the equal division method, five candidates of each factor are created. As can be seen in Table 3, if all the combinations are used, the number of test cases corresponding to 5 powers of 5 is made. However, according to an embodiment of the present invention, the test case is set with the number of test alternating strengths as 2. When created, only 32 test cases will be generated. The mid function, like the test function, also has a candidate for each argument from -10 to 10. Looking at the correlations between the factors of the factors x, y, and z, the number of alternating intensities increases by +2 when each factor is combined, resulting in a number of alternating intensities. As can be seen from Table 3, when all test cases are made, 125 test cases with a total of 3 are created. However, the 2-way method according to an embodiment of the present invention has 26 test cases. Coverage can be satisfied.

기존의 방법Traditional way 본 발명의 방법Method of the invention 테스트 케이스 개수Test case count 커버리지Coverage 테스트 케이스 개수Test case count 분기 커버리지Branch coverage midmid 125125 10/1010/10 2626 10/1010/10 testtest 625625 8/88/8 3232 8/88/8

따라서, 본 발명의 일실시예는 로봇 소프트웨어의 단위 테스트 적용시 모든 테스트 인자의 조합을 테스트하지 않고 필요한 만큼의 테스트를 진행하여 테스트의 시간과 비용을 아낄 수 있다. 또한, 본 발명의 일실시예는 소스 상에서 테스트 인자의 패턴 즉, 상호관계를 분석하여 이를 통해 테스트 케이스를 자동으로 생성하는 자동화 테스트 시스템을 구현할 수 있다.Therefore, one embodiment of the present invention can save the time and cost of the test by proceeding as many tests as necessary without testing the combination of all test factors when applying the unit test of the robot software. In addition, an embodiment of the present invention may implement an automated test system that automatically generates test cases through analyzing patterns of test factors, ie, correlations, on a source.

본 발명의 실시예들은 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터 판독 가능 매체를 포함한다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.Embodiments of the present invention include computer readable media including program instructions for performing various computer implemented operations. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. The media may be program instructions that are specially designed and constructed for the present invention or may be available to those skilled in the art of computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like.

이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.As described above, the present invention has been described by specific embodiments such as specific components and the like. For those skilled in the art to which the present invention pertains, various modifications and variations are possible.

따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.Therefore, the spirit of the present invention should not be limited to the described embodiments, and all of the equivalents or equivalents of the claims as well as the claims to be described later will belong to the scope of the present invention. .

도 1은 본 발명의 일실시예에 따른 로봇 소프트웨어의 자동화 테스트 시스템의 내부 구성을 도시한 도면이다.1 is a view showing the internal configuration of an automated test system of robot software according to an embodiment of the present invention.

도 2는 본 발명의 일실시예에 따른 로봇 소프트웨어의 단위 테스트를 위한 테스트 교호강도 결정 방법의 과정을 설명하기 위한 도면이다.2 is a view for explaining the process of the test alternating strength determination method for unit testing of the robot software according to an embodiment of the present invention.

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>

102: 소스 인식 모듈102: source recognition module

103: 인자 패턴 분석 모듈103: factor pattern analysis module

104: 테스트 케이스 생성 모듈104: test case generation module

Claims (14)

로봇 소프트웨어의 단위 테스트를 위한 테스트 케이스를 생성하는 자동화 테스트 시스템에 있어서,In an automated test system for generating test cases for unit testing of robot software, 사용자가 입력한 소스코드에서 테스트 대상함수를 인식하는 소스 인식 모듈;A source recognition module for recognizing a test target function from a source code input by a user; 상기 테스트 대상함수의 테스트 인자 간 상호관계로부터 테스트 교호강도 수를 결정하는 인자 패턴 분석 모듈; 및,A factor pattern analysis module for determining a number of test alternating intensities from correlations between test factors of the test target function; And, 상기 테스트 교호강도 수에 따라 상기 테스트 인자의 조합으로 테스트 케이스를 생성하는 테스트 케이스 생성 모듈A test case generation module generating a test case with a combination of the test factors according to the number of test alternating strengths 을 포함하는 로봇 소프트웨어의 자동화 테스트 시스템.Automation test system of the robot software comprising a. 제1항에 있어서,The method of claim 1, 상기 테스트 인자 간 상호관계는,The correlation between the test factors, 서로 다른 둘 이상의 테스트 인자가 한 문장에 같이 사용되는 동시 사용 관계, 서로 다른 둘 이상의 테스트 인자 중 한 문장에 선택적으로 사용되는 선택적 사용 관계, 서로 다른 둘 이상의 테스트 인자 중 하나의 테스트 인자가 사용된 문장과 연속적으로 나타나는 문장에서 다른 하나의 테스트 인자가 사용되는 종속 관계, 서로 다른 둘 이상의 테스트 인자 중 하나의 테스트 인자 이후의 블록 문장 내에서 다른 하나의 테스트 인자가 사용되는 포함 관계를 포함하는, 로봇 소프트웨어 의 자동화 테스트 시스템.Concurrent usages where two or more different test arguments are used together in one statement, optional usage relationships optionally used in one statement of two or more different test arguments, or statements in which one or more different test arguments are used Robot software, including a dependency relationship in which one test factor is used in successive sentences and a containment relationship in which another test factor is used in a block statement after one test factor of two or more different test factors. Automated testing system. 제2항에 있어서,The method of claim 2, 상기 테스트 인자 간 상호관계는,The correlation between the test factors, 상기 동시 사용 관계, 선택적 사용 관계, 종속 관계, 포함 관계 중 적어도 두 개의 관계가 조합된 관계를 더 포함하는, 로봇 소프트웨어의 자동화 테스트 시스템.Further comprising a combination of at least two of the coexistence relationship, the selective use relationship, the dependency relationship, and the inclusion relationship. 제2항에 있어서,The method of claim 2, 상기 테스트 인자 간 상호관계는,The correlation between the test factors, 상기 테스트 대상함수의 리턴 값에 직접 영향을 주는 관계를 더 포함하는, 로봇 소프트웨어의 자동화 테스트 시스템.Further comprising a relationship directly affecting a return value of the function under test. 제1항에 있어서,The method of claim 1, 상기 인자 패턴 분석 모듈은,The factor pattern analysis module, 상기 상호관계에 있는 테스트 인자가 발견되면 상기 테스트 교호강도 수를 증가시키면서 상기 테스트 대상함수에 대한 분석이 끝나는 시점의 테스트 교호강도 수를 최종 테스트 교호강도 수로 결정하는, 로봇 소프트웨어의 자동화 테스트 시스템.And if the test factors in correlation are found, increasing the number of test alternating intensities and determining the number of test alternating intensities at the end of the analysis of the test target function as the final number of test alternating intensities. 제1항에 있어서,The method of claim 1, 상기 테스트 케이스 생성 모듈은,The test case generation module, 상기 테스트 교호강도 수에 따라 상기 테스트 인자의 직교배열을 이용하여 상기 테스트 케이스를 생성하는, 로봇 소프트웨어의 자동화 테스트 시스템.And generate the test case using an orthogonal array of test factors in accordance with the number of test alternating intensities. 로봇 소프트웨어의 단위 테스트를 위하여 소스 인식 모듈과 인자 패턴 분석 모듈로 구성된 자동화 테스트 시스템의 테스트 교호강도 결정 방법에 있어서,In the method of determining the test alternating strength of an automated test system consisting of a source recognition module and a factor pattern analysis module for unit testing of the robot software, 상기 소스 인식 모듈에서 사용자가 입력한 소스코드에서 테스트 대상함수를 인식하는 단계; 및,Recognizing a test target function in a source code input by a user in the source recognizing module; And, 상기 인자 패턴 분석 모듈에서 상기 테스트 대상함수의 테스트 인자 간 상호관계로부터 테스트 교호강도 수를 결정하는 단계Determining a number of test alternating strengths from correlations between test factors of the test target function in the factor pattern analysis module; 를 포함하는 로봇 소프트웨어의 단위 테스트를 위한 테스트 교호강도 결정 방법.Test alternating strength determination method for unit testing of the robot software comprising a. 제7항에 있어서,The method of claim 7, wherein 상기 테스트 교호강도 수를 결정하는 단계는,Determining the number of test alternating strengths, 상기 테스트 대상함수에서 상기 테스트 인자 간의 상호관계를 분석하는 단계와,Analyzing the correlation between the test factors in the test object function; 상기 상호관계에 있는 테스트 인자가 발견되면 상기 테스트 교호강도 수를 증가시키는 단계와,Increasing the number of test alternating intensities if the test factors in correlation are found; 상기 테스트 대상함수에 대한 분석이 끝나는 시점의 테스트 교호강도 수를 최종 테스트 교호강도 수로 결정하는 단계Determining the number of test alternating intensities at the end of the analysis of the test target function as the number of final test alternating intensities 를 포함하는, 로봇 소프트웨어의 단위 테스트를 위한 테스트 교호강도 결정 방법.Including a test alternation strength determination method for unit testing of the robot software. 제8항에 있어서,The method of claim 8, 상기 테스트 인자 간의 상호관계는,The correlation between the test factors, 서로 다른 둘 이상의 테스트 인자가 한 문장에 같이 사용되는 동시 사용 관계, 서로 다른 둘 이상의 테스트 인자 중 한 문장에 선택적으로 사용되는 선택적 사용 관계, 서로 다른 둘 이상의 테스트 인자 중 하나의 테스트 인자가 사용된 문장과 연속적으로 나타나는 문장에서 다른 하나의 테스트 인자가 사용되는 종속 관계, 서로 다른 둘 이상의 테스트 인자 중 하나의 테스트 인자 이후의 블록 문장 내에서 다른 하나의 테스트 인자가 사용되는 포함 관계를 포함하는, 로봇 소프트웨어의 단위 테스트를 위한 테스트 교호강도 결정 방법.Concurrent usages where two or more different test arguments are used together in one statement, optional usage relationships optionally used in one statement of two or more different test arguments, or statements in which one or more different test arguments are used Robot software, including a dependency relationship in which one test factor is used in successive sentences and a containment relationship in which another test factor is used in a block statement after one test factor of two or more different test factors. How to determine test alternating strength for unit testing 제9항에 있어서,10. The method of claim 9, 상기 테스트 인자 간의 상호관계는,The correlation between the test factors, 상기 동시 사용 관계, 선택적 사용 관계, 종속 관계, 포함 관계 중 적어도 두 개의 관계가 조합된 관계를 더 포함하는, 로봇 소프트웨어의 단위 테스트를 위한 테스트 교호강도 결정 방법.And at least two of the simultaneous use relationship, the selective use relationship, the dependency relationship, and the inclusion relationship, further comprising a combined relationship. 제9항에 있어서,10. The method of claim 9, 상기 테스트 인자 간 상호관계는,The correlation between the test factors, 상기 테스트 대상함수의 리턴 값에 직접 영향을 주는 관계를 더 포함하는, 로봇 소프트웨어의 단위 테스트를 위한 테스트 교호강도 결정 방법.The method of claim 1, further comprising a relationship directly affecting a return value of the test target function. 제7항에 있어서,The method of claim 7, wherein 상기 자동화 테스트 시스템은 테스트 케이스 생성 모듈을 더 포함하는 것으로,The automated test system further includes a test case generation module, 상기 테스트 케이스 생성 모듈에서 상기 결정된 테스트 교호강도 수에 따라 상기 테스트 인자의 조합으로 테스트 케이스를 생성하는 단계Generating a test case with a combination of the test factors according to the determined number of test alternating strengths in the test case generation module; 를 더 포함하는 로봇 소프트웨어의 단위 테스트를 위한 테스트 교호강도 결정 방법.Test alternating strength determination method for unit testing of the robot software further comprising. 제12항에 있어서,The method of claim 12, 상기 테스트 케이스를 생성하는 단계는,Generating the test case, 상기 테스트 교호강도 수에 따라 상기 테스트 인자의 직교배열을 이용하여 상기 테스트 케이스를 생성하는, 로봇 소프트웨어의 단위 테스트를 위한 테스트 교호강도 결정 방법.And generating the test case using an orthogonal array of test factors according to the number of test alternating intensities. 제7항 내지 제13항 중 어느 한 항의 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.A computer-readable recording medium having recorded thereon a program for performing the method of any one of claims 7 to 13.
KR1020090055053A 2009-06-19 2009-06-19 Method for determining test alternation factor in robot software white box test and automated testing system KR101038397B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090055053A KR101038397B1 (en) 2009-06-19 2009-06-19 Method for determining test alternation factor in robot software white box test and automated testing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090055053A KR101038397B1 (en) 2009-06-19 2009-06-19 Method for determining test alternation factor in robot software white box test and automated testing system

Publications (2)

Publication Number Publication Date
KR20100136773A true KR20100136773A (en) 2010-12-29
KR101038397B1 KR101038397B1 (en) 2011-06-01

Family

ID=43510705

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090055053A KR101038397B1 (en) 2009-06-19 2009-06-19 Method for determining test alternation factor in robot software white box test and automated testing system

Country Status (1)

Country Link
KR (1) KR101038397B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103279416A (en) * 2013-05-30 2013-09-04 浪潮(北京)电子信息产业有限公司 Storage software automated testing system and method
CN105677563A (en) * 2016-01-05 2016-06-15 南昌航空大学 Integrated test sequence generating method based on SysML module diagrams

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107678968A (en) * 2017-10-18 2018-02-09 北京奇虎科技有限公司 Sample extraction method, apparatus, computing device and the storage medium of source code function

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100369252B1 (en) * 2000-05-09 2003-01-24 삼성에스디에스 주식회사 Software test system and method
KR20070087400A (en) * 2006-02-23 2007-08-28 삼성전자주식회사 Method and system for test coverage analysis of operating system software

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103279416A (en) * 2013-05-30 2013-09-04 浪潮(北京)电子信息产业有限公司 Storage software automated testing system and method
CN105677563A (en) * 2016-01-05 2016-06-15 南昌航空大学 Integrated test sequence generating method based on SysML module diagrams

Also Published As

Publication number Publication date
KR101038397B1 (en) 2011-06-01

Similar Documents

Publication Publication Date Title
US11720477B2 (en) Unit testing method based on automatic generation of path coverage test cases
JP7172435B2 (en) Representation of software using abstract code graphs
US20130291113A1 (en) Process flow optimized directed graph traversal
CN104899147B (en) A kind of code Static Analysis Method towards safety inspection
CN106547520B (en) Code path analysis method and device
US20170060735A1 (en) Software program repair
EP2963547A1 (en) Compiling device, compiling method, and storage medium storing compiler program
US20110145799A1 (en) Path-sensitive dataflow analysis including path refinement
KR101788279B1 (en) Measuring system and method of worst-case execution time using test techniques
EP3264274B1 (en) Input discovery for unknown program binaries
JP6728874B2 (en) Determine valid input for unknown binary program
US9134979B2 (en) Convergence analysis in multithreaded programs
KR101038397B1 (en) Method for determining test alternation factor in robot software white box test and automated testing system
JP6723483B2 (en) Test case generation device, test case generation method, and test case generation program
US8996922B2 (en) Mixed numeric and string constraint analysis
Khanfar et al. Static backward program slicing for safety-critical systems
US20110218794A1 (en) Concretization of abstracted traces
JP5464031B2 (en) Program verification apparatus, method and program
WO2013161057A1 (en) Source code inspection method and device
JP2015069400A (en) Software test system
JP2007257397A (en) Contention state detection process additional program, contention state detection process adding apparatus and contention state detection process adding method
CN111737122B (en) Inspection method and system for calling level of mainframe program
Bartsch et al. Efficient SAT/simulation-based model generation for low-level embedded software.
KR101276308B1 (en) Graph-based code generating apparatus and method supporting multi-output instructions
KR101136122B1 (en) Break point analysis method for unit test of DSP software

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
FPAY Annual fee payment

Payment date: 20140320

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160324

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180515

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190321

Year of fee payment: 9