KR101565840B1 - 서버에 자동화 테스트를 제공하는 방법 및 시스템 - Google Patents
서버에 자동화 테스트를 제공하는 방법 및 시스템 Download PDFInfo
- Publication number
- KR101565840B1 KR101565840B1 KR1020110107343A KR20110107343A KR101565840B1 KR 101565840 B1 KR101565840 B1 KR 101565840B1 KR 1020110107343 A KR1020110107343 A KR 1020110107343A KR 20110107343 A KR20110107343 A KR 20110107343A KR 101565840 B1 KR101565840 B1 KR 101565840B1
- Authority
- KR
- South Korea
- Prior art keywords
- event
- execution condition
- server
- execution
- result
- Prior art date
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 92
- 238000000034 method Methods 0.000 title claims abstract description 44
- 230000002950 deficient Effects 0.000 claims abstract description 14
- 230000007547 defect Effects 0.000 claims description 25
- 238000004458 analytical method Methods 0.000 claims description 19
- 238000006243 chemical reaction Methods 0.000 claims description 19
- 238000012986 modification Methods 0.000 claims description 4
- 230000004048 modification Effects 0.000 claims description 4
- 238000012217 deletion Methods 0.000 claims description 3
- 230000037430 deletion Effects 0.000 claims description 3
- 238000007792 addition Methods 0.000 claims 2
- 230000006870 function Effects 0.000 description 25
- 238000004891 communication Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000010998 test method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000008929 regeneration Effects 0.000 description 2
- 238000011069 regeneration method Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
Images
Classifications
-
- 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
- G06F11/263—Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
- G06F11/2635—Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers using a storage for the test inputs, e.g. test ROM, script files
-
- 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/2273—Test methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
본 발명은 서버에 자동화 테스트를 제공하는 방법 및 시스템에 관한 것이다. 본 발명의 일 태양에 따르면, 서버의 자동화 테스트를 제공하는 방법은 수행조건 해석 수단에 의해, 소정 수행 조건의 적어도 일부를 해석하는 단계, 이벤트 실행수단에 의해, 상기 해석된 수행 조건에 해당하는 이벤트를 실행하기 위해, 스크립트 구문을 호출하여 상기 이벤트를 실행하는 단계, 및 결과 분석수단에 의해, 상기 이벤트의 실행에 따른 결과 값을 서버로부터 수신하고, 상기 결과 값을 기초로 상기 서버의 결함 여부를 판단하는 단계를 포함한다.
Description
본 발명은 서버에 자동화 테스트를 제공하는 방법 및 시스템에 관한 것으로, 더욱 상세하게는 테스터가 설정한 수행 조건을 이용하여, 서버의 자동화 테스트를 제공하고, 그에 따른 서버의 반응을 통해서 결함 여부를 판단할 수 있으며, 자동화 테스트 내용을 손쉽게 수정, 추가 및 삭제가 가능하므로 개발자가 구현하고 싶은 다양한 테스트 환경을 자유롭게 손쉽게 구현할 수 있는, 서버에 자동화 테스트를 제공하는 방법 및 시스템에 관한 것이다.
최근 들어, 컴퓨터 관련 정보 통신 기술이 발전함에 따라 게임 산업도 급속도로 발전하고 있다. 또한, 인터넷의 보급에 따라 인터넷을 이용한 다양한 형태의 서비스 역시 계속하여 발달하고 있는 바, 게임 산업과 인터넷이 결합된 대규모 다중 사용자 온라인 롤플레잉 게임(MMORPG: Massive Multiplayer Online Role Playing Game) 등과 같이 다수의 유저가 서버에 접속하여 함께 즐기는 형태의 게임이 각광을 받고 있다.
이러한 형태의 게임은 다수의 유저가 서버에 접속하는 것을 특징으로 하기 때문에 게임 자체의 결함 및 서버의 안정성 모두가 게임의 안정적인 서비스에 있어 중요시되는 사항이므로, 다수의 게임 개발 업체들은 게임의 상용화에 앞서 클로즈드 베타 테스트(CBT) 또는 오픈 베타 테스트(OBT) 등과 같이 유저들의 접속을 유도하여 개발된 게임 서버의 결함 및 안정성을 테스트하고 있다.
그러나, 클로즈드 베타 테스트 및 오픈 베타 테스트 모두 내부적으로 어느 정도 게임 서버의 안정화가 이루어진 후에나 사용할 수 있는 방법으로 이에 앞서 게임 서버의 결함 및 안정성에 대한 철저한 내부 테스트가 이루어져야 하고, 또한 이미 상용화된 게임 내에 새로운 콘텐츠를 추가하거나 장기간 서비스 되어 온 게임의 틀을 최신 플랫폼에 맞게 개편할 때, 그리고 정기 점검시 등 다양한 경우에 있어서도 내부 테스트는 끊임없이 이루어져야 하나, 내부 테스트를 그때마다 수동으로 일일이 수행하는 것은 귀찮을 뿐 아니라 물리적으로도 거의 불가능하므로 자동화 테스트를 구현할 필요성이 대두되었다.
이러한 자동화 테스트를 구현하기 위한 기술로서 대한민국 특허 공개 공보 제2009-0065747호 "부하테스트를 위한 패킷의 부하 재생성 시스템 및 그 방법 (한국전자통신연구원)"(문헌 1)에는 종래 게임 클라이언트에서 발생하는 정보를 가공하여 사용하는 패킷의 부하 재생성 방법 등이 개시된다.
그러나, 상기 문헌 1은 유저 보안을 위해 부득이하게 보안 툴을 통한 암호화 과정이 필수인 게임 서비스에 적합하지 않으며 또한 단순히 게임에서 발생하는 패킷 정보를 복제하여 직접 또는 이를 기초로 가공하여 재전송하는 단순한 기능밖에 수행하지 못하므로, 다양한 상황 하에서의 테스트를 통해 결함 여부를 함께 찾아내고자 하는 자동화 테스트에 대한 목적에는 맞지 않는 문제점이 존재하였다.
한편, 다양한 상황 하에서의 서버의 반응을 통해 결함 여부를 찾아내기 위한 자동화 테스트를 구현하기 위해서는, 게임 서버의 기능을 역으로 만든 각각의 게임에 대한 개별적인 클라이언트를 제작하여야 하므로 게임 서버를 개발할 때마다 각각의 자동화 테스트용 클라이언트의 개발이 필요하여 그 범용성에 문제가 있었으며, 자동화 테스트용 클라이언트의 오류 수정, 기능의 수정, 부가, 삭제 등이 발생할 때마다 프로젝트 전체를 컴파일하고 완전히 빌드하여야 하므로 세세한 수정시마다 시간이 많이 소요되는 것은 물론 개발자가 테스트하고 싶은 다양한 환경을 손쉽게 구현하기 힘든 문제점이 존재하였다.
따라서, 다양한 상황 하에서의 결함 여부 및 서버의 안정성에 직결되는 스트레스 테스트 양자를 모두 수행할 수 있으면서도, 제작되는 게임 종류에 관계없이 범용으로 사용될 수 있고, 수정시마다 프로젝트 전체의 컴파일 및 빌드가 요구되지 않아 손쉽게 기능을 수정, 부가 또는 삭제하는 것이 가능한 자동화 테스트의 제공에 대한 요청이 대두되고 있다.
본 발명의 목적은 위에서 언급한 종래 기술의 문제점을 해결하는 것이다.
본 발명의 일 목적은 다양한 상황 하에서의 결함 여부 및 서버의 안정성에 직결되는 스트레스 테스트 모두를 수행하는 자동화 테스트를 제공하면서도 제작되는 게임 종류에 관계없이 범용으로 사용될 수 있어 추후 게임 개발 및 이에 따른 자동화 테스트 적용이 용이하도록 하는 것이다.
본 발명의 다른 목적은, 자동화 테스트시 사용될 수 있는 특정 포맷의 바이너리 정보를 컴파일 타임이 아닌 런타임에 해석이 가능하도록 하여, 자동화 테스트 자체의 문제점을 손쉽게 수정할 수 있고, 또한 자동화 테스트에 여러 기능을 부가, 수정 또는 삭제하는 것이 손쉽게 이루어질 수 있어 개발자가 구현하고자 하는 다양한 테스트 환경을 손쉽게 구현할 수 있도록 하는 것이다.
상기한 바와 같은 본 발명의 목적을 달성하고, 후술하는 본 발명의 특유의 효과를 달성하기 위한, 본 발명의 특징적인 구성은 하기와 같다.
본 발명의 일 태양에 따르면, 서버의 자동화 테스트를 제공하는 방법은 수행조건 해석 수단에 의해, 소정 수행 조건의 적어도 일부를 해석하는 단계, 이벤트 실행수단에 의해, 상기 해석된 수행 조건에 해당하는 이벤트를 실행하기 위해, 스크립트 구문을 호출하여 상기 이벤트를 실행하는 단계, 및 결과 분석수단에 의해, 상기 이벤트의 실행에 따른 결과 값을 서버로부터 수신하고, 상기 결과 값을 기초로 상기 서버의 결함 여부를 판단하는 단계를 포함한다.
본 발명의 다른 태양에 따르면, 서버의 자동화 테스트를 제공하는 시스템은 소정 수행 조건의 적어도 일부를 해석하는 수행조건 해석 수단, 상기 해석된 수행 조건에 해당하는 이벤트를 실행하기 위해, 스크립트 구문을 호출하여 상기 이벤트를 실행하는 이벤트 실행수단, 및 상기 이벤트의 실행에 따른 결과 값을 서버로부터 수신하고, 상기 결과 값을 기초로 상기 서버의 결함 여부를 판단하는 결과 분석수단을 포함한다.
상술한 바와 같이 본 발명에 따르면, 다양한 상황 하에서의 결함 여부 및 서버의 안정성에 직결되는 스트레스 테스트 모두를 수행하는 자동화 테스트를 제공하면서도 제작되는 게임 종류에 관계없이 범용으로 사용될 수 있어 추후 게임 개발 및 이에 따른 자동화 테스트 적용이 용이하도록 하는 효과를 가져올 수 있다.
또한, 본 발명에 따르면, 본 발명의 다른 목적은, 자동화 테스트시 사용될 수 있는 특정 포맷의 바이너리 정보를 컴파일 타임이 아닌 런타임에 해석이 가능하도록 하여, 자동화 테스트 자체의 문제점을 손쉽게 수정할 수 있고, 또한 자동화 테스트에 여러 기능을 부가, 수정 또는 삭제하는 것이 손쉽게 이루어질 수 있어 개발자가 구현하고자 하는 다양한 테스트 환경을 손쉽게 구현할 수 있다.
도 1는 본 발명의 일 실시예에 따른 자동화 테스트 시스템을 포함하는 전체 시스템을 개략적으로 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른 자동화 테스트 시스템의 세부 구성도이다.
도 3은 본 발명의 일 실시예에 따른 테스트 코어부의 세부 구성도이다.
도 4는 본 발명의 일 실시예에 따라 자동화 테스트 시스템에서 수행되는 자동화 테스트 방법을 나타내는 흐름도이다.
도 5는 본 발명의 일 실시예에 따라 테스터가 수행 조건을 설정할 수 있도록 수행조건 제공부에 의해 제공한 유저 인터페이스 화면이다.
도 6은 본 발명의 일 실시예에 따라 수행조건 제공부에서 수신한 수행조건을 특정 포맷으로 변환한 코드를 나타낸 화면이다.
도 7은 본 발명의 일 실시예에 따라 데이터베이스에 미리 저장되며, 스크립트 수행수단에 의해 호출되어 실행될 수 있는 스크립트 구문의 일부 코드를 나타낸 화면이다.
도 2는 본 발명의 일 실시예에 따른 자동화 테스트 시스템의 세부 구성도이다.
도 3은 본 발명의 일 실시예에 따른 테스트 코어부의 세부 구성도이다.
도 4는 본 발명의 일 실시예에 따라 자동화 테스트 시스템에서 수행되는 자동화 테스트 방법을 나타내는 흐름도이다.
도 5는 본 발명의 일 실시예에 따라 테스터가 수행 조건을 설정할 수 있도록 수행조건 제공부에 의해 제공한 유저 인터페이스 화면이다.
도 6은 본 발명의 일 실시예에 따라 수행조건 제공부에서 수신한 수행조건을 특정 포맷으로 변환한 코드를 나타낸 화면이다.
도 7은 본 발명의 일 실시예에 따라 데이터베이스에 미리 저장되며, 스크립트 수행수단에 의해 호출되어 실행될 수 있는 스크립트 구문의 일부 코드를 나타낸 화면이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는 적절하게 설명된다면 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
[본 발명의 바람직한 실시예]
본 발명의 실시예에서, 용어 "바이너리(Binary) 정보"는 본원 발명의 서버와 클라이언트 간에, 또는 각 시스템간의 통신에 있어 공통으로 사용될 수 있는 특정 포맷의 이진 정보를 모두 포함하는 광의의 의미로 해석되어야 한다. 바이너리 정보의 일 예로서, 다른 기종 간의 컴퓨터와 응용 소프트웨어 사이에서 자료를 교환할 때 개방 환경을 만들어주기 위해 선 마이크로시스템즈사에서 개발한 데이터 표현 방식인 외부 데이터 표현 방식(eXternal Data Representation; XDR)이 포함될 수 있으나 반드시 이러한 예에 한정되는 것은 아니며, 기존에 정의된 데이터 표현 방식 및 통상의 기술자의 편의에 의해 새로 규정하게 되는 포맷을 모두 포함하여 서버와 클라이언트, 또는 각 시스템간의 통신에 있어 공통으로 사용될 수 있는 특정 포맷의 이진 정보는 모두 본원 발명에 따른 바이너리 정보에 포함될 수 있다.
본 발명의 실시예에서, 용어 "시나리오"는 서버의 결함 여부를 알아보기 위해 테스터에 의해 입력 또는 선택된 특정 행동을 취하라는 명령 및/또는 특정 값을 포함하는 광의의 의미로 해석되어야 한다. 시나리오의 일 예로서, 고스톱 게임에서 특정 유저가 갖고 있던 맨 왼쪽의 패를 내라는 특정 행동을 지칭할 수 있으나 반드시 이러한 예에 한정되는 것은 아니며, 본원 발명에 따른 시나리오는 게임의 종류에 따라, 그리고 테스터가 테스트하고자 하는 환경에 따라 서버에 요청할 수 있는 특정 행동은 모두 포함할 수 있다.
본 발명의 실시예에서, 용어 "수행조건"은 테스터에 의해 입력 또는 선택된, 하나 이상의 시나리오를 포함하는 집합적인 의미로 해석되어야 한다. 예를 들어, 고스톱 게임에서 특정 유저가 특정 게임룸에 입장하는 시나리오, 입장 후 맨 왼쪽의 패를 내라는 시나리오, 그 다음으로 맨 오른쪽의 패를 내라는 시나리오 즉 3개의 시나리오가 설정된 경우, 3개의 시나리오를 모두 포함한 것이 하나의 수행조건에 해당한다.
본 발명의 실시예에서, 용어 "이벤트"는 시나리오의 일부 또는 전부가 해석된 결과로서, 실제로 스크립트 구문을 통해 실행되기 위해 소정 값을 갖는 파라미터 및/또는 특정 명령을 수행하기 위한 명령어 코드를 포함하는 광의의 의미로 해석되어야 한다. 하나의 시나리오가 하나의 이벤트로 해석될 수도 있으나, 양자가 반드시 일대일의 관계로 해석되는 것은 아니며, 하나의 시나리오가 복수개의 이벤트로 해석될 수도 있고 그 반대일 수도 있다. 일 예로서, 맨 왼쪽의 패를 내라는 시나리오는 사용자가 가진 패 중에 가장 왼쪽에 해당하는 패의 값을 구하는 이벤트, 구한 값에 해당하는 패를 내는 이벤트, 낸 결과에 따라 짝이 맞는 패가 바닥에 있는 경우에는 해당 짝을 자신이 먹은 패에 추가하는 이벤트 등 복수의 이벤트를 포함할 수 있을 것이다.
전체 시스템 구성
도 1는 본 발명의 일 실시예에 따른 자동화 테스트 시스템을 포함하는 전체 시스템을 개략적으로 나타내는 도면이다.
도 1에서 도시된 바와 같이 본 발명의 일 실시예에 따른 전체 시스템은 게임 서버(100)와 데이터베이스(300)를 포함하고 있는 자동화 테스트 시스템(200)이 통신망(400)을 통하여 하나 이상의 클라이언트 컴퓨터(500)와 연결되어 있다.
본 발명의 일 실시예에 따르면, 먼저 게임 서버(100)는 클라이언트 컴퓨터(500) 또는 클라이언트 컴퓨터(500)의 역할을 수행하는 자동화 테스트 시스템(200)과 통신하면서 게임 내의 각각의 상황에 해당하는 이벤트 발생, 내부 연산 및 이에 따른 처리 및 통보 기능을 수행하여 궁극적으로 클라이언트 컴퓨터(500) 또는 자동화 테스트 시스템(200)에서 게임의 시작부터 종료까지를 진행할 수 있는 기능을 제공한다. 구체적인 이벤트 발생, 내부 연산 및 이에 따른 처리 및 통보 기능은 프로그래밍되어 게임 서버 내에 설치된 게임의 종류에 따라 상이할 수 있으며, 게임의 종류로서는 고스톱, 포커, MMORPG 게임 등 다수의 클라이언트가 접속하여 진행할 수 있는 게임을 모두 포함할 수 있다.
본 발명의 일 실시예에 따른 자동화 테스트 시스템(200)은 통신망(400)을 통해 게임 서버(100)와 연결되어, 클라이언트 컴퓨터(500)의 역할을 수행하면서 다양한 상황 내에서의 게임 서버(100) 내의 결함 여부 테스트 및 게임 서버(100)의 안정성과 직결된 스트레스 테스트 양자를 수행한다.
보다 구체적으로, 자동화 테스트 시스템(200)은 미리 지정된 수행 조건을 실행하면서, 관련된 정보를 데이터베이스(300)를 통해 바이너리 정보로 변환한 뒤 게임 서버(100)로 전송하고, 또한 게임 서버(100)로부터 수신된 바이너리 정보를 데이터베이스(300)를 통해 변환한 뒤 그 값에 연관된 특정 수행 조건을 실행하는 방식으로 게임 서버(100)에 설치된 게임을 진행해나가며 다양한 상황 내에서의 결함 여부를 테스트한다. 자동화 테스트 시스템(200)은 게임 서버(100)로부터 수신한 바이너리 정보를 변환하고, 변환된 값은 컴파일 된 실행파일이나 프로젝트에 의한 것이 아닌, 루아 스크립트(Lua Script)와 같은 스크립트 기반의 언어를 런타임시에 바인딩하여 분석되거나 판단될 수 있으므로 게임 서버(100)로부터의 바이너리 정보를 런타임시에 해석이 가능하여 테스트 진행에 따른 결함 여부 판단 및 추적이 손쉽게 이루어질 수 있는 것은 물론, 부가적으로 사용될 수 있는 다양한 기능의 추가, 변경 또는 삭제 또한 손쉽게 구현될 수 있다.
또한, 자동화 테스트 시스템(200)은 미리 정해진 다수의 클라이언트 컴퓨터(500)가 동시에 게임 서버(100)에 접속하는 것과 같은 역할을 수행하여 게임 서버(100)의 스트레스 테스트 역시 수행할 수 있다.
본 발명의 다른 실시예에 따라 자동화 테스트 시스템(200)은 그 기능별로 분리하여 물리적으로 복수의 장치 내에 구현되거나, 또는 동일한 기능을 수행하는 장치를 물리적으로 복수개 구비하는 방식 등으로 구현될 수도 있음은 통상의 기술자에게 있어 자명할 것이다. 자동화 테스트 시스템(200)의 세부 구성요소 및 세부적인 기능에 대해서는 후술하도록 한다.
또한, 본 발명의 일 실시예에 따르면, 데이터베이스(300)는 자동화 테스트 시스템(200)과 연결되어, 자동화 테스트 시스템(200) 상에서 수행되는 기능과 관련된 모든 데이터를 포함할 수 있다. 데이터베이스(300)에 포함된 데이터의 일 예로서, 자동화 테스트 시스템(200)에서 수신한 특정 바이너리 정보를 변환하기 위해 참조될 수 있는, 해당 게임 서버(100)에서 사용하는 형식의 변환 테이블 및 테스터로부터 수신한 수행 조건이나 게임 서버(100)로부터 수신한 바이너리 정보에 따른 실행에 필요한 스크립트 구문 등을 포함할 수 있으나, 반드시 이에 한정되는 것은 아니다. 본 발명의 다른 실시예에 따르면, 데이터베이스(300)는 자동화 테스트 시스템(200) 내부에 구현될 수도 있다.
한편, 본 발명의 일 실시예에 따르면, 통신망(400)은 유선 및 무선 등과 같은 그 통신 양태를 가리지 않고 구성될 수 있으며, 단거리 통신망(PAN; Personal Area Network), 근거리 통신망(LAN; Local Area Network), 도시권 통신망(MAN; Metropolitan Area Network), 광역 통신망(WAN; Wide Area Network) 등 다양한 통신망으로 구성될 수 있다.
마지막으로, 본 발명의 일 실시예에 따른 클라이언트 컴퓨터(500)는 사용자가 게임 서버(100)에서 제공되는 소정 게임을 진행하기 위해 통신망(400)을 통하여 게임 서버(100)과 연결하기 위한 기능을 포함하는 입출력 장치를 의미하며, 데스크톱 컴퓨터뿐만 아니라 노트북 컴퓨터, 워크스테이션, 팜톱(palmtop) 컴퓨터, 개인 휴대 정보 단말기(personal digital assistant: PDA), 웹 패드, 스마트 폰을 포함하는 이동 통신 단말기 등과 같이 메모리 수단을 구비하고 마이크로 프로세서를 탑재하여 연산 능력을 갖춘 디지털 기기라면 얼마든지 본 발명에 따른 클라이언트 컴퓨터(500)로서 채택될 수 있다. 바람직하게는, 게임 서버(100)과 연결하고, 제공되는 게임을 진행하기 위하여 클라이언트 컴퓨터(500) 내에 게임 서버(100) 등에서 제공하는 별도의 클라이언트 프로그램을 설치한 후, 설치된 클라이언트 프로그램을 실행시키고 이를 통하여 게임을 진행할 수 있으나, 반드시 이에 한정되는 것은 아니다.
자동화 테스트 시스템
도 2는 본 발명의 일 실시예에 따른 자동화 테스트 시스템(200)의 세부 구성도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 자동화 테스트 시스템(200)은 수행조건 제공부(210), 수행조건 변환부(220), 테스트 코어부(230) 및 결과 제공부(240)를 포함할 수 있다.
본 발명의 일 실시예에 따른 수행조건 제공부(210)는, 자동화 테스트를 위해 수행될 수 있는 하나 이상의 시나리오 및 각종 파라미터들을 테스터가 설정할 수 있도록 유저 인터페이스(User Interface:UI)를 제공한다. 테스터가 설정할 수 있는 시나리오 및 파라미터들은 게임 서버(100)에 따라 다양할 수 있으며, 그 일 예로서 도 5에 도시된 화면에 나와있는 바와 같이, 특정 게임에 있어 특정 행동이나 로직을 수행할 수 있도록 다양한 시나리오 및 파라미터 등을 추가, 삭제할 수 있도록 할 수 있다. 많은 게임에 있어 발생할 수 있는 특정 행동이나 로직은 공통될 수 있으므로, 이러한 공통적인 부분에 대한 시나리오를 공유할 수 있어 본 발명을 이용하여 다양한 게임 서버를 테스트한다 할 지라도 어느 정도 범용으로 운영하는 것이 가능하며, 각 게임별로 수행조건 제공부(210)를 처음부터 새로 구성할 필요는 없다.
본 발명의 일 실시예에 따른 수행조건 변환부(220)는, 앞선 수행조건 제공부(210)를 통해 테스터가 설정한 다양한 시나리오 및 파라미터에 기초하여 테스트 코어부(230)에서 해석하고 테스트할 수 있는 특정한 형식으로 변환한 수행 조건을 전달한다. 수행 조건은 자동화 테스트 시스템(200)의 구현 방식에 따라 다양한 형식으로 변환되도록 구현될 수 있으며, 구현될 수 있는 다양한 형식의 일 예로서 도 6에 도시된 화면에 나타난 바와 같이 XML(eXtensible Markup Language)를 포함할 수 있으나, 반드시 이에 한정되는 것은 아니다. 한편, 수행조건 변환부(220)는 수행조건 제공부(210)를 통해 테스터가 설정한 다양한 시나리오의 실행에 사용될 수 있는 스크립트 구문을 변환된 수행 조건 내에 포함(include)할 수 있으며, 그 일 예로서 전술한 루아 스크립트가 사용될 수 있으나 반드시 이에 한정되는 것은 아니다. 본 발명의 일 실시예에 따른 수행조건 변환부(220)는 게임의 종류에 관계없이 범용으로 사용될 수 있을 것이다.
본 발명의 일 실시예에 따른 테스트 코어부(230)는 수행조건 변환부(220)로부터 전달된 수행조건에 포함된 스크립트 언어를 런타임으로 바인딩하고, 수행 조건 내에 포함된 파라미터들을 기초로 수행 조건을 게임 서버(100)와 통신해나가면서 하나하나 진행해 나가고 그 결과를 분석하여 후술할 결과 제공부(240)로 전달할 수 있다. 보다 구체적으로, 도 3을 참조하여 본 발명의 일 실시예에 따른 테스트 코어부(230)의 상세 구성요소를 살펴보면, 테스트 코어부(230)는 크게 수행조건 해석수단(231), 이벤트 실행수단(232), 통신수단(233), 변환 수단(234) 및 결과 분석수단(235)를 포함할 수 있다.
테스트
코어부의
상세 구조
본 발명의 일 실시예에 따른 수행조건 해석수단(231)은, 수행조건 변환부(220)에 의해 전달받은 특정 형식의 수행 조건을 한번에, 또는 하나씩 해석하고, 이벤트 실행수단(232)를 통해 실행한다. 만일 변환된 수행조건이 XML 형식인 경우 본 수행조건 해석수단(231)은 이를 해석하기 위한 XML 파서(parser)를 포함할 수 있으나 반드시 이에 한정되는 것은 아니다. 예를 들어, 전달받은 특정 형식의 수행 조건의 일부를 해석한 결과, 게임 서버(100)의 "고스톱"게임에 유저ID "111"인 유저가 룸ID "50"에 입장하는 것이 하나의 이벤트로 되어 있는 경우, 테스트할 게임 서버인 "고스톱", 유저 ID에 "111", 입장할 룸인 룸ID에 "50"을 파라미터로 하여 게임 입장을 의미하는 특정 명령어를 수행하도록 이벤트 실행수단(232)으로 전달하게 된다. 이와 같이 수행조건 해석수단(231)과 이벤트 실행수단(232) 사이에 사용될 수 있는 특정 포맷은 자동화 테스트 시스템(200)과 게임 서버(100)간의 통신에 사용되는 바이너리 정보와 상이할 수 있다. 또한, 수행조건 해석수단(231)은 전달받은 수행 조건 내에 복수의 이벤트가 포함되어 있는 경우, 복수의 이벤트 각각에 대해 차례대로 해석하고 실행할 수 있다.
본 발명의 일 실시예에 따른 이벤트 실행수단(232)는, 수행조건 해석수단(231)에 의해 전달받은 파라미터 및/또는 특정 명령어를 이용하여, 런타임으로 바인딩된 스크립트 구문 중 해당 이벤트에 알맞은 이벤트를 포함하는 스크립트 구문으로 분기하여 이벤트를 수행한다. 런타임으로 바인딩된 스크립트 구문은 소정 스크립트를 이용하여 미리 만들어 놓은 함수, 명령어, 라이브러리, 또는 정의된 변수 등을 포함하는 광의의 의미이며, 데이터베이스(300)에 저장되어 있다가 스크립트 수행수단(232)의 호출에 의해 실행될 수 있다. 본 발명의 일 실시예에 있어 사용되는 스크립트는 루아 스크립트를 포함할 수 있으나, 반드시 이에 한정되는 것은 아니며 컴파일되고 빌드되어 사용되는 실행방식이 아닌, 인터프리터에 의해 실행되는 언어라면 모두 본 발명에 따라 사용되는 스크립트에 포함될 수 있으므로, 이벤트 실행수단(232) 역시 스크립트 구문의 실행에 필요한 인터프리터를 포함할 수 있다. 이벤트 실행수단(232)의 스크립트 구문 실행시 게임 서버(100)와의 통신이 필요한 경우, 이벤트 실행수단(232)은 통신 수단(233) 및 변환 수단(234)를 통해서 게임 서버(100)와 통신할 수 있다. 앞선 예에서 계속하여, 이벤트 실행수단(232)은 "고스톱" 게임에서 입장 이벤트를 수행하는 함수를 호출하면서 그 파라미터로 유저 ID에 "111" 및 룸ID에 "50"을 전달하여, 마치 클라이언트 컴퓨터(500)에서 게임 서버(100)로 동일한 이벤트를 수행하는 것과 같은 기능을 수행하게 된다.
또한 이벤트 실행수단(232)이 특정 이벤트를 실행한 결과에 대한 응답으로서 게임 서버(100)로부터 변환 수단(234)을 통해 변환된 데이터인 결과 값을 수신하게 되는 경우, 그 분석을 위해 결과 분석수단(235)에 통지한다. 앞선 예에서 계속하여, 유저 ID가 "111"인 유저가 룸ID가 "50"인 룸에 정상적으로 입장하였다는 것을 통지하기 위한 특정 명령어나 값, 그리고 같은 룸에 기 입장한 유저들의 유저ID, 방의 상태 등 관련된 다양한 값들이 입장 이벤트의 수행 결과로서 게임 서버(100)로부터 전달될 수 있는 바, 이벤트 실행수단(232)은 변환 수단(234)을 통해 이러한 명령어 및/또는 값들을 수신하고 그 분석을 위해 결과 분석수단(235)에 통지한다. 이와 같은 동작에 의해, 실제로 클라이언트 컴퓨터(500)가 게임 서버(100)에 접속하여 특정 이벤트를 수행하는 것과 같은 효과를 누릴 수 있다.
또한, 본 발명의 일 실시예에 따른 이벤트 실행수단(232)이 사용하는, 런타임으로 바인딩되는 스크립트 구문은 스크립트 언어로 구성되고 데이터베이스(300)에 저장되어 있으므로, 필요시 스크립트의 단순한 수정을 통한 기능 변경이 가능하고, 별도로 필요한 기능이 요청되는 경우에는 데이터베이스(300)에 단순한 추가만을 통해 별도의 컴파일 및 전체 빌드 없이도 테스터가 원하는 동작을 수행하도록 할 수 있다.
본 발명의 일 실시예에 따른 변환 수단(234)는 자동화 테스트 시스템(200)과 게임 서버(100)간의 통신을 위해 이벤트 실행수단(232)에 의해 전달받은 데이터를 게임 서버(110)로 전송하기 위해 서로간에 약속된 바이너리 정보로 변환하거나, 또는 게임 서버(100)로부터 수신된 바이너리 정보를 자동화 테스트 시스템(200)이 내부적으로 사용할 수 있는 데이터로 변환하여 이벤트 실행수단(232)으로 제공한다. 본 발명에 따른 변환 수단(234)은 클라이언트 컴퓨터(500)와 게임 서버(100)간의 통신에 사용되는 바이너리 정보의 형식과 자동화 테스트 시스템(200) 내부에서 사용되는 특정 포맷이 상이한 것을 가정하여 구현된 것으로, 만일 양자가 동일하다면 변환 수단(234)을 생략해도 무방할 것이다.
또한, 본 발명의 일 실시예에 따른 통신 수단(233)은 게임 서버(100)와의 직접적인 통신을 담당하고 변환 수단(234)에 의해 전달받은 바이너리 정보를 패킷 기반으로 전송하거나, 게임 서버(100)로부터 수신된 패킷 기반의 바이너리 정보를 수신받아 그 변환을 위해 변환 수단(234)으로 제공한다.
본 발명의 일 실시예에 따른 결과 분석수단(235)는, 이벤트 실행수단(232)으로부터의 통지를 수신하고, 게임 서버(100)로부터 수신한 결과 값을 런타임시에 해석하고, 이에 기초하여 게임 서버(100)의 결함 여부 등을 판단하는 기능을 수행한다. 구체적으로, 결과 분석수단(235)은 특정 이벤트 발생에 따른 결과를 분석하기 위한 특정 스크립트 구문에 수신한 결과 값을 파라미터로 전달하고 실행함으로써, 결과적으로 수신한 결과 값을 특정 이벤트 발생에 따른 정상적인 리턴값과 대비하여 양자가 상이한 경우 해당 이벤트에 대해 게임 서버(100)에 결함이 존재하는 것을 파악할 수 있을 것이고, 추가적으로 결과 값에 따라 어떠한 결함이 발생하는지에 대한 구체적인 내용 역시 얻을 수 있다. 다른 예에 있어서, 게임 서버(100)로 특정 이벤트를 요청하거나 특정 개수 이상의 서버 접속을 요청한 경우 특정 시간이 초과할 때까지 이에 대한 응답인 정상적인 리턴값이 수신되지 않는 경우, 해당 이벤트 또는 특정 개수 이상의 서버 접속 시도에 대해 게임 서버(100)가 결함이 존재하는 것을 파악할 수 있다.
또한, 결과 분석수단(235)은 특정 이벤트 발생시 게임 서버(100)에 결함이 발생한 것을 인지한 경우, 이를 분석하고 분석에 따른 구체적인 결함 내용을 테스터에게 제공하기 위해 결과 제공부(240)에 통지할 수 있으며, 또는 서버의 결함 여부에 관계없이 게임 서버(100)로부터의 결과값을 결과 제공부(240)에 제공할 수 있을 것이다.
본 발명의 일 실시예에 따른 결과 제공부(240)는 테스트 코어부(230)에서 수행 조건에 포함되는 특정 이벤트의 실행에 따른 결과를 수신하고, 이를 테스터에게 제공하는 기능을 수행한다. 그 일 예로, 결과 제공부(240)는 수행조건 제공부(210)가 제공하는 유저 인터페이스를 통해 수신한 결과값을 제공하거나, 또는 결과 분석수단(235)의 분석에 따른 결함 존재 여부 및/또는 구체적인 결함의 내용을 테스터에게 제공할 수 있을 것이다.
도 2에서의 수행조건 제공부(210), 수행조건 변환부(220), 테스트 코어부(230) 및 결과 분석부(240)는 물리적으로 하나의 기계 내에 구현될 수도 있고 일부 또는 그 각각이 물리적으로 다른 기계에 구현될 수도 있거나, 동일한 기능을 하는 물리적으로 복수 개 존재하는 기계가 병렬적으로 존재할 수도 있으며, 이는 도 3에 도시된 바와 같이 테스트 코어부(230) 내의 수행조건 해석수단(231), 이벤트 실행수단(232), 통신 수단(233), 변환 수단(234) 및 결과 분석수단(235) 역시 마찬가지다. 이렇듯 본 발명은 각 구성부가 설치된 기계 또는 데이터베이스의 물리적인 개수 및 위치에 한정되지 않고 다양한 방식으로 설계 변경될 수 있음은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 자명하다.
자동화 테스트 방법 예시
다음으로, 도 4를 참조하여 본 발명의 일 실시예에 따라 자동화 테스트 시스템(200)에서 수행되는 자동화 테스트 방법에 대해 설명하도록 한다.
도 4에 도시된 본 발명의 일 실시예에 따른 자동화 테스트 방법에 의하면, 자동화 테스트 시스템(200)의 수행조건 제공부(210)는 테스터에 의해 설정된 수행조건을 수신(S110)하고 수행조건 변환부(220)로 전송한다. 여기서 설정된 수행조건은 수행조건 제공부(210)에 의해 테스터에게 제공되는 유저 인터페이스 화면을 통해 테스터가 입력 또는 선택한 하나 이상의 이벤트를 포함할 수 있다. 도 5에 도시된 예시적인 화면을 참조하면, 테스터는 GameType 영역에 선택된 "Gostop"이라는 게임에 대해, A 영역에서 표시된 바와 같이 4개의 시나리오를 선택하여 수행조건으로서 설정하고 실행하고자 하는 것을 알 수 있다. 보다 구체적으로, 수행 간격, 참가하고자 하는 채널, 방의 ID, 선택된 시나리오 실패시 처리 방안, 필요한 파라미터 등 다양한 수행 조건 및 파라미터를 선택 또는 입력할 수 있는 것을 알 수 있다.
수행조건 변환부(220)는, 수행조건 제공부(210)에 의해 수신한 수행조건을 특정 포맷으로 변환(S120)하고, 테스트 코어부(230)에서 테스트할 수 있도록 전달한다. 수행조건 변환부(220)에서 변환할 수 있는 특정 포맷은 XML을 포함할 수 있으나 이에 한정되는 것은 아니다. 도 6에 도시된 예시적인 화면을 참조하면, XML 포맷으로 변환된 수행조건에는 앞서 전달받은 시나리오 및 파라미터들을 포함하고, 이를 수행하기 위해 바인딩될 구체적인 스크립트 구문을 포함하고 있는 것을 C 영역으로부터 확인할 수 있다.
다음으로, 테스트 코어부(230)의 수행조건 해석수단(231)은 단계S130을 통해 수행조건 변환부(200)에서 전달받은 수행조건의 일부 또는 전체를 해석하고, 해석된 수행조건의 실행을 위해 이벤트 실행수단(232)에 통지한다. 앞선 예에서 계속하면, 수행조건 해석수단(231)은 첫 번째 수행조건을 수행하기 위해 필요한 이벤트인, 게임 "Gostop"에 해당하는 게임 서버의 특정 채널에 접속하는 이벤트를 실행할 것을 이벤트 실행수단(232)에 통지하게 된다. 물론, 도 5 및 도 6에 도시된 바와 같이 AAAAA인 채널 이름, 그리고 그 밖의 필요한 다른 값들을 파라미터로 하여 이벤트 실행수단(232)에 함께 전달하거나 전역 변수로서 담을 수 있다.
단계S140에서, 이벤트 실행수단(232)은 이벤트를 실행하며, 이를 위해 데이터베이스(300)에 저장되어 있는, 수행조건에 포함되어 런타임시에 바인딩되는 스크립트 구문을 호출할 수 있다. 호출되는 스크립트 구문의 일 예는 도 7에 도시되는 바와 같이 스크립트 언어로 구현된 하나 이상의 함수를 포함할 수 있으며, 앞선 예에서 계속하여 게임 서버의 특정 채널에 접속하는 이벤트를 수행하기 위한 함수인 OnConnectChannel()을 실행하게 된다. 보다 구체적으로, OnConnectChannel()에서는 특정 채널에 접속하기 위해서 필요한 각각의 파라미터들을 패킷으로 세팅하여 전송하도록 하는 기능을 갖고 있다.
단계S140에 의한 이벤트 실행시 게임 서버(100)와의 통신이 필요할 수 있으며, 이 경우 이벤트 실행수단(232)은 변환 수단(234) 및 통신 수단(233)을 통해 게임 서버(100)로 변환된 바이너리 정보를 전송한다. 앞선 예에서 계속하면, 게임 서버의 특정 채널에 접속하는 이벤트를 수행하기 위해 호출한 함수 OnConnectChannel()을 게임 서버(100)로 세팅된 패킷을 전송하며, 이는 변환 수단(234)에 의해 바이너리 정보로 변환되어 통신 수단(233)을 통해 제공된다.
게임 서버(100)측에서 이벤트 실행에 따른 결과 값을 전송하는 경우, 이벤트 실행수단(232)은 통신 수단(233) 및 변환 수단(234)을 거쳐 수신한 결과 값을 수신하여 저장하고 결과 분석수단(235)에 통지(S150)하고, 결과 분석수단(235)에서는 이를 분석하여 게임 서버(100)의 결함 여부를 판단(S160)한다.
추가적으로, 단계S160에서의 판단 결과 게임 서버(100)의 결함을 인지한 경우, 결과 분석수단(235)에서는 결과 제공부(240)로 통지하여 테스터에게 제공하는 유저 인터페이스 화면을 통해 결함 발생 및 그 구체적인 결함 내용을 제공할 수 있으며, 결함 없이 정상 처리된 경우에도 그 결과를 유저 인터페이스 화면을 통해 제공할 수 있다. 그 일 예로서, 도 5의 영역 B를 참조하면, 테스터가 수행하고자 하는 각 시나리오 별로 성공한 횟수, 실패한 횟수를 포함하여 성공률이 얼마나 되는지 제공하고 있으며, 이를 통해서 테스터는 어느 시나리오에서 게임 서버의 기능에 문제 또는 이상이 있는지 확인할 수 있다. 도 5의 예는 시나리오 별로 그 결과를 제공하고 있으나, 시나리오를 해석한 각 이벤트 별로 결과를 제공할 수도 있을 것이다.
그 후, 수행조건 해석수단(231)은 단계S170을 통해 수신한 수행 조건을 종료했는지 여부를 판단하여 아직 수행 조건이 남아 있는 경우 이를 수행하기 위해 단계S130으로 돌아간다. 만일, 남아 있는 수행조건에 해당하는 이벤트가 앞서 실행된 이벤트에 따른 결과값과 연계되어 실행되는 경우에는 이벤트 실행수단(232)은 앞선 이벤트 실행에 따라 게임 서버(100)로부터 수신한 결과 값을 임시적 또는 영구적으로 저장하여 둘 수 있고, 이를 이용하여 남아 있는 수행조건을 수행할 수도 있다.
본 발명의 선호되는 실시예는 도 4를 통해서 설명하였으나, 본 발명은 설명된 실시예에 한정되지 아니하며, 통상의 기술자의 기술수준 및 그 선택에 따라 도 4에 설명된 각 단계를 취사 선택하여 새로운 실시예를 구현하거나, 또는 도 4의 실시예를 기초로 하여 부가적인 내용을 추가, 삭제, 변경하는 등의 방법으로 새로운 실시예를 구현할 수도 있으며, 이러한 실시예들 역시 본 발명 사상의 범주에 속할 수 있는 것은 주지의 사실이다.
본 발명에 따른 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(Floptical disk)와 같은 자기-광 매체(megneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동되도록 구성될 수 있으며, 그 역도 마찬가지다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
Claims (25)
- 서버의 자동화 테스트를 제공하는 방법에 있어서,
수행조건 해석 수단에 의해, 소정 수행 조건의 적어도 일부를 해석하는 단계,
이벤트 실행수단에 의해, 상기 해석된 수행 조건에 해당하는 이벤트를 실행하기 위해, 런타임으로 바인딩 된 스크립트 구문 중 상기 해석된 수행 조건에 해당하는 이벤트를 포함하는 스크립트 구문으로 분기하여 상기 이벤트를 실행하는 단계, 및
결과 분석수단에 의해, 상기 이벤트의 실행에 따른 결과 값을 서버로부터 수신하고, 상기 결과 값을 기초로 상기 서버의 결함 여부를 판단하는 단계를 포함하고,
상기 런타임으로 바인딩 된 스크립트 구문은 데이터베이스에 저장되어 스크립트 구문의 수정, 추가 또는 삭제를 통해 기능 변경하는 것을 포함하는 방법.
- 청구항 1에 있어서,
상기 수행 조건은,
수행조건 제공부에 의해, 테스터에게 제공된 유저 인터페이스 화면을 통해 수신한, 상기 테스터에 의해 설정된 하나 이상의 시나리오에 기초한 것인 방법.
- 청구항 2에 있어서,
상기 설정된 하나 이상의 특정 시나리오는, 수행조건 변환부에 의해 소정 포맷을 갖는 수행 조건으로 변환되는 방법.
- 청구항 3에 있어서,
상기 소정 포맷은 XML(eXtended Markup Language)인 방법.
- 청구항 1에 있어서,
상기 해석된 수행조건에 해당하는 이벤트는, 소정 값을 갖는 파라미터 또는 특정 명령을 수행하기 위한 명령어 중 적어도 하나인 방법.
- 청구항 1에 있어서,
상기 런타임으로 바인딩 된 스크립트 구문은 상기 이벤트 실행수단에 포함된 인터프리터에 의해 실행되는 방법.
- 청구항 6에 있어서,
상기 스크립트 구문은 루아 스크립트(Lua Script)인 방법.
- 청구항 1에 있어서,
상기 결과 분석수단에 의해 수신한 상기 결과 값은,
상기 서버로부터 수신한 바이너리 정보를 변환 수단에 의해 상기 이벤트 실행 수단 및 상기 결과 분석수단 중 적어도 하나에 의해 이용되는 특정 포맷으로 변환한 값인 방법.
- 청구항 8에 있어서,
상기 바이너리 정보는 XDR(eXternal Data Representation) 형식인 방법.
- 청구항 1에 있어서,
상기 서버의 결함 여부를 판단하는 단계를 통해 상기 서버가 결함이 있는 것으로 판단된 경우,
결과 제공부에 의해, 결함 내용을 테스터에게 제공하는 방법.
- 청구항 10항에 있어서,
상기 서버의 결함 여부의 판단은,
상기 수신한 결과 값이 정상 리턴값과 상이한 경우 또는 미리 지정된 일정 시간 내에 상기 결과 값이 수신되지 않는 경우 중 어느 하나 이상인 경우 결함으로 판단되는 방법.
- 청구항 1에 있어서,
상기 수행조건 해석수단에 의해, 수행 조건이 종료되지 않은 경우 남아있는 수행 조건에 대해 수행 조건 해석 단계로 되돌아가는 방법.
- 청구항 1 내지 12 중 어느 한 항에 기재된 방법의 각 단계를 컴퓨터 상에서 수행하기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록매체.
- 서버의 자동화 테스트를 제공하는 시스템에 있어서,
소정 수행 조건의 적어도 일부를 해석하는 수행조건 해석 수단,
상기 해석된 수행 조건에 해당하는 이벤트를 실행하기 위해, 런타임으로 바인딩 된 스크립트 구문 중 상기 해석된 수행 조건에 해당하는 이벤트를 포함하는 스크립트 구문으로 분기하여 상기 이벤트를 실행하는 이벤트 실행수단, 및
상기 이벤트의 실행에 따른 결과 값을 서버로부터 수신하고, 상기 결과 값을 기초로 상기 서버의 결함 여부를 판단하는 결과 분석수단을 포함하고,
상기 런타임으로 바인딩 된 스크립트 구문은 데이터베이스에 저장되어 스크립트 구문의 수정, 추가 또는 삭제를 통해 기능 변경하는 것을 포함하는 시스템.
- 청구항 14에 있어서,
테스터에게 유저 인터페이스 화면을 제공하고, 상기 제공된 인터페이스 화면을 통해 상기 테스터에 의해 설정된 하나 이상의 시나리오를 수신하는 수행조건 제공부를 더 포함하고,
상기 수행 조건은 상기 설정된 하나 이상의 시나리오에 기초한 시스템.
- 청구항 15에 있어서,
상기 설정된 하나 이상의 시나리오를 소정 포맷을 갖는 수행 조건으로 변환하는 수행조건 변환부를 더 포함하는 시스템.
- 청구항 16에 있어서,
상기 소정 포맷은 XML(eXtended Markup Language)인 시스템.
- 청구항 14에 있어서,
상기 해석된 수행조건에 해당하는 이벤트는, 소정 값을 갖는 파라미터 또는 특정 명령을 수행하기 위한 명령어 중 적어도 하나인 시스템.
- 청구항 14에 있어서,
상기 이벤트 실행수단은 상기 런타임으로 바인딩 된 스크립트 구문을 실행하는 인터프리터를 더 포함하는 시스템.
- 청구항 19에 있어서,
상기 스크립트 구문은 루아 스크립트(Lua Script)인 시스템.
- 청구항 14에 있어서,
상기 결과 값은, 상기 서버로부터 수신한 바이너리 정보를 변환 수단에 의해 상기 이벤트 실행 수단 및 상기 결과 분석수단 중 적어도 하나에 의해 이용되는 특정 포맷으로 변환한 값인 시스템.
- 청구항 21에 있어서,
상기 바이너리 정보는 XDR(eXternal Data Representation) 형식인 시스템.
- 청구항 14에 있어서,
상기 서버의 결함 여부를 판단하는 단계를 통해 상기 서버가 결함이 있는 것으로 판단된 경우, 결함 내용을 테스터에게 제공하는 결과 제공부를 더 포함하는 시스템.
- 청구항 23항에 있어서,
상기 서버의 결함 여부의 판단은,
상기 수신한 결과 값이 정상 리턴값과 상이한 경우 또는 미리 지정된 일정 시간 내에 상기 결과 값이 수신되지 않는 경우 중 어느 하나 이상인 경우 결함으로 판단되는 시스템.
- 청구항 14에 있어서,
상기 수행조건 해석수단은 수행 조건이 종료되지 않은 경우 남아있는 수행 조건 중 적어도 일부를 더 해석하는 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110107343A KR101565840B1 (ko) | 2011-10-20 | 2011-10-20 | 서버에 자동화 테스트를 제공하는 방법 및 시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110107343A KR101565840B1 (ko) | 2011-10-20 | 2011-10-20 | 서버에 자동화 테스트를 제공하는 방법 및 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130043311A KR20130043311A (ko) | 2013-04-30 |
KR101565840B1 true KR101565840B1 (ko) | 2015-11-13 |
Family
ID=48441567
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110107343A KR101565840B1 (ko) | 2011-10-20 | 2011-10-20 | 서버에 자동화 테스트를 제공하는 방법 및 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101565840B1 (ko) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101487192B1 (ko) * | 2013-08-19 | 2015-01-29 | 인포뱅크 주식회사 | 서버 장치 및 그의 오토사 관련 서비스 제공 방법 |
KR101654986B1 (ko) * | 2014-10-31 | 2016-09-06 | 농협은행(주) | 서버 점검 자동화 절차를 수행하는 시스템 및 방법, 이를 위한 장치 |
KR101654985B1 (ko) * | 2014-10-31 | 2016-09-06 | 농협은행(주) | 인시던트 관리 자동화 절차를 수행하는 시스템 및 방법, 이를 위한 장치 |
KR101654984B1 (ko) * | 2014-10-31 | 2016-09-22 | 농협은행(주) | 서버 기동 및 종료 자동화 절차를 수행하는 시스템 및 방법, 이를 위한 장치 |
KR101654987B1 (ko) * | 2014-10-31 | 2016-09-06 | 농협은행(주) | 보안 취약점 점검 자동화 절차를 수행하는 시스템 및 방법, 이를 위한 장치 |
CN108959000B (zh) * | 2018-06-20 | 2022-02-18 | 深圳市腾讯网络信息技术有限公司 | 一种服务器压力测试方法、***及终端 |
JP7175730B2 (ja) * | 2018-12-05 | 2022-11-21 | 株式会社ソニー・インタラクティブエンタテインメント | 信号処理装置、電子機器、センサ装置、信号処理方法およびプログラム |
CN109603154B (zh) * | 2018-12-14 | 2022-05-20 | 网易(杭州)网络有限公司 | 游戏界面测试方法、客户端、托管服务器及*** |
US11216358B2 (en) | 2019-04-12 | 2022-01-04 | GameDriver, Inc. | Video game testing and automation framework |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009009418A (ja) | 2007-06-28 | 2009-01-15 | Toshiba Corp | 検証装置および検証方法 |
-
2011
- 2011-10-20 KR KR1020110107343A patent/KR101565840B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009009418A (ja) | 2007-06-28 | 2009-01-15 | Toshiba Corp | 検証装置および検証方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20130043311A (ko) | 2013-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101565840B1 (ko) | 서버에 자동화 테스트를 제공하는 방법 및 시스템 | |
US9846638B2 (en) | Exposing method related data calls during testing in an event driven, multichannel architecture | |
US10628294B2 (en) | Mock services for software infrastructures | |
US9465718B2 (en) | Filter generation for load testing managed environments | |
US11449370B2 (en) | System and method for determining a process flow of a software application and for automatically generating application testing code | |
US6928393B2 (en) | Method and system for supporting negative testing in combinatorial test case generators | |
CN110013672B (zh) | 用于机器运行的游戏的自动化测试的方法、设备、装置以及计算机可读存储介质 | |
US20130263090A1 (en) | System and method for automated testing | |
US20100281467A1 (en) | Method and apparatus for automatic software testing | |
US20100153780A1 (en) | Techniques for generating a reusable test script for a multiple user performance test | |
US7984332B2 (en) | Distributed system checker | |
US20120072367A1 (en) | Dry-run design time environment | |
Marchetto et al. | A case study-based comparison of web testing techniques applied to AJAX web applications | |
US10229037B2 (en) | System, method, and computer program product for error code injection | |
US8543981B2 (en) | State driven test editor | |
CN110633200A (zh) | 用于测试智能合约的方法和设备 | |
Mahmud et al. | Android compatibility issue detection using api differences | |
Delahaye et al. | Selecting a software engineering tool: lessons learnt from mutation analysis | |
CN110012096A (zh) | 移动客户端服务更新管理方法、装置及*** | |
Liu | Platform-independent and tool-neutral test descriptions for automated software testing | |
CN111176981B (zh) | Android应用网络相关行为测试方法 | |
Jiang et al. | To what extent is stress testing of android TV applications automated in industrial environments? | |
RU2697951C2 (ru) | Система и способ прекращения работы функционально ограниченного приложения, взаимосвязанного с веб-сайтом, запускаемого без установки | |
CN111444108A (zh) | 一种基于s7工业协议的行为审计自动化测试方法 | |
JP2007156822A (ja) | 計算機システムの模擬アプリケーション試験装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
N231 | Notification of change of applicant | ||
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
FPAY | Annual fee payment |
Payment date: 20181001 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20190925 Year of fee payment: 5 |