KR20240003207A - 코드 검증 정보를 제공하는 전자 장치 및 그 방법 - Google Patents

코드 검증 정보를 제공하는 전자 장치 및 그 방법 Download PDF

Info

Publication number
KR20240003207A
KR20240003207A KR1020220080390A KR20220080390A KR20240003207A KR 20240003207 A KR20240003207 A KR 20240003207A KR 1020220080390 A KR1020220080390 A KR 1020220080390A KR 20220080390 A KR20220080390 A KR 20220080390A KR 20240003207 A KR20240003207 A KR 20240003207A
Authority
KR
South Korea
Prior art keywords
code
information
verified
verification
verification set
Prior art date
Application number
KR1020220080390A
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 KR1020220080390A priority Critical patent/KR20240003207A/ko
Priority to PCT/KR2022/009580 priority patent/WO2024005246A1/ko
Priority to TW112122533A priority patent/TW202403555A/zh
Publication of KR20240003207A publication Critical patent/KR20240003207A/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/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/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • 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/3676Test management for coverage analysis
    • 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/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Credit Cards Or The Like (AREA)

Abstract

본 개시에 따르면, 검증 대상 코드를 확인하는 단계; 검증 대상 코드에 대응하는 설정 정보에 기초하여 검증 대상 코드에 대한 검증 세트를 수행하는 단계; 및 검증 세트의 수행에 따른 검증 결과 정보를 제공하는 단계를 포함하는, 전자 장치에서 정보를 제공하는 방법이 개시된다.

Description

코드 검증 정보를 제공하는 전자 장치 및 그 방법 {ELECTRONIC APPARATUS FOR PROVIDING CODE VERIFICATION INFORMATION AND METHOD THEREOF}
본 개시는 코드 검증 정보를 제공하는 전자 장치 및 그 방법에 관한 것이다. 보다 구체적으로 본 개시는 검증 대상 코드에 대응하는 설정 정보에 기초하여 검증 세트를 수행하고, 이에 따른 검증 결과 정보를 제공하는 전자 장치 및 그 방법에 관한 것이다.
전자 기술의 발달에 따라 생활 전반에는 전자 기술을 이용한 서비스가 자리잡게 되었다. 사용자에게 서비스를 제공하는 서버는 문제를 개선하거나 추가 기능을 제공하는 등의 이유로 그 동작을 위한 코드(기계어에 의해서 기술되고, CPU에 의해서 해석되어 실행되는 프로그램)의 변경이 필요할 수 있다.
종래부터, 서버, 퍼스널 컴퓨터 또는 이동 통신 단말 등의 정보 처리 장치에서는, 검증된 코드가 장치 상에서 실행되는 것이 요구되고 있다. 즉, 제3자에 의하여 의도치 않은 변경이 발생한 코드, 또는 예측하지 못한 문제가 발생할 수 있는 코드가 메모리에 저장되어 장치 상에서 실행되는 일이 없도록 할 필요가 있다.
한편, 전자 기술의 발달에 따라 컴퓨터 기술이 세분화됨으로써, 코드에 대한 검증 방법을 단일화하는 것이 어렵게 되었다. 구체적으로, 코드가 웹에서의 동작을 위한 것인지 혹은 서버의 동작을 위한 것인지, 코드가 실행되는 장치는 어떤 분야에서 이용되는지, 코드의 프로그래밍을 위하여 어떤 언어를 사용하였는지 등 여러 요소에 따라 코드를 검증하기 위하여 어떠한 지표를 고려해야 하는지와 각 지표에 어느 정도의 중요도를 부여해야 되는지 등이 달라짐으로써, 코드를 검증하기 위해서는 각 코드에 따른 최적화된 검증 방법을 작업자가 직접 판단하여야 한다는 한계가 존재한다.
이러한 점을 고려할 때 다양한 유형의 코드를 검증할 수 있는 통합된 장치 및 방법이 필요한 실정이다.
관련하여, KR102396071B1 건이나 KR101581702B1 건 등의 선행문헌들을 참조할 수 있다.
본 실시 예가 해결하고자 하는 과제는, 검증 대상 코드를 확인하고, 검증 대상 코드에 대응하는 설정 정보에 기초하여 검증 대상 코드에 대한 검증 세트를 수행하고, 검증 세트의 수행에 따른 검증 결과 정보를 제공하는 전자 장치 및 그 방법을 제공하는데 있다.
본 실시 예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 이하의 실시 예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
일실시예에 따른 전자 장치에서의 정보 제공 방법은 검증 대상 코드를 확인하는 단계; 상기 검증 대상 코드에 대응하는 설정 정보에 기초하여 상기 검증 대상 코드에 대한 검증 세트를 수행하는 단계; 및 상기 검증 세트의 수행에 따른 검증 결과 정보를 제공하는 단계를 포함한다.
일실시예에 따르면, 상기 전자 장치는 상기 설정 정보에 기초하여 상기 검증 세트의 수행을 통하여 판단할 지표의 유형 정보 및 각 지표 별 기준 정보를 판단할 수 있다.
일실시예에 따르면, 상기 검증 세트를 수행하는 단계는 상기 검증 세트를 수행한 결과 상기 검증 대상 코드가 상기 각 지표 별 기준을 만족하는 경우, 검증을 종료하는 단계를 포함할 수 있다.
일실시예에 따르면, 상기 검증 세트를 수행하는 단계는 상기 검증 세트를 수행한 결과 상기 검증 대상 코드가 상기 각 지표 별 기준을 만족하지 않는 경우, 상기 검증 대상 코드의 작업자에게 검토 요청 정보를 제공하는 단계를 포함할 수 있다.
일실시예에 따르면, 상기 검증 세트의 수행을 통하여 판단할 지표는 코드 커버리지(coverage)를 포함하고, 상기 검증 세트를 수행하는 단계는 상기 검증 대상 코드를 위한 테스트 환경을 확인하는 단계; 상기 테스트 환경에서 상기 검증 대상 코드를 실행하는 단계; 및 상기 테스트 환경에서 상기 검증 대상 코드를 실행한 결과 상기 검증 대상 코드가 포함하는 복수의 컴포넌트 중 활성화된 컴포넌트의 비율 정보를 획득하는 단계를 포함할 수 있다.
일실시예에 따르면, 상기 검증 세트의 수행을 통하여 판단할 지표는 합격률(pass rate)을 포함하고, 상기 검증 세트를 수행하는 단계는 상기 검증 대상 코드를 복수의 테스트 환경에서 실행하는 단계; 및 상기 복수의 테스트 환경에서 실행한 결과 획득되는 응답이 적절한 응답에 해당하는 비율 정보를 획득하는 단계를 포함할 수 있다.
일실시예에 따르면, 상기 검증 세트의 수행을 통하여 판단할 지표는 비일치율(difference rate)을 포함하고, 상기 검증 세트를 수행하는 단계는 상기 검증 대상 코드를 서비스 환경에 대응되는 테스트 환경에서 실행하는 단계; 및 상기 검증 대상 코드를 상기 테스트 환경에 실행하는 경우에 획득되는 응답 및 기준 코드를 상기 서비스 환경에서 실행하는 경우에 획득되는 응답을 비교하는 단계를 포함할 수 있다.
일실시예에 따르면, 상기 검증 세트를 수행하는 단계는 상기 검증 대상 코드와 관련한 속성 정보를 획득하는 단계; 및 상기 속성 정보에 기초하여, 상기 검증 세트를 수행하기 위한 하나 이상의 테스트 환경을 결정하는 단계를 포함할 수 있다.
일실시예에 따르면, 상기 속성 정보를 획득하는 단계는 상기 검증 대상 코드가 상기 속성 정보를 지시하는 메시지를 포함하는 경우, 상기 메시지에 기초하여 상기 속성 정보를 획득하는 단계를 포함할 수 있다.
일실시예에 따르면, 상기 검증 대상 코드를 확인하는 단계는 상기 검증 대상 코드에 대응하는 정보가 웹 페이지에 입력된 경우, 상기 검증 대상 코드에 포함된 검증 요청 메시지를 확인하는 단계를 포함할 수 있다.
일실시예에 따르면, 상기 검증 요청 메시지를 확인하는 단계는 상기 검증 대상 코드에서 주석 처리된 메시지가 특정 텍스트를 포함하는지 여부를 판단하는 단계를 포함할 수 있다.
일실시예에 따른 정보를 처리하는 전자 장치는 트랜시버, 명령어를 저장하는 메모리 및 프로세서를 포함하고, 상기 프로세서는, 상기 트랜시버 및 상기 메모리와 연결되어, 검증 대상 코드를 확인하고, 상기 검증 대상 코드에 대응하는 설정 정보에 기초하여 상기 검증 대상 코드에 대한 검증 세트를 수행하고, 상기 검증 세트의 수행에 따른 검증 결과 정보를 제공한다.
기타 실시 예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 개시에 따르면, 코드를 검증하는 전자 장치 및 그 방법은 코드를 검증하기 위한 통합된 솔루션을 제공함으로써, 사용자가 편리하게 코드를 검증하도록 할 수 있다.
발명의 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 청구범위의 기재로부터 당해 기술 분야의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 일실시예에 따른 코드 검증 방법을 나타내는 개략적인 흐름도이다.
도 2는 일실시예에 따른 전자 장치가 정보를 제공하는 방법의 동작 흐름도이다.
도 3은 일실시예에 따른 검증 세트를 예시적으로 설명하기 위한 도면이다.
도 4는 일실시예에 따른 검증 세트를 수행한 결과를 예시적으로 설명하기 위한 도면이다.
도 5는 일실시예에 따른 코드 검증을 위한 테스트 환경을 결정하는 방법을 예시적으로 설명하기 위한 도면이다.
도 6은 일실시예에 따른 검증 세트를 이용한 코드 검증 방법의 구체적 예시를 설명하기 위한 도면이다.
도 7은 일실시예에 따른 코드를 검증하는 전자 장치의 구성의 예시도이다.
실시 예들에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 “포함”한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 “...부”, “...모듈” 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
명세서 전체에서 기재된 “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은 일실시예에 따른 코드 검증 방법을 나타내는 개략적인 흐름도이다.
다양한 실시예에 따르면 전자 장치는 코드 검증 요청을 수신하고(110), 환경 설정 정보에 기초하여(120) 코드 검증을 위한 테스트 서비스를 제공할 수 있다(130). 설명의 편의를 위하여 전자 장치가 코드 검증 요청을 수신한다고 설명하였으나, 사용자 등이 웹 페이지 상에서 코드의 검증 요청 입력을 제공하여야 하는 경우로 본 개시가 한정되는 것은 아니다. 예컨대, 특정한 사용자 입력이 있는 경우 명시적인 요청이 아니더라도 이를 코드 검증 요청(110)으로 볼 수 있는데, 예를 들어 사용자가 자신이 작업한 코드를 특정 페이지에 업로드하는 경우, 사용자가 자신이 작업한 코드와 관련한 경로 정보를 입력하는 경우 및 사용자가 코드를 작업하였음을 알리기는 경우 등 다양한 경우에 코드 검증이 수행될 수 있다.
이하에서는 설명의 편의를 위하여 전자 장치가 테스트 서비스를 제공하는 경우를 "검증 세트를 수행"한다고 설명한다.
나아가서는, 사용자 입력이 없더라도 서비스 환경에서 동작하던 코드에 오류가 발생하는 경우 전자 장치가 자체적으로 코드를 검증할 수도 있는 등, 코드 검증 요청(110)은 코드 검증을 트리거하는 다양한 경우들을 포괄적으로 설명하는 것으로 이해되어야 한다.
한편, 일실시예에 따른 전자 장치는 테스트 서비스를 수행하기에 앞서서 테스트 환경을 설정하거나, 혹은 환경 설정 정보를 확인할 수 있다(120 관련). 실시예에 따라서는, 전자 장치는 테스트 환경의 설정 및 환경 설정 정보의 확인을 모두 수행할 수도 있는데, 예컨대 일부 설정된 정보를 확인한 후 아직 설정되지 않은 나머지 지표에 대한 테스트 환경은 전자 장치가 설정할 수도 있다).
전자 장치는 검증 대상 코드에 대한 검증 세트를 수행하는 방식으로 코드 검증을 위한 테스트 서비스를 제공할 수 있다. 검증 세트의 수행을 통하여 판단할 지표의 유형 정보 및 각 지표 별 기준 정보 등은 환경 설정 정보에 기초하여 판단될 수 있다.
전자 장치의 동작과 관련된 보다 상세한 사항은 도 2 내지 도 6 등에서 후술한다.
본 개시에서 주체가 되는 전자 장치는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어, 또는, 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
일실시예에 따르면, 전자 장치는 네트워크 서버로 구현되는 다수의 컴퓨터 시스템 또는 컴퓨터 소프트웨어를 포함할 수 있으며, 다양한 정보를 웹 페이지로 구성하여 제공할 수 있다. 예를 들면, 전자 장치는 인트라넷 또는 인터넷과 같은 컴퓨터 네트워크를 통해 다른 네트워크 서버와 통신할 수 있는 하위 장치와 연결되어 작업 수행 요청을 접수하고, 그에 대한 작업을 수행하여 수행 결과를 제공하는 컴퓨터 시스템 및 컴퓨터 소프트웨어를 지칭할 수 있다. 이외에도, 전자 장치는 네트워크 서버 상에서 동작할 수 있는 일련의 응용 프로그램과, 내부에 구축되어 있는 각종 데이터베이스를 포함하는 광의의 개념으로 이해될 수 있다. 예컨대, 전자 장치는 도스(DOS), 윈도우(Windows), 리눅스(Linux), 유닉스(UNIX), 또는 맥OS(MacOS) 등의 운영 체제에 따라 다양하게 제공되는 네트워크 서버 프로그램을 이용하여 구현될 수 있다.
다양한 실시예에 따른 일련의 코드 검증 방법 및 정보 제공 방법과 관련된 동작들은, 단일의 물리적 장치에 의해 구현될 수 있으며, 복수의 물리적 장치가 유기적으로 결합된 방식으로 구현될 수도 있다. 예를 들어, 전자 장치가 수행한다고 설명한 동작들 중 일부는 어느 하나의 물리적 장치에 의해 구현되고, 나머지 일부는 다른 물리적 장치로 구현될 수 있다. 다시 말해, 이상 및 이하에서 전자 장치가 수행한다고 설명되는 동작은 실제로는 복수의 장치(예컨대 후술할 작업자의 장치 등)에 의해 수행될 수 있으며, 이는 전자 장치가 다른 외부 장치에 동작 중 일부의 수행을 요청하는 방식으로도 수행될 수 있다.
도 2는 일실시예에 따른 전자 장치가 정보를 제공하는 방법의 동작 흐름도이다.
도 2를 참조하면, 전자 장치는 검증 대상 코드를 확인한다(210). 전술하였듯이, 실시예에 따라, 전자 장치가 코드 검증 요청을 명시적으로 수신하는 경우(도 1의 110에 대응) 외에도, 사용자가 자신이 작업한 코드를 특정 페이지에 업로드하는 경우, 사용자가 자신이 작업한 코드와 관련한 경로 정보를 입력하는 경우 및 사용자가 코드를 작업하였음을 알리기만 하는 경우 등, 전자 장치가 검증 코드를 확인하는 다양한 경우들이 존재할 수 있다.
일실시예에 따르면, 검증 대상 코드에 대응하는 정보가 웹 페이지에 입력된 경우, 전자 장치는 검증 대상 코드에 포함된 검증 요청 메시지를 확인할 수 있다. 검증 요청 메시지를 어디에 혹은 어떻게 작성할지에 대한 합의된 규칙이 존재하는 경우, 전자 장치는 검증 대상 코드에서 관련 부분만을 확인함으로써 검증 요청 메시지 확인하는 데에 소요되는 리소스를 절약할 수 있다. 예를 들어, 검증 요청 메시지는 첫 10줄 이내에서 주석에 삽입한다는 합의된 규칙이 존재하는 경우 전자 장치는 첫 10줄에서 주석 처리된 부분의 텍스트만을 확인하여 검증 대상 코드가 속성 정보를 지시하는 특정 텍스트를 포함하는지 여부를 판단하고, 포함하는 경우에는 그 내용을 확인할 수 있다.
전자 장치는 검증 대상 코드에 대응하는 설정 정보에 기초하여 검증 대상 코드에 대한 검증 세트를 수행한다(220, 도 1의 130에 대응). 검증 대상 코드에 대응하는 설정 정보는 도 1의 120의 환경 설정 정보에 대응될 수 있다.
일실시예에 따른 전자 장치는 설정 정보에 기초하여 검증 세트의 수행을 통하여 판단할 지표의 유형 정보 및 각 지표 별 기준 정보를 판단할 수 있다. 지표는 예컨대 코드 커버리지(code coverage), 비일치율(difference rate) 및 합격률(pass rate) 등을 포함할 수 있다. 관련하여, 코드 커버리지는 테스트 진행 시 코드가 포함하는 복수의 컴포넌트 중 얼마나 많은 컴포넌트가 실행되었는지에 대응되는 지표를 포함할 수 있다. 또한, 비일치율은 검증 대상 코드를 특정 환경(예를 들어, 서비스 환경 또는 서비스 환경에 대응하도록 구현된 테스트 환경)에서 실행하는 경우 획득되는 응답과 기준 코드(검증 대상 코드를 적용하기 이전의 코드를 포함)를 특정 환경(또는 서비스 환경)에서 실행하는 경우 획득되는 응답을 비교하여 그 불일치 정도를 판단한 결과에 대응되는 지표를 포함할 수 있다. 또한, 합격률은 검증 대상 코드를 복수의 테스트 환경에서 실행하는 경우 적절한 응답이 획득되는 비율에 대응되는 지표를 포함할 수 있다.
아울러, 지표 별 기준 정보는 각 지표를 통하여 코드를 검증한 결과 대상 코드에 문제가 없는지 여부를 판단하기 위한 기준이 되는 값을 포함할 수 있다. 예컨대, 코드 커버리지에 대한 기준 정보가 90%라는 기준값을 포함하는 경우, 전자 장치는 코드에 대하여 코드 커버리지 테스트를 진행한 결과 실행된 컴포넌트가 전체의 90%를 초과하는 경우에 코드 커버리지 테스트와 관련해서는 코드에 문제가 없다고 판단할 수 있다.
도 3을 더 참조하면, 코드 검증을 위한 테스트 서비스는, 커버리지를 테스트하는 서비스(310, "Coverage as Service"), 코드 비일치율을 판단하는 서비스(320, "Diff as Service") 및 코드 구동을 테스트하는 서비스(330, "Testing as Service") 중 적어도 하나를 포함할 수 있다.
커버리지를 테스트하는 서비스(310)는, 검증 세트의 수행을 통하여 판단할 지표가 코드 커버리지를 포함하는 경우 실행되는 테스트로서, 전자 장치는 검증 대상 코드를 위한 테스트 환경을 확인하고, 테스트 환경에서 검증 대상 코드를 실행하고, 테스트 환경에서 검증 대상 코드를 실행한 결과 검증 대상 코드가 포함하는 복수의 컴포넌트 중 활성화된 컴포넌트의 비율 정보를 획득함으로써 테스트를 실행할 수 있다. 관련하여, 각 컴포넌트는 예컨대 검증 대상 코드가 포함하는 각 라인(line) 혹은 문단 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
실시예에 따라서는, 전자 장치는 컴포넌트 별 활성화 여부를 포함하는 정보를 작업자의 장치에 제공하고, 작업자의 장치는 컴포넌트 별 활성화 여부를 포함하는 화면을 표시할 수도 있다. 또한, 일 예시에 따르면, 작업자의 장치는 작업자의 사용자 입력이 있을 경우에 컴포넌트 별 활성화 여부를 표시할 수도 있는데, 예컨대 코드의 특정 컴포넌트에 사용자가 마우스 커서를 올려놓으면 해당 컴포넌트에 대한 활성화 여부가 표시될 수 있다.
코드 비일치율을 판단하는 서비스(320)는, 검증 세트의 수행을 통하여 판단할 지표가 코드 비일치율을 포함하는 경우 실행되는 테스트로서, 전자 장치는 검증 대상 코드를 서비스 환경에 대응되는 테스트 환경에서 실행하고, 검증 대상 코드를 테스트 환경에 실행하는 경우에 획득되는 응답 및 기준 코드를 서비스 환경에서 실행하는 경우에 획득되는 응답을 비교할 수 있다. 관련하여, 전자 장치가 검증 대상 코드를 서비스 환경에서 실행할 수도 있으나, 이는 예측하지 못한 서비스 장애를 초래할 수 있으므로, 서비스 환경에 대응하는 테스트 환경에서 실행하는 것이 보다 일반적일 수 있는 반면, 기준 코드의 경우에는 서비스 환경에서 직접 실행하거나, 이전에 서비스 환경에서 실행한 결과를 불러오기할 수 있다(물론, 기준 코드 또한 테스트 환경에서 실행하는 것도 가능하다).
일실시예에 따르면, 코드 비일치율을 판단하는 서비스(320)를 실행함에 있어서, 전자 장치는 검증 대상 코드 중 일부에 대해서는 판단을 제외할 수 있다. 이는, 검증 대상 코드에 따라 의도된 차이(즉 코드에 따른 목표 변경 대상 응답 부분)에 대해서는, 기준 코드와 일치하지 않는다는 이유로 해당 코드가 지표 기준을 만족하지 못한다고 판단하는 것이 부적절하기 때문일 수 있다. 관련하여, 판단을 제외할 부분은 전자 장치가 직접 판단할 수도 있고, 작업자 등으로부터 판단을 제외할 부분에 대한 지시 정보를 입력받을 수도 있다. 실시예에 따라, 전자 장치는 검증 대상 코드 중 판단을 제외할 부분에 대한 입력 기능을 제공하기 위한 정보를 작업자의 장치에 제공하고, 작업자의 장치는 이에 기초하여 판단을 제외할 부분에 대한 입력 기능을 포함하는 사용자 인터페이스를 제공할 수 있다.
한편, 검증 대상 코드 중 일부에 대해서는 판단을 제외하는 기능과 관련해서는, 코드 비일치율을 판단하는 서비스(320)를 대표적인 예시로 들어 설명하였으나, 다른 유형의 서비스들과 관련해서도 필요에 따라 코드 중 일부에 대해서 판단을 제외하는 기능이 포함될 수 있다.
코드 구동을 테스트하는 서비스(330)는, 검증 세트의 수행을 통하여 판단할 지표가 합격률을 포함하는 경우 실행되는 테스트로서, 전자 장치는 검증 대상 코드를 복수의 테스트 환경에서 실행하고, 복수의 테스트 환경에서 실행한 결과 획득되는 응답이 적절한 응답에 해당하는 비율 정보를 획득할 수 있다. 관련하여, 적절한 응답은 복수의 테스트 환경 별로 매칭되는 것으로서, 예를 들어 아이템 검색 결과 화면에서 특정 아이템에 대한 사용자 입력 정보가 수신된 케이스에 대응하는 테스트 환경의 경우 적절한 응답은 특정 아이템에 대한 상세 정보 페이지의 제공에 해당할 수 있다.
다시 도 2로 돌아와서, 일실시예에 따르면, 전자 장치는 검증 대상 코드와 관련한 속성 정보를 획득하고, 속성 정보에 기초하여 검증 세트를 수행하기 위한 하나 이상의 테스트 환경을 결정할 수 있다. 예컨대, 검증 대상 코드가 속성 정보를 지시하는 메시지를 포함하는 경우, 전자 장치는 해당 메시지에 기초하여 검증 대상 코드와 관련한 속성 정보를 획득하고 이에 기초하여 테스트 환경을 결정할 수 있다. 검증 요청 메시지와 마찬가지로, 속성 정보를 지시하는 메시지를 어디에 혹은 어떻게 작성할지에 대한 합의된 규칙이 존재하는 경우, 전자 장치는 검증 대상 코드에서 관련 부분만을 확인함으로써 속성 정보를 지시하는 메시지를 확인하는 데에 소요되는 리소스를 절약할 수 있다. 예를 들어, 검증 대상 코드의 속성 정보는 첫 100줄 이내에서 주석에 삽입한다는 합의된 규칙이 존재하는 경우 전자 장치는 첫 100줄에서 주석 처리된 부분의 텍스트만을 확인하여 검증 대상 코드가 속성 정보를 지시하는 특정 텍스트를 포함하는지 여부를 판단하고, 포함하는 경우에는 그 내용을 확인할 수 있다.
실시예에 따라서는, 작업자의 장치가 코드와 별개로 속성 정보를 지시하는 정보를 더 수신하여 전자 장치에 제공하는 등, 속성 정보의 획득은 특정 실시예에 한정되지 않고 다양한 방식에 따라 이루어질 수 있다.
본 개시에서는 전자 장치가 검증 대상 코드에 포함된 검증 요청 메시지 및 속성 정보를 확인하는 내용을 설명하였으나, 이 외에도 작업자가 검증 대상 코드 상에 테스트를 위한 다양한 정보를 입력할 수 있고, 전자 장치는 해당 정보를 확인하여 테스트를 진행할 수 있으며, 검증 요청 메시지 및 속성 정보는 입력될 수 있는 다양한 정보들의 예시들에 불과하다고 이해되어야 한다.
또한, 위 실시예들에서, 코드의 속성 정보 등을 주석에 삽입하는 경우를 합의된 규칙의 예시로 설명하였으나, 코드의 속성 정보는 코드 본문에도 삽입될 수 있고, 나아가서는 코드 본문에 삽입된 부분이 실행되어 특정 API를 호출함으로써 검증 세트가 수행될 수도 있는 등, 다양한 예시들이 존재할 수 있다. 한편, 이렇게 코드 본문에 삽입된 메시지에 기초하여 검증 세트가 수행되거나 속성 정보가 확인되는 경우에는, 검증 이후 코드가 최종 배포될 때 해당 메시지 부분은 배포에서 제외될 수도 있다.
한편, 실시예에 따라서는, 전자 장치는 테스트 환경과 관련된 정보를 작업자로부터 입력받고, 입력받은 정보에 기초하여 테스트 환경을 결정할 수도 있다. 이와 관련한 구체적 예시로서, 도 5를 더 참조하면, 작업자 장치는 테스트 환경과 관련된 정보를 입력받기 위한 사용자 인터페이스를 작업자에게 제공할 수 있다(500). 이 경우, 작업자에게 제공한 사용자 인터페이스에 대한 사용자 입력이 있을 경우 작업자 장치는 이를 전자 장치에 제공할 수 있다. 도 5는 테스트 환경과 관련된 정보를 입력받기 위하여 복수의 선택지를 스크롤의 형태로 작업자에게 제공하고 작업자가 그 중 하나를 선택하는 사용자 인터페이스를 도시하고 있으나, 테스트 환경과 관련된 정보를 입력받는 실시예가 이에 한정되는 것은 아니며, 예컨대 작업자가 직접 메시지를 입력하면 전자 장치가 해당 메시지에 포함된 키워드에 기초하여 테스트 환경을 결정하는 등의 다양한 실시예들이 존재할 수 있다.
또한, 작업자로부터 입력받은 정보는 테스트 환경을 직접적으로 지시하는 정보일 수도 있으나, 실시예에 따라 작업자로부터 입력받은 정보는 검증 대상 코드와 관련한 속성 정보를 포함할 수도 있으며, 이 경우 전자 장치는 해당 속성 정보에 기초하여 검증 세트를 수행하기 위한 하나 이상의 테스트 환경을 결정할 수 있다. 나아가, 실시예에 따라서는, 작업자로부터 입력받은 정보는 검증 요청 메시지 및 속성 정보 등 테스트를 위하여 필요한 정보를 코드에 입력하는 것과 관련한 규칙 정보를 포함할 수도 있고, 이 경우 전자 장치는 해당 규칙 정보에 기초하여 검증 대상 코드에 포함된 정보를 확인할 수도 있다.
다시 도 2로 돌아와서, 전자 장치는 검증 세트의 수행에 따른 검증 결과 정보를 작업자에게 제공할 수 있다(230). 관련하여, 검증 대상 코드가 각 지표 별 기준을 만족하지 않는 경우, 전자 장치는 검증 대상 코드의 작업자에게 검토 요청 정보를 제공하고, 작업자의 장치는 검토 요청을 포함하는 화면을 작업자에게 제공할 수 있다.
실시예에 따라, 어떤 지표 기준을 만족하지 못했는지에 따라 전자 장치가 제공하는 검토 요청 정보의 유형이 결정될 수도 있다. 예컨대, 전자 장치는 주요 지표에 대해서는 지표 기준을 만족했지만 비 주요 지표에 대해서 지표 기준을 만족하지 못한 경우에 대해 제1검토 요청 정보를 제공하는 반면, 주요 지표에 대해서 지표 기준을 만족하지 못한 경우에 대해서는 제2검토 요청 정보를 제공할 수 있다. 예를 들어, 코드 커버리지는 비 주요 지표이고, 비일치율 및 합격률은 주요 지표인 경우에, 코드 커버리지에 대해서는 기준 90%에 미달하는 85%의 코드 실행률을 보인 반면, 비일치율 및 합격률에 대해서는 기준을 통과한 경우, 전자 장치는 제1검토 요청 정보를 작업자에게 제공할 수 있다. 관련하여, 제1검토 요청 정보를 제공하였는지 혹은 제2검토 요청 정보를 제공하였는지에 따라 작업자에게 제공되는 화면이 달라질 수 있다.
나아가, 실시예에 따라서는, 검증 대상 코드가 정상적으로 실행되지 않아 각 지표 별 기준을 만족하는지 여부를 확인할 수 없는 경우, 전자 장치는 해당 코드에 대한 실행 실패를 알리는 정보를 제공할 수도 있으며, 작업자의 장치는 검증 대상 코드의 실행 실패를 알리는 화면을 작업자에게 제공할 수 있다.
한편, 검증 대상 코드가 각 지표 별 기준을 만족하는 경우, 전자 장치는 검증을 종료할 수 있다. 이 경우에도, 작업자의 장치는 검증 종료를 알리는 정보를 화면에 표시할 수 있다. 관련하여, 검증 종료를 명시하지 않더라도, 별도의 검토 요청이나 실행 실패 정보 등이 화면에 표시되지 않고, 각 지표 별로 기준을 통과하였음을 알리는 검증 결과가 화면에 표시되는 경우에는, 검증 종료를 알리는 정보가 화면에 표시되는 것으로 이해될 수 있다.
검증 세트를 수행한 결과를 작업자에게 제공한 화면의 일 예시가 도 4에 도시된다. 도 4를 더 참조하면, 복수의 테스트 서비스별로 그 실행 여부와 함께 기준의 만족 여부가 화면에 표시될 수 있다(400). 관련하여, "Automation"및 "Sonar and UT"는 코드 구동을 테스트하는 서비스(330)의 예시들에 해당하고, "Automation Code Coverage"는 코드 비일치율을 판단하는 서비스(320)의 일 예시에 해당할 수 있다. 도 4에 도시되는 화면의 경우, 코드 구동을 테스트하는 서비스(330) 중 일부는 통과하고, 일부는 실행되지 않았으며, 코드 비일치율을 판단하는 서비스(320)는 통과했음을 알리는 정보들을 포함할 수 있다. 한편, 도 4의 예시와 관련하여, "Sonar and UT"에 대한 결과 "No Run"은 작업자가 해당 테스트 서비스를 요청하지 않았거나 전자 장치가 해당 테스트 서비스를 실행할 필요가 없다고 판단하는 등의 이유로 해당 테스트 자체가 수행되지 않은 경우로 이해될 수 있다. 즉, "No Run"이 검증 대상 코드의 실행 실패를 알리는 정보로 이해될 것은 아니며, 검증 대상 코드의 실행이 실패되는 경우는 "Failed" 등 그 실행 실패를 명확히 알릴 수 있는 보다 적절한 문구가 표시될 수 있다.
도 6은 일실시예에 따른 검증 세트를 이용한 코드 검증 방법의 구체적 예시를 설명하기 위한 도면이다.
도 6을 참조하면, 일실시예에 따른 전자 장치는 코드 검증 요청을 수신한다(110). 전술하였듯이 코드 검증 요청은 웹 페이지 상에서 코드의 검증 요청 입력을 제공받는 경우("Branch PR/Push")에 한정되지 않고, 예컨대 사용자가 자신이 작업한 코드와 관련한 경로 정보를 입력하는 경우("Branch List/Overview") 등의 다양한 예시들을 포함할 수 있다.
전자 장치는 테스트 서비스를 수행하기에 앞서서 테스트 환경을 설정하거나, 혹은 환경 설정 정보를 확인할 수 있다(120). 전자 장치는 일실시예에 따른 전자 장치는 설정 정보에 기초하여 검증 세트의 수행을 통하여 판단할 지표의 유형 정보 및 각 지표 별 기준 정보를 판단할 수 있다.
전자 장치는 설정 정보에 기초하여 검증 대상 코드에 대한 검증 세트를 수행한다(130). 전술하였듯이 코드 검증을 위한 테스트 서비스는, 커버리지를 테스트하는 서비스(310), 코드 비일치율을 판단하는 서비스(320) 및 코드 구동을 테스트하는 서비스(330) 중 적어도 하나를 포함할 수 있다. 관련하여, 각 테스트 서비스와 관련해서도 세부적인 테스트 유형들이 존재할 수도 있는데, 예컨대 커버리지를 테스트하는 서비스는 유닛 테스트 커버리지("UT Coverage") 및 자동화 코드 커버리지("Automation Code Coverage") 등의 테스트 유형들을 포함할 수 있고, 나아가서는 여러 유형을 통합하여 커버리지를 테스트하는 병합 커버리지("Merged Coverage") 등의 테스트 유형들을 더 포함할 수도 있다.
실시예에 따라서는, 전자 장치는 커버리지를 테스트하는 서비스(310), 코드 비일치율을 판단하는 서비스(320) 및 코드 구동을 테스트하는 서비스(330) 외의 다른 서비스들에 더 기초하여 검증 세트를 수행할 수도 있다. 예를 들어, 전자 장치는 테스팅 환경을 결정하기 위한 서비스(610, "Testing Environment as a Service") 및 모의 페이지를 제공하기 위한 서비스(620, "Mock as a Service") 등을 더 포함할 수 있다. 이러한 예시들 이외에도, 전자 장치는 다른 테스트 서비스들이나 테스트 서비스들을 보조하기 위한 서비스들에 더 기초하여 검증 세트를 수행할 수 있는 등, 검증 세트를 수행하기 위한 테스트 서비스들은 전술한 예시들에 한정되지 않는다.
검증 세트를 수행한 전자 장치는 검증 세트의 수행에 따른 검증 결과 정보를 제공한다(630). 전술하였듯이, 검증 대상 코드가 각 지표 별 기준을 만족하지 않는 경우, 전자 장치는 검증 대상 코드의 작업자에게 검토 요청 정보를 제공할 수 있다("PR Checks").
도 7은 일실시예에 따른 코드를 검증하는 전자 장치의 구성의 예시도이다.
도 7을 참조하면, 전자 장치는 트랜시버(710), 프로세서(720) 및 메모리(730)를 포함한다. 전자 장치는 트랜시버(710)를 통하여 기준 서버(120), 개발 서버(130) 및 외부 장치(예를 들어, 퍼스널 컴퓨터) 등과 연결되고, 데이터를 교환할 수 있다.
프로세서(720)는 도 1 내지 도 6을 통하여 전술한 적어도 하나의 장치들을 포함하거나, 도 1 내지 도 6을 통하여 전술한 적어도 하나의 방법을 수행할 수 있다. 메모리(730)는 도 1 내지 도 6을 통하여 전술한 적어도 하나의 방법을 수행하기 위한 정보(전술한 요청 정보 세트, 요청 정보 서브 세트, 제1 응답 세트, 제2 응답 세트, 통계 정보 및 비교 정보 포함)를 저장할 수 있다. 메모리(730)는 휘발성 메모리 또는 비휘발성 메모리일 수 있다.
프로세서(720)는 프로그램을 실행하고, 정보를 제공하기 위한 전자 장치를 제어할 수 있다. 프로세서(720)에 의하여 실행되는 프로그램의 코드는 메모리(730)에 저장될 수 있다.
또한 실시 예의 전자 장치는 관리자에게 정보를 제공할 수 있는 인터페이스를 더 포함할 수 있다.
한편, 본 명세서와 도면에는 본 발명의 바람직한 실시 예에 대하여 개시하였으며, 비록 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예 외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.
전술한 실시예들에 따른 전자 장치 또는 단말은, 프로세서, 프로그램 데이터를 저장하고 실행하는 메모리, 디스크 드라이브와 같은 영구 저장부(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 (13)

  1. 전자 장치에서 정보를 제공하는 방법에 있어서,
    검증 대상 코드를 확인하는 단계;
    상기 검증 대상 코드에 대응하는 설정 정보에 기초하여 상기 검증 대상 코드에 대한 검증 세트를 수행하는 단계; 및
    상기 검증 세트의 수행에 따른 검증 결과 정보를 제공하는 단계를 포함하는, 정보를 제공하는 방법.
  2. 제1항에 있어서,
    상기 전자 장치는 상기 설정 정보에 기초하여 상기 검증 세트의 수행을 통하여 판단할 지표의 유형 정보 및 각 지표 별 기준 정보를 판단하는 것을 특징으로 하는, 정보를 제공하는 방법.
  3. 제2항에 있어서,
    상기 검증 세트를 수행하는 단계는
    상기 검증 세트를 수행한 결과 상기 검증 대상 코드가 상기 각 지표 별 기준을 만족하는 경우, 검증을 종료하는 단계를 포함하는 것을 특징으로 하는, 정보를 제공하는 방법.
  4. 제2항에 있어서,
    상기 검증 세트를 수행하는 단계는
    상기 검증 세트를 수행한 결과 상기 검증 대상 코드가 상기 각 지표 별 기준을 만족하지 않는 경우, 상기 검증 대상 코드의 작업자에게 검토 요청 정보를 제공하는 단계를 포함하는 것을 특징으로 하는, 정보를 제공하는 방법.
  5. 제1항에 있어서,
    상기 검증 세트의 수행을 통하여 판단할 지표는 코드 커버리지(coverage)를 포함하고,
    상기 검증 세트를 수행하는 단계는
    상기 검증 대상 코드를 위한 테스트 환경을 확인하는 단계;
    상기 테스트 환경에서 상기 검증 대상 코드를 실행하는 단계; 및
    상기 테스트 환경에서 상기 검증 대상 코드를 실행한 결과 상기 검증 대상 코드가 포함하는 복수의 컴포넌트 중 활성화된 컴포넌트의 비율 정보를 획득하는 단계를 포함하는 것을 특징으로 하는, 정보를 제공하는 방법.
  6. 제1항에 있어서,
    상기 검증 세트의 수행을 통하여 판단할 지표는 합격률(pass rate)을 포함하고,
    상기 검증 세트를 수행하는 단계는
    상기 검증 대상 코드를 복수의 테스트 환경에서 실행하는 단계; 및
    상기 복수의 테스트 환경에서 실행한 결과 획득되는 응답이 적절한 응답에 해당하는 비율 정보를 획득하는 단계를 포함하는 것을 특징으로 하는, 정보를 제공하는 방법.
  7. 제1항에 있어서,
    상기 검증 세트의 수행을 통하여 판단할 지표는 비일치율(difference rate)을 포함하고,
    상기 검증 세트를 수행하는 단계는
    상기 검증 대상 코드를 서비스 환경에 대응되는 테스트 환경에서 실행하는 단계; 및
    상기 검증 대상 코드를 상기 테스트 환경에 실행하는 경우에 획득되는 응답 및 기준 코드를 상기 서비스 환경에서 실행하는 경우에 획득되는 응답을 비교하는 단계를 포함하는 것을 특징으로 하는, 정보를 제공하는 방법.
  8. 제1항에 있어서,
    상기 검증 세트를 수행하는 단계는
    상기 검증 대상 코드와 관련한 속성 정보를 획득하는 단계; 및
    상기 속성 정보에 기초하여, 상기 검증 세트를 수행하기 위한 하나 이상의 테스트 환경을 결정하는 단계를 포함하는 것을 특징으로 하는, 정보를 제공하는 방법.
  9. 제8항에 있어서,
    상기 속성 정보를 획득하는 단계는
    상기 검증 대상 코드가 상기 속성 정보를 지시하는 메시지를 포함하는 경우, 상기 메시지에 기초하여 상기 속성 정보를 획득하는 단계를 포함하는 것을 특징으로 하는, 정보를 제공하는 방법.
  10. 제1항에 있어서,
    상기 검증 대상 코드를 확인하는 단계는
    상기 검증 대상 코드에 대응하는 정보가 웹 페이지에 입력된 경우, 상기 검증 대상 코드에 포함된 검증 요청 메시지를 확인하는 단계를 포함하는 것을 특징으로 하는, 정보를 제공하는 방법.
  11. 제10항에 있어서,
    상기 검증 요청 메시지를 확인하는 단계는
    상기 검증 대상 코드에서 주석 처리된 메시지가 특정 텍스트를 포함하는지 여부를 판단하는 단계를 포함하는 것을 특징으로 하는, 정보를 제공하는 방법.
  12. 제1항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 비일시적 기록매체.
  13. 정보를 처리하는 전자 장치에 있어서,
    트랜시버, 명령어를 저장하는 메모리 및 프로세서를 포함하고,
    상기 프로세서는, 상기 트랜시버 및 상기 메모리와 연결되어,
    검증 대상 코드를 확인하고,
    상기 검증 대상 코드에 대응하는 설정 정보에 기초하여 상기 검증 대상 코드에 대한 검증 세트를 수행하고,
    상기 검증 세트의 수행에 따른 검증 결과 정보를 제공하는, 전자 장치.
KR1020220080390A 2022-06-30 2022-06-30 코드 검증 정보를 제공하는 전자 장치 및 그 방법 KR20240003207A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020220080390A KR20240003207A (ko) 2022-06-30 2022-06-30 코드 검증 정보를 제공하는 전자 장치 및 그 방법
PCT/KR2022/009580 WO2024005246A1 (ko) 2022-06-30 2022-07-04 코드 검증 정보를 제공하는 전자 장치 및 그 방법
TW112122533A TW202403555A (zh) 2022-06-30 2023-06-16 提供編碼驗證資訊之電子裝置及其方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220080390A KR20240003207A (ko) 2022-06-30 2022-06-30 코드 검증 정보를 제공하는 전자 장치 및 그 방법

Publications (1)

Publication Number Publication Date
KR20240003207A true KR20240003207A (ko) 2024-01-08

Family

ID=89380719

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220080390A KR20240003207A (ko) 2022-06-30 2022-06-30 코드 검증 정보를 제공하는 전자 장치 및 그 방법

Country Status (3)

Country Link
KR (1) KR20240003207A (ko)
TW (1) TW202403555A (ko)
WO (1) WO2024005246A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0895826A (ja) * 1994-09-21 1996-04-12 Hitachi Software Eng Co Ltd プログラムテスト方法
WO2015088067A1 (ko) * 2013-12-10 2015-06-18 슈어소프트테크주식회사 소프트웨어 품질 요소 추출 모듈과 방법 및 소프트웨어 품질 요소 추출 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체
KR20160050634A (ko) * 2014-10-30 2016-05-11 주식회사 케이티 테스트 대상 소프트웨어를 테스트하는 시스템, 테스트 대상 소프트웨어를 테스트하는 방법 및 클라우드 서버
JP2016143160A (ja) * 2015-01-30 2016-08-08 富士通株式会社 検証プログラム、検証装置及び検証方法
KR102293274B1 (ko) * 2019-10-02 2021-08-24 국방과학연구소 테스트 환경 구축 방법 및 장치

Also Published As

Publication number Publication date
TW202403555A (zh) 2024-01-16
WO2024005246A1 (ko) 2024-01-04

Similar Documents

Publication Publication Date Title
US9846638B2 (en) Exposing method related data calls during testing in an event driven, multichannel architecture
US10180836B1 (en) Generating source code review comments using code analysis tools
US7529977B2 (en) Automated extensible user interface testing
CN108319575B (zh) 一种页面组件的校验方法、装置、服务器和存储介质
US8196105B2 (en) Test framework for automating multi-step and multi-machine electronic calendaring application test cases
CN110209684A (zh) 数据库ddl变更操作的跟踪方法、装置、系统及介质
CN106940695A (zh) 数据源信息的校验方法及装置
CN112363753A (zh) 数据校验方法、装置、电子设备及存储介质
JP2018532169A (ja) 失敗したテストスクリプトについてのデバッグ情報を生成、収集、格納、およびロードするための方法および装置
EP3818445A1 (en) Automated control of distributed computing devices
US10846206B2 (en) Adaptive software testing
CN108959508B (zh) Sql数据生成方法及装置
KR20240003207A (ko) 코드 검증 정보를 제공하는 전자 장치 및 그 방법
CN116661758A (zh) 一种优化日志框架配置的方法、装置、电子设备及介质
US11226810B1 (en) Method for providing information based on expected result value and computing device using the same
CN113918162B (zh) 一种基于集中式管理模式下的前端代码自动化校验方法
WO2011001304A1 (en) A method and an apparatus for tracing software
TW202307670A (zh) 自動產生參數測試請求的裝置及方法
TW202303388A (zh) 軟體應用中鑑別錯誤的裝置及方法
KR102612851B1 (ko) 스크립트와 관련한 정보를 제공하는 전자 장치 및 그 방법
CN113238940A (zh) 一种接口测试结果的比对方法、装置、设备和存储介质
CN112596705B (zh) 项目版本控制方法、装置、电子设备及存储介质
US11853189B2 (en) Apparatus and method for providing error information using graphical user interface
CN115543807A (zh) 一种自动化回归测试方法、装置、计算机设备及存储介质
Konduru et al. Automated Testing to Detect Status Data Loss in Android Applications