KR100942987B1 - Method for test procedure optimize of robot software component - Google Patents
Method for test procedure optimize of robot software component Download PDFInfo
- Publication number
- KR100942987B1 KR100942987B1 KR1020080090355A KR20080090355A KR100942987B1 KR 100942987 B1 KR100942987 B1 KR 100942987B1 KR 1020080090355 A KR1020080090355 A KR 1020080090355A KR 20080090355 A KR20080090355 A KR 20080090355A KR 100942987 B1 KR100942987 B1 KR 100942987B1
- Authority
- KR
- South Korea
- Prior art keywords
- state
- test
- procedure
- transition
- states
- 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
본 발명은 RTC(Robotic Technology Component) 규격을 따르는 로봇 소프트웨어 컴포넌트(Robot software component)의 상태전이 테스트를 수행하기 위한 테스트 프로시저(test procedure)를 도출하는 방법에 관한 것으로서, 상태전이도를 통해 나온 반응 테스트 케이스, 무반응 테스트 케이스들을 모두 수행하는데, 중복되는 테스트케이스(test case)들을 줄이기 위해 백스텝핑(back stepping) 기법을 적용한 테스트 프로시저를 도출하는 로봇 소프트웨어 컴포넌트를 위한 상태전이 테스트프로시저의 최적화방법에 관한 것이다.The present invention relates to a method for deriving a test procedure for performing a state transition test of a robot software component that conforms to the Robotic Technology Component (RTC) standard. Optimization of state transition test procedures for robot software components that derive both test cases and non-responsive test cases, resulting in test procedures using back stepping techniques to reduce duplicate test cases It is about a method.
국제 표준기구인 OMG(Object Management Group) 표준인 RTC(Robotic Technology Component) 표준 개발을 주도한 기관으로 일본의 AIST가 (Advanced Industrial Science and Technology - 일본 산업기술종합연구소) 있는데 RTC를 사용하고 개발하기 위한 개발도구인 OpenRTM-aist[1]을 개발하여 배포하고 있다. A leading organization in the development of the Robotic Technology Component (RTC) standard, which is an international standard organization, the OMG (Object Management Group) standard, and the AIST of Japan (Advanced Industrial Science and Technology), which develops to use and develop RTC. A tool, OpenRTM-aist [1], is developed and distributed.
RTC의 구조는 도 1과 같으며, 상태전이 테스트는 RTC가 명세에 따라 (상태전이도) 올바르게 동작하는가를 테스트하게 된다. The structure of the RTC is shown in FIG. 1, and the state transition test tests whether the RTC operates correctly according to a specification.
RTC의 상태전이도는 도 2에 도시된 바와 같으며, Activity는 컴포넌트의 코어로직(core logic)을 포함하며, 코어로직은 Activity가 가진 상태머신(state machine)의 상태에 따라 동작하게 된다. Activity의 상태머신은 그림2의 Alive 상태의 점선 아랫부분과 같이 표현된다. Inactive 상태에서는 아무 동작을 하지 않다가 Active 상태가 되면 기능을 수행하기 시작한다. State transition diagram of the RTC is shown in Figure 2, the activity includes the core logic (core logic) of the component, the core logic operates according to the state of the state machine (state machine) of the activity. The state machine of the activity is represented as the bottom of the dotted line in the Alive state of Figure 2. In the Inactive state, it does nothing and starts to perform functions when it becomes active.
그리고 Active 상태에서 오류가 발생하게 되면, Error 상태로 전이되고, Error 상태에서 reset을 시켜주면 다시 Inactive 상태로 돌아간다. If an error occurs in the active state, the state is changed to the error state, and if an error is reset, the state returns to the inactive state.
코어로직이란 특정 목적을 가진 컴포넌트의 기능ㅇ동작이 구현되어 있는 부분이다. 예를 들면, 센서 데이터를 처리하여 actuator를 제어하는 알고리즘이 구현된 부분을 말한다. Core logic is the part that implements the function and operation of a specific component. For example, it refers to a part where an algorithm for controlling actuators by processing sensor data is implemented.
그리고 도 1에는 표현이 되어있지 않지만 Execution Context라는 코어로직의 행동을 제어하는 쓰레드(thread)가 존재한다. 이 Execution Context의 상태는 도 2의 Alive 상태의 점선 윗부분과 같으며, 이것의 상태가 Running 상태일 경우에만 코어로직이 동작하게 되고, Stopped 상태인 경우에는 코어로직은 동작하지 않는다. And although not represented in Figure 1, there is a thread that controls the behavior of CoreLogic, called Execution Context. The state of this Execution Context is the same as the upper part of the dotted line of the Alive state of FIG. 2, and the core logic operates only when the state of the Alive state is Running, and the core logic does not operate in the Stopped state.
도 2에서 Alive 상태가 점선으로 나뉜 것은, 나뉜 두 부분이 서로 병행처리 관계에 있다는 것을 의미한다. 즉 서로의 상태에 영향을 미치지 않는다는 것인데, 실제 OpenRTM-aist에서 실험을 해본 결과 완벽히 병행으로 처리되지 않는다는 것을 알았다. In FIG. 2, the alive state is divided by a dotted line, which means that the two divided parts are in parallel processing relationship with each other. In other words, it does not affect the state of each other. Actually, experiments in OpenRTM-aist showed that they are not processed in parallel.
따라서 OpenRTM에서 동작하는 RTC를 위한 상태전이도를 다음과 같이 나타내었다.Therefore, the state transition diagram for RTC operating in OpenRTM is shown as below.
도 3은 상태전이도로서, 상태전이에 필요한 이벤트들은 모두 표현하였으나, 이벤트에 따라 상태가 전이될 때 발생하는 콜백함수들은 도 2와 같으므로, 이를 참조하여 별도로 표현하지 않았다. 3 is a state transition diagram, all events necessary for state transition are expressed, but callback functions generated when a state is transitioned according to an event are the same as in FIG.
여기서 Stopped/Steady Error'(SS'), Stopped/Inactive'(SI'), Stopped/Active'(SA') 상태들은 가상의 상태를 표현하였다. 실제로 Stopped/Inactive 상태에서 ExecutionContext::activate_component란 이벤트를 입력한 경우 컴포넌트는 아무런 반응을 보이지 않는다. The Stopped / Steady Error '(SS'), Stopped / Inactive '(SI'), and Stopped / Active '(SA') states represent virtual states. In fact, if you execute the ExecutionContext :: activate_component event in the Stopped / Inactive state, the component does not react.
그리고 다시 ExecutionContext::start란 이벤트를 입력하면, Running/Inactive(RI) 상태로 전이하는 것이 아니라, Running/Active(RA) 상태로 전이를 하게 된다. If you enter the ExecutionContext :: start event again, the transition is not to the Running / Inactive (RI) state, but to the Running / Active (RA) state.
도 4는 OpenRTM-aist 상에서 RTC에 이벤트를 주기위한 화면을 나타내고 있다. 각각 Activate, Deactivate, Reset, Start, Stop은 ExecutionContext::activate_component, ExecutionContext::deactivate_component, ExecutionContext::reset_component, ExecutionContext::start, ExecutionContext::stop을 나타낸다. 4 shows a screen for giving an event to an RTC on OpenRTM-aist. Activate, Deactivate, Reset, Start, and Stop represent ExecutionContext :: activate_component, ExecutionContext :: deactivate_component, ExecutionContext :: reset_component, ExecutionContext :: start, and ExecutionContext :: stop, respectively.
도 3의 상태전이도를 이용하여 상태전이 테스팅을 일반적으로 다음과 같은 순서로 진행을 하게 된다.State transition testing using the state transition diagram of FIG. 3 generally proceeds in the following order.
<상태전이 테스팅>State transition testing
도 5는 일반적인 상태전이도를 통한 테스팅 기법이다. 상태전이도에는 대상 시스템에 대해, 상태 사이의 관계 즉, 상태 간의 전이, 상태를 변화시키는 이벤트 와 입력값, 상태의 변화로 유발되는 동작 등이 나타난다. 즉, 상태전이도를 기반으로 일반적으로 다음과 같은 절차에 따라 테스트를 설계할 수 있다. 5 is a testing technique through a general state transition diagram. State transition diagrams show the relationship between states, that is, transitions between states, events and inputs that change states, and behaviors caused by changes in states. In other words, based on the state transition diagram, a test can be designed according to the following general procedure.
(1) 상태-이벤트 테이블 구성(1) Status-Event Table Configuration
(2) 전이 트리 구성 (2) Transition tree configuration
(3) 반응 테스트 케이스 구성 (3) reaction test case configuration
(4) 무반응 테스트 케이스 구성(4) Responseless test case configuration
(5) 가드 테스트 케이스 구성 (5) Guard test case configuration
(6) 테스트 프로시저 구성(6) test procedure configuration
도 6은 상태-이벤트 테이블은 상태전이도에서 각 상태들이 이벤트를 입력받은 경우 다른 상태로 전이하는 것을 표로 정리한 것이다. FIG. 6 is a table of state-event tables that transition from one state to another state in the state transition diagram when an event is input.
상태전이 트리는 각각의 상태가 다음 상태로 전이하는 경우의 개수를 따지게 되는 것으로 상태가 이벤트에 의해 전이되는 내용을 모두 포함하게 된다. The state transition tree determines the number of cases in which each state transitions to the next state, and includes all the states transitioned by the event.
반응 테스트 케이스는 상태전이 트리에서 상태가 이벤트에 의해 전이되는 모든 경로를 테스트 케이스로 전환하여 도출한다. 테스트 프로시저는 테스트의 실행 순서를 나타낸 것으로 테스트 케이스의 시작상태와 종료상태에 따라 그 순서가 결정된다.Reaction test cases are derived by converting all paths through which state transitions by events into test cases in the state transition tree. Test procedures represent the order in which tests are executed, and their order is determined by the start and end states of test cases.
이에 대하여 보다 상세히 설명하면 다음과 같다.This will be described in more detail as follows.
(1). 상태-이벤트 테이블 구성(One). Status-Event Table Configuration
도 6에서와 같이, OpenRTM-aist 상에서 로봇 소프트웨어 컴포넌트는 시작하자마자 Created 상태를 지나 RI 상태로 전이하게 되어 사용자 입력을 받지 않는 부 분이다. 따라서 시작상태를 RI 상태로 두고 상태전이 테스팅을 진행하게 된다. As shown in FIG. 6, on the OpenRTM-aist, the robot software component transitions to the RI state after passing through the Created state and receives no user input. Therefore, the state transition testing is performed with the start state as the RI state.
여기서, 25SI, 31SI', 38SA', 44SA' 51SS', 57SS'는 도 3에서 설명한 바와 같이 가상의 상태(SS',SI',SA')를 나타내고 있다. 그리고 ' 1 RI '처럼 굵고 기울이고 밑줄 표시된 상태는 전이하지 않지만, 오류메세지가 발생된 것을 나타낸다. 최종상태(Exit)로의 전이는 컴포넌트 종료를 나타낸다. Here, 25SI, 31SI ', 38SA', 44SA '51SS', and 57SS 'represent virtual states SS', SI ', and SA', as described with reference to FIG. And the bold, underlined and underlined state like ' 1 RI ' does not transition, but it indicates that an error message has occurred. The transition to the exit state indicates component termination.
(2). 상태전이 트리 구성(2). State Transition Tree Configuration
도 7은 도 6의 상태-이벤트 테이블을 토대로 각각의 상태전이 트리를 표시한 도이다. FIG. 7 is a diagram illustrating each state transition tree based on the state-event table of FIG. 6.
여기서 한 번의 전이가 일어나는 경우를 정리한 0-switch 상태전이 트리를 구성하였다. 만약 1-switch 상태전이 트리라면, RA -> RI -> SI와 같이 두 번 전이하는 경우를 나타낸다. Here we construct a 0-switch state transition tree that summarizes the case where one transition occurs. If the 1-switch transition is a tree, it represents a transition twice, such as RA-> RI-> SI.
(3). 반응 테스트 케이스 구성(3). Reaction test case configuration
도 8은 상태-이벤트 테이블과 상태전이 트리를 통해 반응 테스트케이스를 구성한 도이다. 액션부분에 Error Msg라는 항목이 있는데, 이것은 OpenRTM-aist 상에서 나타나는 액션으로, 에러메시지를 화면에 표시하게 된다.8 is a diagram illustrating a reaction test case through a state-event table and a state transition tree. In the action part, there is an item called Error Msg, which is an action that appears in OpenRTM-aist and displays an error message on the screen.
(4). 무반응 테스트 케이스 구성 및 가드 테스트 케이스 구성(4). Responseless test case configuration and guard test case configuration
본 상태전이 테스팅에서는 무반응 테스트 케이스로 구성할 만한 부분이 존재하지 않아 무시하였다. 또한 가드를 가지는 상태는 가드에 따라 각각 다른 상태로 구분하여 표현하여 반응 테스트 케이스로 표현하였다. (도 8의 V012, V020, V021)In this state transition testing, there was nothing that could constitute a non-response test case and was ignored. In addition, the state having a guard is represented by a reaction test case by dividing the state into different states according to the guard. (V012, V020, V021 in FIG. 8)
(5). 테스트 프로시져 도출(5). Derivation of test procedure
도 8에서 구성한 반응 테스트 케이스를 이용하여 어떠한 순서로 테스트 케이스들을 수행할지 시작상태와 종료상태를 보고 결정한다. 그리고 모든 테스트 케이스들이 수행될 수 있도록 확인할 수 있는 도 9와 같이 작성한다.Using the reaction test case configured in FIG. 8, the start state and the end state are determined based on the order in which the test cases are to be performed. And write as shown in Figure 9 to confirm that all the test cases can be performed.
예를 들면 다음과 같이 단순하게 프로시져를 작성 할 수 있다.For example, you can simply write a procedure like this:
tp1: V001 -> V002 -> V005 -> V006 -> V003 -> V024 -> V026…tp1: V001-> V002-> V005-> V006-> V003-> V024-> V026.
tp2: V003 -> V025 -> V030 -> V031 -> V032 -> V033 -> V029…tp2: V003-> V025-> V030-> V031-> V032-> V033-> V029...
……
tpn: …tpn:…
위와 같은 단순한 방법은 간단한 상태전이도를 가지는 상태전이 테스팅에서는 쉽고 빠르게 모든 테스트 케이스를 포함하는 효율적인 테스트 프로시저를 산출 할 수 있겠지만, 상태간의 관계가 복잡해지고, 테스트 케이스의 개수가 늘어날수록 효율적인 테스트 프로시저를 도출하는데 매우 어려워지게 되는 문제점이 있었다.This simple method can quickly and easily produce an efficient test procedure that includes all test cases in state transition testing with simple state transitions, but as the relationship between states becomes more complex and the number of test cases increases, There was a problem that is very difficult to derive the procedure.
따라서, 본 발명은 위의 문제를 해결하기 위한 것으로서, 본 발명의 목적은 OpenRTM-aist 상에서 RTC가 동작하는 것을 분석하여 상태전이테스트에서 효율적인 테스트프로시저(test procedure)를 백스텝핑 기법을 적용하여 도출하는 과정을 통해 상태간의 관계가 복잡해지고, 테스트케이스의 개수가 늘어나도 효율적인 테스트 프로시저를 도출할 수 있도록 하는 로봇 소프트웨어 컴포넌트를 위한 상태전이 테 스트 프로시저의 최적화 방법을 제공하는데 있다. Accordingly, the present invention is to solve the above problems, an object of the present invention is to analyze the RTC operation on OpenRTM-aist to derive an efficient test procedure (back stepping) method in the state transition test This study provides a method for optimizing state transition test procedures for robotic software components that makes the relationship between states complicated and increases the number of test cases.
본 발명에 따른 로봇 소프트웨어 컴포넌트를 위한 상태전이 테스트 프로시저의 최적화 과정은 RTC 규격을 준수하는 로봇 소프트웨어 컴포넌트를 테스트하기 위해 시작상태인 RI(Running/Incative)상태로부터 시작하여 이벤트를 입력받아 다음 상태로의 전이를 나타내는 상태-이벤트 테이블을 생성하고, 각각의 상태가 다음 상태로 전이하는 경우의 수를 산출하는 상태전이 트리를 생성한 후, 시작상태(RI)로부터 상기 각 상태가 이벤트에 의해 전이되는 최종상태(Exit)까지의 모든 경로를 테스트케이스로 전환하여 도출하고, 상기 테스트케이스로부터 테스트의 실행순서를 나타내는 테스트프로시저(test procedure)를 도출하는 방법에 있어서, 상기 최종상태(Exit)로부터 상기 시작상태(RI)까지 단계별로 백스텝핑(back stepping) 하여 직전 상태를 테스트케이스별로 찾아내는 테스트케이스 필터링과정과, 상기 필터링과정에서 시작상태(RI)로부터 최종상태(Exit)까지의 각 상태 전이를 각 테스트케이스 별로 테스트 프로시저를 도출하는 테스트프로시저 도출과정과, 상기 최종상태(Exit)로 전이되는 직전의 테스트케이스를 기준으로 상기 테스트 프로시저를 각 그룹으로 분류하는 프로시저 최적화과정과, 상기 프로시저 최적화과정에서 산출한 테스트프로시저에서 각 그룹별로 각각 하나의 결합 생성된 테스트프로시저를 각각 도출하는 프로시저 완성과정을 포함하여 이루어진 것을 특징으로 한다.The optimization process of the state transition test procedure for the robot software component according to the present invention starts with a running / incident (RI) state, which is a start state, for testing a robot software component that complies with the RTC standard, and receives an event to the next state. Create a state-event table that represents the transition of, create a state transition tree that calculates the number of cases where each state transitions to the next state, and then, from the start state (RI), each state is transitioned by an event. A method for deriving a test procedure indicating a procedure for executing a test from the test case by converting all paths up to a final state to a test case, wherein the path is derived from the final state. Backstepping step by step until the starting state (RI) Is a test procedure filtering process, a test procedure derivation process for deriving a test procedure for each test case for each state transition from a start state (RI) to a final state (Exit) in the filtering process, and the final state (Exit). Based on the test case immediately before the transition to the)), the procedure optimization process for classifying the test procedure into each group, and the test procedure generated by combining each of each group in the test procedure calculated in the procedure optimization process It is characterized by including the completion of the procedure for deriving each procedure.
상기 테스트케이스 필터링과정은 상기 테스트케이스 필터링과정은 상태전이 최종상태(Exit)로 전이된 바로 직전의 모든 상태(SL1)를 찾아내는 제 1 단계와, 상 기 제 1 단계에서 찾은 각 상태(SL1)로 전이된 바로 직전의 모든 상태(SL2)를 찾는 제 2 단계와, 상기 제 2 단계에서 찾은 상태(SL2)들 중 제 1 단계에서 찾은 상태(SL1)와 중복되지 않은 상태(RI,RA,RS)를 추출하여, 추출된 상태(RI,RA,RS)의 바로 직전의 모든 상태(SL3)를 찾는 제 3 단계와, 상기 제 3 단계에서 찾은 상태(SL3)들 중 제 1, 제2 단계에서 찾은 상태(SL1, 2)와 중복되지 않은 상태(RR)를 추출한 후, 추출된 상태(RR)의 바로 직전의 모든 상태(SL4)를 찾는 제 4 단계를 포함하여 이루어진 것을 특징으로 한다.The test case filtering process includes a first step of finding all the states SL1 immediately before the state transition to an exit state, and each state SL1 found in the first step. A second step of finding all the states SL2 immediately before the transition, and a state (RI, RA, RS) not overlapping with the state SL1 found in the first step among the states SL2 found in the second step. The third step of finding all the state (SL3) immediately before the extracted state (RI, RA, RS), and the first and second of the state (SL3) found in the third step And extracting a state RR that does not overlap with the states SL1 and 2, and then finding a fourth state immediately before the extracted state RR.
상기 프로시저 최적화과정은 상기 테스트프로시저 도출과정에서 도출된 모든 테스트프로시저를 최종상태(Exit) 직전의 상태(SI, SI', SA, SA', SS, SS')에 따라 6그룹으로 분류하여 각 그룹의 테스트프로시저는 하나의 테스트프로시저로 결합 도출하되, 상기 각 그룹은 각 상태에 가장 가까운 별도로 체크된 테스트케이스를 검색하는 제 1 단계와, 상기 검색한 테스트케이스의 상태를 바로 다음 테스트프로시저에서 찾는 제 2 단계와, 상기 다음 테스트프로시저에서 찾은 상태 중 최종상태(Exit)에 가까운 상태를 이용하여 이전 테스트프로시저의 테스트케이스들을 연결하는 제 3 단계와, 상기 프로시저가 연결되어 누적된 새로운 테스트프로시저를 생성하는 제 4 단계를 포함하여 이루어진 것을 특징으로 한다.The procedure optimization process classifies all test procedures derived from the test procedure derivation process into six groups according to the state immediately before the final state (SI, SI ', SA, SA', SS, SS '). The test procedure of each group is derived and combined into one test procedure, wherein each group is a first step of searching for a separately checked test case closest to each state, and immediately following the state of the searched test case. The procedure connects the test cases of the previous test procedure with a second step found in the test procedure, a state close to the exit state found in the next test procedure, and the procedure And a fourth step of generating an accumulated new test procedure.
본 발명에 따른 로봇 소프트웨어 컴포넌트를 위한 상태전이 테스트 프로시저의 최적화 방법은 테스트 프로시저를 체계적으로 도출함으로써, 상태간의 관계가 복잡해 지고, 테스트 케이스의 개수가 늘어나도 효율적인 테스트 프로시저를 도출할 수 있을 뿐만 아니라, 테스트프로시저를 작성하는데 소요되는 시간, 전체 테스트 프로시저를 통틀어 수행되는 테스트케이스들의 횟수가 감소되어 RTC 규격을 따르는 소프트웨어 컴포넌트의 테스트 소요시간이 단축되는 효과가 있다.In the method for optimizing the state transition test procedure for the robot software component according to the present invention, it is possible to derive an effective test procedure even if the relationship between states becomes complicated and the number of test cases increases by systematically deriving the test procedure. In addition, the time required to write a test procedure and the number of test cases performed throughout the entire test procedure are reduced, thereby reducing the test time required for software components that conform to the RTC specification.
먼저, 본 발명은 상태전이 테스트를 수행하기 위해서는 먼저 테스트 대상의 상태전이도가 있어야 한다. 그리고 그것을 보고 상태전이 테이블을 작성하고, 이것을 이용하여 상태전이트리를 작성하고, 반응 테스트 케이스를 작성한다. First, in order to perform the state transition test, the present invention must first have a state transition diagram of the test object. It then creates a state transition table, uses it to build a state transition tree, and creates a reaction test case.
여기서, 상태전이 테이블은 각 상태들이 이벤트에 의해 천이되는 것을 상태전이 및 테스트케이스별로 정리하고, 상태전이트리는 각 상태가 다음 상태로 전이되는 단계를 표현한 것으로 n-switch 상태전이트리는 각 상태에서 n+1번의 전이가 발생할 경우 나타나는 모든 전이를 표현하며, 본 발명에서는 0-switch 상태전이트리를 사용한다. Here, the state transition table organizes each state transition by an event by state transition and test case, and state transition represents a state in which each state transitions to the next state. N-switch state transition is n + in each state. Represents all transitions that occur when one transition occurs, and the present invention uses a 0-switch state transition tree.
그리고, 각각의 테스트케이스들은 시작상태(RI), 이벤트(event), 액션(Action), 종료상태(Exit)의 항목을 가진다. 상태전이나 어떠한 액션이 발생한 경우 반응 테스트 케이스가 되고, 특정 이벤트에 대해 아무런 반응이 없는 경우 무반응 테스트 케이스가 된다. 본 발명에서는 반응 테스트케이스를 사용한다.Each test case has an entry state (RI), an event, an action, and an exit state. It becomes a reaction test case when a state action or any action occurs, and a non-response test case when there is no response to a specific event. In the present invention, a reaction test case is used.
작성된 모든 테스트케이스들은 하나, 혹은 여러 개의 테스트프로시저를 통해 수행되어야 한다. 테스트프로시저는 테스트케이스를 수행하는 순서를 나타내는 것으로 해당 테스트케이스의 시작상태와 종료상태에 따라 그 순서가 정해진다. All written test cases should be executed through one or several test procedures. The test procedure represents the order in which the test cases are executed. The test procedure is determined according to the start state and end state of the test case.
여러 개의 테스트프로시저들은 동일한 테스트케이스 수행을 포함할 수 있고, 통상적으로는 모든 테스트케이스를 수행하기 위해 체크 표를 만들어 단순히 체크를 하며 테스트프로시저를 도출한다.Multiple test procedures can involve performing the same test case. Typically, a check table is created by simply checking to derive the test procedure to perform all test cases.
도 10은 본 발명의 실시예에 따른 로봇 소프트웨어 컴포넌트를 위한 상태전이 테스트 프로시저의 최적화방법을 구현하기 위한 상태전이 트리 표시도로서, 이를 참고하여 보다 상세히 설명하면 다음과 같다.10 is a diagram illustrating a state transition tree for implementing a method for optimizing a state transition test procedure for a robot software component according to an embodiment of the present invention.
먼저, 상태전이 중 최종상태(Exit)로 전이되는 직전의 상태인 백스텝핑 레벨1(SL1)을 추출한다. SL1 = {SI, SI', SA, SA', SS, SS'}First, the
백스텝핑 레벨2(SL2)에서는 상기 백스테핑 레벨1(SL1)에서 추출한 상태들의 직전상태들을 찾아낸다. SL2 = {RI, SISI, SISI', SI', RA, SASA, SASA', SA', RS, SSSS, SSSS', SS'}In
여기서, SISI, SISI' 상태는 실제 같은 SI상태이지만, 어떤 상태로부터 백스텝핑하여 추출되었는가를 구분하기 위해 아래첨자로 구분하였다. 상태가 중복되어 나타나는가를 판단하는 경우에는 SI와 같다고 두고 판단한다.Here, SI SI and SI SI ' states are actually SI states, but are separated by subscripts to distinguish which state is extracted by backstepping. In the case of judging whether the state is duplicated, it is determined to be the same as SI.
그리고 백스텝핑 레벨2(SL2)에서 추출된 상태들을 다음과 같이 세 가지로 분류한다. The states extracted in the backstepping level SL2 are classified into three categories as follows.
① SL1에 속하지 않고, SL2에서 처음 나타나는 상태들인 RI, RA, RS상태와, ① does not belong to SL1, RI, RA, RS status that appears first in SL2,
② SL2에 속하고, RI를 직전 상태로 가지는 상태들인 SISI, SISI'상태와,② SI SI , SI SI ' states belonging to SL2 and having RI in the previous state,
(여기서, 전체 상태들 중에 RI를 직전 상태로 가지는 상태들은 SI와 RA가 있으며. RI 상태로 갈 수 있으므로 더 이상 백스텝핑을 하지 않는다.)(Here, the states that have RI just prior to them are SI and RA. They can go to RI state and no longer backstepping.)
③ SL1과 SISI, SISI'에 속하고, RI를 직전 상태로 가지지 않는 상태인 SI', SASA, SASA', SA', SSSS, SSSS', SS'상태로 분류한다.(이전에 백스텝핑을 수행하였기 때문에 여기서는 더 이상 백스텝핑을 하지 않는다.) ③ It belongs to SL1, SI SI , SI SI ' and classified into SI', SA SA , SA SA ' , SA', SS SS , SS SS ' , and SS' state, which does not have RI as the previous state. Since we have performed backstepping before, we do not backstep here anymore.)
백스텝핑 레벨3(SL3)에서는 백스텝핑 레벨2(SL2)에서 추출한(①로 분류된) RI, RA, RS상태들의 직전 상태들을 찾아낸다.
SL3 = {RIRI, RARI, RRRI, SIRI, SA', RIRA, RARA, SI', SARA, RARS, RS, RRRS, SSRS}SL3 = {RI RI , RA RI , RR RI , SI RI , SA ', RI RA , RA RA , SI', SA RA , RA RS , RS, RR RS , SS RS }
그리고 이것을 다음과 같이 세 가지로 분류한다. It is classified into three categories as follows.
④ SL1, SL2에 속하지 않고, SL3에서 처음 나타나는 상태들 인 RRRI상태와,④ RR RI state, which does not belong to SL1, SL2, but appears first in SL3,
⑤ SL1, SL2에 속하고 RI를 직전 상태로 가지는 상태들과 RI상태인 RIRI, RARI, SIRI, RARA, RIRA, RARS상태와, (5) the states belonging to SL1 and SL2 and having RI in the immediate state, RI RI , RA RI , SI RI , RA RA , RI RA , RA RS state,
⑥ SL1, SL2 및 상기 RRRI상태에 속하고, RI를 직전 상태로 가지지 않는 상태들인 SA'RI, SI'RA, SARA, RSRS, RRRS, SSRS상태로 분류한다.(6) It is classified into SL1, SL2 and SA ' RI , SI' RA , SA RA , RS RS , RR RS , SS RS states which belong to the RR RI state and do not have RI as the previous state.
마지막으로 백스텝핑 레벨4(SL4)에서는 백스텝핑 레벨3(SL3)에서 추출한 상태(④ 로 분류된) RRRI상태의 직전상태를 찾아낸다. SL4 = {RS, SS'}Finally, the back-stepping level 4 (SL4) The find the earlier state of (a classified ④) RR RI state condition extracted from the back-stepping level 3 (SL3). SL4 = {RS, SS '}
이와 같이 각 상태들을 백스텝핑하여 각 레벨을 다음 백스텝핑 가능 여부에 따라 분류하였다.As such, each state was backstepped and each level was classified according to the next backstepping capability.
각 백스텝핑 레벨에서 추출된 분류 "SL2의 ②,③, SL3의 ⑤,⑥" 및 SL4는 더 이상 백스텝핑을 하지 않는다. 이 중에서 분류 ②,⑤에서 추출된 상태들은 직전의 상태가 시작상태(RI) 이므로 프로시저를 도출하는데 문제가 없지만, 나머지 분류 ③,⑥ 및 SL4의 상태들은 시작상태(RI)로 가기 위한 백스텝핑을 더 수행하게 된다.The classifications " 2, 3 " of SL2, " 5, 6 " of SL3, and SL4 extracted at each back stepping level no longer perform back stepping. Among the states extracted from
도 11a, 11b는 상기 도 10의 상태트리를 백스텝핑하여 도출된 테스트프로시저를 표시한 테이블이며, 여기서, 상태가 시작상태(RI)로부터 시작한다면 그대로 표에 옮겨 넣었고, SI나 RA로부터 시작한다면 직전의 상태로 시작상태(RI)를 추가하여 옮겨 넣었다. 11A and 11B are tables showing test procedures derived by back-stepping the state tree of FIG. 10, where the state is transferred to the table as it starts from the start state (RI), and starts from SI or RA. The starting state (RI) was added to the previous state and moved.
프로시저 최적화과정은 도 11a, 11b에서 최종상태(Exit)의 직전의 상태(SI, SI', SA, SA', SS, SS')에 따라 6그룹으로 분류한다. The procedure optimization process is classified into six groups according to the states immediately before the final state (SI, SI ', SA, SA', SS, SS ') in FIGS. 11A and 11B.
각 그룹 내의 프로시저가 다른 프로시저에 포함되는지를 판단하고, 포함된다면 해당 프로시저는 제거한다. 모든 그룹의 프로시저를 순서대로 검색하여 처음 나타나는 테스트케이스는 별도로 체크한다. 각 그룹의 프로시저에서 시작상태(RI)에 가장 가까운 별도로 체크된 테스트케이스를 검색한다. 상기 검색된 별도로 체크된 테스트케이스의 상태를 바로 다음 프로시저에서 찾는다. (다음 프로시저에 존재하지 않는다면 거꾸로, 다음 프로시저에서 검색한 테스트케이스의 상태를 자기 자신에서 찾는다.) 다음 프로시저에서 찾은 상태 중 최종상태(Exit)에 가까운 상태를 이용하여 이전 프로시저의 테스트케이스들을 연결한다. (자기 자신에서 찾은 상태 중 Exit 상태에 가까운 상태를 이용하여 다음 프로시저의 테스트 케이스들을 연결한다.)Determine if a procedure in each group is included in another procedure, and if so, remove the procedure. Search the procedures of all groups in order and check the first test case separately. In each group of procedures, search for the separately checked test case closest to the starting state (RI). The state of the retrieved separately checked test case is found in the next procedure. (If it does not exist in the next procedure, it finds itself in the state of the test case retrieved in the next procedure.) Test the previous procedure using the state found in the next procedure close to the exit state. Connect the cases. (Use the state you find yourself close to the Exit state to connect test cases in the following procedure.)
두 프로시저가 연결된, 누적된 새로운 프로시저가 나타난다. 이 새로운 프로시저를 이용하여 같은 그룹 내의 다른 프로시저와 위 과정을 반복하여 또 다른 새로운 프로시저를 생성한다.A new cumulative procedure appears, linking the two procedures. Use this new procedure to create another new procedure by repeating the above procedure with other procedures in the same group.
도 12a 내지 12f는 각 그룹별로 프로시저를 생성하는 과정을 나타낸 것으로, 각 도의 테이블 맨 위에 있는 프로시저를 처음 나타나는 테스트 케이스에 영향을 미치지 않도록 바로 아래의 프로시저에 연결하는 작업을 거쳐, 각 그룹에서 나타나는 테스트케이스들을 모두 수행하는 테스트프로시저를 그룹별로 하나씩 산출할 수 있게 된다. 마지막 행에 나타난 프로시저가 최종적으로 생성된 테스트프로시저이다.12A to 12F illustrate a procedure of creating a procedure for each group, and connecting the procedure at the top of each table to the procedure immediately below so as not to affect the first test case. It is possible to calculate one test procedure for each group that performs all the test cases shown in. The procedure shown in the last row is the last test procedure created.
프로시저 완성과정은 테스트프로시저 최적화 과정에서 각 그룹별로 최종적으로 생성된 테스트프로시저를 추출한 것이다.The procedure completion process extracts the test procedure finally generated for each group during the test procedure optimization process.
도 13은 도 12a 내지 12f에서 도출된 마지막 행의 프로시저를 추출한 테이블 표시도로서, 테스트최적화 과정에서 도출된 최종 테스트프로시저는 하나의 셀에 여러 개의 테스트 케이스가 포함된 경우가 존재한다. 즉, 서로 다른 이벤트가 동일한 상태전이를 발생시키는 경우에 대하여 자기 자신의 상태로 유지되는 테스트케이스는 실제 테스트프로시저로 표현하기 위해 하나의 셀에 하나의 테스트케이스만 표현된 최적화된 테스트프로시저를 도출하게 된다.FIG. 13 is a table display diagram illustrating a procedure of extracting the procedure of the last row derived from FIGS. 12A to 12F, in which the final test procedure derived from the test optimization process includes a case where several test cases are included in one cell. In other words, test cases that are maintained in their own state when different events cause the same state transitions are optimized test procedures in which only one test case is represented in one cell to represent the actual test procedure. Will be derived.
도 14는 도 13에서 실제 프로시저가 모든 테스트케이스를 포함하고 있는지를 확인하는 테이블이다.FIG. 14 is a table confirming whether the actual procedure in FIG. 13 includes all test cases.
도 1은 OMG에 의해 표준화된 RTC에서 제시하고 있는 기본적인 로봇 소프트웨어 컴포넌트 구조에 내부함수를 추가한 로봇 소프트웨어 컴포넌트 구조도이고,1 is a diagram of a robot software component structure in which an internal function is added to a basic robot software component structure proposed by an RTC standardized by OMG.
도 2는 도 1의 Activity의 State Machine에서 관리하는 컴포넌트의 상태 전이 다이어그램이고,2 is a state transition diagram of a component managed by a state machine of the activity of FIG. 1,
도 3은 OpenRTM에서 동작하는 RTC를 위한 상태전이도이고,3 is a state transition diagram for an RTC operating in OpenRTM,
도 4는 OpenRTM-aist 상에서 RTC에 이벤트를 주기위한 화면 표시도이고, 4 is a screen display for giving an event to the RTC on OpenRTM-aist,
도 5는 상태전이 테스팅의 일반적인 진행순서를 나타낸 도이고,5 is a diagram illustrating a general procedure of state transition testing,
도 6은 도 3의 상태전이도에서 각 상태들이 이벤트를 입력받은 경우 다른 상태로 전이하는 것을 테이블로 정리한 도이고,FIG. 6 is a diagram summarizing a transition to another state when each state receives an event in the state transition diagram of FIG. 3.
도 7은 도 6을 토대로 나타낸 상태전이 트리를 표시한 도이고,FIG. 7 is a diagram illustrating a state transition tree based on FIG. 6.
도 8은 도 7의 상태전이 트리를 통해 특정 상태가 특정 이벤트에 의해 다음 상태로 전이되는 모든 경로가 표현되는데, 그 각각의 경로를 테스트케이스로 표현한 반응 테스트케이스를 표시한 도이고,FIG. 8 is a diagram illustrating all paths through which the specific state is transferred to the next state by a specific event through the state transition tree of FIG. 7, wherein each path is represented by a test case.
도 9는 테스트프로시저를 통해 수행된 테스트케이스를 체크하여 모든 테스트케이스들이 수행되는가를 확인할 수 있도록 해주는 체크 표이고,9 is a check table for checking whether a test case is performed through a test procedure so that all test cases are performed.
도 10은 본 발명의 실시예에 따른 로봇 소프트웨어 컴포넌트를 위한 상태전이 테스트 프로시저의 최적화방법을 구현하기 위한 상태전이 트리를 표시한 도이고,10 is a diagram showing a state transition tree for implementing a method of optimizing a state transition test procedure for a robot software component according to an embodiment of the present invention;
도 11a 내지 11b는 본 발명의 실시예에 따라 도출된 중간 단계의 테스트프로 시저를 표시한 도이고,11A to 11B are diagrams showing an intermediate test procedure derived according to an embodiment of the present invention.
도 12a 내지 12f는 본 발명의 실시예에 따른 프로시저 최적화과정을 통해 산출된 테스트프로시저를 표시한 도이고,12A to 12F illustrate test procedures calculated through a procedure optimization process according to an embodiment of the present invention.
도 13은 도 12a 내지 12f에서 나타난 서로 다른 이벤트가 동일한 상태전이를 발생시키는 부분을 해결한 완성된 테스트프로시저를 표시한 도이고,FIG. 13 is a diagram illustrating a completed test procedure in which portions of different events shown in FIGS. 12A to 12F cause the same state transition,
도 14는 도 13에서 표시된 모든 테스트케이스들이 테스트프로시저에 포함되었는가를 확인하도록 하는 체크 테이블을 표시한 도이다.FIG. 14 illustrates a check table for confirming whether all test cases shown in FIG. 13 are included in a test procedure.
Claims (6)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080090355A KR100942987B1 (en) | 2008-09-12 | 2008-09-12 | Method for test procedure optimize of robot software component |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080090355A KR100942987B1 (en) | 2008-09-12 | 2008-09-12 | Method for test procedure optimize of robot software component |
Publications (1)
Publication Number | Publication Date |
---|---|
KR100942987B1 true KR100942987B1 (en) | 2010-02-17 |
Family
ID=42083527
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080090355A KR100942987B1 (en) | 2008-09-12 | 2008-09-12 | Method for test procedure optimize of robot software component |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100942987B1 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0784832A (en) * | 1993-09-09 | 1995-03-31 | Hitachi Ltd | Real-time system simulation device |
JPH08202741A (en) * | 1995-01-30 | 1996-08-09 | Ricoh Co Ltd | Device and method for supporting function design |
JPH11143734A (en) | 1997-11-07 | 1999-05-28 | Hitachi Ltd | Backward execution method of sequence program |
JP2003216454A (en) | 2002-01-28 | 2003-07-31 | Mitsubishi Electric Corp | Test procedure generating device, test procedure generating method, test procedure generator and recording medium |
-
2008
- 2008-09-12 KR KR1020080090355A patent/KR100942987B1/en not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0784832A (en) * | 1993-09-09 | 1995-03-31 | Hitachi Ltd | Real-time system simulation device |
JPH08202741A (en) * | 1995-01-30 | 1996-08-09 | Ricoh Co Ltd | Device and method for supporting function design |
JPH11143734A (en) | 1997-11-07 | 1999-05-28 | Hitachi Ltd | Backward execution method of sequence program |
JP2003216454A (en) | 2002-01-28 | 2003-07-31 | Mitsubishi Electric Corp | Test procedure generating device, test procedure generating method, test procedure generator and recording medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008009842A (en) | Control method of computer system, and computer system | |
Oh et al. | Software safety analysis of function block diagrams using fault trees | |
CN108897676B (en) | Flight guidance control software reliability analysis system and method based on formalization rules | |
CN109670664A (en) | Flow implementation method, user equipment, storage medium and device based on workflow | |
CN109214140B (en) | AltaRica-based avionics system dynamic reconstruction modeling method | |
CN103200027A (en) | Method, device and system for locating network failure | |
JP2003178173A (en) | Project risk managing method, device and program | |
CN110390147B (en) | Multi-stage task system reliability analysis method based on irrelevant coverage model | |
CN108594051B (en) | Automatic detection method and system for electrical equipment fault | |
CN111047205A (en) | Multi-station cooperative processing method and device for assembly line, storage medium and processor | |
KR100942987B1 (en) | Method for test procedure optimize of robot software component | |
KR101566358B1 (en) | System and method of alarming uncommon state of automatic process | |
CN101373506B (en) | Method for detecting software loophole model based on loophole model | |
CN111125634B (en) | Reliability analysis method and system based on quality method | |
CN112860502A (en) | Fault simulation method, equipment, server and storage medium | |
Ghidella et al. | Requirements-based testing in aircraft control design | |
CN107682173B (en) | Automatic fault positioning method and system based on transaction model | |
Andersson et al. | Restarting manufacturing systems; restart states and restartability | |
Hu et al. | File parsing vulnerability detection with symbolic execution | |
CN107908557B (en) | Embedded software credible attribute modeling and verifying method | |
US20120203543A1 (en) | Method for Analyzing Message Archives and Corresponding Computer Program | |
KR20220048233A (en) | Method for detecting abnomal event and apparatus implementing the same method | |
JP2014126900A (en) | Program analysis device, program analysis method, and program analysis program | |
Dotoli et al. | Fault monitoring of automated manufacturing systems by first order hybrid petri nets | |
CN110928525A (en) | Automatic log generation method and system for business flow development tool |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
N231 | Notification of change of applicant | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130111 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20140106 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |