KR20240039397A - 테스트를 수행하기 위한 방법 및 장치 - Google Patents

테스트를 수행하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR20240039397A
KR20240039397A KR1020220117912A KR20220117912A KR20240039397A KR 20240039397 A KR20240039397 A KR 20240039397A KR 1020220117912 A KR1020220117912 A KR 1020220117912A KR 20220117912 A KR20220117912 A KR 20220117912A KR 20240039397 A KR20240039397 A KR 20240039397A
Authority
KR
South Korea
Prior art keywords
target
api
information
language
value
Prior art date
Application number
KR1020220117912A
Other languages
English (en)
Inventor
윤 리
Original Assignee
쿠팡 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 쿠팡 주식회사 filed Critical 쿠팡 주식회사
Priority to KR1020220117912A priority Critical patent/KR20240039397A/ko
Priority to PCT/KR2022/014264 priority patent/WO2024063183A1/ko
Publication of KR20240039397A publication Critical patent/KR20240039397A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/454Multi-language systems; Localisation; Internationalisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

전자 장치에서 테스트를 수행하는 방법이 개시된다. 구체적으로, 전자 장치에서 테스트를 수행하는 방법은 대상 API 및 대상 API와 관련된 테스트에 대한 대상 스크립트를 확인하는 단계; 대상 API에 대응하는 대상 도메인에 대한 정보와 대상 API에 대응하는 대상 언어에 대한 정보를 포함하는 대상 스크립트에 대한 설정 정보를 확인하는 단계; 대상 도메인에 대한 정보 및 대상 언어에 대한 정보를 데이터 베이스로 전송하는 단계; 대상 API에 대한 API 리퀘스트에 포함되는 키를 확인하는 단계; 데이터 베이스로부터 수신된 데이터 및 대상 언어에 대한 정보에 기반하여, 키를 대응되는 대상 언어의 값으로 대체하는 단계; 대상 언어의 값을 포함하는 변경된 API 리퀘스트를 확인하는 단계; 및 변경된 API 리퀘스트를 서버로 전송하는 단계를 포함할 수 있다.

Description

테스트를 수행하기 위한 방법 및 장치{METHOD AND APPARTUS FOR PERFORMING A TEST}
본 명세서의 실시 예는 테스트를 수행하기 위한 방법 및 장치에 관한 것이다. 본 명세서의 실시 예는 데이터 베이스로부터 수신된 데이터 및 대상 언어에 대한 정보에 기반하여, API 리퀘스트에 포함되는 키를 대상 언어의 값(value)으로 대체할 수 있고, 대상 언어의 값을 포함하는 변경된 API 리퀘스트를 서버로 전송하여 테스트를 수행하기 위한 방법 및 이에 대한 장치에 관한 것이다.
백엔드와 프론트엔드 사이의 정보 교환은 API(Application Programming Interface)에 의해 수행되며, 다양한 국적의 사용자에게 다양한 언어로 구성된 서비스를 제공하기 위해서는 다양한 언어에 대한 API의 소스 코드를 작성할 필요가 있다. 다만, 다양한 언어에 대한 API의 소스 코드를 작성하는 것은 반복적인 작업으로 시간이 많이 소요될 우려가 있고, 서비스의 확장에 따라 새로운 언어의 서비스를 제공할 때마다 소스 코드를 전면적으로 작성해야 하는 비효율이 있었다. 따라서, 이와 같은 문제를 해결하기 위한 방법 및 장치가 요구된다.
본 개시는 상술한 문제점을 해결하기 위해 제안된 것으로, 테스트를 수행하기 위한 방법 및 장치를 제공하는데 있다.
보다 구체적으로 본 개시는 데이터 베이스로부터 수신된 데이터 및 대상 언어에 대한 정보에 기반하여, API 리퀘스트에 포함되는 키를 대상 언어의 값으로 대체할 수 있다. 이에 따라, 대상 언어의 값을 포함하는 변경된 API 리퀘스트를 서버에 전송함으로써, 테스트를 수행하기 위한 방법 및 이를 위한 장치를 제공하는 것을 목적으로 한다.
본 실시 예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 이하의 실시 예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
상술한 과제를 달성하기 위한 기술적 수단으로서, 본 개시의 제1측면에 따른 전자 장치에서 테스트를 수행하는 방법은 대상 API 및 대상 API와 관련된 테스트에 대한 대상 스크립트를 확인하는 단계; 대상 API에 대응하는 대상 도메인에 대한 정보와 대상 API에 대응하는 대상 언어에 대한 정보를 포함하는 대상 스크립트에 대한 설정 정보를 확인하는 단계; 대상 도메인에 대한 정보 및 대상 언어에 대한 정보를 데이터 베이스로 전송하는 단계; 대상 API에 대한 API 리퀘스트에 포함되는 키를 확인하는 단계; 데이터 베이스로부터 수신된 데이터 및 대상 언어에 대한 정보에 기반하여, 키를 대응되는 대상 언어의 값으로 대체하는 단계; 대상 언어의 값을 포함하는 변경된 API 리퀘스트를 확인하는 단계; 및 변경된 API 리퀘스트를 서버로 전송하는 단계를 포함할 수 있다.
일 실시 예에 따르면, 설정 정보를 확인하는 단계는 대상 스크립트에 대한 설정 페이지를 통해, 대상 스크립트에 대한 설정 정보를 확인하는 단계를 포함할 수 있다.
일 실시 예에 따르면, 설정 정보는 대상 도메인에 대한 정보, 대상 언어에 대한 정보 및 테스트의 수행에 이용되는 디바이스의 타입에 대한 정보를 포함하는 것을 특징으로 할 수 있다.
일 실시 예에 따르면, 데이터는 키-값에 대한 매핑 데이터인 것을 특징으로 할 수 있다.
일 실시 예에 따르면, 키-값에 대한 매핑 데이터는 대상 도메인에 대응하는 키-값에 대한 매핑 데이터로, 설정된 주기에 따라 업데이트되어 데이터 베이스에 저장되는 것을 특징으로 할 수 있다.
일 실시 예에 따르면, 전자 장치에서 테스트를 수행하는 방법은 서버로부터 변경된 API 리퀘스트에 대응하는 API 리스펀스를 확인하는 단계; 및 API 리퀘스트, 변경된 API 리퀘스트 및 API 리스펀스에 대한 페이지를 제공하는 단계를 더 포함할 수 있다.
일 실시 예에 따르면, 전자 장치에서 테스트를 수행하는 방법은 API 리퀘스트에 포함되는 키 중 제1 키를 확인하는 단계; 제1 키에 대응하는 제1 검색 범위 및 제1 함수에 대한 정보를 확인하는 단계; 제1 검색 범위에 기반하여, API 리스펀스에 포함되는 제1 요소를 확인하는 단계; 및 제1 키에 대응하는 대상 언어의 제1 값과 제1 요소가 제1 함수를 만족하는지 여부를 확인하는 단계를 더 포함할 수 있다.
일 실시 예에 따르면, 전자 장치에서 테스트를 수행하는 방법은 제1 값과 제1 요소가 제1 함수를 만족하지 않으면, 대상 API에 대한 대체 언어에 대한 정보를 확인하는 단계; 데이터 및 대체 언어에 대한 정보에 기반하여, 대상 API에 포함되는 키를 대응되는 대체 언어의 값으로 대체하는 단계; 대체 언어의 값을 포함하는 재 변경된 API 리퀘스트를 확인하는 단계; 및 재 변경된 API 리퀘스트를 서버로 전송하는 단계를 더 포함할 수 있다.
일 실시 예에 따르면, 전자 장치에서 테스트를 수행하는 방법은 제1 값과 제1 요소가 제1 함수를 만족하지 않으면, 데이터를 업데이트할 것을 요청하는 단계를 더 포함할 수 있다.
일 실시 예에 따르면, 페이지를 제공하는 단계는 제1 값과 제1 요소가 제1 함수를 만족하는지 여부에 대한 결과 정보를 포함하는 결과 페이지를 제공하는 단계를 포함하고, 결과 정보는 제1 값과 제1 요소가 제1 함수를 만족하는지 여부에 따라 상이하게 표시되는 것을 특징으로 할 수 있다.
일 실시 예에 따르면, 전자 장치에서 테스트를 수행하는 방법은 API 리스펀스의 경로를 확인하는 단계; 및 테스트에 이어 다른 테스트가 수행되는 경우, 확인된 경로를 제공하는 단계를 더 포함할 수 있다.
일 실시 예에 따르면, 전자 장치에서 테스트를 수행하는 방법은 테스트와 언어에 대한 설정 정보가 상이한 제1 테스트를 확인하는 단계; 제1 테스트의 제1 언어에 대한 정보를 확인하는 단계; 데이터 및 대상 언어에 대한 정보에 기반하여, 키를 대응되는 제1 언어의 값으로 대체하는 단계; 제1 언어의 값을 포함하는 제1 변경된 API 리퀘스트를 확인하는 단계; 및 제1 변경된 API 리퀘스트를 서버로 전송하는 단계를 더 포함할 수 있다.
일 실시 예에 따르면, 대상 언어가 복수 개의 언어를 포함할 때, 변경된 API 리퀘스트를 확인하는 단계는 복수 개의 언어에 대응하는 복수 개의 언어의 값을 각각 포함하는 복수 개의 API 리퀘스트를 확인하는 단계를 포함하고, 변경된 API 리퀘스트를 서버로 전송하는 단계는 복수 개의 API 리퀘스트를 서버로 전송할 수 있다.
일 실시 예에 따르면, 전자 장치에서 테스트를 수행하는 방법은 서버로부터 복수 개의 API 리퀘스트에 대응하는 복수 개의 API 리스펀스를 확인하는 단계; 및 API 리퀘스트, 복수 개의 API 리퀘스트 및 복수 개의 API 리스펀스에 대한 페이지를 제공하는 단계를 더 포함할 수 있다.
본 개시의 제2측면에 따른 페이지에 대한 리포트를 제공하기 위한 전자 장치 트랜시버; 하나 이상의 명령어를 저장하는 스토리지; 및 대상 API 및 대상 API와 관련된 테스트에 대한 대상 스크립트를 확인하고, 대상 API에 대응하는 대상 도메인에 대한 정보와 대상 API에 대응하는 대상 언어에 대한 정보를 포함하는 대상 스크립트에 대한 설정 정보를 확인하고, 대상 도메인에 대한 정보 및 대상 언어에 대한 정보를 데이터 베이스로 전송하고, 대상 API에 대한 API 리퀘스트에 포함되는 키를 확인하고, 데이터 베이스로부터 수신된 데이터 및 대상 언어에 대한 정보에 기반하여, 키를 대응되는 대상 언어의 값으로 대체하고, 대상 언어의 값을 포함하는 변경된 API 리퀘스트를 확인하고, 및 변경된 API 리퀘스트를 서버로 전송하는 프로세서를 포함할 수 있다.
본 개시의 제3측면에 따른 기록매체는 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 비일시적 기록매체일 수 있다.
본 명세서의 실시 예에 따르면, 전자 장치(100)는 데이터 베이스로부터 수신된 데이터 및 대상 언어에 대한 정보에 기반하여, API 리퀘스트에 포함되는 키를 대상 언어의 값(value)으로 대체할 수 있고, 대상 언어의 값을 포함하는 변경된 API 리퀘스트를 서버로 전송할 수 있다. 즉, 키를 포함하는 대상 API의 API 리퀘스트를 작성하고, 키를 사용자가 선택한 대상 언어에 따른 값으로 대체함으로써, 다양한 언어에 대한 API 리퀘스트를 용이하게 생성할 수 있다. 또한, 서비스의 확장에 따라 새로운 언어의 서비스를 제공할 필요가 있는 경우, 키와 대응하는 새로운 언어의 값을 데이터 베이스에 저장된 데이터에 업데이트함으로써, 새로운 언어에 대한 API 리퀘스트 또한 효율적으로 생성할 수 있다. 따라서, 새로운 언어에 대한 API 리퀘스트에 따른 테스트를 신속하게 수행할 수 있다.
발명의 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 청구범위의 기재로부터 당해 기술 분야의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 다양한 실시 예에 따른 전자 장치가 테스트를 수행하는 방법이 구현될 수 있는 시스템을 설명하기 위한 도면이다.
도 2는 전자 장치가 테스트를 수행하는 방법을 나타낸 흐름도이다.
도 3은 대상 API와 테스트에 대한 대상 스크립트를 설명하기 위한 도면이다.
도 4는 대상 API의 API 리퀘스트에 포함되는 키를 편집하는 페이지를 설명하기 위한 도면이다.
도 5는 전자 장치(100)가 수신한 키-값에 대한 데이터를 설명하기 위한 도면이다.
도 6은 데이터 베이스에 저장된 키-값에 대한 데이터에 대한 소스 코드를 설명하기 위한 도면이다.
도 7은 대상 API에 대한 설정 정보를 설정하는 페이지를 설명하기 위한 도면이다.
도 8은 테스트에 대한 설정 정보를 설정하는 상세 페이지를 설명하기 위한 도면이다.
도 9는 대상 API와 관련된 테스트에 대한 결과 정보를 포함하는 페이지를 설명하기 위한 도면이다.
도 10은 대상 API와 관련된 테스트의 결과 정보를 포함하는 상세 페이지를 설명하기 위한 도면이다.
도 11은 대상 API와 관련된 테스트의 결과 정보를 포함하는 페이지를 설명하기 위한 도면이다.
도 12는 Json path tool에 대한 상세 페이지를 설명하기 위한 도면이다.
도 13은 일 실시 예에 따른 Multi-Language Design Architecture(1300)을 설명하기 위한 도면이다.
도 14는 일 실시 예에 따른 테스트를 수행하기 위한 전자 장치를 도식화한 블록도이다.
실시 예들에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 “포함”한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 “...부”, “...모듈” 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
명세서 전체에서 기재된 “a, b, 및 c 중 적어도 하나”의 표현은, ‘a 단독’, ‘b 단독’, ‘c 단독’, ‘a 및 b’, ‘a 및 c’, ‘b 및 c’, 또는 ‘a,b,c 모두’를 포괄할 수 있다.
이하에서 언급되는 "단말"은 네트워크를 통해 서버나 타 단말에 접속할 수 있는 컴퓨터나 휴대용 단말로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(desktop), 랩톱(laptop) 등을 포함하고, 휴대용 단말은 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, IMT(International Mobile Telecommunication), CDMA(Code Division Multiple Access), W-CDMA(W-Code Division Multiple Access), LTE(Long Term Evolution) 등의 통신 기반 단말, 스마트폰, 태블릿 PC 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있다.
아래에서는 첨부한 도면을 참고하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.
이하, 본 발명의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.
실시 예를 설명함에 있어서 본 발명이 속하는 기술 분야에 익히 알려져 있고 본 발명과 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다. 이는 불필요한 설명을 생략함으로써 본 발명의 요지를 흐리지 않고 더욱 명확히 전달하기 위함이다.
마찬가지 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시되었다. 또한, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. 각 도면에서 동일한 또는 대응하는 구성요소에는 동일한 참조 번호를 부여하였다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
도 1은 다양한 실시 예에 따른 전자 장치가 테스트를 수행하는 방법이 구현될 수 있는 시스템을 설명하기 위한 도면이다.
도 1을 참조하면, 다양한 실시 예에 따른 시스템(10)은 다양한 종류의 장치들에 의해 구현될 수 있다. 예를 들어, 시스템(10)은 전자 장치(100), 서버(110) 및 데이터 베이스(120)를 포함할 수 있다. 도1에 도시된 시스템(10)은 본 실시 예와 관련된 구성요소들만 도시되어 있다. 따라서, 도 1에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시 예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
전자 장치(100), 서버(110) 및 데이터 베이스(120) 각각은 트랜시버, 스토리지 및 프로세서를 포함할 수 있다. 또한, 전자 장치(100), 서버(110) 및 데이터 베이스(120) 각각은 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어, 또는, 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 한편 실시 예 전반에서 전자 장치(100), 서버(110) 및 데이터 베이스(120) 각각은 분리된 장치 또는 서버로 언급되나 이는 논리적으로 나누어진 구조일 수 있으며, 이들 중 적어도 일부가 하나의 장치 또는 서버에서 분리된 기능에 의해 구현될 수 있다.
일 실시 예에 따르면, 전자 장치(100), 서버(110) 및 데이터 베이스(120)는 네트워크 서버로 구현되는 다수의 컴퓨터 시스템 또는 컴퓨터 소프트웨어를 포함할 수 있다. 예를 들면 전자 장치(100), 서버(110) 및 데이터 베이스(120) 중 적어도 일부는 인트라넷 또는 인터넷과 같은 컴퓨터 네트워크를 통해 다른 네트워크 서버와 통신할 수 있는 하위 장치와 연결되어 작업 수행 요청을 접수하고, 그에 대한 작업을 수행하여 수행 결과를 제공하는 컴퓨터 시스템 및 컴퓨터 소프트웨어를 지칭할 수 있다. 이외에도, 전자 장치(100), 서버(110) 및 데이터 베이스(120) 중 적어도 일부는 네트워크 서버 상에서 동작할 수 있는 일련의 응용 프로그램과, 내부 혹은 연결된 다른 노드에 구축되어 있는 각종 데이터베이스를 포함하는 광의의 개념으로 이해될 수 있다. 예컨대, 전자 장치(100), 서버(110) 및 데이터 베이스(120) 중 적어도 일부는 도스(DOS), 윈도우(Windows), 리눅스(Linux), 유닉스(UNIX), 또는 맥OS(MacOS) 등의 운영 체제에 따라 다양하게 제공되는 네트워크 서버 프로그램을 이용하여 구현될 수 있다.
전자 장치(100), 서버(110) 및 데이터 베이스(120)는 네트워크(미도시)를 통해서 서로 통신할 수 있다. 네트워크는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 부가가치 통신망(Value Added Network; VAN), 이동 통신망(mobile radio communication network), 위성 통신망 및 이들의 상호 조합을 포함하며, 도 1에 도시된 각 네트워크 구성 주체가 서로 원활하게 통신을 할 수 있도록 하는 포괄적인 의미의 데이터 통신망이며, 유선 인터넷, 무선 인터넷 및 모바일 무선 통신망을 포함할 수 있다. 무선 통신은 예를 들어, 무선 랜(Wi-Fi), 블루투스, 블루투스 저 에너지(Bluetooth low energy), 지그비, WFD(Wi-Fi Direct), UWB(ultra wideband), 적외선 통신(IrDA, infrared Data Association), NFC(Near Field Communication) 등이 있을 수 있으나, 이에 한정되는 것은 아니다.
일 실시 예에 따르면, 전자 장치(100)는 대상 API 및 대상 API와 관련된 테스트에 대한 대상 스크립트를 확인하고, 대상 API에 대응하는 대상 도메인에 대한 정보와 대상 API에 대응하는 대상 언어에 대한 정보를 포함하는 대상 스크립트에 대한 설정 정보를 확인하고, 대상 도메인에 대한 정보 및 대상 언어에 대한 정보를 데이터 베이스(120)로 전송하고, 대상 API에 대한 API 리퀘스트에 포함되는 키를 확인하고, 데이터 베이스로부터 수신된 데이터 및 대상 언어에 대한 정보에 기반하여, 키를 대응되는 대상 언어의 값으로 대체하고, 대상 언어의 값을 포함하는 변경된 API 리퀘스트를 확인하고, 및 변경된 API 리퀘스트를 서버(110)로 전송할 수 있다. 여기서, 데이터 베이스(120)는 1) 각각의 언어 및 2) 도메인에 따른 키-값에 대한 데이터를 저장할 수 있고, 데이터 베이스(120)에 저장된 키-값에 대한 데이터는 주기적으로 업데이트될 수 있다. 또한, 서버(110)는 전자 장치(100)와 API 리스펀스 및 API 리퀘스트를 송수신하는 서비스 서버를 나타낼 수 있다.
API 호출을 통해 사용자의 언어 설정에 따라, 다양한 언어로 구성된 페이지 등을 제공할 필요가 있을 수 있다. 이때, 페이지에 포함되는 이미지, 동영상 등을 제외한 텍스트를 사용자의 언어 설정에 따라 변경함으로써, 다양한 언어로 구성된 페이지를 효과적으로 제공할 수 있다. 구체적으로, 대상 API와 대응되는 대상 언어를 확인하면, 전자 장치(100)는 데이터 베이스로부터 수신된 데이터 및 대상 언어에 대한 설정 정보에 기반하여, 대상 API에 포함되는 키를 대응되는 대상 언어의 값으로 대체할 수 있다. 또한, 대상 API와 대응되는 다른 제2 언어를 확인하면, 전자 장치(100)는 대상 API에 포함되는 키를 대응되는 제2 언어의 값으로 대체할 수 있다. 이때, 대상 언어의 값을 포함하는 변경된 API 리퀘스트에 따른 페이지와 제2 언어의 값을 포함하는 제2 변경된 API 리퀘스트에 따른 제2 페이지는 이미지, 동영상 등의 리소스는 동일하지만, 텍스트가 각각 대상 언어 및 제2 언어로 차이가 있는 페이지일 수 있다. 이러한 방식을 통해, 전자 장치(100)는 다양한 언어로 구성된 페이지를 효율적으로 제공할 수 있다. 이에 대한 구체적인 실시 예는 하기에서 자세히 살펴보기로 한다.
도 2는 전자 장치가 테스트를 수행하는 방법을 나타낸 흐름도이다.
도 2를 참조하면, 전자 장치가 테스트를 수행하는 각 동작은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해되는 범위 내에서 일부 동작이 변경, 치환되거나 동작 간의 일부 순서가 변경될 수 있음은 자명하게 이해될 수 있다.
단계 S210에서, 전자 장치(100)는 대상 API 및 대상 API와 관련된 테스트에 대한 대상 스크립트를 확인할 수 있다.
일 실시 예에 따르면, 전자 장치(100)는 대상 API를 확인할 수 있다. 여기서, 대상 API는 서버로 호출하는 대상이 되는 API(Application Programming Interface)일 수 있다. 또한, 전자 장치(100)는 대상 API와 관련된 테스트에 대한 대상 스크립트를 확인할 수 있다. 여기서, 대상 스크립트는 전자 장치(100)와 대상 API와 관련된 테스트와 관련하여 제공하는 페이지를 포함할 수 있다. 보다 상세하게는, 대상 스크립트는 테스트와 관련된 설정 정보를 설정하는 상세 페이지를 포함할 수 있다.
S220에서, 전자 장치(100)는 대상 API에 대응하는 대상 도메인에 대한 정보와 대상 API에 대응하는 대상 언어에 대한 정보를 포함하는 대상 스크립트에 대한 설정 정보를 확인할 수 있다.
일 실시 예에 따르면, 전자 장치(100)는 테스트와 관련된 설정 정보를 설정하는 상세 페이지를 통해 대상 스크립트에 대한 설정 정보를 확인할 수 있다. 여기서, 대상 스크립트에 대한 설정 정보는 대상 API에 대응하는 대상 도메인에 대한 정보 및 대상 언어에 대한 정보뿐만 아니라 테스트의 수행에 이용되는 디바이스의 타입에 대한 정보도 포함할 수 있다.
여기서, 대상 도메인에 대한 정보는 대상 도메인에 대한 정보 및 대상 도메인의 테스트에 대응하는 프로젝트에 대한 정보를 포함할 수 있다. 데이터 베이스(120)는 대상 도메인 및 프로젝트 별로 분리하여 키-값에 대한 데이터를 저장할 수 있다. 이때, 데이터 베이스(120)는 대상 도메인 및 프로젝트 별로 분리하여 키-값에 대한 데이터를 저장한 바, 대상 도메인에서의 프로젝트에 대응하는 키-값에 대한 데이터는 대상 도메인에서의 프로젝트에 최적화된 값을 포함하는 데이터일 수 있다. 이때, 전자 장치(100)는 대상 도메인에 대한 정보 및 대상 도메인의 테스트에 대응하는 프로젝트에 대한 정보를 전송함에 따라, 실행되는 테스트에 가장 적합한 키-값에 대한 매핑 데이터를 수신할 수 있다. 즉, 대상 도메인에 대한 정보는 대상 도메인에 대한 정보 및 대상 도메인의 테스트에 대응하는 프로젝트에 대한 정보를 포함할 때, 전자 장치(100)가 데이터 베이스(120)로부터 수신하는 데이터는 대상 도메인에서의 테스트와 관련하여 데이터 베이스(120)에 저장된 키-값에 대한 매핑 데이터일 수 있다.
단계 S230에서, 전자 장치(100)는 대상 도메인에 대한 정보 및 대상 언어에 대한 정보를 데이터 베이스로 전송할 수 있다.
일 실시 예에 따르면, 전자 장치(100)는 대상 도메인에 대한 정보 및 대상 언어에 대한 정보를 데이터 베이스(120)로 전송할 수 있다. 보다 상세하게는, 전자 장치(100)는 대상 도메인에 대한 정보 및 대상 언어에 대한 정보를 Mysql을 포함하는 제1 데이터 베이스로 전송하고, 제1 데이터 베이스는 대상 도메인 정보에 기반하여 데이터 베이스(120)에 포함되는 키-값에 대한 데이터를 검출할 수 있다. 데이터 베이스(120)는 Mongo DB를 포함할 수 있고, 데이터 베이스(120)에 포함된 키-값에 대한 데이터는 설정된 주기에 따라 동기화되는 것을 특징으로 할 수 있다. 또한, 키-값에 대한 데이터는 도메인에 따라 분리되어 데이터 베이스(120)에 저장되어 있는 것을 특징으로 할 수 있다. 여기서, 키는 개발자에 의해 설정된 임의의 문자열일 수 있고, 값은 키와 대응되는 다양한 언어에 대한 값으로 번역자 등에 의해 검증된 값일 수 있다.
단계 S240에서, 전자 장치(100)는 대상 API에 대한 API 리퀘스트에 포함되는 키를 확인할 수 있다.
다양한 언어를 사용하는 사용자에게 서비스를 제공하는 트렌드에 따라, 대상 API를 다양한 언어로 복수 개를 작성하는 것은 작업의 효율 측면에서 비효율적일 수 있다. 보다 상세하게는 새로운 언어로 서비스를 확장할 때, 대상 API를 새로운 언어로 다시 작성해야 하는 부담이 있었다. 이에 따라, 언어가 달라짐에 따라 대상 API에서 변경되는 부분을 키로 작성하면, 키를 대상 언어로 작성된 값으로 변경하는 방식으로 API 리퀘스트를 효율적으로 변경할 수 있다.
일 실시 예에 따른 전자 장치(100)는 대상 API에 대한 API 리퀘스트에 포함되는 키를 설정하는 페이지를 제공할 수 있다. 페이지를 통해, 사용자는 API 리퀘스트에 포함되는 파라미터, 리퀘스트 헤더 및 리퀘스트 바디 각각에 대해 변경의 대상이 되는 키에 대한 설정 정보를 편집할 수 있다. 보다 상세하게는, 키에 대한 설정 정보는 키의 이름에 대한 정보 및 키에 대응하는 제1 값에 대한 설정 정보를 포함할 수 있다. 여기서, 키에 대응하는 제1 값에 대한 설정 정보는 데이터 베이스(120)를 통해 확인된 키에 대응하는 값에 대한 정보와 상이할 때, 사용되는 정보일 수 있다. 따라서, 키에 대응하는 제1 값에 대한 설정 정보가 설정되지 않으면, 전자 장치(100)는 데이터 베이스(120)를 통해 확인된 키에 대응하는 값에 대한 정보를 이용할 수 있다.
일 실시 예에 따르면, 전자 장치(100)는 대상 API에 대응하는 API 리퀘스트에 포함되는 파라미터, 헤더 및 바디에 포함되는 키를 각각 확인할 수 있다.
단계 S250에서, 전자 장치(100)는 데이터 베이스로부터 수신된 데이터 및 대상 언어에 대한 정보에 기반하여, 키를 대응되는 대상 언어의 값으로 대체할 수 있다.
일 실시 예에 따르면, 전자 장치(100)는 전송에 대응하여 데이터 베이스(120)로부터 데이터를 수신할 수 있다. 예를 들어, 데이터는 키-값의 매핑 관계를 포함하는 데이터일 수 있다. 다만 이에 한정되는 것은 아니고, 전자 장치(100)는 API 리퀘스트에 포함되는 키에 대한 정보를 데이터 베이스(120)로 더 전송할 수 있고, 데이터 베이스(120)로부터 키에 대응하는 값에 대한 정보를 수신할 수 있다. 또한, 데이터는 대상 도메인에서의 대상 언어에 대응하는 키-값에 대한 데이터일 수 있으나, 이에 한정되는 것은 아니고 데이터는 대상 도메인에서의 키-값에 대한 데이터를 모두 포함할 수도 있다. 전자 장치(100)는 데이터 베이스(120)로부터 수신된 데이터 및 대상 언어에 대한 정보에 기반하여, API 리퀘스트에 포함되는 키를 대상 언어의 값으로 대체할 수 있다.
단계 S260에서, 전자 장치(100)는 대상 언어의 값을 포함하는 변경된 API 리퀘스트를 확인할 수 있다.
일 실시 예에 따르면, 전자 장치(100)는 키를 대상 언어의 값으로 대체함에 따라 변경된 API 리퀘스트를 확인할 수 있다. 여기서, 변경된 API 리퀘스트는 키가 대상 언어의 값으로 변경된 API 리퀘스트일 수 있고, 대상 언어의 텍스트로 작성된 페이지를 호출하기 위한 리퀘스트일 수 있다.
여기서, 변경된 API 리퀘스트는 데이터 베이스(120)로부터 수신된 데이터 및 스크립트에 대한 설정 정보에 기반으로 확인됨에 따라, 서버(110)로 전송되는 것을 특징으로 할 수 있다.
단계 S270에서, 전자 장치(100)는 변경된 API 리퀘스트를 서버로 전송할 수 있다.
일 실시 예에 따르면, 전자 장치(100)는 변경된 API 리퀘스트를 서버(110)로 전송할 수 있고, 서버(110)로부터 변경된 API 리퀘스트에 대응하는 API 리스펀스를 수신할 수 있다. 이에 따라, 전자 장치(100)는 API 리퀘스트, 변경된 API 리퀘스트 및 API 리스펀스를 포함하는 페이지를 제공할 수 있다. API 리퀘스트, 변경된 API 리퀘스트 및 API 리스펀스는 Json 형식을 따를 수 있으나, 이에 한정되는 것은 아니다.
또한, 전자 장치(100)는 API 리스펀스가 적합한지 여부를 확인할 수 있다. 보다 상세하게는, 전자 장치(100)는 API 리퀘스트에 포함되는 키 중 제1 키를 확인하고, 제1 키에 대응하는 제1 검색 범위 및 제1 함수에 대한 정보를 확인하고, 제1 검색 범위에 기반하여, API 리스펀스에 포함되는 제1 요소를 확인하고, 및 제1 키에 대응하는 대상 언어의 제1 값과 제1 요소가 제1 함수를 만족하는지 여부를 확인함으로써, API 리스펀스가 적합한지 여부를 확인할 수 있다. 이에 대한 구체적인 실시 예는 아래에서 자세히 살펴보기로 한다.
도 3은 대상 API와 테스트에 대한 대상 스크립트를 설명하기 위한 도면이다.
도 3을 참조하면, 페이지(300)는 대상 API 및 대상 API에 대응하는 대상 스크립트를 포함할 수 있다. 예를 들어, 페이지(300)의 대상 API의 URL 정보(330)는 'Get/api/app/v1/modules/search-home'일 수 있고, 도 3의 대상 API는 도메인이 'srp'(310), 'modular_search'(311)인 API일 수 있다.
또한, 페이지(300)는 대상 API와 관련된 테스트에 대한 대상 스크립트(320)를 포함할 수 있다. 여기서, 대상 스크립트(320)는 대상 API에 대응하는 설정 정보를 설정하는 페이지를 포함할 수 있다. 구체적으로, 대상 스크립트는 API 리퀘스트의 파라미터, 헤더 및 바디에 대하 페이지를 포함하 수 있다.
도 4는 대상 API의 API 리퀘스트에 포함되는 키를 편집하는 페이지를 설명하기 위한 도면이다.
페이지(400)는 API의 URL이 'Get/api/app/v1/modules/search-home'인 대상 API의 API 리퀘스트에 포함되는 키를 편집하기 위한 유저 인터페이스를 나타내고 있다. 예를 들어, 페이지(400)는 API 리퀘스트의 파라미터(도 4에는 Params으로 표시되어 있다.), API 리퀘스트의 헤더 및 API 리퀘스트의 바디에 포함되는 키를 편집하는 페이지를 각각 제공할 수 있다. 도 4를 참조하면, 페이지(400)는 API 리퀘스트의 Headers(401)에 포함되는 키에 대한 정보를 나타내는 페이지일 수 있다. 또한, 페이지(400)은 Platform을 호출하는 mock server에 대한 페이지인 step mock을 포함할 수 있다.
전자 장치(100)는 다음과 같이 다양한 방법에 따라, 대체의 대상이 되는 키를 확인할 수 있다.
1) 일 실시 예에 따르면, 전자 장치(100)는 데이터 베이스(120)로부터 수신된 키-값에 대한 데이터에 기반하여, 키-값에 대한 데이터에 포함된 키를 이용하여 API 리퀘스트에 포함되는 키를 확인할 수 있다. 보다 상세하게는, 전자 장치(100)는 키-값에 대한 데이터에 포함된 키와 동일한 요소를 API 리퀘스트에 포함되는 키로 확인할 수 있다. 이에 따라, 전자 장치(100)는 API 리퀘스트에 포함되는 키를 대응되는 대상 언어의 값으로 변환할 수 있다.
2) 다만, 키 값 중 테스트하는 사용자의 정보에 따라 서로 다른 대상 언어의 값으로 변환되어야 하는 키가 있을 수 있고, 변환의 대상이 되는 키 값을 임의로 선택할 필요가 있을 수 있다. 이에 따라, 일 실시 예에 따른 전자 장치(100)는 API 리퀘스트의 헤더 및 API 리퀘스트의 바디에 포함되는 키를 편집하는 페이지를 각각 제공할 수 있다. 예를 들어, 대상 API의 API 리퀘스트의 헤더는 5개의 키를 포함할 수 있다.
예를 들어, 키 중 'Coupang-App'(410)의 값은 'auto'(411)일 수 있다. 이때, 설정된 값이 'auto'(411)이면, 전자 장치(100)는 'Coupang-App'(410)의 값을 디폴트 값으로 확인할 수 있다. 보다 상세하게는, 전자 장치(100)는 데이터 베이스(120)에 저장된 키-값에 매핑 데이터에 기반하여, 'Coupang-App'에 대응하는 값을 확인할 수 있다. 전자 장치(100)는 대상 API의 도메인인 srp 및 modular-search에 대한 키-값에 대한 매핑 정보를 포함하는 상세 페이지에 대한 엔트리 포인트인 아이콘(430)을 제공할 수 있다.
예를 들어, 키 중 'account'(420)의 값은 'userA@coupang.com'(421)일 수 있다. 설정된 값인 'userA@coupang.com'(421)이 키-값에 대한 매핑 데이터를 이용하여 확인된 'account'(420)에 대응하는 값과 상이할 수 있다. 이때, 전자 장치(100)는 키-값에 대한 매핑 데이터에 기반하여 확인된 데이터가 아닌 사용자가 설정한 'userA@coupang.com'(421)을 키인 'account'(420)의 값으로 확인할 수 있다. 즉, 키-값에 대한 매핑 데이터에 포함되는 키이더라도, API 리퀘스트에 포함되는 키를 편집하는 페이지를 포함되지 않으면 변환의 대상에서 제외될 수 있다.
도 5는 전자 장치(100)가 수신한 키-값에 대한 데이터를 설명하기 위한 도면이다.
도 5를 참조하면, 데이터 베이스(120)로부터 수신한 키-값에 대한 데이터는 키 및 각각의 언어로 작성된 복수 개의 값에 대한 정보를 포함하는 매트릭스 형태의 정보일 수 있다. 여기서, 데이터 베이스(120)로부터 수신한 키-값에 대한 데이터는 대상 API의 대상 도메인인 'Project A'(505)에 대응하는 키-값에 대한 데이터일 수 있다. 또한, 키-값에 대한 데이터 중 키는 개발자에 의해 명명될 수 있고, 다양한 언어의 값은 사용자, 번역자 등에 의해 확인될 수 있다.
예를 들어, 키가 'coupang-collection-title'일 때, KR에 대응하는 값은'상품 목록'(520)일 수 있고, TW에 대응하는 값은 '商品列表'(530)일 수 있으며, US에 대응하는 값은 'Product list'(540)일 수 있다.
도 6은 데이터 베이스에 저장된 키-값에 대한 데이터에 대한 소스 코드를 설명하기 위한 도면이다.
도 6을 참조하면, 소스 코드(600)는 'project_name'(610)이'Project A'이고, 'update_time'(620)이 2022.05.05인 키-값에 대한 데이터를 포함할 수 있다. 보다 상세하게는, 소스 코드(600)는 키와 대응되는 언어 별 값에 대한 데이터를 포함하는 서브 소스 코드를 포함할 수 있다. 소스 코드(600)는 설정된 주기에 따라 업데이트되는 것을 특징으로 할 수 있고, 업데이트 주기가 길어지면 키에 대응하는 값은 서버(110)가 전송하는 API 리스펀스에 포함되는 요소와 상이할 수 있다. 이에 따라, 소스 코드(600)는 트래픽이 비교적 적은 시간대에 업데이트되는 것을 특징으로 할 수 있다.
예를 들어, 제1 서브 소스 코드(630)는 키가 'home.backend.currency'이고, TW, US, KR 언어로 작성된 통화에 대응하는 값을 포함할 수 있다. 또한, 제2 서브 소스 코드(630)는 키가 'home.backend.wow.members.price'이고, TW, US, KR 언어로 작성된 와우회원가에 대응하는 값을 포함할 수 있다.
또한, 전자 장치(100)가 데이터 베이스(120)로 대상 도메인에 대한 정보와 대상 언어에 대한 정보를 전송하는 동작은 1) 전자 장치(100)가 mysql에 대상 도메인에 대한 정보와 대상 언어에 대한 정보를 전송하는 동작 및 2) mysql이 수신된 대상 도메인에 대한 정보와 대상 언어에 대한 정보에 기반하여, mongo DB를 포함하는 데이터 베이스(120)에 저장된 키-값에 대한 매핑 데이터를 검출하는 동작을 포함할 수 있다. 이때, 대상 도메인에 대한 정보는 대상 도메인의 도메인 이름에 대한 정보 및 lokalise 프로젝트 ID 정보를 포함할 수 있다. 전자 장치(100)는 lokalise 프로젝트 ID 정보에 기반하여, 프로젝트에 대응하는 mysql을 확인할 수 있다.
보다 상세하게는, 전자 장치(100)가 데이터 베이스(120)로 대상 도메인에 대한 정보와 대상 언어에 대한 정보를 직접 전송하면, 대상 도메인에 대한 모든 프로젝트의 키-값에 대한 매핑 관계는 동일하게 될 수 있다. 이에 따라, 프로젝트 별로 키-값에 대한 매핑 관계를 상이하게 설정할 수 없을 수 있다. 이에 따라, my sql이라는 DB를 데이터 베이스(120) 및 전자 장치(100) 중간에 배치함으로써, mysql은 데이터 베이스(120)로부터 프로젝트 단위로 저장된 키-값에 대한 매핑 데이터를 수신할 수 있다.
도 7은 테스트에 대한 설정 정보를 설정하는 페이지를 설명하기 위한 도면이다.
도 7을 참조하면, 페이지(700)는 대상 API와 관련된 테스트 대한 설정 정보를 설정하는 페이지로, 도 4의 'Config'를 통한 사용자의 입력에 대응하여 제공되는 페이지일 수 있다.
페이지(700)는 대상 API에 대해 설정된 테스트를 포함할 수 있다. 도 7을 참조하면, 페이지(700)는 대상 API에 포함되는 키를 언어가 US인 값을 대체하는 'US-test'(710)에 대한 정보 및 대상 API에 포함되는 키를 언어가 TW인 값을 대체하는 'TW-test'(720)에 대한 정보를 포함할 수 있다. 사용자는 'US-test'(710)에 대응하는 디폴트에 관한 아이콘(711) 및 'TW-test'(720)에 대응하는 디폴트에 관한 아이콘(721)을 'On' 또는 'Off'로 변경함으로써, 대상 API와 관련하여 실행될 테스트를 변경할 수 있다. 또한, 아이콘(722)은 'TW-test'(720)에 대한 설정 정보를 설정하는 상세 페이지의 엔트리 포인트일 수 있다.
다만, 대상 API와 관련하여 실행될 테스트는 'US-test'(710) 및 'TW-test'(720) 중 하나로 한정될 필요는 없다. 예를 들어, 대상 언어는 하나일 수 있지만, 복수 개의 언어를 포함할 수 있다. 일 실시 예에 따르면, 전자 장치(100)는 대상 언어가 복수 개의 언어를 포함할 때, 복수 개의 언어에 대응하는 복수 개의 언어의 값을 각각 포함하는 복수 개의 API 리퀘스트를 확인하고, 복수 개의 API 리퀘스트를 서버(110)로 전송할 수 있다.
도 8은 테스트에 대한 설정 정보를 설정하는 상세 페이지를 설명하기 위한 도면이다.
상세 페이지(800)는 도 7의 TW-test'(720)의 설정 정보를 설정하기 위한 상세 페이지(800)일 수 있다. 'TW-test'(720)의 설정 정보는 대상 언어에 대한 설정 정보인 'Language'(810) 및 테스트의 수행에 이용되는 디바이스의 타입에 대한 정보인 'App device'(820)을 포함할 수 있다. 'Language'(810)은 KR, US, TW 뿐만 아니라 다양한 언어를 포함할 수 있다. 또한, 디바이스의 타입에 대한 정보에 따라 API 리퀘스트에 대응하는 API 리스펀스가 상이해질 수 있는 바, 사용자는 상세 페이지(800)를 통해'App device'(820)를 IOS, 안드로이드 중 하나로 설정할 수 있다.
도 9는 대상 API와 관련된 테스트에 대한 결과 정보를 포함하는 페이지를 설명하기 위한 도면이다.
사용자는 도 8과 같이 도 7의 'TW-test'(720)의 설정 정보를 설정한 후에, 'TW-test'(720)의 디폴트에 관한 아이콘(721)을 'Off'에서 'On'으로 변경하고, 이를 저장할 수 있다. 이에 더해, 사용자가 도4의 'Send' 아이콘을 클릭함에 따라, 전자 장치(100)는 데이터 베이스(120)로부터 수신된 데이터 및 대상 언어에 대한 정보에 기반하여, (도 4에 표시된 키를 포함하는)키를 대응되는 TW 언어의 값으로 대체할 수 있고, 변경된 API 리퀘스트를 서버(110)로 전송할 수 있다. 도 9의 페이지(900)는 변경된 API 리퀘스트를 서버(110)로 전송함에 따른 결과 정보를 포함할 수 있다. 결과 정보는 변경된 API 리퀘스트를 전송함에 따른 API Response인 'Response' (911), API Response의 타당성에 대한 'Assertion test'(921) 및 Extract Result를 포함할 수 있다.
아이콘(910)은 사용자가 도4의 'Send' 아이콘을 클릭함에 따라, 'Send'에서 'Running'으로 변경된 것을 나타내고 있다. 또한, 페이지(900)는 변경된 API 리퀘스트에 대응하는 API 리스펀스인 'Response'(911)에 대한 정보도 포함할 수 있다.
또한, 페이지(900)는 올바른 API 리스펀스가 수신되었는지 여부를 확인하기 위한 검증을 위한 'Assertion'(920)에 대한 탭을 포함할 수 있다. 구체적으로, 페이지(900)에 포함되는 서브 페이지(930)는 'Assertion'(920)에 관한 서브 페이지일 수 있다. 서브 페이지(930)는 expression, function, key, operation에 관한 내용을 포함하고 있다.
사용자는 서브 페이지(930)를 통해 API 리스펀스에 대한 검색 범위 및 함수에 대한 정보를 설정할 수 있다. 예를 들어, API 리스펀스에 대한 검색 범위는 'rData.modules[*].entity.linkHeader.name~'(931)일 수 있고, 전자 장치(100)는 'rData.modules[*].entity.linkHeader.name~'(931)에 기반하여 API 리스펀스에 포함되는 제1 요소를 확인할 수 있다. 또한, 함수에 대한 정보는 제1 요소 및 키와 대응하는 대상 언어의 값과의 관계에 대한 정보를 의미할 수 있다. 예를 들어, 함수에 대한 정보는 'Contain'(932)일 수 있고, 키에 대한 정보는 제1 키(933)일 수 있다. 이에 따라, 전자 장치(100)는 제1키인 ${0317 CT SRP 02}$에 대응하는 대상 언어(도 9에서는 TW일 수 있다.)의 값 및 제1 요소가 함수에 대한 정보인 'Contain'을 만족하는지 여부를 확인할 수 있다. 보다 상세하게는, 도 9를 참조하면, 전자 장치(100)는 제1키인 ${0317 CT SRP 02}$에 대응하는 대상 언어(도 9에서는 TW일 수 있다.)의 값이 제1 요소에 포함되는지 여부를 확인할 수 있다. 다만, 함수에 대한 정보는 'Contain'에 한정되는 것은 아니고, 함수에 대한 정보는 'equal to', 'item in list'를 포함할 수 있다. 보다 상세하게는, ${0317 CT SRP 02}$의 $ 사이에 포함되는 0317 CT SRP 02가 제1 키일 수 있다.
전자 장치(100)는 5개의 설정된 'Assertion' 관련 검증 프로세스를 수행할 수 있고, 이에 따라, 전자 장치(100)는 결과 정보인 'Assertion Result'(921)를 포함하는 서브 페이지(940)를 제공할 수 있다. 도 9를 참조하면, 1번째, 4번째 및 5번째 'Asssertion' 프로세스는 대상 언어의 값 및 API 리스펀스에 포함되는 요소가 설정된 함수를 만족하는 프로세스일 수 있다. 또한, 2번째 및 3번째 'Asssertion' 프로세스는 대상 언어의 값 및 API 리스펀스에 포함되는 요소가 설정된 함수를 만족하지 않는 프로세스일 수 있다.
일 실시 예에 따르면, 대상 언어의 값 및 API 리스펀스에 포함되는 요소가 설정된 함수를 만족하는 여부에 따라, 전자 장치(100)는 결과 정보를 상이하게 표시하여 상세 페이지(940)를 제공할 수 있다. 예를 들어, 2번째 및 3번째 'Asssertion' 프로세스에 대응하는 결과 정보는 빗금으로 표시되어 있다.
또한, 'Asssertion' 프로세스에 따라, 대상 언어의 값 및 API 리스펀스에 포함되는 요소가 설정된 함수를 만족하지 않는다고 확인하면, 이를 개선할 필요가 있을 수 있다.
1) 일 실시 예 따르면, 전자 장치(100)는 대상 언어가 아닌 대체 언어의 값을 포함하는 재 변경된 API 리퀘스트를 서버(110)로 재전송할 수 있다. API 리스펀스에 대한 검증 결과에 에러가 있는 경우라도, 전자 장치(100)는 대체 언어의 값을 포함하는 재 변경된 API 리퀘스트를 서버(110)로 재전송할 수 있다. 이때, 전자 장치(100)는 도 7에 테스트의 디폴트에 관한 아이콘이 'Off'인 테스트를 이용하여 재 변경된 API 리퀘스트를 서버(110)로 전송할 수 있다. 보다 상세하게는, 전자 장치(100)는 제1 값과 제1 요소가 제1 함수를 만족하지 않으면, 대상 API에 대한 대체 언어에 대한 정보를 확인하고, 데이터 베이스(120)로부터 수신된 데이터 및 대체 언어에 대한 정보에 기반하여, 대상 API에 포함되는 키를 대응되는 대체 언어의 값으로 대체하고, 대체 언어의 값을 포함하는 재 변경된 API 리퀘스트를 확인하고, 및 재 변경된 API 리퀘스트를 서버(110)로 전송할 수 있다.
2) 일 실시 예에 따르면, 전자 장치(100)는 제1 값과 제1 요소가 제1 함수를 만족하지 않으면, 데이터를 업데이트할 것을 요청할 수 있다. 제1 값과 제1 요소가 제1 함수를 만족하지 않으면, 데이터 베이스(120)에 포함되는 대상 언어의 제1 값은 서버(110)로부터 수신된 API 리스펀스에 포함되는 제1 요소의 이전 버전의 값일 수 있다. 따라서, 전자 장치(100)는 제1 값과 제1 요소가 제1 함수를 만족하지 않으면, 데이터 베이스(120)에 저장된 데이터를 업데이트할 것을 요청할 수 있다. 또한, 제1 값과 제1 요소가 제1 함수를 만족하지 않으면, 데이터를 업데이트할 것을 요청하는 동작은 테스트에 따른 Assertion 중 설정된 비율 이상의 Assertion result에 에러가 있는 경우, 데이터 베이스(120)에 저장된 데이터를 업데이트할 것을 요청하는 동작을 포함할 수 있다.
전자 장치(100)는'Assertion result' 중 첫번째 검증 결과를 포함하는 상세 페이지에 대한 엔트리 포인트인 아이콘(950)을 포함하는 페이지(900)를 제공할 수 있다.
도 10은 대상 API와 관련된 테스트의 결과 정보를 포함하는 상세 페이지를 설명하기 위한 도면이다.
도 10을 참조하면, 상세 페이지(1000)는 아이콘(950)을 통해 1번째 'Assertion' 프로세스를 설명하기 위한 페이지일 수 있다.
제1 소스 코드(1010)는 도 9의 제1 키(933)에 대응하는 대상 언어인 TW의 제1 값을 포함할 수 있다. 또한, 제2 소스 코드(1020)는 API 리스펀스 중 검색 범위인 'rData.modules[*].entity.linkHeader.name~'(931)에 대응하는 제1 요소를 포함할 수 있다. 보다 상세하게는, 제2 소스 코드(1020)는 대상 언어인 TW의 제1 값에 대응하는 소스 코드(1021)뿐만 아니라 소스 코드(1022)를 포함할 수 있다. 즉, 제1 값 및 제1 요소는 도 9의 'Contain'(932)를 만족하는 바, 1번째 'Assertion' 프로세스는 적합하게 검증된 프로세스일 수 있다. 도 10은 1번째 'Assertion' 프로세스만을 나타내고 있으나, 이에 한정되는 것은 아니다. 예를 들어, 전자 장치(100)는 다른 'Assertion' 프로세스에 대응하는 아이콘을 통한 사용자의 입력에 대응하여, 대상 API와 관련된 테스트의 결과 정보를 포함하는 상세 페이지를 제공할 수 있다.
도 11은 대상 API와 관련된 테스트의 결과 정보를 포함하는 페이지를 설명하기 위한 도면이다.
전자 장치(100)는 대상 API에 대응하는 변경된 API 리퀘스트를 서버(110)로 전송함에 따라, 변경된 API 리퀘스트에 대응하는 API 리스펀스를 수신할 수 있다. 도 11을 참조하면, 페이지(1100)는 API 리스펀스인 'Response'(1110)를 포함할 수 있다. 사용자가 API 리스펀스인 'Response'(1110)의 request ID를 통해 'Add to Extract'(1120)을 선택하면, 전자 장치(100)는 API 리스펀스의 경로를 추출할 수 있다. 또한, 페이지(1100)는 Json path를 추출함에 따른 결과에 대한 상세 페이지로 이동할 수 있는 엔트리 포인트인 아이콘(1130)을 포함할 수 있다.
테스트가 복수 개의 서브 테스트를 포함하면, 테스트에 이어 다른 테스트가 수행될 수 있다. 이때, 다른 테스트가 수행됨에 따라, 전자 장치(100)는 추출된 API 리스펀스의 경로를 제공할 수 있다.
도 12는 Json path tool에 대한 상세 페이지를 설명하기 위한 도면이다.
도 12를 참조하면, 상세 페이지(1200)는 API 리스펀스의 Json path를 추출함에 따른 결과 정보를 포함할 수 있다. API 리스펀스의 Json path는 '$.rData.customAttributes.requestID'일 수 있다. 제1 소스 코드(1210)는 API 리스펀스와 대응되는 소스 코드일 수 있다. 보다 상세하게는, 제1 소스 코드(1210)는 제1 서브 소스 코드(1211)를 포함할 수 있다. 제1 서브 소스 코드(1211)는 대상 언어인 TW의 값과 동일하고, 제1 소스 코드(1010)에 포함되는 값과 대응될 수 있다. 또한, 제2 소스 코드(1220)는 도 11의 'Add to Extract'(1120)에 따른 request ID를 포함할 수 있다. 즉 전자 장치(100)는 테스트에 이어 다른 테스트가 수행될 수 있다. 다른 테스트가 연속적으로 수행됨에 따라, 전자 장치(100)는 추출된 API 리스펀스의 경로를 제공함으로써, 전자 장치(100)는 이전에 수행된 테스트의 결과를 이용하여 연속적으로 수행되는 테스트를 신속하게 수행할 수 있다.
도 13은 일 실시 예에 따른 Multi-Language Design Architecture(1300)을 설명하기 위한 도면이다.
Multi-Language Design Architecture(1300)은 본원의 일 실시 예를 수행하기 위한 구성 및 기능을 설명하기 위한 아키텍처일 수 있다.
Autorunner를 실행하는 단계 S1301에서, 일 실시 예에 따른 전자 장치(100)는 test 실행과 관련된 설정 정보를 설정하는 페이지 또는 유저 인터페이스를 제공할 수 있다. 이에 따라 사용자는 제공되는 페이지 또는 유저 인터페이스를 통해, 테스트에 대응하는 대상 언어에 대한 설정 정보 등을 설정할 수 있다. Autorunner를 실행하는 단계 S1301는 API Auomation을 실행하는 단계 S1302 또는 Autox를 실행하는 단계 S1303로 이어질 수 있다. 여기서, Autox는 웹사이트에서 API 리퀘스트를 작성하는 방식의 플랫폼 의미할 수 있으며, API automation는 파이썬과 같은 소스 코드를 통해 API 리퀘스트를 작성하는 플랫폼일 수 있다.
Phase Key Translation에 관한 단계 S1304에서, 일 실시 예에 따른 전자 장치(100)는 데이터 베이스(120)로 대상 도메인에 대한 정보, 프로젝트에 대한 정보 및 대상 언어에 대한 정보를 전송할 수 있다. 보다 상세하게는, 전자 장치(100)는 Mysql(1310)으로 대상 도메인에 대한 정보, 프로젝트에 대한 정보 및 대상 언어에 대한 정보를 전송할 수 있다. 이에 따라, Mysql(1310)은 Mongo DB(1311)에 저장된 대상 언어, 대상 도메인, 프로젝트에 대응하는 키-값에 대한 매핑 데이터를 식별할 수 있다. 전자 장치(100)는 식별된 키-값에 대한 매핑 데이터를 수신할 수 있다. 키-값에 대한 매핑 데이터는 대상 도메인에서의 테스트에 최적화된 키-값에 대한 매핑 데이터일 수 있다. 여기서, persistence layer(1312)는 Mysql(1310) 및 Mongo DB(1311)을 포함할 수 있다.
여기서, Mysql(1310)에 포함되는 프로젝트에 대한 정보 및 Mongo DB(1311)에 저장된 키-값에 대한 매핑 데이터는 Daily job(1320)을 통해 업데이트될 수 있다. 보다 상세하게는, Mysql(1310)에 포함되는 프로젝트에 대한 정보는 Sync Project(1321)를 통해 업데이트될 수 있고, Mongo DB(1311)에 저장된 키-값에 대한 매핑 데이터는 Sync Translation keys(1322)를 통해 업데이트될 수 있다. 또한, 업데이트는 설정된 주기, 시각에 대한 정보에 기반하여 실행될 수 있다. 구체적으로, 업데이트는 서버, 전자 장치의 트래픽을 고려하여 트래픽이 비교적 적은 시간대에 주기적으로 업데이트되는 것을 특징으로 할 수 있다.
SDK Global Variable(K-V)에 관한 단계 S1305에서, 일 실시 예에 따른 전자 장치(100)는 수신된 키-값에 대한 매핑 데이터 및 대상 언어에 대한 정보에 기반하여, API 리퀘스트에 포함된 키를 대응하는 대상 언어의 값으로 대체할 수 있다.
Send Request에 관한 단계 S1306에서, 일 실시 예에 다른 전자 장치(100)는 키를 대응하는 대상 언어의 값으로 대체함에 따라 변경된 API 리퀘스트를 서버(110)로 전송할 수 있다. 또한, 전자 장치(100)가 변경된 API 리퀘스트를 서버(110)로 전송하는 동작은 도 9에서 살펴본 Assertion과 유사한 동작을 포함할 수 있다. 보다 상세하게는, Assertion과 유사한 동작은 변경된 리퀘스트의 바디 및 헤더와 키를 대응하는 대상 언어의 값으로 대체함에 따른 예상 리퀘스트를 비교하는 동작을 포함할 수 있다.
SDK(1330)은 소프트웨어 개발 키트로, Mongo, Redis, autoRunner, Pytest 및 Request를 포함할 수 있다.
한편 본 명세서의 실시 예에 따르면, 다양한 언어를 지원하는 서비스에서 테스트를 수행할 때 언어와 관련된 정보를 키 값을 사용하여 작성하고, 특정 언어에 대한 서비스 테스트에 키 값을 해당 언어로 전환하여 적용함으로써 다국어를 지원하는 서비스에서 테스트를 효과적으로 수행할 수 있다. 일 예로 단말에서 서버에 요청 정보 및 서버에서 단말에서 제공하는 응답 정보를 기반으로 테스트 결과를 확인할 수 있고, 요청 정보에 포함되는 정보나 응답 정보를 확인하기 위한 조건에 대한 정보에 키 값을 포함시킴으로써 서비스 중 동일한 기능을 가지되 다른 언어 지원을 위한 각 서버에 대한 테스트를 일괄적으로 진행할 수 있다. 또한 키 값에 대응하는 텍스트 정보를 별도의 데이터 베이스에 관리함으로써 키와 텍스트의 매핑 관계를 유동적으로 변경할 수 있으며, 서비스 개발자 측에서도 이와 같은 데이터 베이스를 확인함으로써 키 값에 대응하는 텍스트가 변경이 발생할 경우, 이에 대한 정보를 데이터 베이스에 반영함으로써 서비스에 변경이 있는 경우에도 테스트가 원활하게 수행될 수 있다.
도 14는 일 실시 예에 따른 테스트를 수행하기 위한 전자 장치를 도식화한 블록도이다.
도 14의 전자 장치(1400)는 본원 명세서의 전자 장치(100)에 대응될 수 있다.
본 개시의 전자 장치(1400)는 일 실시 예에 따라, 트랜시버(1410), 프로세서(1420) 및 스토리지(1430)를 포함할 수 있다. 도 14에 도시된 구성요소들은 전자 장치를 구현하는데 있어서 필수적인 것은 아니어서, 본 명세서 상에서 설명되는 전자 장치(1400)는 위에서 열거된 구성요소들 보다 많거나, 또는 적은 구성요소들을 가질 수 있음을 본 실시 예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다. 한편 실시 예에서 프로세서(1420)는 적어도 하나의 프로세서를 포함할 수 있다. 또한, 전자 장치(100)는 디스플레이부(미도시)를 통해 테스트의 수행에 따른 결과 정보를 포함하는 페이지, 유저 인터페이스를 제공할 수 있으나, 이에 한정되는 것은 아니다.
트랜시버(1410)는 유무선 통신 기술을 이용하여 외부의 장치와 통신할 수 있으며 트랜시버(1410)를 포함할 수 있다. 외부의 장치는 단말 또는 서버가 될 수 있다. 여기서, 서버는 도 1의 서버(110)에 대응할 수 있다. 또한, 데이터 베이스(120)가 전자 장치(100)의 외부에 위치한 데이터 베이스일 때, 외부의 장치는 데이터 베이스(120)를 포함할 수도 있다. 또한, 트랜시버(1410)가 이용하는 통신 기술에는 GSM(Global System for Mobile communication), CDMA(Code Division Multi Access), LTE(Long Term Evolution), 5G, WLAN(Wireless LAN), Wi-Fi(Wireless-Fidelity), 블루투스(Bluetooth), RFID(Radio Frequency Identification), 적외선 통신(Infrared Data Association; IrDA), ZigBee, NFC(Near Field Communication) 등이 있을 수 있으며, 이에 한정되는 것은 아니다.
일 실시 예에 따르면, 트랜시버(1410)는 데이터 베이스로 대상 도메인에 대한 정보 및 대상 스크립트에 대한 설정 정보를 전송하고, 데이트 베이스로부터 데이터를 수신할 수 있다. 또한, 트랜시버(1410)는 서버(110)와 API 리퀘스트 및 API 리스펀스를 송수신할 수 있다.
프로세서(1420)는 전자 장치(1400)의 전반적인 동작을 제어하고 데이터 및 신호를 처리할 수 있다. 프로세서(1420)는 도 1 내지 도 13을 통하여 전술한 하나의 방법을 수행할 수 있다. 프로세서(1420)는 트랜시버(1410) 및 스토리지(1430)와, 나아가 전자 장치(1400)가 더 포함할 수 있는 구성요소들과의 상호 작용을 통해 전자 장치(1400)가 수행하는 실시 예들을 제어할 수 있다. 일 실시 예에 따라, 프로세서(1420)는 대상 API 및 대상 API와 관련된 테스트에 대한 대상 스크립트를 확인하고, 대상 API에 대응하는 대상 도메인에 대한 정보와 대상 API에 대응하는 대상 언어에 대한 정보를 포함하는 대상 스크립트에 대한 설정 정보를 확인하고, 대상 도메인에 대한 정보 및 대상 언어에 대한 정보를 데이터 베이스로 전송하고, 대상 API에 대한 API 리퀘스트에 포함되는 키를 확인하고, 데이터 베이스로부터 수신된 데이터 및 대상 언어에 대한 정보에 기반하여, 키를 대응되는 대상 언어의 값으로 대체하고, 대상 언어의 값을 포함하는 변경된 API 리퀘스트를 확인하고, 및 변경된 API 리퀘스트를 서버로 전송할 수 있다.
스토리지(1430)는 도 1 내지 도 13을 통하여 전술한 적어도 하나의 방법을 수행하기 위한 정보를 저장할 수 있다. 스토리지(1430)는 메모리로 호칭될 수 있고, 휘발성 메모리 또는 비휘발성 메모리일 수 있다. 또한, 스토리지(1430)는 프로세서(1520)의 동작을 수행하는데 필요한 하나 이상의 명령어를 저장할 수 있고, 플랫폼 상에 저장되거나 외부 메모리에 저장되는 데이터를 임시적으로 저장할 수 있다. 예를 들어, 스토리지(1430)는 도 1의 데이터 베이스(120)를 포함할 수 있으나 이에 한정되는 것은 아니고, 데이터 베이스(120)는 전자 장치(1400)의 외부에 위치할 수 있다.
한편, 본 명세서와 도면에는 본 발명의 바람직한 실시 예에 대하여 개시하였으며, 비록 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예 외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.
전술한 실시 예들에 따른 전자 장치 또는 단말은, 프로세서, 프로그램 데이터를 저장하고 실행하는 메모리, 디스크 드라이브와 같은 영구 저장부(permanent storage), 외부 장치와 통신하는 통신 포트, 터치 패널, 키(key), 아이콘 등과 같은 사용자 인터페이스 장치 등을 포함할 수 있다. 소프트웨어 모듈 또는 알고리즘으로 구현되는 방법들은 상기 프로세서상에서 실행 가능한 컴퓨터가 읽을 수 있는 코드들 또는 프로그램 명령들로서 컴퓨터가 읽을 수 있는 기록 매체 상에 저장될 수 있다. 여기서 컴퓨터가 읽을 수 있는 기록 매체로 마그네틱 저장 매체(예컨대, ROM(read-only memory), RAM(random-Access memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등이 있다. 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다. 매체는 컴퓨터에 의해 판독가능하며, 메모리에 저장되고, 프로세서에서 실행될 수 있다.
본 실시 예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 실시 예는 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩 업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다. 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler), 파이썬(Python) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 실시 예는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. “매커니즘”, “요소”, “수단”, “구성”과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.
전술한 실시 예들은 일 예시일 뿐 후술하는 청구항들의 범위 내에서 다른 실시 예들이 구현될 수 있다.

Claims (16)

  1. 전자 장치에서 테스트를 수행하는 방법에 있어서,
    대상 API 및 상기 대상 API와 관련된 테스트에 대한 대상 스크립트를 확인하는 단계;
    상기 대상 API에 대응하는 대상 도메인에 대한 정보와 상기 대상 API에 대응하는 대상 언어에 대한 정보를 포함하는 상기 대상 스크립트에 대한 설정 정보를 확인하는 단계;
    상기 대상 도메인에 대한 정보 및 상기 대상 언어에 대한 정보를 데이터 베이스로 전송하는 단계;
    상기 대상 API에 대한 API 리퀘스트에 포함되는 키를 확인하는 단계;
    상기 데이터 베이스로부터 수신된 데이터 및 상기 대상 언어에 대한 정보에 기반하여, 상기 키를 대응되는 상기 대상 언어의 값으로 대체하는 단계;
    상기 대상 언어의 값을 포함하는 변경된 API 리퀘스트를 확인하는 단계; 및
    상기 변경된 API 리퀘스트를 서버로 전송하는 단계를 포함하는 테스트를 수행하는 방법.
  2. 제1 항에 있어서,
    상기 설정 정보를 확인하는 단계는,
    상기 대상 스크립트에 대한 설정 페이지를 통해, 상기 대상 스크립트에 대한 상기 설정 정보를 확인하는 단계를 포함하는 테스트를 수행하는 방법.
  3. 제1 항에 있어서,
    상기 설정 정보는 상기 대상 도메인에 대한 정보, 상기 대상 언어에 대한 정보 및 상기 테스트의 수행에 이용되는 디바이스의 타입에 대한 정보를 포함하는 것을 특징으로 하는 테스트를 수행하는 방법.
  4. 제1 항에 있어서,
    상기 데이터는 키-값에 대한 매핑 데이터인 것을 특징으로 하는 테스트를 수행하는 방법.
  5. 제4 항에 있어서,
    상기 키-값에 대한 매핑 데이터는 상기 대상 도메인에 대응하는 키-값에 대한 매핑 데이터로, 설정된 주기에 따라 업데이트되어 상기 데이터 베이스에 저장되는 것을 특징으로 하는 테스트를 수행하는 방법.
  6. 제1 항에 있어서,
    상기 서버로부터 상기 변경된 API 리퀘스트에 대응하는 API 리스펀스를 확인하는 단계; 및
    상기 API 리퀘스트, 상기 변경된 API 리퀘스트 및 상기 API 리스펀스에 대한 페이지를 제공하는 단계를 더 포함하는 테스트를 수행하는 방법.
  7. 제6 항에 있어서,
    상기 API 리퀘스트에 포함되는 상기 키 중 제1 키를 확인하는 단계;
    상기 제1 키에 대응하는 제1 검색 범위 및 제1 함수에 대한 정보를 확인하는 단계;
    상기 제1 검색 범위에 기반하여, 상기 API 리스펀스에 포함되는 제1 요소를 확인하는 단계; 및
    상기 제1 키에 대응하는 상기 대상 언어의 제1 값과 상기 제1 요소가 상기 제1 함수를 만족하는지 여부를 확인하는 단계를 더 포함하는 테스트를 수행하는 방법.
  8. 제7 항에 있어서,
    상기 제1 값과 상기 제1 요소가 상기 제1 함수를 만족하지 않으면, 상기 대상 API에 대한 대체 언어에 대한 정보를 확인하는 단계;
    상기 데이터 및 상기 대체 언어에 대한 정보에 기반하여, 상기 대상 API에 포함되는 상기 키를 대응되는 상기 대체 언어의 값으로 대체하는 단계;
    상기 대체 언어의 값을 포함하는 재 변경된 API 리퀘스트를 확인하는 단계; 및
    상기 재 변경된 API 리퀘스트를 상기 서버로 전송하는 단계를 더 포함하는 테스트를 수행하는 방법.
  9. 제7 항에 있어서,
    상기 제1 값과 상기 제1 요소가 상기 제1 함수를 만족하지 않으면, 상기 데이터를 업데이트할 것을 요청하는 단계를 더 포함하는 테스트를 수행하는 방법.
  10. 제7 항에 있어서,
    상기 페이지를 제공하는 단계는,
    상기 제1 값과 상기 제1 요소가 상기 제1 함수를 만족하는지 여부에 대한 결과 정보를 포함하는 결과 페이지를 제공하는 단계를 포함하고,
    상기 결과 정보는 상기 제1 값과 상기 제1 요소가 상기 제1 함수를 만족하는지 여부에 따라 상이하게 표시되는 것을 특징으로 하는 테스트를 수행하는 방법.
  11. 제2 항에 있어서,
    상기 API 리스펀스의 경로를 확인하는 단계; 및
    상기 테스트에 이어 다른 테스트가 수행되는 경우, 상기 확인된 경로를 제공하는 단계를 더 포함하는 테스트를 수행하는 방법.
  12. 제1 항에 있어서,
    상기 테스트와 언어에 대한 설정 정보가 상이한 제1 테스트를 확인하는 단계;
    상기 제1 테스트의 제1 언어에 대한 정보를 확인하는 단계;
    상기 데이터 및 상기 대상 언어에 대한 정보에 기반하여, 상기 키를 대응되는 상기 제1 언어의 값으로 대체하는 단계;
    상기 제1 언어의 값을 포함하는 제1 변경된 API 리퀘스트를 확인하는 단계; 및
    상기 제1 변경된 API 리퀘스트를 서버로 전송하는 단계를 더 포함하는 테스트를 수행하는 방법.
  13. 제1 항에 있어서,
    대상 언어가 복수 개의 언어를 포함할 때, 상기 변경된 API 리퀘스트를 확인하는 단계는,
    상기 복수 개의 언어에 대응하는 상기 복수 개의 언어의 값을 각각 포함하는 복수 개의 API 리퀘스트를 확인하는 단계를 포함하고,
    상기 변경된 API 리퀘스트를 상기 서버로 전송하는 단계는,
    상기 복수 개의 API 리퀘스트를 상기 서버로 전송하는 단계를 포함하는 테스트를 수행하는 방법.
  14. 제13 항에 있어서,
    상기 서버로부터 상기 복수 개의 API 리퀘스트에 대응하는 복수 개의 API 리스펀스를 확인하는 단계; 및
    상기 API 리퀘스트, 상기 복수 개의 API 리퀘스트 및 상기 복수 개의 API 리스펀스에 대한 페이지를 제공하는 단계를 더 포함하는 테스트를 수행하는 방법.
  15. 테스트를 수행하기 위한 전자 장치에 있어서,
    트랜시버;
    하나 이상의 명령어를 저장하는 스토리지; 및
    대상 API 및 대상 API와 관련된 테스트에 대한 대상 스크립트를 확인하고,
    상기 대상 API에 대응하는 대상 도메인에 대한 정보와 상기 대상 API에 대응하는 대상 언어에 대한 정보를 포함하는 상기 대상 스크립트에 대한 설정 정보를 확인하고,
    상기 대상 도메인에 대한 정보 및 상기 대상 언어에 대한 정보를 데이터 베이스로 전송하고,
    상기 대상 API에 대한 API 리퀘스트에 포함되는 키를 확인하고,
    상기 데이터 베이스로부터 수신된 데이터 및 상기 대상 언어에 대한 정보에 기반하여, 상기 키를 대응되는 상기 대상 언어의 값으로 대체하고,
    상기 대상 언어의 값을 포함하는 변경된 API 리퀘스트를 확인하고, 및
    상기 변경된 API 리퀘스트를 서버로 전송하는 프로세서를 포함하는 테스트를 수행하기 위한 전자 장치.
  16. 제1 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 비일시적 기록매체.
KR1020220117912A 2022-09-19 2022-09-19 테스트를 수행하기 위한 방법 및 장치 KR20240039397A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220117912A KR20240039397A (ko) 2022-09-19 2022-09-19 테스트를 수행하기 위한 방법 및 장치
PCT/KR2022/014264 WO2024063183A1 (ko) 2022-09-19 2022-09-23 테스트를 수행하기 위한 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220117912A KR20240039397A (ko) 2022-09-19 2022-09-19 테스트를 수행하기 위한 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20240039397A true KR20240039397A (ko) 2024-03-26

Family

ID=90454469

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220117912A KR20240039397A (ko) 2022-09-19 2022-09-19 테스트를 수행하기 위한 방법 및 장치

Country Status (2)

Country Link
KR (1) KR20240039397A (ko)
WO (1) WO2024063183A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1176432C (zh) * 1999-07-28 2004-11-17 国际商业机器公司 提供本国语言查询服务的方法和系统
US7490167B2 (en) * 2002-05-22 2009-02-10 Sony Corporation System and method for platform and language-independent development and delivery of page-based content
KR101316713B1 (ko) * 2011-07-29 2013-10-15 주식회사 우리은행 다국어뱅킹시스템 및 그 제어방법
CN111143186A (zh) * 2018-11-02 2020-05-12 易保网络技术(上海)有限公司 用于应用程序接口api测试的方法和设备
JP2022017985A (ja) * 2020-07-14 2022-01-26 初実 田中 ウェブページ処理装置、ウェブページ処理方法、およびプログラム

Also Published As

Publication number Publication date
WO2024063183A1 (ko) 2024-03-28

Similar Documents

Publication Publication Date Title
US10235280B2 (en) Automated script creation and source code generation for testing mobile devices
US8533691B2 (en) Managing non-common features for program code translation
US8347287B2 (en) System and method for localizing a server application using a client-side translator
US8560819B2 (en) Software execution using multiple initialization modes
CN110532020A (zh) 一种微服务编排的数据处理方法、装置及系统
US20200057711A1 (en) Runtime expansion of test cases
US11301366B2 (en) Test automation systems and methods using logical identifiers
US8566794B2 (en) Checkpoint entry insertion during test scenario creation
US11526954B2 (en) User interface and smart contract interaction model for generating user interface representations
RU2639667C2 (ru) Контекстное приглашение в пробной версии приложения
US11029981B2 (en) Text resources processing in an application
US8621442B2 (en) Quicker translation of a computer program source code
US12045438B2 (en) Graphical user interface to configure parameters of an API based on user inputs
US20120204161A1 (en) Automated Code Map Generation for an Application Programming Interface of a Programming Language
CN112114789B (zh) 一种业务开发方法及设备
KR20240039397A (ko) 테스트를 수행하기 위한 방법 및 장치
TW202429288A (zh) 用以實行測試之方法及裝置
CN104156209A (zh) 跨平台应用界面建模方法及装置
KR102653516B1 (ko) 데이터를 제공하는 방법 및 장치
KR102679462B1 (ko) 전자 장치 및 그의 사용자 인터페이스를 제공하는 방법
KR102614650B1 (ko) 전자 장치 및 그의 api 관리 방법
JP2015148925A (ja) プログラム生成装置および方法
KR102620097B1 (ko) 코드 테스트 지원 방법 및 전자 장치
KR102620693B1 (ko) 애플리케이션에 대한 테스트 설정 환경을 제공하는 전자 장치 및 그 방법
KR102382703B1 (ko) 어플리케이션 개발을 위한 멀티채널통합플랫폼 저작장치 및 저작방법