KR101271232B1 - Software testing device and method thereof - Google Patents
Software testing device and method thereof Download PDFInfo
- Publication number
- KR101271232B1 KR101271232B1 KR1020110120791A KR20110120791A KR101271232B1 KR 101271232 B1 KR101271232 B1 KR 101271232B1 KR 1020110120791 A KR1020110120791 A KR 1020110120791A KR 20110120791 A KR20110120791 A KR 20110120791A KR 101271232 B1 KR101271232 B1 KR 101271232B1
- Authority
- KR
- South Korea
- Prior art keywords
- test
- software
- script
- unit
- image
- 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
-
- 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/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
본 발명에 따른 소프트웨어 테스트 장치는 테스트 대상 소프트웨어에 대해 수행된 입력수단의 입력을 캡쳐(capture)하여 제 1 테스트 스크립트를 생성하고, 상기 생성된 제 1 테스트 스크립트를 재생하여 상기 소프트웨어에 대한 테스트를 수행하는 제 1 테스트부, 사용자에 의하여 작성된 복수의 이벤트 정보를 포함하는 제 2 테스트 스크립트의 이벤트 정보를 기초로 상기 소프트웨어에 대한 테스트를 수행하는 제 2 테스트부, 상기 입력 수단의 입력을 캡쳐하여 생성한 제 1 테스트 스크립트 및 이벤트 정보를 포함하는 제 2 테스트 스크립트를 혼합한 하이브리드 테스트 스크립트에 기초하여 상기 소프트웨어에 대한 테스트를 수행하는 하이브리드 테스트부 및 사용자의 선택 또는 상기 소프트웨어에 대한 테스트 설정값에 따라 상기 제 1 테스트부, 제 2 테스트부 및 하이브리드 테스트부 중 어느 하나를 실행시켜 상기 소프트웨어에 대한 테스트를 수행하는 테스트 제어부를 포함한다.The software test apparatus according to the present invention captures the input of the input means performed on the software under test to generate a first test script, and reproduces the generated first test script to perform a test on the software. A first test unit configured to perform a test on the software based on event information of a second test script including a plurality of event information written by a user, and generated by capturing and inputting the input means The hybrid test unit performing a test on the software based on a hybrid test script including a first test script and a second test script including event information, and the first test script according to a user's selection or a test setting value for the software. 1 test section, 2nd frame And a test controller configured to execute one of the test unit and the hybrid test unit to test the software.
Description
본 발명은 소프트웨어 테스트 장치 및 그 방법에 관한 것이다.The present invention relates to a software test apparatus and a method thereof.
일반적으로 소프트웨어는 요구사항, 설계, 구현 및 테스트 과정을 통해 개발된다. 여기서, 개발의 최종 단계인 테스트에서 해당 소프트웨어의 에러가 발견된 경우, 요구 사항부터 구현에 이르는 과정의 산출물을 모두 변경해야 하므로 소프트웨어 개발 비용이 증가하게 된다.Software is typically developed through requirements, design, implementation, and testing processes. Here, if an error of the corresponding software is found in the test, which is the final stage of the development, the cost of the software development is increased because all the processes of the process from the requirement to the implementation are changed.
그리고, 소프트웨어의 일부 기능에 발생한 에러를 수정한 경우 복잡하게 서로 연동되어 있는 내부 구조를 가진 소프트웨어의 특징 때문에, 해당 수정 사항으로 인하여 또 다른 기능에 에러가 발생할 수 있다. 이를 해결하기 위한 방법의 하나로 종래에는 소프트웨어의 구현 전에 테스트 시나리오를 작성하고 테스트 시나리오를 통해 소프트웨어를 테스트하는 방법이 사용되었다.If an error occurs in some functions of the software, errors may occur in another function due to the characteristics of the software having an internal structure that is complicatedly interlocked with each other. As a method for solving this, conventionally, a test scenario was created before the implementation of the software and a method of testing the software through a test scenario was used.
이러한 소프트웨어 테스트 방법은 소프트웨어를 개발하면서 테스트 시나리오에 따라 실행된 값이 미리 예측된 값과 다른 경우에 해당 소프트웨어가 정상적인 동작을 수행하고 있지 않다는 것으로 판단한다. 이 경우, 테스트 시나리오에 따라 미리 예측된 값이 나올 때까지 소프트웨어를 계속 수정하면서 테스트를 진행하게 된다.Such a software testing method determines that the software is not performing a normal operation when a value that is executed according to a test scenario differs from a predicted value, while the software is being developed. In this case, according to the test scenario, the test is continued while the software is continuously modified until a predicted value is obtained in advance.
그러나, 테스트 계획을 수립하고 테스트 시나리오와 테스트 데이터를 만드는 작업에 많은 시간이 소요되었고, 개발 도중 사용자의 요구가 변경된 경우 테스트 계획부터 테스트 데이터까지 모두 변경되는 문제점이 있었다.However, it took a lot of time to develop a test plan, create test scenarios and test data, and when the user's needs changed during development, there was a problem that all of the test plan and the test data were changed.
따라서, 보다 효과적으로 소프트웨어에 대한 테스트를 수행할 필요성이 제기된다.Thus, there is a need to test the software more effectively.
이와 관련하여, 한국공개특허 제2005-0109305호(발명의 명칭: 공정장비의 상태를 모니터링하기 위한 시스템 및 방법)는 공정장비의 상태를 모니터링하기 위한 시스템 및 방법에 관한 것으로, 공정장비의 오류를 정확하게 감지할 수 있는 공정장비의 상태를 모니터링하기 위한 시스템 및 방법을 제공한다.In this regard, Korean Patent Laid-Open Publication No. 2005-0109305 (name of the invention: a system and method for monitoring the status of a process equipment) relates to a system and a method for monitoring the status of a process equipment. It provides a system and method for monitoring the status of process equipment that can be accurately detected.
또한, 한국공개특허 제 2002-0063270호(발명의 명칭: FDC 반도체 제조 프로세스로부터 트레이스 데이터리포트들을 요구하는 방법)는 오류 검출 제어를 채용하여 반도체 제조 프로세스에서 트레이스 데이터 리포트들을 동적으로 생성하는 방법을 개시한다.In addition, Korean Patent Laid-Open Publication No. 2002-0063270 (name of the invention: a method for requesting trace data reports from an FDC semiconductor manufacturing process) discloses a method of dynamically generating trace data reports in a semiconductor manufacturing process by employing error detection control. do.
본 발명의 일 실시예는 사용자가 직접 수동으로 테스트 스크립트를 작성하기 어렵거나 GUI(Graphic User Interface)를 기초로 동작하는 소프트웨어를 테스트하거나, 소프트웨어의 특정 모듈, 복수의 모듈들이 통합되어 동작하도록 하는 인터페이스, 각 프로그램 코드의 변수 및 함수 정의 등에 대한 효과적인 테스트를 수행하는 소프트웨어 테스트 장치 및 그 방법을 제공한다.An embodiment of the present invention is an interface that makes it difficult for a user to manually write a test script or tests software operating based on a graphical user interface (GUI), or allows a specific module of the software and a plurality of modules to be integrated and operated. The present invention provides a software test apparatus and method for performing an effective test on a variable and a function definition of each program code.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 소프트웨어 테스트 장치는, 테스트 대상 소프트웨어에 대해 수행된 입력수단의 입력을 캡쳐(capture)하여 제 1 테스트 스크립트를 생성하고, 상기 생성된 제 1 테스트 스크립트를 재생하여 상기 소프트웨어에 대한 테스트를 수행하는 제 1 테스트부, 사용자에 의하여 작성된 복수의 이벤트 정보를 포함하는 제 2 테스트 스크립트의 이벤트 정보를 기초로 상기 소프트웨어에 대한 테스트를 수행하는 제 2 테스트부, 상기 입력 수단의 입력을 캡쳐하여 생성한 제 1 테스트 스크립트 및 이벤트 정보를 포함하는 제 2 테스트 스크립트를 혼합한 하이브리드 테스트 스크립트에 기초하여 상기 소프트웨어에 대한 테스트를 수행하는 하이브리드 테스트부 및 사용자의 선택 또는 상기 소프트웨어에 대한 테스트 설정값에 따라 상기 제 1 테스트부, 제 2 테스트부 및 하이브리드 테스트부 중 어느 하나를 실행시켜 상기 소프트웨어에 대한 테스트를 수행하는 테스트 제어부를 포함한다.As a technical means for achieving the above-described technical problem, the software test apparatus of the present invention, by capturing the input of the input means performed for the software to be tested to generate a first test script, the generated first A first test unit for reproducing a test script to test the software, and a second test for testing the software based on event information of a second test script including a plurality of event information written by a user A hybrid test unit and a user for performing a test on the software based on a hybrid test script including a first test script generated by capturing input of the input means and a second test script including event information; Or in the software According to the test set value by executing one of the first testing unit, a second test section and a hybrid test unit comprises a test control unit for performing a test on the software.
전술한 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 사용자가 직접 수동으로 테스트 스크립트를 작성하기 어렵거나 GUI(Graphic User Interface)를 기초로 동작하는 소프트웨어를 테스트하거나, 소프트웨어의 특정 모듈, 복수의 모듈들이 통합되어 동작하도록 하는 인터페이스, 각 프로그램 코드의 변수 및 함수 정의 등에 대한 빠르고 정밀한 테스트를 수행할 수 있다.According to any one of the problem solving means of the present invention described above, it is difficult for a user to manually write a test script or test software operating based on a GUI (Graphic User Interface), or a specific module of the software, a plurality of modules You can quickly and precisely test the interface that allows them to work together, define variables and functions in each program code, and so on.
또한, 전술한 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 커스터마이징이 필요한 FDC(Fault Detection and Classification) 및 R2R(Run to Run)와 같은 반도체 공정제어 소프트웨어에 대한 테스트 효율성을 높일 수 있다.In addition, according to any one of the above-described problem solving means of the present invention, it is possible to improve the test efficiency for semiconductor process control software such as Fault Detection and Classification (FDC) and R2R (Run to Run) that requires customization.
도 1은 본 발명의 일 실시예에 따른 소프트웨어 테스트 장치의 블록도이다.
도 2는 본 발명의 일 실시예에 따른 제 1 테스트부의 블록도이다.
도 3은 본 발명의 일 실시예에 따른 제 2 테스트부의 블록도이다.
도 4는 본 발명의 일 실시예에 따른 제 1 테스트부를 통한 소프트웨어 테스트 방법을 예시한 도면이다.
도 5는 본 발명의 일 실시예에 따른 소프트웨어 테스트 전 및 테스트 후의 테스트 결과 이미지를 예시한 도면이다.
도 6은 본 발명의 일 실시예에 따른 제 2 테스트부를 통한 소프트웨어 테스트 방법을 예시한 도면이다.
도 7은 본 발명의 일 실시예에 따른 소프트웨어 테스트 방법의 순서도이다.
도 8은 본 발명의 일 실시예에 따른 제 1 테스트부를 통한 소프트웨어 테스트 방법의 순서도이다.
도 9는 본 발명의 일 실시예에 따른 제 2 테스트부를 통한 소프트웨어 테스트 방법의 순서도이다.
도 10은 본 발명의 다른 실시예에 따른 소프트웨어 테스트 장치의 블록도이다.
도 11은 본 발명의 일 실시예에 따른 하이브리드 테스트부의 블록도이다.
도 12는 본원 발명의 다른 실시예에 따른 하이브리트 테스트부를 통한 소프트웨어 테스트 방법의 순서도이다.1 is a block diagram of a software test apparatus according to an embodiment of the present invention.
2 is a block diagram of a first test unit according to an exemplary embodiment of the present invention.
3 is a block diagram of a second test unit according to an exemplary embodiment of the present invention.
4 is a diagram illustrating a software test method through a first test unit according to an embodiment of the present invention.
5 is a diagram illustrating a test result image before and after a software test according to an embodiment of the present invention.
6 is a diagram illustrating a software test method through a second test unit according to an embodiment of the present invention.
7 is a flowchart of a software test method according to an embodiment of the present invention.
8 is a flowchart illustrating a software test method through a first test unit according to an embodiment of the present invention.
9 is a flowchart illustrating a software test method through a second test unit according to an embodiment of the present invention.
10 is a block diagram of a software test apparatus according to another embodiment of the present invention.
11 is a block diagram of a hybrid test unit according to an embodiment of the present invention.
12 is a flowchart of a software test method through a hybrid test unit according to another exemplary embodiment of the present invention.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings, which will be readily apparent to those skilled in the art. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In the drawings, parts irrelevant to the description are omitted in order to clearly describe the present invention, and like reference numerals designate like parts throughout the specification.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification, when a part is referred to as being "connected" to another part, it includes not only "directly connected" but also "electrically connected" with another part in between . Also, when an element is referred to as "comprising ", it means that it can include other elements as well, without departing from the other elements unless specifically stated otherwise.
도 1은 본 발명의 일 실시예에 따른 소프트웨어 테스트 장치의 블록도이다.1 is a block diagram of a software test apparatus according to an embodiment of the present invention.
도 1에 도시된 바와 같이, 본 발명의 소프트웨어 테스트 장치(100)는 제 1 테스트부(110), 제 2 테스트부(120), 테스트 제어부(130), 테스트 검증부(140), 테스트 결과 생성부(150), 스크립트 저장부(160), 로드부(170) 및 데이터 저장부(180)를 포함한다. As shown in FIG. 1, the
본 발명의 실시예에 따른 소프트웨어는 반도체 공정제어 소프트웨어로서 FDC(Fault Detection and Classification) 및 R2R(Run to Run) 중 하나 이상을 포함할 수 있다. FDC 공정제어 소프트웨어는 반도체 공정에서 반도체 장비와 각각의 공정을 제어하기 위한 것으로, 웨이브릿(wavelet)을 분석하고 결함여부를 검사하여 반도체 생성 수율 및 생산성을 향상시키고 불량률을 감소시킨다. The software according to an embodiment of the present invention may include one or more of fault detection and classification (FDC) and run to run (R2R) as semiconductor process control software. FDC process control software is used to control semiconductor equipment and individual processes in semiconductor processes. It analyzes wavelets and checks for defects to improve semiconductor production yield and productivity and reduce defect rates.
그리고, R2R 공정제어 소프트웨어는 반도체 공정제어 프로세스를 안정화시키고 방해 요소들의 영향을 최소화하기 위한 것으로, 유동적으로 엔지니어의 요구사항에 따라 커스터마이징(customizing)될 수 있다. 이때, 본 발명의 소프트웨어 테스트 장치(100)를 통해 커스터마이징이 필요한 반도체 공정제어 소프트웨어에 대한 테스트 효율성을 높일 수 있다.The R2R process control software is designed to stabilize the semiconductor process control process and minimize the impact of disturbances, and can be flexibly customized according to the engineer's requirements. In this case, the test efficiency of the semiconductor process control software requiring customization can be improved through the
본 발명의 소프트웨어 테스트 장치(100)는 상술한 반도체 공정제어 소프트웨어에 한정되지 않고, 휴대폰, 컴퓨터, 영상 기기, 가전 기기 등 각종 산업 분야 및 개인 휴대용 기기 등에서 동작하는 소프트웨어를 테스트하거나 구현 과정에 있는 소프트웨어를 테스트하는 데에 이용될 수 있다. 이하, 소프트웨어 테스트 장치(100)의 각 구성요소에 대해서 구체적으로 설명하기로 한다.The
제 1 테스트부(110)는 테스트 대상 소프트웨어에 대해 수행된 입력수단의 입력을 캡쳐(capture)(또는 기록)하여 제 1 테스트 스크립트를 생성하고, 생성된 제 1 테스트 스크립트를 재생(playback or replay)하여 소프트웨어에 대한 테스트를 수행한다. 예컨대 제 1 테스트부(110)는 사용자가 직접 수동으로 테스트 스크립트를 작성하기 어렵거나 GUI(Graphic User Interface)를 기초로 동작하는 소프트웨어를 테스트하는 데에 사용될 수 있다. The
상술한 입력수단은 마우스, 터치패드 및 키보드 중 하나 이상을 포함할 수 있다. 그리고, 사용자가 소프트웨어에 대해 입력수단을 통한 입력을 수행하도록 인터페이스가 제공될 수 있다. 제 1 테스트부(110)의 자세한 구성에 대해서는 도 2에서 설명하기로 한다.The input means described above may include one or more of a mouse, a touch pad, and a keyboard. In addition, an interface may be provided for the user to perform input through the input means to the software. A detailed configuration of the
제 2 테스트부(120)는 복수의 이벤트 정보를 포함하는 제 2 테스트 스크립트를 생성하고, 생성된 제 2 테스트 스크립트의 이벤트 정보를 기초로 소프트웨어에 대한 테스트를 수행한다. 여기서, 사용자가 이벤트 정보를 입력하거나 수정할 수 있도록 인터페이스가 제공될 수 있다.The
이와 같은 제 2 테스트부(120)는 소프트웨어의 특정 모듈, 복수의 모듈들이 통합되어 동작하도록 하는 인터페이스, 각 프로그램 코드의 변수 및 함수 정의 등에 대한 빠르고 정밀한 테스트를 요구할 경우 사용될 수 있다. 제 2 테스트부(120)의 구성에 대한 보다 구체적인 설명은 도 3에서 설명하기로 한다.The
테스트 제어부(130)는 사용자의 선택 또는 소프트웨어에 대한 테스트 설정값에 따라 제 1 테스트부(110) 및 제 2 테스트부(120) 중 어느 하나를 실행시키고 소프트웨어에 대한 테스트를 제어한다. 여기서, 테스트 제어부(130)는 사용자가 선택한 사항에 따라 제 1 테스트부(110) 및 제 2 테스트부(120) 중 어느 하나를 실행시킬 수 있다. 또한, 테스트 제어부(130)는 테스트 설정값에 따라 제 1 테스트부(110) 및 제 2 테스트부(120) 중 어느 하나를 실행시킬 수도 있다.The
이때, 테스트 제어부(130)는 테스트 설정값에 따라 제 1 테스트부(110) 및 제 2 테스트부(120)를 하나씩 순차적으로 실행시킬 수 있다. 예컨대, 테스트 제어부(130)는 제 1 테스트부(110)에 대한 테스트가 완료된 이후 검증 결과에 따라 이어서 제 2 테스트부(120)를 실행시킬 수 있다. In this case, the
보다 구체적으로, 테스트 제어부(130)는 테스트 설정값에 따라 제 1 테스트부(110)를 통해 소프트웨어에 대한 테스트를 수행한 결과, 하기 테스트 검증부(140)를 통해 해당 소프트웨어의 특정 모듈이 비정상으로 판단된 경우, 제 2 테스트부(120)를 실행시켜 해당 모듈에 대한 보다 정밀한 테스트가 수행되도록 할 수 있다. More specifically, the
이때, 테스트 제어부(130)는 에러가 발생한 소프트웨어의 특정 모듈에 대한 테스트를 수행하기 위해 필요한 이벤트 정보를 체크 리스트 형태로 사용자에게 제공하거나, 자동으로 제 2 테스트부(120)로 전달하여 제 2 테스트 스크립트가 생성되도록 할 수 있다.In this case, the
또한, 테스트 제어부(130)는 테스트 설정값에 따라 제 1 테스트부(110) 및 제 2 테스트부(120) 중 어느 하나를 정해진 테스트 속도에 따라 일정 횟수 반복 실행시켜 소프트웨어에 대한 테스트를 수행하도록 하여, 소프트웨어 테스트의 신뢰성을 높일 수 있다. 이와 같이, 각각 특성을 가지는 제 1 테스트부(110) 및 제 2 테스트부(120)를 사용자의 선택 또는 테스트 설정값에 따라 실행시킴으로써, 보다 정밀하고 신뢰성 있는 소프트웨어에 대한 자동화된 테스트를 수행할 수 있다.In addition, the
테스트 검증부(140)는 제 1 테스트부(110) 및 제 2 테스트부(120) 중 어느 하나의 실행에 따라 테스트가 수행된 소프트웨어의 테스트 결과 데이터를 기초로, 소프트웨어의 정상 여부를 판단하기 위한 검증을 수행한다. 여기서, 테스트 검증부(140)는 하기 도 2의 이미지 검증부(118) 및 도 3의 이벤트 검증부(126)를 포함할 수 있다. 또한, 테스트 검증부(140)는 이미지 검증부(118) 및 이벤트 검증부(126)로 각각 구현되어 제 1 테스트부(110) 및 제 2 테스트부(120)에 포함될 수 있다.The
테스트 결과 생성부(150)는 제 1 테스트부(110) 및 제 2 테스트부(120) 중 어느 하나의 실행에 따라 테스트가 수행된 소프트웨어의 테스트 결과 데이터 및 이를 기초로 한 소프트웨어의 검증 결과를 평가 보고서로 생성한다. 예컨대 테스트 결과 생성부(150)는 XML(extensible markup language), HTML(HyperText Markup Language) 등의 형태로 평가 보고서를 작성할 수 있다. 여기서, 테스트 일시, 테스트 소요 시간, 테스트를 패스한 객체, 응답시간, 처리량, 처리속도, 활용도 등에 대한 정보가 평가 보고서에 포함될 수 있다.The
스크립트 저장부(160)는 제 1 테스트 스크립트 및 제 2 테스트 스크립트 중 하나 이상을 파일로 저장한다. 여기서, 제 1 테스트 스크립트 및 제 2 테스트 스크립트는 마크업 언어(markup language)로 작성될 수 있다. 예컨대, 제 1 테스트 스크립트 및 제 2 테스트 스크립트 중 하나 이상은 마크업 언어 중 XML(extensible markup language) 언어로 작성될 수 있다.The
로드부(170)는 테스트 제어부(130)의 제어에 따라 제 1 테스트 스크립트 및 제 2 테스트 스크립트의 저장 파일을 로드(load)하여, 소프트웨어에 대한 테스트가 수행되도록 한다. 예컨대, 제 1 테스트부(110)가 실행될 경우 기 작성된 제 1 테스트 스크립트가 로드될 수 있다. 이때, 기 작성된 테스트 스크립트를 재 사용하여 소프트웨어를 테스트할 수 있어, 테스트 스크립트 작성으로 인한 시간 비용을 줄일 수 있다.The
데이터 저장부(180)는 소프트웨어 테스트 수행 및 검증을 위한 알고리즘, 설정값 및 기타 각종 정보를 저장한다. 예컨대 테스트 설정값, 이벤트 정보, 테스트 데이터, 테스트 속도, 테스트 반복 횟수, 테스트 결과 데이터, 검증 결과 데이터 등에 대한 정보가 저장될 수 있다.The
도 2는 본 발명의 일 실시예에 따른 제 1 테스트부의 블록도이다.2 is a block diagram of a first test unit according to an exemplary embodiment of the present invention.
도 2에 도시된 바와 같이, 제 1 테스트부(110)는 제 1 테스트 스크립트 생성부(112), 제 1 테스트 스크립트 실행부(114), 이미지 생성부(116) 및 이미지 검증부(118)를 포함한다.As illustrated in FIG. 2, the
제 1 테스트 스크립트 생성부(112)는 소프트웨어에 대해 수행된 입력수단의 입력을 캡쳐하여 제 1 테스트 스크립트로 생성한다. 여기서, 마우스, 키보드 및 터치 패드 등을 통한 입력이 캡쳐되어 제 1 테스트 스크립트로 생성될 수 있다. 예컨대 사용자가 소프트웨어의 GUI 콤포넌트(component)(또는 컨트롤)에 대해 마우스 또는 키보드를 통한 입력(클릭, 드래그, 등)을 수행하였을 경우, 이에 대한 캡쳐가 수행되어 해당 캡쳐된 값을 기초로 한 제 1 테스트 스크립트가 생성될 수 있다. The first test
이때, 사용자가 선택한 GUI 콤포넌트의 속성값에 따라 테스트 데이터가 함께 생성될 수 있다. 예컨대, GUI 콤포넌트가 반도체 공정제어 과정에서 기기의 회전속도 및 각도를 조절하는 모듈인 경우, 회전속도 및 각도 제어와 관련된 테스트 데이터가 해당 모듈에 대응되도록 자동 생성될 수 있다.At this time, the test data may be generated together according to the attribute value of the GUI component selected by the user. For example, when the GUI component is a module that adjusts the rotational speed and angle of the device in a semiconductor process control process, test data related to the rotational speed and angle control may be automatically generated to correspond to the module.
제 1 테스트 스크립트 실행부(114)는 제 1 테스트 스크립트를 재생(playback or replay)시켜 소프트웨어에 대한 테스트를 수행한다. 이때, 설정값에 따라 반복해서 테스트를 수행할 수 있다.The first test
이미지 생성부(116)는 입력수단의 입력을 캡쳐하기 전의 소프트웨어에 대한 테스트 결과 이미지와 입력수단의 입력을 캡쳐할 때의 소프트웨어에 대한 테스트 결과 이미지를 비교한 차이점을 기초로 제 1 이미지를 생성한다. 또한, 이미지 생성부(116)는 제 1 테스트 스크립트를 재생하기 전의 소프트웨어에 대한 테스트 결과 이미지와 제 1 테스트 스크립트를 재생한 후의 소프트웨어에 대한 테스트 결과 이미지를 비교한 차이점을 기초로 제 2 이미지를 생성한다. The
여기서, 이미지 생성부(116)는 사용자가 캡쳐한 화면을 통해 제 1 이미지 및 제 2 이미지를 생성하거나, 자동으로 해당 소프트웨어에 대한 테스트 결과 데이터를 이미지 처리하여 이미지 파일로 생성할 수 있다. 예컨대, 그래프 형태로 테스트 결과 데이터를 출력하는 반도체 공정제어를 수행하는 소프트웨어의 경우에는 테스트 결과 데이터로서 그래프 이미지가 생성될 수 있다.Here, the
이미지 검증부(118)는 제 1 이미지와 제 2 이미지의 차이점을 비교하여 소프트웨어의 정상 여부를 판단하기 위한 검증을 수행한다. 예컨대, 상술한 반도체 공정제어를 수행하는 소프트웨어의 경우, 테스트 결과 데이터로서 그래프 이미지가 생성되므로, 이미지 검증부(118)는 입력수단의 입력을 캡쳐할 때의 제 1 이미지와 제 1 테스트 스크립트의 재생에 따라 생성된 제 2 이미지의 차이점을 비교하여 소프트웨어의 정상 여부를 판단하기 위한 검증을 수행한다.The
만약, 제 1 이미지와 제 2 이미지의 차이점이 설정된 기준치를 초과하지 않을 경우, 이미지 검증부(118)는 해당 소프트웨어를 정상으로 판단하고, 그렇지 않을 경우에는 비정상으로 판단할 수 있다. 판단한 결과 데이터는 테스트 결과 생성부(150)로 전달되어 평가 보고서 작성에 이용될 수 있다.If the difference between the first image and the second image does not exceed the set reference value, the
도 3은 본 발명의 일 실시예에 따른 제 2 테스트부의 블록도이다.3 is a block diagram of a second test unit according to an exemplary embodiment of the present invention.
도 3에 도시된 바와 같이, 제 2 테스트부(120)는 제 2 테스트 스크립트 생성부(122), 제 2 테스트 스크립트 실행부(124) 및 이벤트 검증부(126)를 포함한다.As shown in FIG. 3, the
제 2 테스트 스크립트 생성부(122)는 사용자에 의하여 작성된 복수의 이벤트 정보를 포함하는 제 2 테스트 스크립트를 생성한다. 예컨대, 이벤트 정보는 소프트웨어의 특정 모듈을 테스트하기 위한 정보를 포함할 수 있다. 여기서, 사용자는 인터페이스를 통해 이벤트 정보를 직접 입력하거나, 테스트하고자 하는 이벤트 정보를 선택하여 복수의 이벤트 정보를 작성할 수 있다.The second test
또한, 기본적인 이벤트 정보가 미리 설정되어 있는 경우, 사용자는 해당 인터페이스를 통해 이벤트 정보를 추가하거나 삭제할 수 있다. 이후, 제 2 테스트 스크립트 생성부(122)는 사용자에 의해 입력 또는 선택된 이벤트 정보를 파싱(parsing)하여 제 2 테스트 스크립트로 생성할 수 있다.In addition, when basic event information is set in advance, a user may add or delete event information through a corresponding interface. Thereafter, the second test
제 2 테스트 스크립트 실행부(124)는 제 2 테스트 스크립트를 기초로 소프트웨어에 대한 테스트를 수행한다. 이때, 제 2 테스트 스크립트의 이벤트 정보에 따라 소프트웨어에 대한 테스트가 수행될 때, 해당 이벤트 정보에 대응되는 테스트 데이터가 함께 제공되어 특정 테스트 데이터에 대한 테스트가 이루어질 수 있다. 이러한 테스트 데이터는 사용자가 직접 입력하거나, 인터페이스를 통해 선택된 이벤트 정보에 따라 자동 생성될 수 있다.The second test
이벤트 검증부(126)는 제 2 테스트 스크립트에 포함된 이벤트 정보에 따라 테스트가 수행된 소프트웨어로부터 테스트 결과 데이터를 수신하고, 테스트 결과 데이터를 해당 이벤트 정보를 기초로 기 생성된 예상 결과 데이터와 비교하여 소프트웨어의 정상 여부를 판단하기 위한 검증을 수행한다.The
도 4는 본 발명의 일 실시예에 따른 제 1 테스트부를 통한 소프트웨어 테스트 방법을 예시한 도면이다.4 is a diagram illustrating a software test method through a first test unit according to an embodiment of the present invention.
도 4에 도시된 바와 같이, 사용자는 인터페이스(400)를 통해 제 1 테스트부(110)를 통한 소프트웨어 테스트를 수행할 수 있다. 이때, 사용자는 테스트 수행을 위한 각각의 값을 설정할 수 있으며, 기본적인 값들이 미리 설정되어 있는 경우 이를 수정하여 소프트웨어 테스트를 진행할 수 있다. 이하 보다 구체적으로 설명하기로 한다.As illustrated in FIG. 4, the user may perform a software test through the
먼저, 사용자는 캡쳐(capture) 버튼(412)을 클릭하여 테스트 대상 소프트웨어에 대해 수행된 입력수단의 입력을 캡쳐할 수 있다. 이때, 마우스를 통한 입력이 캡쳐되어 마우스 캡쳐 영역(402)에 표시되고, 키보드를 통한 입력이 캡쳐되어 키보드 캡쳐 영역(404)에 표시된다. First, the user can click the
다음으로, 사용자는 스크립트 저장 버튼(413)을 클릭하여 입력수단의 입력을 캡쳐한 값을 기초로 제 1 테스트 스크립트를 생성 및 저장한다. 이때, 스크립트 로드 버튼(414)을 클릭하여 기 저장된 제 1 테스트 스크립트를 로드할 수 있다. 여기서, 해당 소프트웨어를 빌드하고, 입력수단의 입력을 통한 캡쳐가 수행되었을 때 제 1 테스트 스크립트가 자동으로 생성될 수 있으며, 기 저장된 제 1 테스트 스크립트가 있을 경우 이를 자동으로 체크하여 해당 기 저장된 제 1 테스트 스크립트를 로드할 수도 있다. 그리고, 생성된 제 1 테스트 스크립트와 관련된 내용이 스크립트 표시 영역(426)에 표시된다.Next, the user clicks the
다음으로, 해당 소프트웨어에 대한 테스트 반복 횟수를 테스트 반복 횟수 설정 버튼(409)을 클릭하여 설정하고, 테스트 속도를 테스트 속도 설정 버튼(410)을 클릭하여 설정한다. 다음으로, 재생 버튼(416)을 클릭하면, 제 1 테스트 스크립트를 재생하여 소프트웨어에 대한 테스트를 수행한다.Next, the number of test repetitions for the corresponding software is set by clicking the test repetition number setting button 409 and the test rate is set by clicking the test rate setting button 410. Next, when
그리고, 사용자는 캡쳐 버튼(418)을 클릭하여 소프트웨어에 대한 테스트 결과 이미지를 생성한다. 여기서, 소프트웨어에 대한 테스트가 완료되면 자동으로 테스트 결과 이미지가 생성될 수 있다. The user then clicks the
도 5는 본 발명의 일 실시예에 따른 소프트웨어 테스트 전 및 테스트 후의 테스트 결과 이미지를 예시한 도면이다.5 is a diagram illustrating a test result image before and after a software test according to an embodiment of the present invention.
이어서 설명하면, 도 5의 (a)는 입력수단의 입력을 캡쳐하기 전의 해당 소프트웨어에 대한 테스트 결과 이미지를 나타낸다. 이때, 입력수단의 입력을 캡쳐하기 전이므로, 테스트 결과 이미지가 나타나지 않게 된다. 그리고, 도 5의 (b)는 입력수단의 입력을 캡쳐한 후의 소프트웨어에 대한 테스트 결과 이미지를 나타낸다. In the following description, Fig. 5A shows a test result image of the corresponding software before capturing the input of the input means. At this time, since the input of the input means is not captured, the test result image does not appear. 5B shows a test result image of the software after capturing the input of the input means.
이때, 도 5의 (a) 및 (b)의 이미지는 테스트 결과 데이터에 대해 캡쳐 버튼(418)을 클릭하였을 때에 화면 캡쳐를 통해 생성되거나, 테스트가 완료되었을 때에 자동으로 생성될 수 있다. 그리고, 도 5의 (c)는 (a)의 그래프 이미지와 (b)의 그래프 이미지를 비교한 차이점을 기초로 생성된 제 1 이미지를 나타낸다.In this case, the images of FIGS. 5A and 5B may be generated through screen capture when the
이와 같이, 입력수단의 입력을 캡쳐하기 전의 소프트웨어에 대한 테스트 결과 이미지와 입력수단의 입력을 캡쳐한 후의 소프트웨어에 대한 테스트 결과 이미지를 비교한 차이점을 기초로 제 1 이미지를 생성할 수 있다. As such, the first image may be generated based on a difference between the test result image of the software before capturing the input of the input means and the test result image of the software after the input of the input means.
또한, 동일한 방법으로 제 1 테스트 스크립트를 재생하기 전의 소프트웨어에 대한 테스트 결과 이미지와 제 1 테스트 스크립트를 재생한 후의 소프트웨어에 대한 테스트 결과 이미지를 비교한 차이점을 기초로 제 2 이미지를 생성할 수 있다. In addition, the second image may be generated based on a difference between a test result image of the software before playing the first test script and a test result image of the software after playing the first test script.
다시 도 4로 돌아가서 설명하면, 사용자는 이미지 로드 버튼(422)을 클릭하여 소프트웨어의 테스트 전/후로 생성된 테스트 결과 이미지(도 5의 (a) 및 (b)의 이미지 참조)를 각각 로드한다. 그리고, 비교 버튼(424)을 클릭하면 로드된 이미지간의 차이점 비교가 이루어지고, 이를 통해 제 1 이미지(도 5의 (c) 참조) 또는 제 2 이미지가 생성된다. 여기서, 각각의 로드된 이미지에 대한 명칭이 이미지 생성 영역(406)에 표시될 수 있다.4 again, the user clicks the
그리고, 이미지 로드 버튼(422)과 비교 버튼(424)을 통해 최종적으로 제 1 이미지와 제 2 이미지간에 비교가 이루어지면, 해당 비교 결과 값을 기초로 소프트웨어의 검증 결과가 테스트 결과 영역(408)에 표시될 수 있다. 구체적으로 테스트 결과 영역(408)에는 테스트 단계, 테스트 이미지, 테스트 결과, 에러로 예상되는 픽셀 등에 대한 정보가 포함될 수 있다.When a comparison is finally made between the first image and the second image through the
상술한 과정에서 화면을 여러 번 캡쳐하여 테스트하고자 하는 내용이 변경된 부분만을 추출함으로써, 캡쳐를 통해 미리 생성해 놓은 이미지와 테스트 스크립트를 재생하여 생성한 이미지가 특정 부분이(GUI) 변경되었기 때문에 발생하는 차이로 인해 검증 결과가 오류로 나타나는 것을 방지할 수 있다.By capturing the screen several times in the above-described process and extracting only the portion where the content to be tested is changed, the image generated by playing the test script and the image generated in advance through the capture is generated because the specific portion (GUI) is changed. The difference prevents the verification result from appearing as an error.
도 6a 및 도 6b는 본 발명의 일 실시예에 따른 제 2 테스트부를 통한 소프트웨어 테스트 방법을 예시한 도면이다.6A and 6B illustrate a software test method through a second test unit according to an exemplary embodiment of the present invention.
도 6a에 도시된 바와 같이, 사용자가 복수의 이벤트 정보를 입력하여 제 2 테스트 스크립트(502)를 생성할 수 있다. 여기서, 사용자는 인터페이스를 통해 소프트웨어를 테스트하기 위한 이벤트 정보를 입력하거나 기 입력된 이벤트 정보를 수정할 수 있다. 이때, 이벤트 정보 중 필요한 이벤트 정보를 선택하는 체크 리스트 형태로 인터페이스가 제공될 수 있다. 이후, 제 2 테스트 스크립트(502)에 포함된 테스트 시나리오의 각 단계(step)에 따라 이벤트 정보가 소프트웨어에 전달되어 테스트가 진행된다.As shown in FIG. 6A, a user may input a plurality of event information to generate a
도 6b에 도시된 바와 같이, 제 2 테스트 스크립트(502)에 포함된 이벤트 정보는 순차적으로 테스트 시나리오(504)에 따라 소프트웨어에 전달되어 해당 소프트웨어의 특정 모듈의 기능에 대한 정상 여부를 테스트할 수 있다. 그리고, 제 2 테스트 스크립트(502)의 이벤트 정보에 따라 소프트웨어에 대한 테스트가 완료되면, 상술한 테스트 결과 영역(408)에 테스트 결과 데이터가 표시된다. As illustrated in FIG. 6B, the event information included in the
도 7은 본 발명의 일 실시예에 따른 소프트웨어 테스트 방법의 순서도이다.7 is a flowchart of a software test method according to an embodiment of the present invention.
도 7에 도시된 바와 같이, 먼저 사용자의 선택 또는 테스트 대상 소프트웨어에 대한 테스트 설정값에 따라 제 1 테스트부(110) 및 제 2 테스트부(120) 중 어느 하나를 실행시킨다(S701). 예컨대, 사용자는 제 1 테스트부(110) 및 제 2 테스트부(120) 중 어느 하나를 선택할 수 있는 인터페이스를 통해 제 1 테스트부(110) 및 제 2 테스트부(120) 중 어느 하나를 선택하여 실행시킬 수 있다. 이때, 제 1 테스트부(110) 및 제 2 테스트부(120) 중 어느 하나에 대한 테스트 설정값이 설정되어 있는 경우, 그에 따라 제 1 테스트부(110) 및 제 2 테스트부(120) 중 어느 하나가 실행될 수 있다.As shown in FIG. 7, one of the
다음으로, 제 1 테스트부(110) 및 제 2 테스트부(120) 중 어느 하나의 실행에 따라 소프트웨어에 대한 테스트를 수행한다(S711). 여기서, 제 1 테스트부(110)의 실행에 따라 소프트웨어에 대한 테스트를 수행하는 과정은 도 8에서 구체적으로 설명하기로 한다. 그리고, 제 2 테스트부(120)의 실행에 따라 소프트웨어에 대한 테스트를 수행하는 과정은 도 9에서 구체적으로 설명하기로 한다.Next, the software test is performed according to the execution of any one of the
다음으로, 테스트가 수행된 소프트웨어의 테스트 결과 데이터를 기초로, 소프트웨어의 정상 여부를 판단하기 위한 검증을 수행한다(S721). 이때, 평가 보고서가 작성되어 검증 결과를 사용자에게 알릴 수 있다.Next, based on the test result data of the software on which the test is performed, verification is performed to determine whether the software is normal (S721). At this time, an evaluation report may be created to inform the user of the verification result.
도 8은 본 발명의 일 실시예에 따른 제 1 테스트부를 통한 소프트웨어 테스트 방법의 순서도이다.8 is a flowchart illustrating a software test method through a first test unit according to an embodiment of the present invention.
도 8에 도시된 바와 같이, 먼저 테스트 대상 소프트웨어에 대해 수행된 입력수단의 입력을 캡쳐한다(S801). As shown in FIG. 8, first, an input of an input means performed on the software under test is captured (S801).
다음으로, 입력수단의 입력을 캡쳐하기 전의 소프트웨어에 대한 테스트 결과 이미지와 입력수단의 입력을 캡쳐한 후의 소프트웨어에 대한 테스트 결과 이미지를 비교한 차이점을 기초로 제 1 이미지를 생성한다(S811). 본 단계(S811)는 소프트웨어의 정상 여부를 판단하기 위한 것으로, 단순히 소프트웨어에 대한 테스트를 수행할 경우에는 생략될 수 있다. 그리고 제 1 이미지는 사용자가 화면 캡쳐 버튼을 클릭하는 과정을 통해 생성되거나, 사용자에 의한 입력수단의 입력을 캡쳐한 후에 완료 버튼 동작과 함께 생성될 수 있다.Next, a first image is generated based on a difference between a test result image of software before capturing the input of the input means and a test result image of software after capturing the input of the input means (S811). This step (S811) is for determining whether the software is normal, and may be omitted when simply testing the software. The first image may be generated by the user clicking the screen capture button, or may be generated together with the completion button operation after capturing the input of the input means by the user.
다음으로, 입력수단의 입력을 캡쳐한 값을 기초로 제 1 테스트 스크립트를 생성한다(S821). 여기서, 기 저장된 제 1 테스트 스크립트가 있으면, 해당 제 1 테스트 스크립트를 로드할 수 있다.Next, a first test script is generated based on the value of capturing the input of the input means (S821). Here, if there is a previously stored first test script, the first test script may be loaded.
다음으로, 제 1 테스트 스크립트를 재생하여 소프트웨어에 대한 테스트를 수행한다(S831). Next, the first test script is reproduced to test the software (S831).
다음으로, 제 1 테스트 스크립트를 재생하기 전의 소프트웨어에 대한 테스트 결과 이미지와 제 1 테스트 스크립트를 재생한 후의 소프트웨어에 대한 테스트 결과 이미지를 비교한 차이점을 기초로 제 2 이미지를 생성한다(S841).Next, a second image is generated based on a difference between a test result image of software before playing the first test script and a test result image of software after playing the first test script (S841).
다음으로, 제 1 이미지와 제 2 이미지의 차이점을 비교하여, 소프트웨어의 정상 여부를 판단하기 위한 검증을 수행한다(S851). 이때, 제 1 이미지와 제 2 이미지의 차이가 기준치 범위안에 있을 경우에는 해당 소프트웨어의 테스트 결과를 정상으로 판단한다.Next, by comparing the difference between the first image and the second image, verification is performed to determine whether the software is normal (S851). At this time, when the difference between the first image and the second image is within the reference value range, it is determined that the test result of the corresponding software is normal.
도 9는 본 발명의 일 실시예에 따른 제 2 테스트부를 통한 소프트웨어 테스트 방법의 순서도이다.9 is a flowchart illustrating a software test method through a second test unit according to an embodiment of the present invention.
도 9에 도시된 바와 같이, 먼저 사용자에 의해 입력된 복수의 이벤트 정보를 포함하는 제 2 테스트 스크립트를 생성한다(S901). 여기서, 기 저장된 제 2 테스트 스크립트가 있으면, 해당 제 2 테스트 스크립트를 로드할 수 있다.As shown in FIG. 9, first, a second test script including a plurality of event information input by a user is generated (S901). Here, if there is a previously stored second test script, the second test script may be loaded.
다음으로, 제 2 테스트 스크립트의 이벤트 정보를 기초로 소프트웨어에 대한 테스트를 수행한다(S911).Next, a test of the software is performed based on the event information of the second test script (S911).
다음으로, 제 2 테스트 스크립트에 포함된 이벤트 정보에 따라 테스트가 수행된 소프트웨어로부터 테스트 결과 데이터를 수신한다(S921).Next, the test result data is received from the software on which the test is performed according to the event information included in the second test script (S921).
다음으로, 테스트 결과 데이터를 이벤트 정보에 따라 기 생성된 예상 결과 데이터와 비교하여 소프트웨어의 정상 여부를 판단하기 위한 검증을 수행한다(S931). 여기서, 테스트 결과 데이터와 기 생성된 예상 결과 데이터를 비교한 결과 값이 기준치 범위안에 있을 경우에는 해당 소프트웨어의 테스트 결과를 정상으로 판단한다.Next, the test result data is compared with the predicted result data previously generated according to the event information, and verification for determining whether the software is normal is performed (S931). If the result of comparing the test result data with the previously generated expected result data is within the reference range, the test result of the corresponding software is determined to be normal.
한편, 도 1 내지 도 3에서 도시된 각각의 구성요소는 일종의 '모듈'로 구성될 수 있다. 상기 '모듈'은 소프트웨어 또는 Field Programmable Gate Array(FPGA) 또는 주문형 반도체(ASIC, Application Specific Integrated Circuit)과 같은 하드웨어 구성요소를 의미하며, 모듈은 어떤 역할들을 수행한다. 그렇지만 모듈은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. 모듈은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 구성요소들과 모듈들에서 제공되는 기능은 더 작은 수의 구성요소들 및 모듈들로 결합되거나 추가적인 구성요소들과 모듈들로 더 분리될 수 있다.Meanwhile, each component illustrated in FIGS. 1 to 3 may be configured as a kind of 'module'. The term 'module' refers to a hardware component such as software or a Field Programmable Gate Array (FPGA) or an Application Specific Integrated Circuit (ASIC), and the module performs certain roles. However, a module is not limited to software or hardware. A module may be configured to reside on an addressable storage medium and may be configured to execute one or more processors. The functionality provided by the components and modules may be combined into a smaller number of components and modules or further separated into additional components and modules.
상술된 스크립트 저장부(160) 및 데이터 저장부(180)는 캐쉬, ROM(Read Only Memory), PROM(Programmable ROM), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM) 및 플래쉬 메모리(Flash memory)와 같은 비휘발성 메모리 소자 또는 RAM(Random Access Memory)과 같은 휘발성 메모리 소자 또는 하드디스크 드라이브(HDD, Hard Disk Drive), CD-ROM과 같은 저장 매체 중 적어도 하나로 구현될 수 있으나 이에 한정되지는 않는다.The above-described
도 10은 본 발명의 다른 실시예에 따른 소프트웨어 테스트 장치의 블록도이다.10 is a block diagram of a software test apparatus according to another embodiment of the present invention.
전체적인 구성은 도 1의 테스트 장치와 거의 동일하며, 하이브리드 테스트부(190)가 추가되었으며, 테스트 제어부(130)의 구성이 다소 상이하다.The overall configuration is almost the same as the test apparatus of FIG. 1, the
먼저 테스트 제어부(130)는 사용자의 선택, 소프트웨어에 대한 테스트 설정값 등에 따라 제 1 테스트부(110), 제 2 테스트부(120) 및 하이브리드 테스트부(190) 중 어느 하나를 실행시키고 소프트웨어에 대한 테스트를 제어한다. First, the
이벤트 기반으로 테스트를 수행하는 제 2 테스트부(120)를 기초로 테스트를 수행할 경우 이벤트로 표현하지 못하는 기능(버튼이 인식되지 않는 경우, 사용자 지정 패턴 등)이 테스트 중간에 필요한 경우에는 제 2 테스트부(120)만을 이용하기 어려운 문제가 있다. 이를 해결하기 위해서는 캡쳐 및 재생을 기반으로 테스트를 수행하는 제 1 테스트부(110)의 테스트 방법을 기초로 테스트를 수행할 필요가 있다.When performing a test based on the
이에, 테스트 제어부(130)는 테스트의 내용을 기초로 하이브리드 테스트가 필요한 경우에는 하이브리드 테스트부(190)를 통해 테스트가 수행되도록 한다.Thus, when the hybrid test is required based on the content of the test, the
하이브리드 테스트부(190)는 캡쳐 및 재생을 기반으로 하는 제 1 테스트와 이벤트 기반으로 테스트를 수행하는 제 2 테스트를 혼합한 하이브리드 테스트 스크립트를 기초로 테스트를 수행하도록 한다.The
도 11은 본 발명의 일 실시예에 따른 하이브리드 테스트부의 블록도이다.11 is a block diagram of a hybrid test unit according to an embodiment of the present invention.
하이브리드 테스트부(190)는 제 1 테스트 스크립트 생성부(192), 제 2 테스트 스크립트 생성부(194), 하이브리드 테스트 스크립트 실행부(196) 및 검증부(198)를 포함한다.The
제 1 테스트 스크립트 생성부(192)는 소프트웨어에 대해 수행된 입력수단의 입력을 캡쳐하여 제 1 테스트 스크립트로 생성한다. 여기서, 마우스, 키보드 및 터치 패드 등을 통한 입력이 캡쳐되어 제 1 테스트 스크립트로 생성될 수 있다. 예컨대 사용자가 소프트웨어의 GUI 콤포넌트(component)(또는 컨트롤)에 대해 마우스 또는 키보드를 통한 입력(클릭, 드래그, 등)을 수행하였을 경우, 이에 대한 캡쳐가 수행되어 해당 캡쳐된 값을 기초로 한 제 1 테스트 스크립트가 생성될 수 있다. The first test
이때, 사용자가 선택한 GUI 콤포넌트의 속성값에 따라 테스트 데이터가 함께 생성될 수 있다. 예컨대, GUI 콤포넌트가 반도체 공정제어 과정에서 기기의 회전속도 및 각도를 조절하는 모듈인 경우, 회전속도 및 각도 제어와 관련된 테스트 데이터가 해당 모듈에 대응되도록 자동 생성될 수 있다.At this time, the test data may be generated together according to the attribute value of the GUI component selected by the user. For example, when the GUI component is a module that adjusts the rotational speed and angle of the device in a semiconductor process control process, test data related to the rotational speed and angle control may be automatically generated to correspond to the module.
제 2 테스트 스크립트 생성부(194)는 사용자에 의하여 작성된 복수의 이벤트 정보를 포함하는 제 2 테스트 스크립트를 생성한다. 예컨대, 이벤트 정보는 소프트웨어의 특정 모듈을 테스트하기 위한 정보를 포함할 수 있다. 여기서, 사용자는 인터페이스를 통해 이벤트 정보를 직접 입력하거나, 테스트하고자 하는 이벤트 정보를 선택하여 복수의 이벤트 정보를 작성할 수 있다.The second test
또한, 기본적인 이벤트 정보가 미리 설정되어 있는 경우, 사용자는 해당 인터페이스를 통해 이벤트 정보를 추가하거나 삭제할 수 있다. 이후, 제 2 테스트 스크립트 생성부(194)는 사용자에 의해 입력 또는 선택된 이벤트 정보를 파싱(parsing)하여 제 2 테스트 스크립트로 생성할 수 있다.In addition, when basic event information is set in advance, a user may add or delete event information through a corresponding interface. Thereafter, the second test
하이브리드 테스트 스크립트 실행부(196)는 제 1 테스트 스크립트 생성부(192)에서 생성된 제 1 테스트 스크립트 및 제 2 테스트 스크립트 생성부(194)에서 생성된 제 2 테스트 스크립트를 결합하여 하이브리드 모드로 실행한다. 이때, 하이브리드 테스트 스크립트 실행부(196)로 전달되는 테스트 스크립트는 제 1 테스트 스크립트 및 제 2 테스트 스크립트가 혼합된 것으로서, 이와 같은 구성에 따라, 한번의 테스트 과정에 제 1 테스트와 제 2 테스트를 혼합하여 실행할 수 있다.The hybrid test
하이브리드 테스트 스크립트 실행부(196)는 제 1 테스트 스크립트가 있는 경우 제 1 테스트 스크립트를 재생(playback or replay)시켜 소프트웨어에 대한 테스트를 수행한다. 이때, 설정값에 따라 반복해서 테스트를 수행할 수 있다. 또한, 제 2 테스트 스크립트가 있는 경우 제 2 테스트 스크립트를 기초로 소프트웨어에 대한 테스트를 수행한다. 이때, 제 2 테스트 스크립트의 이벤트 정보에 따라 소프트웨어에 대한 테스트가 수행될 때, 해당 이벤트 정보에 대응되는 테스트 데이터가 함께 제공되어 특정 테스트 데이터에 대한 테스트가 이루어질 수 있다. The hybrid test
검증부(198)는 테스트 스크립트 실행 결과에 기초하여 소프트 웨어의 정상 여부를 판단하기 위한 검증을 수행한다. 제 1 테스트 스크립트에 대해서는 앞서 도 2를 통해 설명한 이미지 검증부(118)와 마찬가지로, 제 1 이미지와 제 2 이미지의 차이점을 비교하여 소프트웨어의 정상 여부를 판단하기 위한 검증을 수행한다. 예컨대, 상술한 반도체 공정제어를 수행하는 소프트웨어의 경우, 테스트 결과 데이터로서 그래프 이미지가 생성되므로, 검증부(198)는 입력수단의 입력을 캡쳐할 때의 제 1 이미지와 제 1 테스트 스크립트의 재생에 따라 생성된 제 2 이미지의 차이점을 비교하여 소프트웨어의 정상 여부를 판단하기 위한 검증을 수행한다.The
만약, 제 1 이미지와 제 2 이미지의 차이점이 설정된 기준치를 초과하지 않을 경우, 검증부(198)는 해당 소프트웨어를 정상으로 판단하고, 그렇지 않을 경우에는 비정상으로 판단할 수 있다. If the difference between the first image and the second image does not exceed the set reference value, the
또한, 제 2 테스트 스크립트에 대해서는 이벤트 검증부(128)와 마찬가지로, 제 2 테스트 스크립트에 포함된 이벤트 정보에 따라 테스트가 수행된 소프트웨어로부터 테스트 결과 데이터를 수신하고, 테스트 결과 데이터를 해당 이벤트 정보를 기초로 기 생성된 예상 결과 데이터와 비교하여 소프트웨어의 정상 여부를 판단하기 위한 검증을 수행한다.In addition, similar to the event verification unit 128, the second test script receives the test result data from the software on which the test is performed according to the event information included in the second test script, and based on the event information. Verification is performed to determine whether the software is normal by comparing with the expected result data.
도 12는 본원 발명의 다른 실시예에 따른 하이브리트 테스트부를 통한 소프트웨어 테스트 방법의 순서도이다.12 is a flowchart of a software test method through a hybrid test unit according to another exemplary embodiment of the present invention.
먼저, 사용자에 의하여 설정된 테스트 조건을 분석하고(S1210), 하이브리드 테스트가 필요한지 여부에 대한 판단을 수행한다(S1220). 예를 들어, 테스트 제어부(120)를 통해 테스트 조건을 분석하여, 이벤트 기반의 테스트로 수행하지 못하는 기능(버튼이 인식되지 않는 경우, 사용자 지정 패턴 등)이 테스트 중간에 필요한 경우에는 하이브리트 테스트를 수행하도록 한다.First, a test condition set by a user is analyzed (S1210), and a determination is made as to whether a hybrid test is required (S1220). For example, if the test condition is analyzed through the
판단 결과, 하이브리드 테스트가 불필요한 경우에는 앞서 설명한 내용에 따라 제 1 테스트 또는 제 2 테스트를 선택적으로 실행한다(S1240).If it is determined that the hybrid test is not necessary, the first test or the second test is selectively executed according to the above description (S1240).
그러나, 하이브리드 테스트가 필요한 것으로 판단된 경우에는 하이브리드 테스트부(190)를 통해, 제 1 테스트 및 제 2 테스트를 혼합시킨 하이브리드 테스트를 실행하도록 한다(S1230). However, when it is determined that a hybrid test is necessary, the
본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다. One embodiment of the present invention may also be embodied in the form of a recording medium including instructions executable by a computer, such as program modules, being executed by a computer. Computer readable media can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media. In addition, the computer-readable medium may include both computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Communication media typically includes any information delivery media, including computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave, or other transport mechanism.
본 발명의 방법 및 시스템은 특정 실시예와 관련하여 설명되었지만, 그것들의 구성 요소 또는 동작의 일부 또는 전부는 범용 하드웨어 아키텍쳐를 갖는 컴퓨터 시스템을 사용하여 구현될 수 있다.While the methods and systems of the present invention have been described in connection with specific embodiments, some or all of those elements or operations may be implemented using a computer system having a general purpose hardware architecture.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.The foregoing description of the present invention is intended for illustration, and it will be understood by those skilled in the art that the present invention may be easily modified in other specific forms without changing the technical spirit or essential features of the present invention. will be. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive. For example, each component described as a single entity may be distributed and implemented, and components described as being distributed may also be implemented in a combined form.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is shown by the following claims rather than the above description, and all changes or modifications derived from the meaning and scope of the claims and their equivalents should be construed as being included in the scope of the present invention. do.
110: 제 1 테스트부 120: 제 2 테스트부
130: 테스트 제어부 140: 테스트 검증부
150: 테스트 결과 생성부 160: 스크립트 생성부
170: 로드부 180: 데이터 저장부
190: 하이브리드 테스트부110: first test unit 120: second test unit
130: test control unit 140: test verification unit
150: test result generation unit 160: script generation unit
170: load unit 180: data storage unit
190: hybrid test unit
Claims (5)
테스트 대상 소프트웨어에 대해 수행된 입력수단의 입력을 캡쳐(capture)하여 제 1 테스트 스크립트를 생성하고, 상기 생성된 제 1 테스트 스크립트를 재생하여 상기 소프트웨어에 대한 테스트를 수행하는 제 1 테스트부,
사용자에 의하여 작성된 복수의 이벤트 정보를 포함하는 제 2 테스트 스크립트의 이벤트 정보를 기초로 상기 소프트웨어에 대한 테스트를 수행하는 제 2 테스트부,
상기 입력 수단의 입력을 캡쳐하여 생성한 제 1 테스트 스크립트 및 이벤트 정보를 포함하는 제 2 테스트 스크립트를 혼합한 하이브리드 테스트 스크립트에 기초하여 상기 소프트웨어에 대한 테스트를 수행하는 하이브리드 테스트부 및
사용자의 선택 또는 상기 소프트웨어에 대한 테스트 설정값에 따라 상기 제 1 테스트부, 제 2 테스트부 및 하이브리드 테스트부 중 어느 하나를 실행시켜 상기 소프트웨어에 대한 테스트를 수행하는 테스트 제어부를 포함하되,
상기 제 1 테스트부는
상기 입력수단의 입력을 캡쳐하기 전후의 소프트웨어에 대한 테스트 결과 이미지를 비교한 차이점을 기초로 한 제 1 이미지를 생성하고,
상기 제 1 테스트 스크립트를 재생하기 전후의 소프트웨어에 대한 테스트 결과 이미지를 비교한 차이점을 기초로 한 제 2 이미지를 생성하는 이미지 생성부 및
상기 제 1 이미지 및 상기 제 2 이미지의 차이점을 비교하여 소프트웨어의 정상여부를 판단하기 위한 검증을 수행하는 이미지 검증부를 포함하는 것인 소프트웨어 테스트 장치.
In the software test apparatus,
A first test unit which captures an input of an input means performed on a test target software to generate a first test script, and reproduces the generated first test script to perform a test on the software;
A second test unit configured to test the software based on event information of a second test script including a plurality of event information written by a user;
A hybrid test unit configured to perform a test on the software based on a hybrid test script including a first test script generated by capturing an input of the input means and a second test script including event information;
And a test control unit configured to execute one of the first test unit, the second test unit, and the hybrid test unit according to a user's selection or a test setting value of the software to perform a test on the software.
The first test unit
Generating a first image based on a difference between comparing test result images of the software before and after capturing the input of the input means,
An image generator for generating a second image based on a difference between the test result images of the software before and after playing the first test script;
And an image verification unit which compares the difference between the first image and the second image and performs verification to determine whether the software is normal.
상기 하이브리드 테스트부는
상기 입력 수단의 입력을 캡쳐하여 제 1 테스트 스크립트를 생성하는 제 1 테스트 스크립트 생성부,
사용자에 의하여 작성된 복수의 이벤트 정보를 기초로 제 2 테스트 스크립트를 생성하는 제 2 테스트 스크립트 생성부 및
상기 제 1 테스트 스크립트 및 제 2 테스트 스크립트를 포함하는 하이브리드 테스트 스크립트를 실행하는 하이브리테 테스트 스크립트 실행부를 포함하는 소프트웨어 테스트 장치.
The method of claim 1,
The hybrid test unit
A first test script generation unit for capturing an input of the input means to generate a first test script;
A second test script generation unit generating a second test script based on a plurality of event information created by a user;
And a hybrid test script execution unit configured to execute a hybrid test script including the first test script and the second test script.
상기 생성된 제 1 테스트 스크립트, 제 2 테스트 스크립트 및 하이브리드 스크립트 중 하나 이상을 파일로 저장하는 스크립트 저장부 및
상기 테스트 제어부의 제어에 따라 상기 저장된 파일을 로드(load)하여, 상기 소프트웨어에 대한 테스트가 수행되도록 하는 로드부를 더 포함하는 소프트웨어 테스트 장치.
The method of claim 1,
A script storage unit for storing one or more of the generated first test script, second test script, and hybrid script as a file;
And a load unit configured to load the stored file under the control of the test controller to perform a test on the software.
상기 테스트 제어부는
상기 테스트 설정값에 따라 상기 제 1 테스트부를 통해 상기 소프트웨어에 대한 테스트를 수행한 결과, 해당 소프트웨어의 특정 모듈이 비정상으로 판단된 경우, 제 2 테스트부를 실행시켜 해당 모듈에 대한 보다 정밀한 테스트가 수행되도록 하는 것인 소프트웨어 테스트 장치.
The method of claim 1,
The test control unit
As a result of performing a test on the software through the first test unit according to the test set value, when a specific module of the corresponding software is determined to be abnormal, a second test unit is executed to perform a more precise test on the corresponding module. Software test device.
상기 소프트웨어는 반도체 공정제어 소프트웨어로서 FDC(Fault Detection and Classification) 및 R2R(Run to Run) 중 하나 이상을 포함하는 것인 소프트웨어 테스트 장치.
5. The method according to any one of claims 1 to 4,
Wherein the software is semiconductor process control software, the software test apparatus comprising one or more of Fault Detection and Classification (FDC) and Run to Run (R2R).
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110120791A KR101271232B1 (en) | 2011-11-18 | 2011-11-18 | Software testing device and method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110120791A KR101271232B1 (en) | 2011-11-18 | 2011-11-18 | Software testing device and method thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130055181A KR20130055181A (en) | 2013-05-28 |
KR101271232B1 true KR101271232B1 (en) | 2013-06-07 |
Family
ID=48663737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110120791A KR101271232B1 (en) | 2011-11-18 | 2011-11-18 | Software testing device and method thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101271232B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102691045B1 (en) * | 2021-08-23 | 2024-08-05 | 에이존테크 주식회사 | Black box test apparatus and method |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105068918B (en) * | 2015-06-03 | 2017-11-17 | 中国人民财产保险股份有限公司 | A kind of page method of testing and device |
CN105138463A (en) * | 2015-09-25 | 2015-12-09 | 成都中科创达软件有限公司 | Testing method and system for mobile terminal software |
US11092939B2 (en) * | 2019-10-07 | 2021-08-17 | Fisher-Rosemount Systems, Inc. | Preview mode for configuration logic |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100108000A (en) * | 2009-03-27 | 2010-10-06 | 한국전자통신연구원 | Testing apparatus and method for mobile software |
-
2011
- 2011-11-18 KR KR1020110120791A patent/KR101271232B1/en not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100108000A (en) * | 2009-03-27 | 2010-10-06 | 한국전자통신연구원 | Testing apparatus and method for mobile software |
Non-Patent Citations (2)
Title |
---|
"XML을 이용한 안드로이드 GUI 테스트 자동화 방안", 마영철, 최은만, 2011 한국컴퓨터종합학술대회 논문집 제38권제1호, pp102-105 (2011.6) * |
"XML을 이용한 안드로이드 GUI 테스트 자동화 방안", 마영철, 최은만, 2011 한국컴퓨터종합학술대회 논문집 제38권제1호, pp102-105 (2011.6)* |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102691045B1 (en) * | 2021-08-23 | 2024-08-05 | 에이존테크 주식회사 | Black box test apparatus and method |
Also Published As
Publication number | Publication date |
---|---|
KR20130055181A (en) | 2013-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9164870B2 (en) | Integrated fuzzing | |
US9846638B2 (en) | Exposing method related data calls during testing in an event driven, multichannel architecture | |
US10853232B2 (en) | Adaptive system for mobile device testing | |
US8645912B2 (en) | System and method for use in replaying software application events | |
CA2336608C (en) | Method for defining durable data for regression testing | |
US9697108B2 (en) | System, method, and apparatus for automatic recording and replaying of application executions | |
US8356282B1 (en) | Integrated development environment for the development of electronic signal testing strategies | |
US20130298110A1 (en) | Software Visualization Using Code Coverage Information | |
US20150058826A1 (en) | Systems and methods for efficiently and effectively detecting mobile app bugs | |
US20170329687A1 (en) | Functional Behaviour Test System and Method | |
KR101271232B1 (en) | Software testing device and method thereof | |
KR20190019009A (en) | Method and apparatus for automating game test | |
US9229846B1 (en) | Testing application code changes using a state assertion framework | |
KR101166128B1 (en) | Software testing device and method thereof | |
KR101460860B1 (en) | GUI Test apparatus using test scenario model based on states and the method thereof | |
EP3734460B1 (en) | Probabilistic software testing via dynamic graphs | |
US10229029B2 (en) | Embedded instruction sets for use in testing and error simulation of computing programs | |
CN103713995A (en) | Latent defect identification | |
JP2009223568A (en) | Scenario-generating device and program | |
US10579761B1 (en) | Method and system for reconstructing a graph presentation of a previously executed verification test | |
CN117707982A (en) | Test method, apparatus, device, medium and program product | |
Zhao et al. | Event handler-based coverage for GUI testing | |
US20170123959A1 (en) | Optimized instrumentation based on functional coverage | |
US10545858B2 (en) | Method for testing a graphical interface and corresponding test system | |
KR102694524B1 (en) | Automatic testing device for providing user interface and operating method thereof |
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: 20160225 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20170328 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |