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 PDFInfo
- 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
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
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test 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
Description
본 발명의 실시예들은 로봇 소프트웨어에 대한 단위 테스트 적용 시 테스트의 신뢰도를 높이기 위한 테스트 교호강도 결정 방법 및 자동화 테스트 시스템에 관한 것이다.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
사용자 인터페이스(101)는 사용자와의 인터페이스 역할을 수행하는 것으로 사용자로부터 소프트웨어의 소스 코드를 입력 받는다.The
소스 인식 모듈(102)은 사용자의 요청에 따라 사용자가 사용자 인터페이스(101)를 통해 입력한 소스 코드에서 테스트 대상이 되는 함수 즉, 테스트 대상함수를 인식하는 기능을 수행한다.The
인자 패턴 분석 모듈(103)은 소스 코드 내에서 테스트 대상함수의 인자(이하, '테스트 인자'라 칭함)들이 어떻게 사용되는지를 분석하면서 테스트 인자 간의 상호관계로부터 테스트 교호강도 수를 결정하는 기능을 수행한다.The factor
테스트 케이스 생성 모듈(104)은 인자 패턴 분석 모듈(103)에서 결정된 테스트 교호강도 수에 따라 테스트 인자의 조합으로 테스트 케이스를 생성하는 기능을 수행한다.The test
테스트 케이스 저장소(105)는 테스트 케이스 생성 모듈(104)에서 생성된 테스트 케이스를 저장하기 위한 수단으로, 테스트 케이스를 생성 날짜와 해당 테스트 대상함수의 이름을 기준으로 구별하여 저장한다.The
인자 패턴 분석 모듈(103)에서 테스트 교호강도 수를 결정하는 과정을 상세하게 설명한다.The process of determining the number of test alternating intensities in the factor
인자 패턴 분석 모듈(103)은 테스트 대상함수 내에서 교호작용이 일어나는 테스트 인자를 분석한다. 교호작용이란 테스트 대상함수로 들어가는 각 테스트 인자 간의 상호작용에 의해 해당 함수의 결과가 달라지는 것을 의미한다. 이때, 각기 다른 테스트 대상함수는 테스트 인자의 수가 다르며 특히 교호작용이 일어나는 테스트 인자의 수가 다르게 된다. 이러한 교호작용이 일어나는 테스트 인자들의 수 중에서 가장 큰 값을 교호강도라고 한다. 예를 들어, 테스트 대상함수에 테스트 인자 A,B,C,D,E가 있을 때 A와 B가 교호작용을 하고 C,D,E가 교호작용을 한다면 해당 테스트 대상함수의 교호강도는 3이 된다.The factor
로봇 소프트웨어 화이트 박스 단위 테스트 시에 테스트 커버리지를 만족하면서 테스트의 신뢰성을 높이기 위해서는 테스트 교호강도의 수를 결정하는 것이 바람직하다. 본 발명의 일실시예는 인자 패턴 분석 모듈(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
도 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.
If(A = =B){
If, for, whileIf (A = 0 && B = "dd") {
If (A = = B) {
If, for, while
else (B){}If (A) {}
else (B) {}
int a=A
int b=B
int a = A
int b = B
int b=B;
}If (A) {
int b = B;
}
즉, 1∧2(A∧B) ∨C
Ie 1∧2
else (B) {}If (A && C) {}
else (B) {}
즉, 1∧3(A∧B) ← C
That is 1∧3
int c=C;
}If (A = 0 && B = "dd") {
int c = C;
}
즉, 1∧4(A∧B) ∨ (A⊃B)
That is 1∧4
즉, 2∧3(A∨B) ∨ (A ← B)
That is, 2∧3
즉, 2∧4(A∨B) ⊃C
That is, 2∧4
즉, 3∧4(A ← B) ⊃C
That is, 3∧4
int c=C
int b=B
}If (A) {
int c = C
int b = B
}
(상호작용이 일어나는 인자의 수가 지속적으로 늘어날 경우)A∧B∧C
(When the number of factors that interact with it continues to increase)
여기서, 번호 1 내지 4는 기본적인 형식에 해당하는 동시 사용 관계, 선택적 사용 관계, 종속 관계, 포함 관계를 의미하고, 번호 5 내지 10은 번호 1 내지 4의 기본적인 형식을 조합으로 나타낸 패턴을 의미한다. 그리고, 번호 11은 함수의 리턴에 직접 영향을 주는 경우의 패턴을 의미하고 번호 12는 인자가 함수에 대한 입력이 아닌 값을 받아오는 경우의 패턴을 의미한다. 마지막으로, 번호 13은 번호 1 내지 4 중 어느 하나의 형식이 연속적으로 나타날 경우의 패턴을 의미하는데 이때는 추가되는 인자의 수에 따라 조합 수를 증가시키면 된다.Here,
본 발명의 일실시예는 테스트 대상함수를 분석할 때 테스트 인자가 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
다시 도 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.
{
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.
따라서, 본 발명의 일실시예는 로봇 소프트웨어의 단위 테스트 적용시 모든 테스트 인자의 조합을 테스트하지 않고 필요한 만큼의 테스트를 진행하여 테스트의 시간과 비용을 아낄 수 있다. 또한, 본 발명의 일실시예는 소스 상에서 테스트 인자의 패턴 즉, 상호관계를 분석하여 이를 통해 테스트 케이스를 자동으로 생성하는 자동화 테스트 시스템을 구현할 수 있다.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)
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)
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)
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)
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 |
-
2009
- 2009-06-19 KR KR1020090055053A patent/KR101038397B1/en active IP Right Grant
Cited By (2)
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 |