KR101091457B1 - Online system test method - Google Patents
Online system test method Download PDFInfo
- Publication number
- KR101091457B1 KR101091457B1 KR1020090092272A KR20090092272A KR101091457B1 KR 101091457 B1 KR101091457 B1 KR 101091457B1 KR 1020090092272 A KR1020090092272 A KR 1020090092272A KR 20090092272 A KR20090092272 A KR 20090092272A KR 101091457 B1 KR101091457 B1 KR 101091457B1
- Authority
- KR
- South Korea
- Prior art keywords
- test
- hooking
- information
- defining
- location
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
본 발명은 후킹 기술과 프로파일링 개념을 온라인 시스템 테스트에 적용하여 자원 오버헤드를 최소화한 시스템 테스트와 결함 원인과 위치 식별을 위한 테스트 정보 수집을 동시에 하기 위한 온라인 시스템 테스트 방법과 관련된다. 구체적으로, 본 발명은 결함 모델을 정의하는 단계, 테스트 에이전트를 삽입하는 단계, 테스트 위치를 후킹하는 단계, 테스트 정보를 수집하는 단계, 및 테스트 에이전트를 제거하는 단계를 포함하는 온라인 시스템 테스트 방법을 개시한다.The present invention relates to an on-line system test method for applying a hooking technique and a profiling concept to an on-line system test to simultaneously perform a system test that minimizes resource overhead and collect test information for identifying a cause and location of a defect. Specifically, the present invention discloses an online system test method comprising defining a defect model, inserting a test agent, hooking a test location, collecting test information, and removing the test agent. do.
Description
본 발명은 온라인 시스템을 테스트하는 방법과 관련된다.The present invention relates to a method of testing an online system.
최근 IT가 기존 전통 산업에 접목되는 'IT 융합'이 각광받고 있으며, 의료-IT, 자동차-IT, 항공-IT, 건설-IT와 같이 다양한 산업 분야에서 경쟁력 강화의 해결사로 IT 융합을 추진하고 있다. 일찍이 의료 분야의 IT 접목은 수술 시 의료사고를 최소화하기 위해 시작되었으며, 신속 정확한 영상 정보를 제공하고, 정밀한 수술은 로봇이 대신하는 '원격로봇 영상유도시스템' 연구가 많은 결실을 보이고 있다. 자동차 분야의 경우도 '텔레매틱스 (telematics), 내비게이션 및 위치 기반 서비스 (LBS: Location Based Service), 차량용 인터페이스 (HMI: Human Machine Interface)'를 중심으로 지능형 자동차 개발을 위해 IT 융합을 시도하고 있다.Recently, 'IT convergence', in which IT is applied to existing traditional industries, has been in the spotlight, and IT convergence is being promoted as a solution for strengthening competitiveness in various industries such as medical-IT, automotive-IT, aviation-IT, and construction-IT. In the early days, the medical field's IT grafting began to minimize medical accidents during surgery, and it provides rapid and accurate image information, and precise surgery has shown much fruit in research of 'remote robot image guidance system' replaced by robots. The automotive sector is also attempting to converge IT for the development of intelligent automobiles, focusing on telematics, navigation and location based services (LBS), and human machine interfaces (HMI).
IT 융합 산업에서의 소프트웨어는, 소프트웨어가 독립적으로 동작하는 것보다 융합되는 시스템의 운영환경에서 상호작용(interaction)하는 상황의 동작이 무엇보다 중요해진다. 또한, 소프트웨어 자체만으로 동작을 확인할 수 있는 부분이 상대적으로 제한되기 때문에 테스트를 위한 가상 데이터가 아닌, 시스템이 실제 운영되면서 얻게 되는 실제 데이터(live environment with real data)를 입력으로 한 동작이 매우 중요하며, 온라인 운영 타임(online operation time)에서의 시스템 테스트가 매우 중요한 이슈이다. 특히 온라인 운영 타임에선 오랜 기간 동안 시스템을 운영(런)하는 과정에서 발생하는 잠재 결함이나 시스템 다운을 야기시키는 결함을 발견할 수 있는 테스트가 요구된다. In the IT convergence industry, it is more important than the operation of the software in the operating environment of the fused system rather than the software running independently. In addition, since the part that can confirm the operation by the software itself is relatively limited, the operation by inputting the live environment with real data, which is obtained as the system is actually operated, is not the virtual data for the test. In addition, system testing at online operation time is a very important issue. In particular, online operation time requires testing to find potential defects that occur during the long run of the system or defects that cause the system to crash.
종래 기술에 따른 시스템 테스트 방법의 하나로 블랙박스 테스트가 있다. 블랙박스 테스트는 시스템의 사용 시나리오를 테스트케이스로 시스템이 요구사항에 맞춰 올바르게 동작하는 지를 확인하는 방식으로 이루어진다. One of the prior art system test methods is a black box test. Black box testing is done by using the system's usage scenario as a test case to verify that the system is operating correctly according to requirements.
하지만 블랙박스 테스트는 발견된 결함의 발생 위치와 원인 식별이 어렵다는 문제점이 있다. However, the black box test has a problem that it is difficult to identify the location and cause of the found defect.
대부분의 산업 현장에선 짧은 제품 주기와 시장 선점을 위한 짧은 개발 일정으로 인해 단계적으로 면밀한 테스트를 하기보다는 개발 후반에 강력한 시스템 테스트를 통해 품질을 안정시키는 경향이 있다. 이러한 테스트 경향은 시스템을 구성하는 소프트웨어 각각을 별도로 독립적으로 테스트하려면 연결되는 상대 컴포넌트를 대체하기 위한 장비를 갖추어야 하는 등 테스트 자원과 비용이 많이 필요하기 때문이다. In most industrial sites, short product cycles and short development schedules to preoccupy the market tend to stabilize quality through robust system testing later in development rather than step-by-step testing. This test trend is due to the cost of testing resources and costs, such as the need to equip each of the software constituting the system independently and independently with the replacement of the connected partner components.
이렇듯 개발 후반부에 집중된 테스트는 시스템을 구성하는 모든 계층에 걸쳐 결함이 포함되어 있을 수밖에 없으며, 블랙박스 테스트로는 결함의 원인 파악과 위치에 대한 식별이 어려워져 테스트 기간이 늘어남으로써 결국 개발 비용이 증가하는 문제점이 있다.In the late stages of development, tests focused on defects must be included in all layers of the system, and the black box test makes it difficult to identify the cause and location of the defects, which increases the test period, thereby increasing the development cost. There is a problem.
종래 기술에 따른 시스템 테스트 정보를 얻는 방법으로 디버거를 이용하는 방법이 있다.There is a method using a debugger as a method for obtaining system test information according to the prior art.
하지만 디버거를 이용하는 방법은 실제 시스템이 운용되는 환경에서 테스트를 수행해야 하는 경우, 디버거 사용이 쉽지 않고, 실시간 시스템과 같이 타이밍에 민감한(time-critical) 특성을 갖는 경우, 디버거의 오버헤드 때문에 시스템이 제대로 동작하지 않을 수 있다는 문제점이 있다.However, the debugger is not easy to use when you need to perform tests in an actual system environment, and when the time-critical characteristics of a real-time system are used, the debugger overhead causes the system to fail. The problem is that it may not work properly.
종래 기술에 따른 시스템 테스트 정보를 얻는 다른 방법으로 대상물에 테스트 코드를 삽입(instrument)하는 방법이 있다.Another method of obtaining system test information according to the related art is to insert test code into an object.
예를 들어, 타이머 루틴에 CPU나 메모리 사용량을 측정하는 코드를 삽입하여 주기적으로 성능을 프로파일링하거나, API 테스트를 위하여 함수 호출 시 파라메터를 모니터링하는 코드를 삽입하는 것을 말한다. For example, inserting code that measures CPU or memory usage into a timer routine to profile performance periodically, or insert code that monitors parameters when calling a function for API testing.
하지만 대상물에 테스트 코드를 삽입하는 방법은 추가 코드로 인한 메모리 공간 오버헤드(space-overhead)와 해당 코드 수행으로 인한 성능 오버헤드(performance-overhead)와 같이 여전히 온라인 운영 타임을 해치는 문제점이 있다.However, the method of inserting test code into an object still has problems such as memory space overhead due to additional code and performance overhead due to the execution of the code.
상기 문제점을 해결하기 위하여, 본 발명은 운영체제의 프로세스 관리 방식에 후킹 기술을 도입하고, 시스템 상태 정보 수집에 사용되는 프로파일링 기술을 접목하여, 시스템의 실시간 동작을 최대한 보장하고, 시스템에 운영되는 모든 프로그램(프로세스)에 대한 동적 상황을 테스트하며, 결함 원인과 위치 식별을 위한 테스트 정보도 획득하는 새로운 온라인 시스템 테스트 방법을 개시한다.In order to solve the above problems, the present invention introduces a hooking technique to the process management method of the operating system, by incorporating a profiling technique used to collect system state information, to ensure the real-time operation of the system as much as possible, A new on-line system test method is disclosed that tests the dynamic situation of a program (process) and also obtains test information for identifying the cause and location of the defect.
본 발명은 결함 모델을 정의하는 단계; 테스트 에이전트를 삽입하는 단계;The present invention includes the steps of defining a defect model; Inserting a test agent;
테스트 위치를 후킹하는 단계; 테스트 정보를 수집하는 단계; 및 테스트 에이전트를 제거하는 단계를 포함하는 온라인 시스템 테스트 방법을 개시한다.Hooking a test location; Collecting test information; And removing the test agent.
추가적으로, 본 발명의 상기 결함 모델을 정의하는 단계는 결함 유형에 따라 테스트 위치를 정의하는 단계; 상기 결함 유형에 따라 테스트 정보를 정의하는 단계; 및 상기 테스트 정보를 수집하기 위한 테스트 코드를 생성하는 단계를 포함하는 온라인 시스템 테스트 방법을 개시한다.In addition, the step of defining the defect model of the present invention includes the steps of defining a test position according to a defect type; Defining test information according to the defect type; And generating a test code for collecting the test information.
추가적으로, 본 발명의 상기 테스트 에이전트를 삽입하는 단계는 운영 중인 프로세스에 대한 리스트를 구성하는 단계; 및 상기 리스트를 기초로 상기 테스트 에이전트를 삽입하는 단계를 포함하는 온라인 시스템 테스트 방법을 개시한다.Additionally, inserting the test agent of the present invention comprises: constructing a list for running processes; And inserting the test agent based on the list.
추가적으로, 본 발명의 상기 테스트 위치를 후킹하는 단계는 상기 테스트 위치에 따라 메모리 영역을 식별하는 단계; 상기 식별된 메모리 영역을 상기 테스트 코드로 후킹하는 단계를 포함하는 온라인 시스템 테스트 방법을 개시한다.Additionally, hooking the test location of the present invention may comprise identifying a memory region according to the test location; An online system test method is disclosed that includes hooking the identified memory region with the test code.
추가적으로, 본 발명의 상기 테스트 정보를 수집하는 단계는 프로그램 실행 정보, 프로세스 컨텍스트 정보 및 시스템 상태 정보를 수집하는 것을 특징으로 한다.Additionally, the collecting of the test information of the present invention may include collecting program execution information, process context information, and system state information.
추가적으로, 본 발명의 상기 테스트 에이전트를 제거하는 단계는 상기 테스트 위치를 복구하는 단계; 및 상기 테스트 에이전트를 제거하는 단계를 포함하는 온라인 시스템 테스트 방법을 개시한다.Additionally, removing the test agent of the present invention may include restoring the test location; And removing the test agent.
본 발명에 따른 온라인 시스템 테스트 방법은 시스템이 부팅되어 이미지가 모두 메모리에 올라간 상태에서 특정 메모리 공간을 후킹하기 때문에 실제 시스템이 동작하는 중에 모든 프로세스와 동적 상황에 대한 테스트가 가능하다는 장점이 있다.The online system test method according to the present invention has the advantage that all processes and dynamic situations can be tested while the actual system is operating because the system is booted and hooks a specific memory space while all the images are loaded into the memory.
추가적으로, 종래 기술에 따른 시스템 테스트 방법은 시스템 내에 운영되는 프로세스가 많더라도, 프로세스 관리를 위한 특정 메모리 공간(CPS: Current Process Space)엔 현재 실행 중인 현행 프로세스와 쓰레드에 대한 핵심 실행 정보를 저장하지만, 본 발명에 따른 온라인 시스템 테스트 방법은 운영체제를 매개로, 모든 프로그램 각각에 대한 개별적인 코드 삽입이 아닌 CPS의 프로그램 컨텍스트 정보를 활용한 후킹 기법을 사용함으로써 테스트로 인한 시스템 오버헤드를 최소화할 수 있다는 장점이 있다.In addition, the system test method according to the prior art stores the core execution information on the current process and the thread currently running in a specific memory space (CPS) for process management, even if there are many processes running in the system. The on-line system test method according to the present invention has the advantage of minimizing the system overhead due to the test by using a hooking method utilizing the program context information of the CPS rather than inserting individual code for each program through the operating system. have.
마지막으로, 본 발명에 따른 온라인 시스템 테스트 방법은 시스템의 성능 측 정에 사용되던 프로파일링 기술을 테스트에 적용함으로써 ‘런-타임, 실시간, 자원’ 제약이 심한 온라인 시스템 테스트 시에 결함 발견과 복구를 위한 테스트 정보를 취득할 우 있다는 장점이 있다.Finally, the on-line system test method according to the present invention applies the profiling technique used to measure the performance of the system to the test to detect and repair defects during on-line system testing with severe 'run-time, real-time, resource' constraints. The advantage is that you can get test information.
본 출원에서 사용되는 용어들의 의미는 다음과 같다.The meanings of the terms used in the present application are as follows.
온라인은 시스템의 기능이나 서비스가 실제 운영중인 상태 혹은 시스템에 대한 요청을 즉시 이용할 수 있는 상태를 의미한다. Online means a state in which a function or service of a system is actually operating or a state in which a request for a system is immediately available.
온라인 시스템 테스트는 시스템이 배포 설치되어 실제 운영되는 환경에서의 시스템 테스트를 의미한다. Online system testing means testing the system in an environment in which the system is deployed and installed.
런-타임은 컴파일 타임과 비교되는 '시스템이 실행하는 동안, 즉 시스템이 시작되어 종료되기까지 동작하는 동적 상황'을 의미한다. 런-타임에서의 활동은 단순히 프로그램을 실행하는 것뿐 만 아니라 이와 연관된 컴포넌트들을 로딩하고 통합하는 동적 연동 상황, 멀티쓰레드 오퍼레이션, 프로세스들 혹은 쓰레드들 사이의 공유 자원 관리와 같은 다양한 동적 행위를 포함한다.Run-time refers to a "dynamic situation in which the system runs while it is running, that is, from system startup to shutdown, compared to compile time." Activities at run time include various dynamic behaviors, such as not only running a program, but also dynamic interworking situations that load and integrate related components, multithreaded operations, and managing shared resources between processes or threads. .
실시간은 시스템 혹은 어떤 동작 모드가 외부 프로세스의 요청을 즉시 처리하여 약속된 시간 내에 그 결과를 되돌려 주는 상황을 의미한다. Real-time refers to a situation in which a system or mode of operation immediately processes a request from an external process and returns its results within the promised time.
후킹은 특정 목적을 위해 실행 타임에 시스템의 운영과 제어 방식을 가로채어 원하는 방향으로 변경하는 프로그래밍 기법을 의미한다.Hooking is a programming technique that intercepts the system's operation and control at runtime and changes it in the desired direction for a specific purpose.
후킹 기술은 패치(patch)와 같이 이미 배포된 소프트웨어 제품의 기능 개선이나 사소한 버그를 수정하기 위한 업데이트 프로그램을 만드는데 활용되기도 하 고, 스파이웨어와 같이 사용자 동의없이 다른 사람의 데이터 정보에 접근하여 수집하거나 수정하는 기술로 악용되기도 한다. 후킹 기술을 활용하면 '운영체제 엿보기'가 가능하기 때문에 종종 운영체제와 연관된 디버깅 목적으로 활용되기도 한다Hooking technology can be used to improve the functionality of already deployed software products, such as patches, or to create update programs to fix minor bugs, and to access and collect information from other people without your consent, such as spyware. It can also be abused as a modification technique. It is often used for debugging purposes related to the operating system because it can be used to 'peek operating system' using hooking technology.
후킹은 코드 삽입 기술(code instrumentation)의 일종으로, 코드가 삽입되는 시점에 따라 정적 방식과 동적 방식으로 분류한다. Hooking is a type of code instrumentation, classified into static and dynamic methods depending on when the code is inserted.
정적 방식은 프로그램이 런하기 전, 즉 컴파일 타임에 소스 코드 혹은 바이너리 코드에 정해진 테스트 코드를 추가하는 방식으로 원본 코드를 변형하는 방안이다. 그렇기 때문에, 정적으로 테스트 코드가 삽입된 프로그램은 런-타임에 항상 고정된 방식으로 테스트가 수행되고, 메모리, CPU의 자원 오버헤드가 시스템 라이프 사이클 동안 고정적으로 소비된다. 또한, DLL 연동과 같은 동적 상황을 고려하기 쉽지 않기 때문에 온라인 테스트에 적용하기엔 부족한 방안이다. The static approach is to modify the original code before the program is run, by adding a set of test code to the source or binary code at compile time. As a result, a program with static test code inserted is always tested at run-time in a fixed manner, and the resource overhead of memory and CPU is fixed during the system life cycle. In addition, it is not easy to apply to online test because it is not easy to consider dynamic situation such as DLL linkage.
동적 방식은 테스트 코드를 런-타임에 삽입하는 방식이다. 정적 방안과 비교하여, 런-타임에 파악되는 동적 상황도 테스트할 수 있다는 점에서 온라인 테스트에 더 적합한 방안이라 할 수 있다. The dynamic approach is to insert test code at run time. Compared to the static approach, it is more suitable for online testing in that it can also test dynamic situations that are identified at run-time.
본 발명에 따른 온라인 시스템 테스트 방법은 동적 방식의 후킹을 의미하며, 최종 배포 코드를 대상으로 하기 위해 소스코드가 아닌 시스템에 탑재되어 실제 운영되는 바이너리 코드를 후킹 대상으로 한다. The on-line system test method according to the present invention refers to a dynamic hooking, and targets the binary code that is actually mounted and operated in the system rather than the source code to target the final distribution code.
또한, 온라인 시스템 테스트는 시스템 내에서 운영되는 특정 하나의 프로그램에 대한 테스트가 아닌 시스템에서 동작하는 모든 프로그램에 대한 테스트를 의미하기 때문에, 특정 프로그램에 대한 후킹이 아닌, 시스템에 동작하는 모든 프로 그램들을 관리하고 운영하는 운영체제를 매개로 한 OS-후킹 개념을 적용한다.Also, since online system test means testing all programs that run on the system, not just one program running on the system, all programs running on the system are not hooked. The concept of OS-hooking is applied through the operating and operating system.
프로파일링은 런-타임에 프로그램 행위나 시스템 상태를 측정하는 성능 분석 기법을 의미한다.Profiling is a performance analysis technique that measures program behavior or system state at run time.
프로파일링은 시스템을 최적화시키기 위한 것이므로, 시스템의 성능을 측정하여 성능 병목 구간을 찾는 것이 중요하다. 본 발명은 테스트를 통해 발견된 결함에 대해서 문제가 시스템의 어느 프로그램에서 야기된 것인지, 프로그램 내의 어떤 부분과 연관이 되는지, 결함의 원인이 무엇인지를 밝히기 위한 테스트 정보 수집에 프로파일링을 활용한다.Profiling is to optimize the system, so it is important to measure the system's performance to find performance bottlenecks. The present invention utilizes profiling to collect test information to identify which program in the system the problem is caused by a test, what part of the program is associated with the defect found in the test.
이하에서는 첨부한 도면을 참고하여 본 발명의 실시예를 상세하게 설명한다.Hereinafter, with reference to the accompanying drawings will be described an embodiment of the present invention;
도 1은 본 발명에 따른 온라인 시스템 테스트 방법의 순서도이다.1 is a flowchart of an online system test method according to the present invention.
도 1을 참고하면, 본 발명에 따른 온라인 시스템 테스트 방법을 시작한다.Referring to Fig. 1, an on-line system test method according to the present invention is started.
본 발명에 따른 온라인 시스템 테스트 방법은 먼저 결함 모델을 정의한다(S101). The online system test method according to the present invention first defines a defect model (S101).
결함 모델을 정의한다는 것은 결함에 따라 테스트되어야 할 위치와 결함 발견과 복구를 위한 테스트 정보를 정의한다는 의미이다.Defining a fault model means defining where to test according to the fault and test information for fault detection and repair.
도 2는 본 발명에 따른 온라인 시스템 테스트 방법에서 결함 모델을 정의하는 구체적인 과정을 나타내는 순서도이다.2 is a flowchart illustrating a specific process of defining a defect model in an online system test method according to the present invention.
도 2를 참고하면, 본 발명에 따른 온라인 시스템 테스트 방법은 결함 유형에 따라 테스트 위치를 정의한다(S1011). 2, the online system test method according to the present invention defines a test position according to the defect type (S1011).
다음으로, 본 발명에 따른 온라인 시스템 테스트 방법은 결함 유형에 따라 테스트 정보를 정의한다(S1012).Next, the online system test method according to the present invention defines the test information according to the defect type (S1012).
그리고나서, 본 발명에 따른 온라인 시스템 테스트 방법은 정의된 테스트 위치에 대한 원본 코드 실행과 테스트 정보 수집을 위한 테스트 코드를 생성한다(S1013).Then, the online system test method according to the present invention generates the test code for the execution of the original code and the collection of test information for the defined test location (S1013).
본 발명에 따른 온라인 시스템 테스트 방법의 결함 모델을 정의하는 과정을 종료한다.The process of defining a defect model of the online system test method according to the present invention is terminated.
결함 모델을 정의하고 나면, 테스트 에이전트를 삽입한다(S102).After defining the defect model, the test agent is inserted (S102).
테스트 에이전트를 삽입한다는 것은 테스트 위치 후킹과 테스트 정보 수집 역할을 수행하는 테스트 에이전트를 온라인에 동작하는 모든 프로세스에 삽입(침투)한다는 것을 의미한다.Inserting a test agent means inserting (infiltrating) a test agent that performs test location hooking and test information collection into all processes running online.
도 3은 본 발명에 따른 온라인 시스템 테스트 방법에서 테스트 에이전트를 삽입하는 구체적인 과정을 나타내는 순서도이다.3 is a flowchart illustrating a specific process of inserting a test agent in the on-line system test method according to the present invention.
도 3을 참고하면, 본 발명에 따른 온라인 시스템 테스트 방법은 시스템에 운영 중인 프로세스에 대한 리스트를 구성한다(S1021).Referring to FIG. 3, the online system test method according to the present invention constructs a list of processes operating in the system (S1021).
다음으로, 본 발명에 따른 온라인 시스템 테스트 방법은 구성된 프로세스 리스트 정보를 근거로 테스트 에이전트를 삽입한다(S1022).Next, the online system test method according to the present invention inserts a test agent based on the configured process list information (S1022).
본 발명에 따른 온라인 시스템 테스트 방법의 테스트 에이전트를 삽입하는 과정을 종료한다.The process of inserting the test agent of the online system test method according to the present invention is terminated.
테스트 에이전트를 삽입하고 나면, 본 발명에 따른 온라인 시스템 테스트 방법은 테스트 위치를 후킹한다(S103).After inserting the test agent, the online system test method according to the present invention hooks the test position (S103).
테스트 위치를 후킹한다는 것은 삽입된 테스트 에이전트가 테스트 위치로 정의된 곳을 지나갈 때, 원본 코드의 동작을 포함한 테스트 코드가 실행되도록 OS의 CPS (Current Process Space)를 후킹하는 것을 의미한다.Hooking a test location means hooking the OS's Current Process Space (CPS) so that the test code, including the behavior of the original code, is executed when the inserted test agent passes by the test location.
도 4는 본 발명에 따른 온라인 시스템 테스트 방법에서 테스트 위치를 후킹하는 구체적인 과정을 나타내는 순서도이다.4 is a flowchart illustrating a specific process of hooking a test position in an on-line system test method according to the present invention.
도 4를 참고하면, 본 발명에 따른 온라인 시스템 테스트 방법은 테스트 위치 별로 CPS에서 후킹할 메모리 영역을 식별한다(S1031).Referring to FIG. 4, the online system test method according to the present invention identifies a memory area to be hooked in the CPS for each test location (S1031).
메모리 영역을 식별한 결과, i) 테스트 위치가 SYSTEM API(Application Process Interface) 함수의 경우, CPS의 APISet 을 후킹 영역으로 식별한다.As a result of identifying the memory area, i) If the test location is a SYSTEM API (Application Process Interface) function, the APISet of the CPS is identified as the hooking area.
ii) 테스트 위치가 DLL(Dynamic Linking Library) EXPORT 함수의 경우, CPS의 IAT (Import Address Table)을 후킹 영역으로 식별한다.ii) In case the test location is DLL (Dynamic Linking Library) EXPORT function, IAT (Import Address Table) of CPS is identified as hooking area.
iii) 그 외의 경우, CPS의 코드 공간을 후킹 영역으로 식별한다.iii) Otherwise, the code space of the CPS is identified as the hooking area.
다음으로, 본 발명에 따른 온라인 시스템 테스트 방법은 식별된 후킹 영역을 테스트 코드로 후킹한다(S1032).Next, the on-line system test method according to the present invention hooks the identified hooking area with the test code (S1032).
본 발명에 따른 온라인 시스템 테스트 방법의 테스트 위치를 후킹하는 과정을 종료한다.The process of hooking the test position of the online system test method according to the present invention is terminated.
테스트 위치를 후킹하고 나면, 본 발명에 따른 온라인 시스템 테스트 방법은 테스트 정보를 수집한다(S104).After hooking the test position, the online system test method according to the present invention collects test information (S104).
테스트 정보를 수집한다는 것은 시스템이 테스트 목적으로 후킹된 위치를 실행할 때, 테스트를 위한 정보를 수집한다는 것을 의미한다.Collecting test information means that when the system executes the hooked location for testing purposes, it collects information for testing.
도 5는 본 발명에 따른 온라인 시스템 테스트 방법에서 테스트 정보를 수집하는 구체적인 과정을 나타내는 순서도이다.5 is a flowchart illustrating a specific process of collecting test information in an online system test method according to the present invention.
도 5를 참고하면, 본 발명에 따른 온라인 시스템 테스트 방법은 결함 원인 식별에 필요한 프로그램 실행 정보를 수집한다(S1041).Referring to FIG. 5, the online system test method according to the present invention collects program execution information necessary for identifying a cause of a defect (S1041).
다음으로, 본 발명에 따른 온라인 시스템 테스트 방법은 결함 위치 식별에 필요한 프로세스 컨텍스트 정보를 수집한다(S1042).Next, the on-line system test method according to the present invention collects process context information necessary for defect location identification (S1042).
그리고나서, 본 발명에 따른 온라인 시스템 테스트 방법은 성능 분석에 필요한 시스템 상태 정보를 수집한다(S1043).Then, the online system test method according to the present invention collects system state information necessary for performance analysis (S1043).
본 발명에 따른 온라인 시스템 테스트 방법의 테스트 정보를 수집하는 과정을 종료한다.The process of collecting test information of the online system test method according to the present invention is terminated.
테스트 정보를 수집하고 나면, 본 발명에 따른 온라인 시스템 테스트 방법은 테스트 에이전트를 제거한다(S105).After collecting test information, the online system test method according to the present invention removes the test agent (S105).
테스트 에어전트를 제거한다는 것은 테스트 목적으로 후킹된 위치를 원본 코드로 되돌리고, 테스트 에이전트를 제거한다는 것을 의미한다.Removing the test airagent means returning the hooked position to the original code for testing purposes and removing the test agent.
도 6은 본 발명에 따른 온라인 시스템 테스트 방법에서 테스트 에이전트를 제거하는 구체적인 과정을 나타내는 순서도이다.6 is a flowchart illustrating a specific process of removing a test agent in the online system test method according to the present invention.
도 6을 참고하면, 본 발명에 따른 온라인 시스템 테스트 방법은 테스트 코드로 후킹되었던 테스트 위치들을 원본 코드로 복구(unhook)한다(S1051).Referring to FIG. 6, the online system test method according to the present invention unhooks test positions that have been hooked with a test code to an original code (S1051).
다음으로, 본 발명에 따른 온라인 시스템 테스트 방법은 테스트 에이전트가 삽입되었던 프로세스들로부터 테스트 에이전트를 제거한다(S1052).Next, the online system test method according to the present invention removes the test agent from the processes in which the test agent has been inserted (S1052).
본 발명에 따른 온라인 시스템 테스트 방법의 테스트 에이전트를 제거하는 과정을 종료한다. The process of removing the test agent of the online system test method according to the present invention is terminated.
도 1은 본 발명에 따른 온라인 시스템 테스트 방법의 순서도이다.1 is a flowchart of an online system test method according to the present invention.
도 2는 본 발명에 따른 온라인 시스템 테스트 방법에서 결함 모델을 정의하는 구체적인 과정을 나타내는 순서도이다.2 is a flowchart illustrating a specific process of defining a defect model in an online system test method according to the present invention.
도 3은 본 발명에 따른 온라인 시스템 테스트 방법에서 테스트 에이전트를 삽입하는 구체적인 과정을 나타내는 순서도이다.3 is a flowchart illustrating a specific process of inserting a test agent in the on-line system test method according to the present invention.
도 4는 본 발명에 따른 온라인 시스템 테스트 방법에서 테스트 위치를 후킹하는 구체적인 과정을 나타내는 순서도이다.4 is a flowchart illustrating a specific process of hooking a test position in an on-line system test method according to the present invention.
도 5는 본 발명에 따른 온라인 시스템 테스트 방법에서 테스트 정보를 수집하는 구체적인 과정을 나타내는 순서도이다.5 is a flowchart illustrating a specific process of collecting test information in an online system test method according to the present invention.
도 6은 본 발명에 따른 온라인 시스템 테스트 방법에서 테스트 에이전트를 제거하는 구체적인 과정을 나타내는 순서도이다.6 is a flowchart illustrating a specific process of removing a test agent in the online system test method according to the present invention.
Claims (12)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090092272A KR101091457B1 (en) | 2009-09-29 | 2009-09-29 | Online system test method |
US12/838,874 US8607094B2 (en) | 2009-09-29 | 2010-07-19 | Operational system test method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090092272A KR101091457B1 (en) | 2009-09-29 | 2009-09-29 | Online system test method |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110034825A KR20110034825A (en) | 2011-04-06 |
KR101091457B1 true KR101091457B1 (en) | 2011-12-07 |
Family
ID=44043264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090092272A KR101091457B1 (en) | 2009-09-29 | 2009-09-29 | Online system test method |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101091457B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101438979B1 (en) * | 2012-12-31 | 2014-09-11 | 현대자동차주식회사 | Method and system for checking software |
-
2009
- 2009-09-29 KR KR1020090092272A patent/KR101091457B1/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR20110034825A (en) | 2011-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8607094B2 (en) | Operational system test method | |
WO2016177124A1 (en) | Method and device for implementing continuous integration test | |
KR101019210B1 (en) | Test Device of Embedded Software using the emulator and Method thereof | |
US7673180B1 (en) | Method and apparatus for dispatching a remote debugging agent in a distributed computing environment | |
US20100005341A1 (en) | Automatic detection and notification of test regression with automatic on-demand capture of profiles for regression analysis | |
US20110191752A1 (en) | Method and System for Debugging of Software on Target Devices | |
EP3660684A1 (en) | Efficient and comprehensive source code fuzzing | |
CN110580226B (en) | Object code coverage rate testing method, system and medium for operating system level program | |
KR101438990B1 (en) | System testing method | |
CN104077140A (en) | Automatic compiling method and compiling device for continuous integration | |
US10169002B2 (en) | Automated and heuristically managed solution to quantify CPU and path length cost of instructions added, changed or removed by a service team | |
US10831639B2 (en) | Method and device for non-intrusively collecting function trace data | |
CN111026601A (en) | Monitoring method and device for Java application system, electronic equipment and storage medium | |
US20180060224A1 (en) | Distinguishing Public and Private Code in Testing Environments | |
US20110126179A1 (en) | Method and System for Dynamic Patching Software Using Source Code | |
US9792402B1 (en) | Method and system for debugging a system on chip under test | |
Soetens et al. | Change-based test selection: an empirical evaluation | |
US8533683B2 (en) | Stack walking enhancements using sensorpoints | |
US20080127118A1 (en) | Method and system for dynamic patching of software | |
CN103186463B (en) | Determine the method and system of the test specification of software | |
US20080127119A1 (en) | Method and system for dynamic debugging of software | |
US20150227448A1 (en) | Methods of software performance evaluation by run-time assembly code execution and devices thereof | |
CN110419031B (en) | Code coverage tracking for microcontroller programs | |
CN114297666A (en) | Cloud deployment automation vulnerability mining system based on fuzzy test | |
US8621438B2 (en) | Generating debug information on demand |
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: 20141128 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20171129 Year of fee payment: 7 |