KR102619048B1 - 오류 처리 방법 및 그 시스템 - Google Patents

오류 처리 방법 및 그 시스템 Download PDF

Info

Publication number
KR102619048B1
KR102619048B1 KR1020230061404A KR20230061404A KR102619048B1 KR 102619048 B1 KR102619048 B1 KR 102619048B1 KR 1020230061404 A KR1020230061404 A KR 1020230061404A KR 20230061404 A KR20230061404 A KR 20230061404A KR 102619048 B1 KR102619048 B1 KR 102619048B1
Authority
KR
South Korea
Prior art keywords
error
tests
test
specific error
selecting
Prior art date
Application number
KR1020230061404A
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 KR1020230061404A priority Critical patent/KR102619048B1/ko
Application granted granted Critical
Publication of KR102619048B1 publication Critical patent/KR102619048B1/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/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • 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/368Test management for test version control, e.g. updating test cases to a new software version
    • 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/3684Test management for test design, e.g. generating new test cases
    • 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/3672Test management
    • G06F11/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30072Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)

Abstract

오류 처리 방법 및 그 시스템이 제공된다. 몇몇 실시예들에 따른 오류 처리 방법은, 타깃 소프트웨어에서 발생된 오류에 대한 정보를 수신하는 단계, 수신에 대한 응답으로, 타깃 소프트웨어 내의 모듈들을 대상으로 진행 중인 복수의 A/B 테스트들 중에서 오류와 연관된 테스트를 선별하는 단계 및 선별된 테스트 중 적어도 일부를 일시정지(pause)시키는 단계를 포함할 수 있다. 이러한 방법에 따르면, 타깃 소프트웨어에서 발생한 오류가 효과적으로 처리될 수 있다.

Description

오류 처리 방법 및 그 시스템{METHOD FOR HANDLING FAULT AND SYSTEM THEREOF}
본 개시는 소프트웨어에서 발생하는 오류를 처리하는 방법 및 그 시스템에 관한 것이다.
일반적으로 소프트웨어를 사용하는 동안 다양한 오류(fault or error)들이 발생한다. 이러한 오류들은 소프트웨어 개발 단계에서 실시되는 테스트(e.g., 기능 테스트, 통합 테스트 등)를 통해 완전히 해결되기 어렵기 때문에, 소프트웨어 유지 보수 단계에서 오류를 신속하게 처리(handling)하는 기술은 매우 중요하다.
한편, 최근에는 많은 사업자들이 스마트폰에 탑재되는 애플리케이션을 통해 다수의 사용자들에게 서비스를 제공하는 것이 일반적이다. 그런데, 이러한 애플리케이션에서 발생하는 오류들이 신속하게 해결되지 않으면, 서비스 중단이라는 문제가 야기되어 사업자와 사용자들에게 상당한 손실을 유발할 수 있다.
한국공개특허 제10-2017-0071825호 (2017.06.26 공개)
본 개시의 몇몇 실시예들을 통해 해결하고자 하는 기술적 과제는, 타깃 소프트웨어에서 발생한 오류(fault or error)를 효과적으로 처리할 수 있는 방법 및 그 방법을 수행하는 시스템을 제공하는 것이다.
본 개시의 몇몇 실시예들을 통해 해결하고자 하는 다른 기술적 과제는, 오류 발생과 서비스 중단을 최소화면서 타깃 소프트웨어를 점진적으로 업데이트할 수 있는 방법을 제공하는 것이다.
본 개시의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시의 기술분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상술한 기술적 과제를 해결하기 위한 본 개시의 몇몇 실시예들에 따른 오류 처리 방법은, 적어도 하나의 컴퓨팅 장치에 의해 수행되는 방법으로서, 타깃 소프트웨어에서 발생된 오류에 대한 정보를 수신하는 단계, 상기 수신에 대한 응답으로, 진행 중인 복수의 테스트들 중에서 상기 오류와 연관된 테스트를 선별하는 단계 - 상기 복수의 테스트들은 상기 타깃 소프트웨어 내의 모듈들을 대상으로 진행되는 A/B 테스트임 - 및 상기 선별된 테스트 중 적어도 일부를 일시정지(pause)시키는 단계를 포함할 수 있다.
몇몇 실시예들에서, 상기 오류와 연관된 테스트를 선별하는 단계는, 상기 복수의 테스트들의 오류 발생 이력에 기초하여 상기 연관된 테스트를 선별하는 단계를 포함할 수 있다.
몇몇 실시예들에서, 상기 수신된 오류 정보는 함수 호출 정보를 포함하고, 상기 오류와 연관된 테스트를 선별하는 단계는, 상기 함수 호출 정보에 기초하여 상기 오류와 연관된 상기 타깃 소프트웨어 내의 모듈을 식별하는 단계 및 상기 복수의 테스트들 중에서 상기 식별된 모듈을 대상으로 하는 테스트를 선별하는 단계를 포함할 수 있다.
몇몇 실시예들에서, 상기 타깃 소프트웨어는 사용자 단말에서 실행되는 애플리케이션이고, 상기 오류와 연관된 테스트를 선별하는 단계는, 상기 애플리케이션을 이용하는 활성 사용자의 수 대비 상기 오류의 발생 비율이 기준치 이상이라는 판단에 기초하여 상기 연관된 테스트를 선별하는 단계를 포함할 수 있다.
몇몇 실시예들에서, 상기 오류와 연관된 테스트를 선별하는 단계는 상기 오류의 심각도 레벨이 기준 레벨 미만인 경우에 수행되고, 상기 오류의 심각도 레벨이 상기 기준 레벨 이상이라는 판단에 기초하여 상기 복수의 테스트들을 전부 일시정지시키는 단계를 더 포함할 수 있다.
몇몇 실시예들에서, 상기 일시정지시키는 단계는, 상기 선별된 테스트 중에서 상기 오류와의 연관도가 기준치 이상인 테스트를 일시정지시키는 단계 및 상기 오류와의 연관도가 상기 기준치 미만인 테스트에 대해서는 일시정지 조치를 보류하고 테스트 정보를 관리자에게 제공하는 단계를 포함할 수 있다.
몇몇 실시예들에서, 상기 선별된 테스트 중 특정 테스트는 상기 타깃 소프트웨어의 기존 모듈과 변형 모듈을 대상으로 진행되고, 상기 일시정지시키는 단계는, 상기 변형 모듈을 비활성화시키는 단계를 포함할 수 있다.
몇몇 실시예들에서, 상기 타깃 소프트웨어는 사용자 단말에서 실행되는 애플리케이션이고, 상기 변형 모듈을 비활성화하는 단계는, 상기 특정 테스트에 참여하는 사용자들 중에서 상기 변형 모듈에 노출된 사용자의 단말로 상기 변형 모듈을 비활성화시키고 상기 기존 모듈을 활성화시키기 위한 제어 명령을 송신하는 단계를 포함할 수 있다.
몇몇 실시예들에서, 미리 설정된 시간이 경과함에 응답하여, 상기 일시정지된 테스트를 재개(resume)시키는 단계를 더 포함할 수 있다.
몇몇 실시예들에서, 제1 시간이 경과함에 응답하여, 상기 일시정지된 테스트를 재개(resume)시키는 단계, 상기 오류가 다시 발생한 경우, 상기 오류와 연관된 일시정지 횟수가 미리 설정된 최대 횟수 이하인지 여부를 판단하는 단계 및 상기 최대 횟수 이하라는 판단에 기초하여 상기 제1 시간보다 같거나 긴 제2 시간 동안 상기 재개된 테스트를 다시 일시정지시키는 단계를 더 포함할 수 있다.
상술한 기술적 과제를 해결하기 위한 본 개시의 몇몇 실시예들에 따른 오류 처리 시스템은, 하나 이상의 프로세서 및 상기 하나 이상의 프로세서에 의해 실행되는 컴퓨터 프로그램을 저장하는 메모리를 포함하고, 상기 컴퓨터 프로그램은, 타깃 소프트웨어에서 발생된 오류에 대한 정보를 수신하는 동작, 상기 수신에 대한 응답으로, 진행 중인 복수의 테스트들 중에서 상기 오류와 연관된 테스트를 선별하는 동작 - 상기 복수의 테스트들은 상기 타깃 소프트웨어 내의 모듈들을 대상으로 진행되는 A/B 테스트임 - 및 상기 선별된 테스트 중 적어도 일부를 일시정지(pause)시키는 동작을 위한 인스트럭션들을 포함할 수 있다.
상술한 기술적 과제를 해결하기 위한 본 개시의 몇몇 실시예들에 따른 컴퓨터 프로그램은, 컴퓨팅 장치와 결합되어, 타깃 소프트웨어에서 발생된 오류에 대한 정보를 수신하는 단계, 상기 수신에 대한 응답으로, 진행 중인 복수의 테스트들 중에서 상기 오류와 연관된 테스트를 선별하는 단계 - 상기 복수의 테스트들은 상기 타깃 소프트웨어 내의 모듈들을 대상으로 진행되는 A/B 테스트임 - 및 상기 선별된 테스트 중 적어도 일부를 일시정지(pause)시키는 단계를 실행시키기 위하여 컴퓨터로 판독가능한 기록매체에 저장될 수 있다.
본 개시의 몇몇 실시예들에 따르면, 타깃 소프트웨어 내의 모듈들을 대상으로 다양한 A/B 테스트들이 진행될 수 있고, 오류 발생 시에 연관된 A/B 테스트에 대해 일시정지(pause) 등과 같은 조치가 수행될 수 있다. 이러한 경우, 타깃 소프트웨어의 전체 기능에 큰 영향을 미치지 않고 오류 처리가 이루어질 수 있기 때문에, 서비스 중단 문제가 크게 완화될 수 있다(왜냐하면, 전체 A/B 테스트가 아닌 연관된 일부 A/B 테스트만 일시정지되고, A/B 테스트가 일시정지되더라도 기존 모듈을 통해 대부분의 기능은 제공되기 때문). 나아가, A/B 테스트 완료 시에는 변형 모듈을 그대로 타깃 소프트웨어에 반영함으로써 서비스 중단을 유발하는 소프트웨어 배포 횟수가 최소화될 수 있다.
또한, 오류 처리를 위한 기본 메커니즘(mechanism)으로 테스트 종료(또는 중단) 조치 대신에 일시정지 조치를 채택함으로써, A/B 테스트의 운영 효율성이 활용될 수 있다(e.g., A/B 테스트의 과도한 종료, 동일한 목적의 A/B 테스트가 중복 수행 등이 방지됨).
또한, A/B 테스트별 오류 발생 이력, 오류에 연관된 함수 호출 정보 등을 이용하여 해당 오류와 연관된 A/B 테스트가 정확하게 선별될 수 있다.
또한, 오류의 유형(e.g., 일반 오류, 중요 오류), 심각도 레벨 등에 따라 차등적인 조치를 수행함으로써, 오류 처리가 보다 효율적이 이루어질 수 있다.
본 개시의 기술적 사상에 따른 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 개시의 몇몇 실시예들에 따른 오류 처리 시스템과 그의 동작 환경을 개략적으로 설명하기 위한 예시적인 도면이다.
도 2 및 도 3은 본 개시의 몇몇 실시예들에 따른 오류 처리 시스템의 동작 환경을 부연 설명하기 위한 예시적인 도면이다.
도 4는 본 개시의 몇몇 실시예들에 따른 오류 처리 방법을 나타내는 예시적인 흐름도이다.
도 5는 본 개시의 몇몇 실시예들에 따른 연관 테스트 선별 방법을 설명하기 위한 예시적인 도면이다.
도 6은 본 개시의 몇몇 실시예들에 따른 테스트 일시정지(pause) 조치의 구현 방식을 설명하기 위한 예시적인 도면이다.
도 7은 도 4에 도시된 조치 수행 단계의 세부 과정을 나타내는 예시적인 흐름도이다.
도 8은 본 개시의 다른 몇몇 실시예들에 따른 오류 처리 방법을 나타내는 예시적인 흐름도이다.
도 9는 도 8에 도시된 중요 오류 처리 단계의 세부 과정을 나타내는 예시적인 흐름도이다.
도 10은 도 8에 도시된 중요 오류 처리 단계의 세부 과정을 부연 설명하기 위한 예시적인 도면이다.
도 11은 본 개시의 몇몇 실시예들에 따른 오류 처리 시스템을 구현할 수 있는 예시적인 컴퓨팅 장치를 도시한다.
이하, 첨부된 도면을 참조하여 본 개시의 다양한 실시예들을 상세히 설명한다. 본 개시의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 개시의 기술적 사상은 이하의 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 개시의 기술적 사상을 완전하도록 하고, 본 개시가 속한 기술분야에서 통상의 지식을 가진 자에게 본 개시의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 개시의 기술적 사상은 청구항의 범주에 의해 정의될 뿐이다.
본 개시의 다양한 실시예들을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
다른 정의가 없다면, 이하의 실시예들에서 사용되는 용어(기술 및 과학적 용어를 포함)는 본 개시가 속한 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있으나, 이는 관련 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수도 있다. 본 개시에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 개시의 범주를 제한하고자 하는 것은 아니다.
이하의 실시예들에서 사용되는 단수의 표현은 문맥상 명백하게 단수인 것으로 특정되지 않는 한, 복수의 개념을 포함한다. 또한, 복수의 표현은 문맥상 명백하게 복수인 것으로 특정되지 않는 한, 단수의 개념을 포함한다.
또한, 이하의 실시예들에서 사용되는 제1, 제2, A, B, (a), (b) 등의 용어는 어떤 구성요소를 다른 구성요소와 구별하기 위해 사용되는 것일 뿐, 그 용어에 의해 해당 구성요소의 본질이나 차례 또는 순서 등이 한정되지는 않는다.
이하, 첨부된 도면들을 참조하여 본 개시의 다양한 실시예들에 대하여 상세하게 설명한다.
도 1은 본 개시의 몇몇 실시예들에 따른 오류 처리 시스템(10)과 그의 동작 환경을 개략적으로 설명하기 위한 예시적인 도면이다.
도 1에 도시된 바와 같이, 실시예들에 따른 오류 처리 시스템(10)은 다수의 사용자 단말들(12-1 내지 12-N)과 관리자 단말(11)이 존재하는 환경에서 동작할 수 있다. 다만, 도 1은 오류 처리 시스템(10)이 사용자 단말들(12-1 내지 12-N)에 탑재된 소프트웨어(e.g., 앱)에서 발생하는 오류를 처리(핸들링)하는 경우를 가정하고 있다. 다시 말해, 도 1은 타깃 소프트웨어가 사용자 단말들(12-1 내지 12-N)에 탑재된 소프트웨어(e.g., 애플리케이션)인 경우를 가정하고 있다. 따라서, 타깃 소프트웨어가 사용자 단말(e.g., 12-1)이 아닌 다른 장치(e.g., 서버측 장치)의 소프트웨어라면, 도 1에 도시된 사용자 단말(e.g., 12-1)은 해당 장치로 변경될 수도 있다. 즉, 다른 몇몇 실시예들에서는, 오류 처리 시스템(10)이 서버측 장치들을 대상으로 오류 처리를 수행할 수도 있다.
이하에서는, 설명의 편의상, 임의의 사용자 단말(e.g., 12-1 or 12-2)을 지칭하거나 전체 사용자 단말들(12-1 내지 12-N)을 총칭하는 경우 모두에 참조번호 '12'를 사용하도록 하며, 오류 처리 시스템(10)을 '처리 시스템(10)'으로 약칭하도록 한다.
처리 시스템(10)은 오류 처리 기능을 구비한 컴퓨팅 장치/시스템을 의미할 수 있다. 가령, 처리 시스템(10)은 사용자 단말들(12)로부터 실시간으로 타깃 소프트웨어에서 발생한 오류에 대한 정보를 수신하고 수신된 정보를 기초로 해당 오류에 대해 적절한 조치를 수행할 수 있다.
참고로, 오류(fault)는 관점에 따라 에러(error), 버그(bug), 결함(defect), 장애(failure), 이슈(issue), 크래시(crash), 사건(incident) 등과 같은 용어로 명명될 수도 있으며, 본 개시에서 사용되는 '오류'라는 용어는 예시된 용어들의 개념을 모두 포괄하는 것으로 이해될 수 있다.
본 개시의 다양한 실시예들에 따르면, 처리 시스템(10)은 타깃 소프트웨어에 대한 A/B 테스트가 진행되는 환경에서 오류 처리를 수행할 수 있다. 보다 이해의 편의를 제공하기 위해 도 2 및 도 3을 참조하여 부연 설명하도록 한다.
도 2에 도시된 바와 같이, 타깃 소프트웨어 내의 모듈들을 대상으로 다양한 A/B 테스트들(21-1 내지 21-K)이 진행될 수 있다. 이러한 A/B 테스트들(21-1 내지 21-K)의 관리 주체는 처리 시스템(10)일 수도 있고 다른 장치일 수도 있다. 다만, 이하에서는, A/B 테스트의 관리 주체가 처리 시스템(10)인 것을 가정하여 설명을 이어가도록 한다. 또한, 이하에서는, 설명의 편의상, 임의의 A/B 테스트(e.g., 21-1 or 21-2)를 지칭하거나 전체 A/B 테스트들(21-1 내지 21-K)을 총칭하는 경우 모두에 참조번호 '21'를 사용하도록 한다.
처리 시스템(10)은 타깃 소프트웨어 내의 둘 이상의 모듈들(e.g., A 모듈, B 모듈, C 모듈 등)을 대상으로 A/B 테스트(21)를 진행(수행)할 수 있다. 이때, A 모듈은 기존 모듈(e.g., 기존 기능을 제공하는 모듈, 신뢰성 검증이 완료된 모듈, 현재 버전의 타깃 소프트웨어를 구성하는 모듈 등)을 의미하고, B 모듈, C 모듈 등은 기존 모듈 대비 변형된 모듈(e.g., 신규 기능을 제공하는 모듈, 신뢰성 검증이 필요한 모듈, 다음 버전의 타깃 소프트웨어에 탑재될 모듈 등)을 의미할 수 있으나, 본 개시의 범위가 이에 한정되는 것은 아니다. 이하에서는, 이해의 편의를 위해, 2개의 모듈(즉, A 모듈과 B 모듈)을 대상으로 A/B 테스트를 진행하고 A 모듈과 B 모듈이 각각 '기존 모듈'과 '변형 모듈'인 것을 가정하여 설명을 이어가도록 한다.
처리 시스템(10)은 A 모듈을 제1 사용자 그룹에게 노출시키고 B 모듈을 제2 사용자 그룹에게 노출시키는 방식으로 A/B 테스트(21)를 진행할 수 있다. 가령, 처리 시스템(10)은 제1 사용자 그룹의 단말들(e.g., 12-1)이 A 모듈을 활성화시킨 상태로 타깃 소프트웨어를 실행시키도록 제어하고 제2 사용자 그룹의 단말들(e.g., 12-2)은 B 모듈을 활성화시킨 상태로 타깃 소프트웨어를 실행시키도록 제어할 수 있다(e.g., 특정 버전의 타깃 소프트웨어 배포 시 A 모듈과 B 모듈이 함께 탑재되어 배포되고, 처리 시스템(10)의 제어 명령을 통해 각 모듈이 활성화 또는 비활성화될 수 있음). 그러한 제어를 통해 각 모듈이 대응되는 사용자 그룹에게 노출될 수 있다. 다만, 본 개시의 범위가 이러한 방식에 한정되는 것은 아니다.
한편, 제1 사용자 그룹과 제2 사용자 그룹을 결정하는 방식은 다양하게 설계될 수 있다. 가령, 처리 시스템(10)은 제2 사용자 그룹의 비율을 제1 사용자 그룹보다 낮게 설정하고(왜냐하면, 오류는 보통 변형 모듈인 B 모듈에서 발생하므로) 두 사용자 그룹의 비율이 동일해질 때까지 점진적으로 제2 사용자 그룹의 비율을 증가시킬 수 있다. 다른 예로서, 제1 사용자 그룹과 제2 사용자 그룹의 비율에 대한 초기값 등은 A/B 테스트(21)의 관리자에 의해 적절한 값으로 설정될 수 있다.
경우에 따라, 처리 시스템(10)은 오류 발생 정도에 기초하여 두 사용자 그룹들의 비율을 조정할 수도 있다. 이를테면, 특정 A/B 테스트(21)의 오류 발생 정도(e.g., 오류 발생 횟수, 횟수의 증가 속도 등)가 기준치 이상인 경우, 처리 시스템(10)은 해당 A/B 테스트(21)에 대한 제2 사용자 그룹의 비율을 감소시킬 수 있고(왜냐하면, 오류는 보통 변형된 모듈인 B 모듈에서 발생하므로), 반대의 경우라면 해당 A/B 테스트(21)의 신속한 완료를 위해 제2 사용자 그룹의 비율을 증가시킬 수 있다.
상술한 A/B 테스트(21)는 다양한 목적으로 수행될 수 있다. 예를 들어, A/B 테스트(21)는 새로운 기능(또는 모듈)에 대한 검증(e.g., 신뢰성 검증), 사용자들의 반응 확인 등과 같은 목적으로 수행될 수 있을 것이나, 본 개시의 범위가 이에 한정되는 것은 아니며, A/B 테스트의 목적, A/B 테스트의 종속 변수 등은 얼마든지 달라질 수 있다. 당해 기술 분야의 종사자라면, A/B 테스트의 개념에 대해 이미 숙지하고 있을 것인 바, 이에 대한 더 이상의 설명은 생략하도록 한다.
도 2에 도시된 바와 같이, 처리 시스템(10)은 A/B 테스트(21) 별로 오류 발생 이력(22-1 내지 22-K)을 관리할 수 있다. 즉, 처리 시스템(10)은 특정 A/B 테스트(21)에서 어떠한 오류가 어느 정도로 발생하였는지에 대한 정보를 모니터링하고 관리할 수 있다. 오류 발생 이력(22-1 내지 22-K)은 특정 오류와 연관된 A/B 테스트(21)를 선별하기 위해 이용될 수 있는데, 이에 대해서는 도 4 등을 참조하여 후술하도록 한다.
오류 발생 이력(e.g., 22-1)은 예를 들어 오류의 명칭, 종류, 식별자, 유형(e.g., 일반 오류, 중요 오류 등), 심각도 레벨, 스택 트레이스(stack trace)와 같은 함수(메서드) 호출 정보, 발생 횟수(빈도), 발생 비율(e.g., 전체 오류 발생 횟수 대비 특정 오류의 발생 횟수, 테스트에 참여한 전체 사용자의 수 대비 오류가 발생한 사용자 수), 발생 시간 등의 정보를 포함할 수 있으나, 본 개시의 범위가 이에 한정되는 것은 아니다.
도 2에 예시된 환경에서, 처리 시스템(10)은 사용자 단말(12)로부터 실시간으로 오류 정보를 수신하고 해당 오류와 연관된 A/B 테스트(21)를 일시정지(pause)시키는 방식으로 오류 처리를 수행할 수 있다. 가령, 도 3에 도시된 바와 같이, 타깃 소프트웨어가 사용자 단말(12)에 탑재된 애플리케이션(31)이고 A 모듈(32)과 B 모듈(33)을 대상으로 A/B 테스트가 진행된다고 가정하자. 또한, 사용자 단말(12)은 B 모듈(33)을 사용자에게 노출시키고 있다고 가정하자(즉, 단말(12)의 사용자는 제2 사용자 그룹임). 이러한 경우, 처리 시스템(10)은 오류 정보(34)의 수신에 응답하여 B 모듈(33)을 비활성화시키는 제어 명령(35)을 사용자 단말(12)로 송신함으로써, 해당 A/B 테스트를 일시정지시킬 수 있다. 다만, 본 개시의 범위가 이에 한정되는 것은 아니다. 경우에 따라, 처리 시스템(10)은 제어 명령(35)을 통해 A 모듈(32)과 B 모듈(33)을 모두 비활성화시킬 수도 있다.
참고로, 일시정지 조치는 A/B 테스트의 재개(resume)를 보장하는 조치인 점에서 종료(또는 중단) 조치와 차이가 있을 수 있다(즉, 일시정지 조치는 A/B 테스트 진행의 연속성을 보장할 수 있음). 따라서, 일시정지 조치를 이용하면, A/B 테스트의 과도한 종료, A/B 테스트의 중복 수행 등이 미연에 방지될 수 있으며, 이에 따라 A/B 테스트에 대한 윤영 효율성이 크게 향상될 수 있다.
A/B 테스트(21)가 완료되면, 처리 시스템(10)은 테스트 결과에 따라 B 모듈을 타깃 소프트웨어에 반영할 수도 있다(e.g., 제어 명령을 통해 B 모듈을 계속 활성화시킴). 이러한 경우, 서비스 중단을 유발하는 소프트웨어 배포 절차를 거치지 않고도 타깃 소프트웨어가 점진적으로 업데이트될 수 있게 되며(즉, 서비스 중단 횟수, 소프트웨어 배포 횟수 등이 최소화될 수 있음), 사용자는 새로운 버전의 타깃 소프트웨어를 반복적으로 다운로드해야 하는 번거로움을 피할 수 있게 된다.
다시 도 1을 참조하여 설명한다.
상술한 처리 시스템(10)은 적어도 하나의 컴퓨팅 장치로 구현될 수 있다. 예를 들어, 처리 시스템(10)의 모든 기능이 하나의 컴퓨팅 장치에서 구현될 수도 있고, 처리 시스템(10)의 제1 기능은 제1 컴퓨팅 장치에서 구현되고 제2 기능은 제2 컴퓨팅 장치에서 구현될 수도 있다. 또는, 처리 시스템(10)의 특정 기능이 복수의 컴퓨팅 장치들에서 구현될 수도 있다.
컴퓨팅 장치는 컴퓨팅 기능을 구비한 임의의 장치를 모두 포함할 수 있으며, 이러한 장치의 일 예시에 대해서는 도 11을 참조하도록 한다.
컴퓨팅 장치는 다양한 구성요소들(e.g. 메모리, 프로세서 등)이 상호작용하는 집합체이므로, 경우에 따라 '컴퓨팅 시스템'으로 명명될 수도 있다. 물론, 컴퓨팅 시스템이라는 용어는 복수의 컴퓨팅 장치들이 상호작용하는 집합체라는 개념도 포괄할 수 있다.
관리자 단말(11)은 타깃 소프트웨어 또는 타깃 소프트웨어를 통해 제공되는 서비스를 관리하는 자의 단말을 의미할 수 있다. 관리자 단말(11)은 어떠한 컴퓨팅 장치로 구현되더라도 무방하다. 관리자는 예를 들어 개발자, 테스터(tester), 테스트 관리자, 서비스 제공자 등이 될 수 있을 것이나, 본 개시의 범위가 이에 한정되는 것은 아니다.
관리자는 단말(11)을 통해 중요 오류 지정, 심각도 레벨 정의/지정/변경과 같은 오류 관리를 수행할 수도 있고 A/B 테스트를 관리(e.g., 설계, 생성, 진행, 종료 등)할 수도 있다. 또한, 관리자는 단말(11)을 통해 처리 시스템(10)으로부터 오류 정보, 타깃 소프트웨어 정보 등과 같은 각종 정보를 수신할 수도 있다.
다음으로, 사용자 단말(12)은 타깃 소프트웨어를 이용하는 사용자 측의 단말을 의미할 수 있다. 사용자 단말(12)은 예를 들어 스마트폰, 태블릿 등과 같은 모바일 단말이 될 수 있을 것이나, 본 개시의 범위가 이에 한정되는 것은 아니며, 사용자 단말(12)은 데스크탑과 같은 고정형 단말이 될 수도 있다. 즉, 사용자 단말(12)은 다양한 형태의 컴퓨팅 장치로 구현될 수 있다.
사용자는 단말(12)에 탑재된 타깃 소프트웨어를 이용하는 과정에서 자연스럽게 A/B 테스트에 참여하게 되며, 이러한 과정들을 통해 타깃 소프트웨어가 업데이트되는 동안 서비스 중단이 최소화될 수 있다.
도 1에 도시된 바와 같이, 사용자 단말(12)과 처리 시스템(10) 및/또는 관리자 단말(11)과 처리 시스템(10)은 네트워크를 통해 통신할 수 있다. 여기서, 네트워크는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 이동 통신망(mobile radio communication network), Wibro(Wireless Broadband Internet) 등과 같은 모든 종류의 유/무선 네트워크로 구현될 수 있다.
지금까지 도 1 내지 도 3을 참조하여 본 개시의 몇몇 실시예들에 따른 처리 시스템(10)과 그의 동작 환경에 대하여 개략적으로 설명하였다. 이하에서는, 도 4 이하의 도면들을 참조하여 처리 시스템(10)에서 오류 처리를 위해 수행되는 다양한 방법들에 대하여 설명하도록 한다.
이하에서는, 이해의 편의를 제공하기 위해, 후술될 방법들의 모든 단계/동작들이 도 1에 예시된 환경의 처리 시스템(10)에서 수행되는 것을 가정하여 설명을 하도록 한다. 따라서, 특정 단계/동작의 주체가 생략된 경우, 처리 시스템(10)에서 수행되는 것으로 이해될 수 있다. 다만, 실제 환경에서는 후술될 방법들의 일부 단계/동작이 다른 컴퓨팅 장치에서 수행될 수도 있다.
도 4는 본 개시의 몇몇 실시예들에 따른 오류 처리 방법을 나타내는 예시적인 흐름도이다. 단, 이는 본 개시의 목적을 달성하기 위한 바람직한 실시예일뿐이며, 필요에 따라 일부 단계가 추가되거나 삭제될 수 있음은 물론이다.
도 4에 도시된 바와 같이, 본 실시예들은 타깃 소프트웨어에서 발생한 오류에 대한 정보를 수신하는 단계 S41에서 시작될 수 있다. 가령, 처리 시스템(10)은 다수의 사용자 단말들(12)로부터 실시간으로 오류 정보(e.g., 오류에 대한 로그 정보)를 수신할 수 있다. 사용자 단말(12)이 오류 정보를 리포팅(reporting)하는 방식은 어떠한 방식이 되더라도 무방하다.
오류 정보는 예를 들어 오류의 명칭, 종류, 유형, 식별자, 심각도 레벨, 스택 트레이스(stack trace)와 같은 함수(메서드) 호출 정보, 타깃 소프트웨어 정보(e.g., 해당 버전의 릴리즈/배포 정보) 등을 포함할 수 있다. 그러나, 본 개시의 범위가 이에 한정되는 것은 아니다.
단계 S42에서, 오류의 발생 정도가 기준치 이상인지 여부가 판단될 수 있다. 가령, 처리 시스템(10)은 특정 오류의 발생 정도가 기준치 이상인지 여부를 판단할 수 있다. 다만, 오류 발생 정도를 판단하는 구체적인 방식은 실시예에 따라 달라질 수 있다.
몇몇 실시예들에서는, 오류 발생 횟수(빈도)가 기준치 이상인지 여부가 판단될 수 있다. 가령, 처리 시스템(10)은 단위 시간 동안 특정 오류가 발생한 횟수(빈도)가 기준치 이상인지 여부를 판단할 수 있다.
다른 몇몇 실시예들에서는, 활성 사용자(active user, e.g., 타깃 소프트웨어를 이용 중인 현재 사용자의 수)의 수 대비 오류 발생 비율이 기준치 이상인지 여부가 판단될 수 있다. 가령, 처리 시스템(10)은 전체 활성 사용자 수 대비 특정 오류가 발생한 횟수(e.g., 단위 시간 동안의 오류 발생 횟수)가 기준치 이상인지 여부를 판단할 수 있다. 또는, 처리 시스템(10)은 전체 활성 사용자 수 대비 해당 오류가 발생한 사용자의 수가 기준치 이상인지 여부를 판단할 수도 있다. 이러한 경우, 타깃 소프트웨어를 이용하고 있는 활성 사용자의 수를 고려함으로써, 오류 발생 정도가 보다 정확하게 판단될 수 있다.
또 다른 몇몇 실시예들에서는, 오류의 지속 발생 기간이 기준치 이상인지 여부가 판단될 수 있다. 가령, 처리 시스템(10)은 해당 오류가 지속적으로(또는 연속적으로) 발생한 시간 구간의 수가 기준치 이상인지 여부를 판단할 수 있다. 여기서, 단위 시간 구간의 길이는 미리 정해져 있을 수 있다(e.g., 1시간 등).
또 다른 몇몇 실시예들에서는, 상술한 실시예들의 다양한 조합에 기초하여 오류 발생 정도가 판단될 수도 있다. 가령, 처리 시스템(10)은 활성 사용자 수 대비 오류 발생 비율이 제1 기준치 이상이고 오류의 지속 발생 기간이 제2 기준치 이상인지 여부를 판단할 수도 있다.
상술한 기준치는 미리 설정된 고정값일 수도 있고 상황에 따라 변동되는 값일 수도 있다. 예를 들어, 기준치는 시간대, 처리 시스템(10)의 부하(load), 활성 사용자의 수, 타깃 소프트웨어가 배포된 후 경과된 시간 등에 기초하여 변동되는 값일 수도 있다. 보다 구체적인 예로서, 활성 사용자의 수가 많은 시간대(e.g., 낮, 저녁 시간대 등)에는 기준치가 하향되고 반대의 시간대(e.g., 새벽 시간대 등)에는 기준치가 상향될 수 있다. 다른 예로서, 타깃 소프트웨어(e.g., 신규 버전의 소프트웨어)의 배포 시점을 기준으로 경과 시간이 길지 않은 경우(즉, 일정 시간 미만인 경우)에는, 다양한 오류에 대해 신속한 조치를 취하기 위해 기준치는 하향될 수 있다. 반대의 경우라면, 기준치는 상향될 수 있다.
경우에 따라, 상술한 단계 S42는 생략될 수도 있다(e.g., 기준치가 '0'으로 설정된 경우). 이러한 경우, 처리 시스템(10)은 오류가 발생할 때마다 해당 오류에 대응되는 조치를 수행하도록 동작할 수 있다.
단계 S43에서, 진행 중인 A/B 테스트들 중에서 해당 오류와 연관된 테스트가 선별될 수 있다. 다만, 연관 테스트를 선별하는 구체적인 방식은 실시예에 따라 달라질 수 있다.
몇몇 실시예들에서는, A/B 테스트별 오류 발생 이력에 기초하여 연관 테스트가 선별될 수 있다. 다시 말해, A/B 테스트의 오류 발생 이력을 기초로 해당 오류와 A/B 테스트와의 연관도가 결정될 수 있다. 구체적으로, 도 5에 도시된 바와 같이, 처리 시스템(10)은 A/B 테스트들(51-1 내지 51-K)의 오류 발생 이력(52-1 내지 52-K)을 참조하여 A/B 테스트(51-1 내지 51-K)와 해당 오류(53) 간의 연관도를 결정할 수 있다. 예를 들어, 처리 시스템(10)은 특정 A/B 테스트(e.g., 52-1)에서 발생한 오류의 종류, 횟수, 비율 등에 기초하여 특정 A/B 테스트(e.g., 52-1)와 해당 오류(53)와의 연관도를 결정할 수 있다(e.g., 특정 A/B 테스트에서 해당 오류(53)의 발생 횟수가 많거나 발생 비율이 높을수록 연관도가 높은 값으로 결정됨, 특정 A/B 테스트에서 해당 오류(53)가 발생한 사용자의 수가 많거나 비율이 높을수록 연관도가 높은 값으로 결정됨). 또한, 처리 시스템(10)은 연관도가 기준치 이상인 A/B 테스트를 해당 오류(53)와 연관된 테스트로 선별할 수 있다.
다른 몇몇 실시예들에서는, 해당 오류의 함수 호출 정보에 기초하여 연관 테스트가 선별될 수 있다. 구체적으로, 처리 시스템(10)은 해당 오류의 함수 호출 정보를 기초로 해당 오류와 연관된 타깃 소프트웨어 내의 모듈(e.g., 함수를 호출한 모듈)을 식별할 수 있다. 그리고, 처리 시스템(10)은 식별된 모듈을 대상으로 하는 A/B 테스트를 해당 오류와 연관된 테스트로 선별할 수 있다.
또 다른 몇몇 실시예들에서는, 해당 오류의 유형(e.g., 일반 오류, 중요 오류)에 따라 해당 오류와 연관된 A/B 테스트의 범위가 달라질 수 있다. 가령, 해당 오류가 중요 오류가 아닌 경우, 처리 시스템(10)은 해당 오류와의 연관도가 제1 기준치 이상인 A/B 테스트를 연관 테스트로 선별할 수 있다. 이와 달리, 해당 오류가 중요 오류인 경우라면, 처리 시스템(10)은 해당 오류와의 연관도가 제1 기준치보다 낮은 제2 기준치 이상인 A/B 테스트를 연관 테스트로 선별할 수 있다(즉, 연관된 테스트의 범위가 넓어짐).
또 다른 몇몇 실시예들에서는, 해당 오류의 심각도 레벨오류)에 따라 해당 오류와 연관된 A/B 테스트의 범위가 달라질 수 있다. 가령, 해당 오류의 심각도 레벨이 기준 레벨 미만인 경우, 처리 시스템(10)은 해당 오류와의 연관도가 제1 기준치 이상인 A/B 테스트를 연관 테스트로 선별할 수 있다. 이와 달리, 해당 오류의 심각도 레벨이 기준 레벨 이상인 경우라면, 처리 시스템(10)은 해당 오류와의 연관도가 제1 기준치보다 낮은 제2 기준치 이상인 A/B 테스트를 연관 테스트로 선별할 수 있다(즉, 연관된 테스트의 범위가 넓어짐).
또 다른 몇몇 실시예들에서는, 상술한 실시예들의 다양한 조합에 기초하여 연관 테스트가 선별될 수도 있다.
단계 S44에서, 선별된 A/B 테스트에 대해 미리 설정된 조치가 수행될 수 있다. 다만, 본 단계의 세부 과정은 실시예에 따라 달라질 수 있다.
몇몇 실시예들에서는, 선별된 A/B 테스트에 대해 일시정지 조치가 수행될 수 있다. 가령, 도 6에 도시된 바와 같이, 선별된 A/B 테스트(61)가 A 모듈(63)과 B 모듈(64)을 대상으로 수행되는 테스트라고 가정하자. 이러한 경우, 처리 시스템(10)은 선별된 A/B 테스트(61)에 참여하는 사용자들 중에서 B 모듈(64)에 노출된 사용자의 단말(12)로 B 모듈(64)을 비활성화시키고 A 모듈(63)을 활성화시키는 제어 명령을 송신할 수 있다. 그 결과, 선별된 A/B 테스트(61)가 일시정지될 수 있다.
다른 몇몇 실시예들에서는, 해당 오류와 선별된 A/B 테스트와의 연관도에 따라 차등적인 조치가 수행될 수 있다. 가령, 도 7에 도시된 바와 같이, 처리 시스템(10)은 선별된 A/B 테스트들 중에서 연관도가 기준치(e.g., 도 4의 기준치보다 더 높은 값임) 이상인 테스트에 대해서는 일시정지 조치를 수행할 수 있다(S71, S72). 그리고, 처리 시스템(10)은 연관도가 기준치 미만인 테스트에 대해서는 일시정지 조치를 보류하고 테스트 정보(e.g., A/B 테스트들의 목록 등)만을 관리자에게 제공할 수 있다(S71, S73). 처리 시스템(10)은 다양한 협업 채널(e.g., 메신저, 게시판, SMS, 전화 등)을 통해 테스트 정보를 관리자에게 제공할 수 있을 것이나, 본 개시의 범위가 이에 한정되는 것은 아니다. 다른 예로서, 처리 시스템(10)은 선별된 A/B 테스트들 중에서 연관도가 기준치 이상인 테스트에 대해서는 종료 조치를 수행하고 기준치 미만인 테스트에 대해서는 일시정지 조치를 수행할 수도 있다. 또 다른 예로서, 처리 시스템(10)은 선별된 A/B 테스트들 중에서 연관도가 기준치 이상인 테스트에 대해서는 제1 시간 동안 일시정지시키는 조치를 수행하고 기준치 미만인 테스트에 대해서는 제1 시간보다 짧은 제2 시간동안 일시정지시키는 조치를 수행할 수도 있다(즉, 일시정지 시간이 연관도에 기초하여 결정될 수 있음). 경우에 따라, 일시정지 시간은 해당 오류의 심각도 레벨에 기초하여 결정될 수도 있다(e.g., 심각도 레벨이 높을수록 일시정지 시간이 더 길어짐). 본 실시예들에 따르면, 오류의 유형(e.g., 일반 오류, 중요 오류)에 따라 차등적인 조치를 수행함으로써, 오류 처리가 보다 효율적으로 이루어질 수 있다.
또 다른 몇몇 실시예들에서는, 해당 오류의 심각도 레벨에 따라 차등적인 조치가 수행될 수 있다. 이에 대해서는 도 9의 설명 내용을 참고하도록 한다. 본 실시예들에 따르면, 오류의 심각도 레벨에 따라 차등적인 조치를 수행함으로써, 오류 처리의 효율성이 향상될 수 있다.
또 다른 몇몇 실시예들에서는, 선별된 A/B 테스트의 완료 시점에 기초하여 차등적인 조치가 수행될 수 있다. 가령, 처리 시스템(10)은 선별된 A/B 테스트들 중에서 완료 시점까지 남은 시간이 적은 제1 테스트에 대해서는 종료 조치를 수행하고 남은 시간이 많은 제2 테스트에 대해서는 일시정지 조치를 수행할 수 있다. A/B 테스트의 완료 시점은 예를 들어 테스트 수행(경과) 시간, A 모듈과 B 모듈에 대한 테스트 종속 변수 값의 차이 등에 기초하여 판단될 수 있으나, 본 개시의 범위가 이에 한정되는 것은 아니다.
또 다른 몇몇 실시예들에서는, 선별된 A/B 테스트들을 번갈아가며 일시정지 또는 재개시키면서 해당 오류의 발생 정도가 모니터링될 수 있다. 이러한 과정을 통해 해당 오류와 밀접하게 연관된 A/B 테스트와 모듈이 정확하고도 빠르게 식별될 수 있다. 보다 구체적인 예로서, 처리 시스템(10)은 선별된 A/B 테스트들 중에서 제1 테스트를 일시정지시키며 해당 오류의 발생 정도를 모니터링하고 제1 테스트를 재개한 다음 제2 테스트를 일시정지시키며 해당 오류의 발생 정도를 모니터링할 수 있다. 다른 예로서, 처리 시스템(10)은 선별된 A/B 테스트들을 모두 일시정지시킨 다음에 제1 테스트를 재개하며 해당 오류의 발생 정도를 모니터링할 수 있다. 그리고, 처리 시스템(10)은 제1 테스트를 다시 일시정지시킨 다음 제2 테스트를 재개하며 해당 오류의 발생 정도를 모니터링할 수 있다.
또 다른 몇몇 실시예들에서는, 상술한 실시예들의 다양한 조합에 기초하여 발생된 오류에 상응하는 조치가 수행될 수도 있다.
한편, 본 개시의 몇몇 실시예들에 따르면, 일시정지 조치 후에 소정의 조건이 만족됨에 응답하여 재개 조치가 수행될 수 있다. 예를 들어, 처리 시스템(10)은 미리 설정된 시간(즉, 일시정지 시간)이 경과함에 응답하여 일시정지된 A/B 테스트를 재개시킬 수 있다. 이때, 일시정지 시간은 미리 설정된 고정값(e.g., 10분)일 수도 있고 상황에 따라 변동되는 값일 수도 있다. 가령, 일시정지 시간은 오류 분석에 필요한 시간, A/B 테스트의 중요도 등을 고려하여 적절한 값으로 설정될 수 있다. 다른 예로서, 일시정지 시간은 일시정지 조치 이후로 해당 오류가 발생한 정도에 기초하여 조정될 수 있다(e.g., 동일 오류가 지속적으로 발생하는 경우, 일시정지된 A/B 테스트와 해당 오류와의 관련성이 떨어질 수 있으므로 일시정지 시간을 감소시키고, 반대의 경우에는 일시정지 시간을 증가시킴). 경우에 따라, 처리 시스템(10)은 관리자의 일시정지 해제 명령에 응답하여 일시정지된 A/B 테스트를 재개시킬 수도 있다.
또한, 몇몇 실시예들에서는, 일시정지 조치에 대한 최대 횟수가 미리 설정되어 있을 수 있다. 최대 횟수는 오류별, 오류의 유형별, 심각도 레벨별로 다르게 설정될 수도 있고 그렇지 않을 수도 있다. 본 실시예들에서, 동일 오류가 다시 발생한 경우, 처리 시스템(10)은 해당 오류에 대한 일시정지 횟수가 미리 설정된 최대 횟수 이하인지 여부를 판단할 수 있다. 그리고, 처리 시스템(10)은 최대 횟수 이하라는 판단에 기초하여 해당 오류와 연관된 A/B 테스트를 다시 일시정지시킬 수 있다. 이때, 일시정지 시간은 이전의 일시정지 시간보다 길거나 같은 시간으로 설정될 수 있다. 해당 오류가 이전의 일시정지 시간 동안 해결되지 않았다면, 해당 오류가 꽤 많은 처리 시간을 요하는 복잡한 오류일 가능성이 높기 때문이다.
한편, 도 4는 오류의 발생 정도가 기준치 미만인 경우에는 어떠한 조치도 수행되지 않는 것처럼 도시하고 있으나, 이는 필요에 따라 얼마든지 달라질 수 있다. 예를 들어, 오류의 발생 정도가 기준치 미만인 경우에도, 처리 시스템(10)은 해당 오류의 정보, 연관된 A/B 테스트의 정보 등을 관리자에게 제공할 수도 있다.
지금까지 4 내지 도 7을 참조하여 본 개시의 몇몇 실시예들에 따른 오류 처리 방법에 대하여 설명하였다. 상술한 바에 따르면, 타깃 소프트웨어 내의 모듈들을 대상으로 다양한 A/B 테스트들이 진행될 수 있고, 오류 발생 시에 연관된 A/B 테스트에 대해 일시정지 등과 같은 조치가 수행될 수 있다. 이러한 경우, 타깃 소프트웨어의 전체 기능에 큰 영향을 미치지 않고 오류 처리가 이루어질 수 있으므로, 서비스 중단 문제가 크게 완화될 수 있다(왜냐하면, 전체 A/B 테스트가 아닌 연관된 일부 A/B 테스트만 일시정지되고, A/B 테스트가 일시정지되더라도 기존 모듈을 통해 대부분의 기능은 제공되기 때문). 나아가, A/B 테스트 완료 시에는 변형 모듈을 그대로 타깃 소프트웨어에 반영함으로써 서비스 중단을 유발하는 소프트웨어 배포 횟수가 최소화될 수 있다.
또한, 오류 처리를 위한 기본 메커니즘(mechanism)으로 테스트 종료(또는 중단) 조치 대신에 일시정지 조치를 채택함으로써, A/B 테스트에 대한 운영 효율성이 크게 향상될 수 있다.
또한, A/B 테스트별 오류 발생 이력, 오류에 연관된 함수 호출 정보 등을 이용하여 해당 오류와 연관된 A/B 테스트가 정확하게 선별될 수 있다.
이하에서는, 도 8 내지 도 10을 참조하여 본 개시의 다른 몇몇 실시예들에 따른 오류 처리 방법에 대하여 설명하도록 한다. 다만, 본 개시의 명료함을 위해, 앞선 실시예들과 중복되는 내용에 대한 설명은 생략하도록 한다.
도 8은 본 개시의 다른 몇몇 실시예들에 따른 오류 처리 방법을 나타내는 예시적인 흐름도이다.
도 8에 도시된 바와 같이, 본 실시예들도 타깃 소프트웨어에서 발생된 오류에 대한 정보를 수신하는 단계 S81에서 시작될 수 있다. 본 단계에 대해서는 상술한 단계 S41의 설명 내용을 참고하도록 한다.
단계 S82에서, 발생된 오류가 미리 지정된 중요 오류에 해당하는지 여부가 판단될 수 있다. 가령, 처리 시스템(10)은 발생된 오류의 유형(또는 등급)이 미리 지정된 중요 오류에 해당하는지 여부를 판단할 수 있다. 중요 오류에 해당하지 않는다는 판단에 기초하여 단계 S83이 수행될 수 있고, 반대의 경우에는 단계 S84가 수행될 수 있다.
한편, 중요 오류를 지정하는 방식은 다양하게 설계될 수 있다.
예를 들어, 중요 오류는 관리자에 의해 지정될 수 있다. 관리자는 타깃 소프트웨어에서 반복적으로 발생하는 오류, 타깃 소프트웨어의 기능(또는 사용자 경험)에 치명적인 영향을 미치는 오류 등을 중요 오류로 지정할 수 있을 것이나, 본 개시의 범위가 이에 한정되는 것은 아니다.
다른 예로서, 중요 오류는 미리 설정된 조건을 만족함에 따라 자동으로 지정될 수 있다. 이를테면, 처리 시스템(10)은 발생 횟수가 기준치 이상인 오류, 발생 비율이 기준치 이상인 오류(e.g., 대다수의 사용자들에게서 발생한 오류), 사용자와의 커뮤니케이션 채널(e.g., 게시판, 메신저, SNS 등)을 통해 접수된 오류, 타깃 소프트웨어의 핵심 기능과 관련된 오류, 일시정지 조치가 한번 이상 취해진 오류 등을 중요 오류로 지정할 수 있다.
또 다른 예로서, 중요 오류는 상술한 예시들의 다양한 조합에 기초하여 지정될 수도 있다. 가령, 처리 시스템(10)은 관리지가 지정한 오류들 중에 미리 설정된 조건을 만족하는 오류를 중요 오류로 지정할 수도 있다.
단계 S83에서, 제1 오류 처리 알고리즘에 따라 발생된 오류가 처리될 수 있다. 가령, 처리 시스템(10)은 도 4에 예시된 바에 따라 연관된 A/B 테스트를 선별하고 미리 설정된 조치를 수행할 수 있다.
단계 S84에서, 제2 오류 처리 알고리즘에 따라 발생된 오류가 처리될 수 있다. 여기서, 제2 오류 처리 알고리즘은 제1 오류 처리 알고리즘과 적어도 일부는 상이하게 정의된 것일 수 있다. 본 단계 S84(즉, 제2 오류 처리 알고리즘)의 세부 과정은 도 9에 도시되어 있다. 이하, 도 9를 참조하여 설명한다.
단계 S91에서, 오류(즉, 중요 오류)의 발생 정도가 기준치 이상인지 여부가 판단될 수 있다. 본 단계에 대해서는 상술한 단계 S42의 설명 내용을 참고하도록 한다. 본 단계는 경우에 따라 생략될 수도 있다.
단계 S92에서, 해당 오류의 심각도 레벨이 기준 레벨 이상인지 여부가 판단될 수 있다. 해당 오류의 심각도 레벨이 기준 레벨 미만이라는 판단에 기초하여 단계 S93이 수행될 수 있고, 반대의 경우라면 단계 S94가 수행될 수 있다. 심각도 레벨은 어떠한 형태로 정의되더라도 무방하다.
단계 S93에서, 해당 오류의 정보가 관리자에게 제공될 수 있다. 가령, 해당 오류가 사소한 오류인 경우, 처리 시스템(10)은 관리자에게 오류 정보를 제공하는 정도로 오류 처리를 완료할 수 있다.
단계 S94에서, 진행 중인 A/B 테스트들 중 적어도 일부에 대해 미리 설정된 조치가 수행될 수 있다. 다만, 본 단계의 세부 과정은 실시예에 따라 달라질 수 있다.
몇몇 실시예들에서는, 진행 중인 A/B 테스트들 중에서 해당 오류와 연관된 테스트가 선별되고 선별된 테스트에 대해 일시정지 조치가 수행될 수 있다. 가령, 처리 시스템(10)은 해당 오류가 중요 오류가 아닌 경우에는 연관도가 제1 기준치 이상인 A/B 테스트를 연관 테스트로 선별하고 중요 오류인 경우에는 연관도가 제1 기준치보다 낮은 제2 기준치 이상인 A/B 테스트를 연관 테스트로 선별할 수 있다. 그렇게 함으로써, 중요 오류에 대해서는 보다 엄격한 조치가 취해질 수 있다(왜냐하면, 더 많은 A/B 테스트들이 연관 테스트로 선별되므로).
다른 몇몇 실시예들에서는, 오류와의 연관성을 판단하지 않고, 오류가 발생한 타깃 소프트웨어와 동일한 버전의 소프트웨어를 이용하는 모든 A/B 테스트에 대해 일시정지 조치가 수행될 수 있다. 가령, 도 10에 도시된 바와 같이, 처리 시스템(10)은 진행 중인 AB 테스트들(102-1 내지 102-K) 중에서 오류가 발생한 타깃 소프트웨어와 동일한 버전의 소프트웨어를 이용하는 테스트들(e.g., 102-1, 102-K)을 선별할 수 있다(S101). 그리고, 처리 시스템(10)은 선별된 테스트들(e.g., 102-1, 102-K) 전부에 대해 일시정지 조치를 수행할 수 있다. 그렇게 함으로써, 중요 오류에 대해서는 보다 엄격한 조치가 취해질 수 있다.
또 다른 몇몇 실시예들에서는, 처리 시스템(10)이 진행 중인 A/B 테스트들 중에서 해당 오류와 연관된 제1 모듈(e.g., A 모듈, B 모듈)을 식별할 수 있다. 여기서, 제1 모듈은 함수 호출 정보를 통해 식별된 것일 수도 있고 연관된 A/B 테스트의 모듈일 수도 있다. 다음으로, 처리 시스템(10)은 제1 모듈과 연관된 제2 모듈을 식별할 수 있다. 여기서, 제2 모듈은 예를 들어 제1 모듈과 종속성(dependency)이 존재하는 모듈, 제1 모듈과 동일한 앱페이지(또는 앱화면)에서 이용되는 모듈, 제1 모듈과 동일한 기능(e.g., 결제 기능 등)을 제공하는 모듈 등이 될 수 있다. 그러나, 본 개시의 범위가 이에 한정되는 것은 아니다. 다음으로, 처리 시스템(10)은 제1 모듈 또는 제2 모듈을 대상으로 하는 A/B 테스트들에 대해 일시정지 조치를 수행할 수 있다. 그렇게 함으로써, 중요 오류에 대해서는 보다 엄격한 조치가 취해질 수 있다.
또 다른 몇몇 실시예들에서는, 진행 중인 모든 A/B 테스트들에 대해 일시정지 조치가 수행될 수 있다.
지금까지 도 8 내지 도 10을 참조하여 본 개시의 다른 몇몇 실시예들에 따른 오류 처리 방법에 대하여 설명하였다. 상술한 바에 따르면, 오류의 유형(e.g., 일반 오류, 중요 오류)에 따라 차등적인 조치를 수행함으로써, 오류 처리가 보다 효율적으로 이루어질 수 있다.
이하에서는, 도 11을 참조하여 상술한 처리 시스템(10)을 구현할 수 있는 예시적인 컴퓨팅 장치(110)에 대하여 설명하도록 한다.
도 11은 컴퓨팅 장치(110)를 나타내는 예시적인 하드웨어 구성도이다.
도 11에 도시된 바와 같이, 컴퓨팅 장치(110)는 하나 이상의 프로세서(111), 버스(113), 통신 인터페이스(114), 프로세서(111)에 의하여 수행되는 컴퓨터 프로그램(116)을 로드(load)하는 메모리(112)와, 컴퓨터 프로그램(116)을 저장하는 스토리지(115)를 포함할 수 있다. 다만, 도 11에는 본 개시의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 개시가 속한 기술분야의 통상의 기술자라면 도 11에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 알 수 있다. 즉, 컴퓨팅 장치(110)에는, 도 11에 도시된 구성요소 이외에도 다양한 구성요소가 더 포함될 수 있다. 또한, 경우에 따라, 도 11에 도시된 구성요소들 중 일부가 생략된 형태로 컴퓨팅 장치(110)가 구성될 수도 있다. 이하, 컴퓨팅 장치(110)의 각 구성요소에 대하여 설명한다.
프로세서(111)는 컴퓨팅 장치(110)의 각 구성의 전반적인 동작을 제어할 수 있다. 프로세서(111)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit), NPU(Neural Processing Unit) 또는 본 개시의 기술 분야에 잘 알려진 임의의 형태의 프로세서 중 적어도 하나를 포함하여 구성될 수 있다. 또한, 프로세서(111)는 본 개시의 실시예들에 따른 동작/방법을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 컴퓨팅 장치(110)는 하나 이상의 프로세서를 구비할 수 있다.
다음으로, 메모리(112)는 각종 데이터, 명령 및/또는 정보를 저장할 수 있다. 메모리(112)는 본 개시의 실시예들에 따른 동작/방법을 실행하기 위하여 스토리지(115)로부터 컴퓨터 프로그램(116)을 로드할 수 있다. 메모리(112)는 RAM과 같은 휘발성 메모리로 구현될 수 있을 것이나, 본 개시의 기술적 범위가 이에 한정되는 것은 아니다.
다음으로, 버스(113)는 컴퓨팅 장치(110)의 구성요소 간 통신 기능을 제공할 수 있다. 버스(113)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.
다음으로, 통신 인터페이스(114)는 컴퓨팅 장치(110)의 유무선 인터넷 통신을 지원할 수 있다. 또한, 통신 인터페이스(114)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 통신 인터페이스(114)는 본 개시의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다.
다음으로, 스토리지(115)는 하나 이상의 컴퓨터 프로그램(116)을 비임시적으로 저장할 수 있다. 스토리지(115)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 개시가 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
다음으로, 컴퓨터 프로그램(116)은 메모리(112)에 로드될 때 프로세서(111)로 하여금 본 개시의 다양한 실시예들에 따른 동작/방법을 수행하도록 하는 인스트럭션들을 포함할 수 있다. 즉, 프로세서(111)는 로드된 인스트럭션들을 실행시킴으로써, 본 개시의 다양한 실시예들에 따른 동작/방법을 수행할 수 있다.
예를 들어, 컴퓨터 프로그램(116)은 타깃 소프트웨어에서 발생된 오류에 대한 정보를 수신하는 동작, 타깃 소프트웨어 내의 모듈들을 대상으로 진행 중인 복수의 테스트들 중에서 오류와 연관된 테스트를 선별하는 동작 및 선별된 테스트 중 적어도 일부를 일시정지시키는 동작을 수행하도록 하는 인스트럭션들을 포함할 수 있다. 이와 같은 경우, 컴퓨팅 장치(110)를 통해 본 개시의 몇몇 실시예들에 따른 처리 시스템(10)이 구현될 수 있다.
한편, 몇몇 실시예들에서, 도 11에 도시된 컴퓨팅 장치(110)는 클라우드 기술에 기반하여 구현된 가상 머신을 의미하는 것일 수도 있다. 가령, 컴퓨팅 장치(110)는 서버 팜(server farm)에 포함된 하나 이상의 물리 서버(physical server)에서 동작하는 가상 머신일 수 있다. 이 경우, 도 11에 도시된 프로세서(111), 메모리(112) 및 스토리지(115) 중 적어도 일부는 가상 하드웨어(virtual hardware)일 수 있으며, 통신 인터페이스(114) 또한 가상 스위치(virtual switch) 등과 같은 가상화된 네트워킹 요소로 구현된 것일 수 있다.
지금까지 도 11을 참조하여 본 개시의 몇몇 실시예들에 따른 처리 시스템(10)을 구현할 수 있는 예시적인 컴퓨팅 장치(110)에 대하여 설명하였다.
지금까지 도 1 내지 도 11을 참조하여 본 개시의 다양한 실시예들 및 그 실시예들에 따른 효과들을 언급하였다. 본 개시의 기술적 사상에 따른 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
또한, 이상의 실시예들에서 복수의 구성요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 개시의 기술적 사상이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 개시의 기술적 사상의 목적 범위 안에서라면, 그 모든 구성요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다.
지금까지 설명된 본 개시의 기술적 사상은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 컴퓨터로 읽을 수 있는 기록 매체에 기록된 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 이상 첨부된 도면을 참조하여 본 개시의 다양한 실시예들을 설명하였지만, 본 개시가 속한 기술분야에서 통상의 지식을 가진 자는 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 본 개시의 기술적 사상이 다른 구체적인 형태로도 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 개시의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 개시에 의해 정의되는 기술적 사상의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (15)

  1. 적어도 하나의 컴퓨팅 장치에 의해 수행되는 방법으로서,
    타깃 소프트웨어에서 발생된 특정 오류에 대한 정보를 수신하는 단계;
    상기 수신에 대한 응답으로, 진행 중인 복수의 테스트들 중에서 상기 특정 오류와 연관된 테스트를 선별하는 단계 - 상기 복수의 테스트들은 상기 타깃 소프트웨어 내의 모듈들을 대상으로 진행되는 A/B 테스트임 -; 및
    상기 선별된 테스트 중 적어도 일부를 일시정지(pause)시키는 단계를 포함하고,
    상기 특정 오류와 연관된 테스트를 선별하는 단계는,
    상기 복수의 테스트들의 오류 발생 이력을 기초로 상기 특정 오류와 상기 복수의 테스트들 간의 연관도를 결정하는 단계 - 상기 오류 발생 이력은 오류의 종류 및 발생 횟수에 관한 정보를 포함함 -; 및
    상기 복수의 테스트들 중에서 상기 연관도가 기준치 이상인 테스트를 선별하는 단계를 포함하며,
    상기 특정 오류와 제1 테스트 간의 연관도는 상기 제1 테스트에서 상기 특정 오류의 발생 횟수가 많을수록 더 높은 값으로 결정되는,
    오류 처리 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 수신된 특정 오류에 대한 정보는 함수 호출 정보를 포함하고,
    상기 특정 오류와 연관된 테스트를 선별하는 단계는,
    상기 함수 호출 정보에 기초하여 상기 오류와 연관된 상기 타깃 소프트웨어 내의 모듈을 식별하는 단계; 및
    상기 복수의 테스트들 중에서 상기 식별된 모듈을 대상으로 하는 테스트를 선별하는 단계를 더 포함하는,
    오류 처리 방법.
  4. 제1항에 있어서,
    상기 타깃 소프트웨어는 사용자 단말에서 실행되는 애플리케이션이고,
    상기 특정 오류와 연관된 테스트를 선별하는 단계는 현재 상기 애플리케이션을 이용 중인 활성 사용자의 수 대비 상기 특정 오류의 발생 비율이 기준치 이상이라는 판단에 더 응답하여 수행되는,
    오류 처리 방법.
  5. 제1항에 있어서,
    상기 연관도가 기준치 이상인 테스트를 선별하는 단계는,
    상기 특정 오류가 미리 지정된 중요 오류에 해당하지 않는다는 판단에 기초하여 상기 특정 오류와의 연관도가 제1 기준치 이상인 테스트를 연관 테스트로 선별하는 단계; 및
    상기 특정 오류가 상기 중요 오류에 해당한다는 판단에 기초하여 상기 특정 오류와의 연관도가 제1 기준치보다 낮은 제2 기준치 이상인 테스트를 연관 테스트로 선별하는 단계를 포함하는,
    오류 처리 방법.
  6. 제1항에 있어서,
    상기 특정 오류와 연관된 테스트를 선별하는 단계는 상기 오류의 심각도 레벨이 기준 레벨 미만인 경우에 수행되고,
    상기 특정 오류의 심각도 레벨이 상기 기준 레벨 이상이라는 판단에 기초하여 상기 복수의 테스트들을 전부 일시정지시키는 단계를 더 포함하는,
    오류 처리 방법.
  7. 제1항에 있어서,
    상기 일시정지시키는 단계는,
    상기 선별된 테스트 중에서 상기 특정 오류와의 연관도가 제1 기준치 이상인 테스트를 일시정지시키는 단계; 및
    상기 오류와의 연관도가 상기 제1 기준치 미만인 테스트에 대해서는 일시정지 조치를 보류하고 테스트 정보를 관리자에게 제공하는 단계를 포함하는,
    오류 처리 방법.
  8. 제1항에 있어서,
    상기 선별된 테스트 중 특정 테스트는 상기 타깃 소프트웨어의 기존 모듈을 제1 사용자 그룹에게 노출시키고 변형 모듈을 제2 사용자 그룹에게 노출시킴으로써 진행되고,
    상기 특정 테스트의 초기에는 상기 제2 사용자 그룹의 비율이 상기 제1 사용자 그룹보다 낮게 설정되며,
    상기 특정 테스트가 진행됨에 따라 상기 제2 사용자 그룹의 비율이 미리 설정된 값에 도달할 때까지 증가되되,
    상기 일시정지시키는 단계는,
    상기 변형 모듈을 비활성화시키는 단계를 포함하는,
    오류 처리 방법.
  9. 제8항에 있어서,
    상기 타깃 소프트웨어는 사용자 단말에서 실행되는 애플리케이션이고,
    상기 변형 모듈을 비활성화하는 단계는,
    상기 특정 테스트에 참여하는 사용자들 중에서 상기 변형 모듈에 노출된 사용자의 단말로 상기 변형 모듈을 비활성화시키고 상기 기존 모듈을 활성화시키기 위한 제어 명령을 송신하는 단계를 포함하는,
    오류 처리 방법.
  10. 제1항에 있어서,
    미리 설정된 시간이 경과함에 응답하여, 상기 일시정지된 테스트를 재개(resume)시키는 단계를 더 포함하는,
    오류 처리 방법.
  11. 제10항에 있어서,
    상기 미리 설정된 시간은 일시정지 조치 이후로 상기 특정 오류가 발생한 정도에 기초하여 조정되는,
    오류 처리 방법.
  12. 제1항에 있어서,
    제1 시간이 경과함에 응답하여, 상기 일시정지된 테스트를 재개(resume)시키는 단계;
    상기 특정 오류가 다시 발생한 경우, 상기 특정 오류와 연관된 일시정지 횟수가 미리 설정된 최대 횟수 이하인지 여부를 판단하는 단계; 및
    상기 최대 횟수 이하라는 판단에 기초하여 상기 제1 시간보다 같거나 긴 제2 시간 동안 상기 재개된 테스트를 다시 일시정지시키는 단계를 더 포함하는,
    오류 처리 방법.
  13. 제1항에 있어서,
    상기 일시정지시키는 단계는,
    상기 선별된 테스트 중 제1 테스트를 일시정지시키며 상기 특정 오류의 제1 발생 정도를 모니터링하는 단계;
    상기 선별된 테스트 중 제2 테스트를 일시정지시키며 상기 특정 오류의 제2 발생 정도를 모니터링하는 단계 - 상기 제2 테스트를 일시정지할 때 상기 제1 테스트는 재개(resume)됨 -; 및
    상기 제1 발생 정도와 상기 제2 발생 정도를 기초로 상기 제1 테스트와 상기 제2 테스트 중에서 상기 특정 오류와의 연관성이 더 높은 테스트를 식별하는 단계를 포함하는,
    오류 처리 방법.
  14. 하나 이상의 프로세서; 및
    상기 하나 이상의 프로세서에 의해 실행되는 컴퓨터 프로그램을 저장하는 메모리를 포함하고,
    상기 컴퓨터 프로그램은:
    타깃 소프트웨어에서 발생된 특정 오류에 대한 정보를 수신하는 동작;
    상기 수신에 대한 응답으로, 진행 중인 복수의 테스트들 중에서 상기 특정 오류와 연관된 테스트를 선별하는 동작 - 상기 복수의 테스트들은 상기 타깃 소프트웨어 내의 모듈들을 대상으로 진행되는 A/B 테스트임 -; 및
    상기 선별된 테스트 중 적어도 일부를 일시정지(pause)시키는 동작을 위한 인스트럭션들을 포함하고,
    상기 특정 오류와 연관된 테스트를 선별하는 동작은,
    상기 복수의 테스트들의 오류 발생 이력을 기초로 상기 특정 오류와 상기 복수의 테스트들 간의 연관도를 결정하는 단계 - 상기 오류 발생 이력은 오류의 종류 및 발생 횟수에 관한 정보를 포함함 -; 및
    상기 복수의 테스트들 중에서 상기 연관도가 기준치 이상인 테스트를 선별하는 동작을 포함하며,
    상기 특정 오류와 제1 테스트 간의 연관도는 상기 제1 테스트에서 상기 특정 오류의 발생 횟수가 많을수록 더 높은 값으로 결정되는,
    오류 처리 시스템.
  15. 컴퓨팅 장치와 결합되어,
    타깃 소프트웨어에서 발생된 특정 오류에 대한 정보를 수신하는 단계;
    상기 수신에 대한 응답으로, 진행 중인 복수의 테스트들 중에서 상기 특정 오류와 연관된 테스트를 선별하는 단계 - 상기 복수의 테스트들은 상기 타깃 소프트웨어 내의 모듈들을 대상으로 진행되는 A/B 테스트임 -; 및
    상기 선별된 테스트 중 적어도 일부를 일시정지(pause)시키는 단계를 실행시키기 위하여 컴퓨터로 판독가능한 기록매체에 저장되되,
    상기 특정 오류와 연관된 테스트를 선별하는 단계는,
    상기 복수의 테스트들의 오류 발생 이력을 기초로 상기 특정 오류와 상기 복수의 테스트들 간의 연관도를 결정하는 단계 - 상기 오류 발생 이력은 오류의 종류 및 발생 횟수에 관한 정보를 포함함 -; 및
    상기 복수의 테스트들 중에서 상기 연관도가 기준치 이상인 테스트를 선별하는 단계를 포함하고,
    상기 특정 오류와 제1 테스트 간의 연관도는 상기 제1 테스트에서 상기 특정 오류의 발생 횟수가 많을수록 더 높은 값으로 결정되는,
    컴퓨터 프로그램.
KR1020230061404A 2023-05-12 2023-05-12 오류 처리 방법 및 그 시스템 KR102619048B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230061404A KR102619048B1 (ko) 2023-05-12 2023-05-12 오류 처리 방법 및 그 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230061404A KR102619048B1 (ko) 2023-05-12 2023-05-12 오류 처리 방법 및 그 시스템

Publications (1)

Publication Number Publication Date
KR102619048B1 true KR102619048B1 (ko) 2023-12-27

Family

ID=89377717

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230061404A KR102619048B1 (ko) 2023-05-12 2023-05-12 오류 처리 방법 및 그 시스템

Country Status (1)

Country Link
KR (1) KR102619048B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009181536A (ja) * 2008-02-01 2009-08-13 Dainippon Screen Mfg Co Ltd ソフトウェアの障害管理装置、テスト管理装置、ならびにそれらのプログラム
KR20170071825A (ko) 2015-12-16 2017-06-26 에스케이 주식회사 It 서비스의 애플리케이션 장애 추적 지원 방법 및 이를 적용한 관리 시스템
JP2018180711A (ja) * 2017-04-06 2018-11-15 株式会社日立製作所 テストケースを選択する計算機及びテストケースの選択方法
JP2019029015A (ja) * 2017-08-03 2019-02-21 富士通株式会社 インタラクティブなソフトウェアプログラムの修復
KR102309715B1 (ko) * 2020-12-29 2021-10-07 핵클 주식회사 이상징후 관리가 가능한 에이비 테스팅 플랫폼의 제공 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009181536A (ja) * 2008-02-01 2009-08-13 Dainippon Screen Mfg Co Ltd ソフトウェアの障害管理装置、テスト管理装置、ならびにそれらのプログラム
KR20170071825A (ko) 2015-12-16 2017-06-26 에스케이 주식회사 It 서비스의 애플리케이션 장애 추적 지원 방법 및 이를 적용한 관리 시스템
JP2018180711A (ja) * 2017-04-06 2018-11-15 株式会社日立製作所 テストケースを選択する計算機及びテストケースの選択方法
JP2019029015A (ja) * 2017-08-03 2019-02-21 富士通株式会社 インタラクティブなソフトウェアプログラムの修復
KR102309715B1 (ko) * 2020-12-29 2021-10-07 핵클 주식회사 이상징후 관리가 가능한 에이비 테스팅 플랫폼의 제공 방법

Similar Documents

Publication Publication Date Title
US10642599B1 (en) Preemptive deployment in software deployment pipelines
CN109559583B (zh) 故障模拟方法及其装置
US9575745B1 (en) Immediately launching applications
US9910766B2 (en) Whitebox network fuzzing
CN104765678A (zh) 对移动终端设备上的应用进行测试的方法及装置
US9846608B2 (en) Providing application operational insights to users based on crowd sourced performance metrics for operational states
US9632921B1 (en) Validation using scenario runners
US20090204946A1 (en) Intelligent software code updater
CN109324962B (zh) 一种基于云物联技术的应用程序的测试方法及设备
CN104809045A (zh) 监控脚本的运行方法及装置
US10452508B2 (en) Managing a set of tests based on other test failures
US20170373957A1 (en) Minimized installation of point of presence software agents by use of pre-installed browser
CN107045475B (zh) 测试方法和装置
US10820274B2 (en) Systems and methods for testing power consumption of electronic devices
EP3321808A1 (en) Verification system and verification method
KR102619048B1 (ko) 오류 처리 방법 및 그 시스템
CN113191889A (zh) 风控配置方法、配置系统、电子设备及可读存储介质
CN110347546B (zh) 监控任务动态调整方法、装置、介质及电子设备
CN108289114B (zh) 云端服务系统及处理云端服务异常的方法
CN112463574A (zh) 软件测试方法、装置、系统、设备和存储介质
JP7147123B2 (ja) ソースチャネル決定方法、装置、機器、プログラム及びコンピューター記憶媒体
US20210349705A1 (en) Performance sensitive storage system upgrade
Sun et al. Quantifying failure risk of version switch for rolling upgrade on clouds
US11662906B2 (en) Method, electronic device, and computer program product for upgrading storage system
KR102326608B1 (ko) 로봇프로세스자동화 기반 모바일 앱 점검 장치 및 방법

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
A107 Divisional application of patent
GRNT Written decision to grant