KR102412237B1 - 로봇 프로세스 자동화를 위한 테스트 자동화 - Google Patents

로봇 프로세스 자동화를 위한 테스트 자동화 Download PDF

Info

Publication number
KR102412237B1
KR102412237B1 KR1020207028236A KR20207028236A KR102412237B1 KR 102412237 B1 KR102412237 B1 KR 102412237B1 KR 1020207028236 A KR1020207028236 A KR 1020207028236A KR 20207028236 A KR20207028236 A KR 20207028236A KR 102412237 B1 KR102412237 B1 KR 102412237B1
Authority
KR
South Korea
Prior art keywords
test cases
test
workflows
data
workflow
Prior art date
Application number
KR1020207028236A
Other languages
English (en)
Other versions
KR20210131216A (ko
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 유아이패스, 인크.
Publication of KR20210131216A publication Critical patent/KR20210131216A/ko
Application granted granted Critical
Publication of KR102412237B1 publication Critical patent/KR102412237B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06316Sequencing of tasks or work
    • 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/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
    • 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
    • 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
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0633Workflow analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0635Risk analysis of enterprise or organisation activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0639Performance analysis of employees; Performance analysis of enterprise or organisation operations
    • G06Q10/06395Quality analysis or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Tourism & Hospitality (AREA)
  • Operations Research (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Educational Administration (AREA)
  • Development Economics (AREA)
  • Game Theory and Decision Science (AREA)
  • Data Mining & Analysis (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Automatic Analysis And Handling Materials Therefor (AREA)
  • Manipulator (AREA)
  • Container Filling Or Packaging Operations (AREA)

Abstract

기존의 워크플로우들(또는 테스트 중인 워크플로우들)에 대한 테스트 케이스들이 생성 및 실행될 수 있다. 테스트 케이스는 생산 중인 워크플로우 또는 워크플로우의 하나 이상의 부분들에 대해 생성될 수 있고, 워크플로우 또는 워크플로우의 하나 이상의 부분들에 대한 생성된 테스트 케이스는 워크플로우에 대한 환경 및/또는 자동화 문제들을 식별하기 위해 실행될 수 있다. 환경 및/또는 자동화 문제들이 식별될 때 실패된 워크플로우 테스트가 보고될 수 있다.

Description

로봇 프로세스 자동화를 위한 테스트 자동화
관련 출원의 상호 참조
본 출원은 2020년 4월 21일에 출원된 미국 특허 출원 제16/854,733호의 우선권을 주장하며 이 출원의 계속인, 2020년 4월 22일에 출원된 미국 정식 특허 출원 제16/855,563호의 이익을 주장한다. 이러한 앞서 출원된 출원의 요지는 이로써 그 전체가 참조로 통합된다.
기술분야
본 발명은 일반적으로 로봇 프로세스 자동화(robotic process automation, RPA)에 관한 것이고, 더 구체적으로는 생산 테스트 중인 워크플로우에 대한 RPA에 관한 것이다.
디지털 변환은 고객 가치의 새로운 소스들을 생성하고 고객들의 서비스에서 운영 민첩성을 증가시키기 위해 디지털 기술들을 계속해서 활용하는 비즈니스들을 요구한다. 예를 들어, 가능한 경우, 소프트웨어 및 자동화의 애플리케이션은 마켓에 대한 비용 및 시간을 감소시키도록 구현된다.
프로세스 자동화는 이러한 변환에서 핵심적인 역할을 하는데, 이는, 실질적으로 효율을 증가시키고, 따라서 경쟁 우위에 있을 잠재력을 갖기 때문이다. 예를 들어, RPA는 불과 몇 년 동안 존재하는 다소 새로운 마켓을 표현한다. RPA는 기업 고객들에 의한 신속한 채택으로 이익을 얻었으며, 이는 프로세스들을 자동화하기 위한 수천개의 봇(bot)들의 생성을 야기하였다.
그러나, 수많은 그러한 봇들은 다양한 이유들로 작동을 중지할 수 있다. 예를 들어, 봇들의 낮은 안정성은 애플리케이션 변화들, 환경 변화들 및 자동화 자체의 취약성 때문이다. 20년 이상 동안 있어 온 테스트 자동화와 같은 다른 자동화 영역들과는 달리, RPA는 유지보수를 처리할 필요가 없었고, 구현들은 종종 복원력 및 예외 처리보다는 행복한 경로(happy path)들에 초점을 맞추었다. 이러한 문제는 예외 처리 및 디버깅에 대해 최상의 관례들 및 도구 지원을 적용함으로써 부분적으로 해결되었지만, 자동화 품질 및 디지털 변환에 대한 높은 레벨의 관점을 고려하면, 몇몇 영역들에서 유지보수를 처리하는 플랫폼이 필요하다.
본 발명의 특정 실시예들은, 현재 RPA 기술들에 의해 아직 완전히 식별되거나, 인식되거나, 해결되지 않은 기술분야에서의 문제점들 및 요구들에 대한 솔루션들을 제공할 수 있다. 예를 들어, 본 발명의 일부 실시예들은 기존의 워크플로우들(또는 테스트 중인 워크플로우들)에 대한 테스트 케이스들을 생성 및 실행하는 것과 관련된다.
일 실시예에서, 컴퓨터 구현 방법은 생산 중인 워크플로우 또는 워크플로우의 하나 이상의 부분들에 대한 하나 이상의 테스트 케이스들을 생성하는 단계를 포함한다. 방법은 또한 워크플로우에 대한 환경 및/또는 자동화 문제들을 식별하기 위해 워크플로우 또는 워크플로우의 하나 이상의 부분들에 대한 테스트 케이스를 실행하는 단계를 포함한다. 방법은 환경 및/또는 자동화 문제들이 식별될 때 실패된 워크플로우 테스트를 보고하는 단계를 더 포함한다.
다른 실시예에서, 컴퓨터 구현 방법은 테스트 세트를 생성하고, 생산 중인 복수의 워크플로우들 중 대응하는 하나에 대한 하나 이상의 테스트 케이스들을 테스트 세트에 할당하는 단계를 포함한다. 방법은 또한 하나 이상의 테스트 케이스들 각각에 대한 환경 및/또는 자동화 문제들을 식별하기 위해 테스트 세트를 실행하는 단계를 포함한다. 방법은 테스트 세트의 결과를 보고하는 단계를 더 포함한다. 결과는 하나 이상의 실패된 테스트 케이스들을 사용자에게 통지하는 메시지를 갖는 하나 이상의 실패된 테스트 케이스들을 포함한다.
본 발명의 특정 실시예들의 이점들이 쉽게 이해되도록, 간략하게 전술된 본 발명의 보다 특정된 설명이 첨부된 도면들에서 예시되는 특정 실시예들을 참조하여 이루어질 것이다. 이 도면들은 단지 본 발명의 통상적인 실시예들을 도시하며 따라서 본 발명의 범위를 제한하는 것으로 간주되어서는 안 됨을 이해해야 하는 한편, 본 발명은 첨부된 도면들의 사용을 통한 추가적인 특정성 및 세부사항으로 기술되고 설명될 것이다.
도 1은 본 발명의 일 실시예에 따른 RPA 시스템을 예시하는 아키텍처 도면이다.
도 2는 본 발명의 일 실시예에 따른 배치된 RPA 시스템을 예시하는 아키텍처 도면이다.
도 3은 본 발명의 일 실시예에 따른 설계자, 활동들 및 드라이버들 사이의 관계를 예시하는 아키텍처 도면이다.
도 4는 본 발명의 일 실시예에 따른 RPA 시스템을 예시하는 아키텍처 도면이다.
도 5는 본 발명의 일 실시예에 따른 하나 이상의 테스트 케이스들을 생성 및 공개하도록 구성된 컴퓨팅 시스템을 예시하는 아키텍처 도면이다.
도 6은 본 발명의 일 실시예에 따른 테스트 케이스를 생성하기 위한 프로세스를 예시하는 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 테스트 케이스를 공개하기 위한 프로세스를 예시하는 흐름도이다.
도 8은 본 발명의 일 실시예에 따른 테스트 케이스를 실행하기 위한 프로세스를 예시하는 흐름도이다.
도 9는 본 발명의 일 실시예에 따른 데이터-구동 워크플로우 테스트 케이스를 생성하기 위한 프로세스를 예시하는 흐름도이다.
도 10은 본 발명의 일 실시예에 따른 Studio ProTM에서 선택되는 워크플로우를 예시하는 그래픽 사용자 인터페이스(graphical user interface, GUI)이다.
도 11은 본 발명의 일 실시예에 따른 '기븐-휀-덴(given-when-then)' 템플릿을 예시하는 GUI이다.
도 12는 본 발명의 일 실시예에 따른 '휀' 모듈을 예시하는 GUI이다.
도 13은 본 발명의 일 실시예에 따른 '기븐' 모듈에 입력되는 선제조건들을 예시하는 GUI이다.
도 14 및 도 15는 본 발명의 일 실시예에 따른 테스트 중인 워크플로우의 모의를 예시하는 GUI들이다.
도 16은 본 발명의 일 실시예에 따른 '덴' 모듈을 예시하는 GUI이다.
도 17 및 도 18은 본 발명의 일 실시예에 따른 실행된 워크플로우를 예시하는 GUI들이다.
도 19는 본 발명의 일 실시예에 따른 '링크된 프로세스'에 대한 열을 갖는 테스트 케이스 섹션을 예시하는 GUI이다.
도 20은 본 발명의 일 실시예에 따른 실행된 워크플로우 테스트 케이스들로부터의 테스트 결과들을 예시하는 GUI이다.
도 21은 본 발명의 일 실시예에 따른 OrchestratorTM의 '프로세스' 섹션을 예시하는 GUI이다.
도 22는 본 발명의 일 실시예에 따른 StudioTM에서 워크플로우를 개방하는 메뉴 옵션을 예시하는 GUI이다.
도 23은 본 발명의 일 실시예에 따른 StudioTM에서 영향받는 워크플로우 및 테스트 케이스를 예시하는 GUI이다.
도 24는 본 발명의 일 실시예에 따른 Excel® 내의 테이블을 예시하는 GUI이다.
도 25는 본 발명의 일 실시예에 따른 선택될 워크플로우를 예시한다.
도 26은 본 발명의 일 실시예에 따른, 사용자가 데이터 소스를 선택하도록 허용하는 '데이터-구동 테스트 케이스' 메뉴를 예시하는 GUI이다.
도 27은 본 발명의 일 실시예에 따른, 필드들이 선택되도록 허용하는 메뉴 옵션을 예시하는 GUI이다.
도 28은 본 발명의 일 실시예에 따른, 선택된 Excel® 시트 내에서 사용자가 하나 이상의 이용가능한 열들을 선택하도록 허용하기 위한 메뉴 옵션을 예시하는 GUI이다.
도 29는 본 발명의 일 실시예에 따른, '데이터 세트 임포트'를 선택하는 옵션을 도시하는 메뉴 옵션을 예시하는 GUI이다.
도 30은 본 발명의 일 실시예에 따른, 데이터 세트로부터 생성된 제1 테스트 케이스를 예시하는 GUI이다.
도 31은 본 발명의 일 실시예에 따른, 다수의 테스트 데이터 변형들 갖는 테스트 케이스를 예시하는 GUI이다.
도 32는 본 발명의 일 실시예에 따른, 공개가능하게 될 하나 이상의 테스트 케이스들을 설정하는 메뉴 옵션을 예시하는 GUI이다.
도 33은 본 발명의 일 실시예에 따른 Studio Pro®에서 공개하기 위한 애플리케이션을 예시하는 GUI이다.
도 34는 본 발명의 일 실시예에 따른 배치 프로세스를 예시하는 GUI이다.
도 35는 본 발명의 일 실시예에 따른, '테스트 케이스' 섹션에서 생성된 테스트 케이스들을 예시하는 GUI이다.
일부 실시예들은 기존의 워크플로우들(또는 테스트 중인 워크플로우들)에 대한 테스트 케이스들을 생성 및 실행하는 것과 관련된다. 예를 들어, 일부 실시예들은 통상적인 기능 애플리케이션 테스트를 위해, 즉, 개발 중인 애플리케이션을 직접 테스트하기 위한 솔루션을 제공한다. 이는 개발자가 애플리케이션 변화들을 일찍 캐치하고 RPA에 대해 요구되는 적응들을 채우도록 허용한다. 일부 추가적인 실시예들은 기능 워크플로우 테스트, 즉, 애플리케이션이 생산되기 전에 자동화 문제들 및 환경 변화들(예를 들어, 운영 체제 업데이트들, 환경에 대한 업데이트, 또는 Microsoft Windows® 업데이트들)을 캐치하고 RPA에 대해 요구되는 적응들을 채우기 위해 IT-호스팅된 테스트 환경들 내에서 자동화된 워크플로우들을 테스트하는 것에 대한 솔루션을 제공할 수 있다.
자동화된 워크플로우들을 테스트하기 위한 요구가 인식되었음을 인식해야 한다. 유닛 테스트 또는 워크플로우들의 UiPath® 기능 테스트를 위한 인프라구조를 제공하는 RE-프레임워크와 같은 자동화된 워크플로우들을 테스트하기 위한 솔루션들을 제공하기 위해 몇몇 내부 및 외부 계획들이 시도되어 왔다.
일부 실시예들은 이전의 계획들의 결함들에 대한 솔루션을 제공한다. 예를 들어, 일부 실시예들은 기존의 워크플로우들 또는 기존의 워크플로우들의 부분들에 대한 테스트 케이스들의 생성을 허용한다. 이러한 테스트 케이스들은 환경 및 자동화 문제들을 캐치하기 위해 빈번하게 실행될 수 있다. 실패한 워크플로우가 식별될 때, RPA 개발자는 통지받는다. 일부 추가적인 실시예들에서, 데이터-구동 워크플로우 테스트 케이스들이 생성되어 데이터 세트가 외부 소스로부터 삽입될 수 있다. 이러한 데이터 세트는 몇몇 예를 들면 Excel®, JSON, DB를 포함할 수 있다. 이러한 실시예들은 자동화된 워크플로우 테스트 케이스들을 생성하기 위한 수동 노력을 감소시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 RPA 시스템(100)을 예시하는 아키텍처 도면이다. RPA 시스템(100)은 개발자가 워크플로우들을 설계 및 구현하도록 허용하는 설계기(110)를 포함한다. 설계기(110)는 애플리케이션 통합을 위한 솔루션을 제공할 뿐만 아니라 제3자 애플리케이션들, 관리 정보 기술(IT) 작업들, 및 비즈니스 IT 프로세스들을 자동화할 수 있다. 설계기(110)는 비즈니스 프로세스의 그래픽 표현인 자동화 프로젝트의 개발을 용이하게 할 수 있다. 간단히 말하면, 설계기(110)는 워크플로우들 및 로봇들의 개발 및 배치를 용이하게 한다.
자동화 프로젝트는 실행 순서 및 본 명세서에서 "활동들"로 정의되는, 워크플로우에서 개발된 단계들의 커스텀 세트 사이의 관계에 대한 제어를 개발자에게 제공함으로써 규칙 기반 프로세스들의 자동화를 가능하게 한다. 설계기(110)의 실시예의 하나의 상업적인 예는 UiPath Studio™이다. 각각의 활동은 액션, 예를 들어, 버튼을 클릭하는 것, 파일을 판독하는 것, 로그 패널에 기록하는 것 등을 포함할 수 있다. 일부 실시예들에서, 워크플로우들은 네스팅되거나(nested) 내장될 수 있다.
워크플로우들의 일부 유형들은 시퀀스들, 흐름도들, 유한 상태 머신들(Finite State Machines, FSMs) 및/또는 글로벌 예외 핸들러들을 포함할 수 있지만, 이에 제한되지 않는다. 시퀀스들은 특히 선형 프로세스들에 적합하여, 워크플로우를 클러터링(cluttering)하지 않으면서 하나의 활동으로부터 다른 활동으로의 흐름을 가능하게 할 수 있다. 흐름도들은 특히 더 복잡한 비즈니스 로직에 적합하여, 다수의 분기 로직 오퍼레이터들을 통해 더 다양한 방식으로 판정들의 통합 및 활동들의 연결을 가능하게 할 수 있다. FSM들은 특히 큰 워크플로우들에 적합할 수 있다. FSM들은 조건(즉, 전환) 또는 활동에 의해 트리거되는, 실행 중인 유한한 수의 상태들을 사용할 수 있다. 글로벌 예외 핸들러들은 특히 실행 에러에 직면할 때 워크플로우 거동을 결정하는 것 및 프로세스들을 디버깅하는 것에 적합할 수 있다.
워크플로우가 설계기(110)에서 개발되면, 비즈니스 프로세스들의 실행은, 설계기(110)에서 개발된 워크플로우들을 실행하는 하나 이상의 로봇들(130)을 조율하는 수행기(120)에 의해 조율된다. 수행기(120)의 실시예의 하나의 상업적인 예는 UiPath Orchestrator™이다. 수행기(120)는 환경에서 자원들의 생성, 모니터링 및 배치의 관리를 용이하게 한다. 수행기(120)는 제3자 솔루션들 및 애플리케이션들과의 통합 포인트로서 작용할 수 있다.
수행기(120)는 일 군의 로봇들(130)을 관리하여, 중앙집중형 포인트로부터 로봇들(130)을 연결하고 실행시킬 수 있다. 관리될 수 있는 로봇들(130)의 유형들은 유인 로봇들(132), 무인 로봇들(134), 개발 로봇들(무인 로봇들(134)과 유사하지만 개발 및 테스트 목적으로 사용됨), 및 비생산 로봇들(유인 로봇들(132)과 유사하지만 개발 및 테스트 목적으로 사용됨)을 포함하지만 이에 제한되지 않는다. 유인 로봇들(132)은 사용자 이벤트들에 의해 트리거되고 동일한 컴퓨팅 시스템 상에서 인간과 함께 동작한다. 유인 로봇들(132)은 중앙집중형 프로세스 배치 및 로깅 매체에 대해 수행기(120)와 함께 사용될 수 있다. 유인 로봇들(132)은 인간 사용자가 다양한 작업들을 달성하는 것을 도울 수 있고, 사용자 이벤트들에 의해 트리거될 수 있다. 일부 실시예에서, 프로세스들은 이러한 유형의 로봇 상에서의 수행기(120)로부터 시작될 수 없고 그리고/또는 잠금 화면 하에서 실행될 수 없다. 특정 실시예들에서, 유인 로봇들(132)은 오직 로봇 트레이로부터 또는 커맨드 프롬프트로부터 시작될 수 있다. 유인 로봇들(132)은 일부 실시예들에서 인간 감독 하에서 실행되어야 한다.
무인 로봇들(134)은 가상 환경들에서 무인으로 실행되고 많은 프로세스들을 자동화할 수 있다. 무인 로봇들(134)은 원격 실행, 모니터링, 스케줄링, 및 작업 큐(queue)들에 대한 지원을 제공하는 것을 담당할 수 있다. 모든 로봇 유형들에 대한 디버깅은 일부 실시예들에서 설계기(110)에서 실행될 수 있다. 유인 및 무인 로봇들 둘 모두는 메인프레임들, 웹 애플리케이션들, VM들, 기업 애플리케이션들(예를 들어, SAP®, SalesForce®, Oracle® 등에 의해 생산되는 것들) 및 컴퓨팅 시스템 애플리케이션들(예를 들어, 데스크톱 및 랩톱 애플리케이션들, 모바일 디바이스 애플리케이션들, 웨어러블 컴퓨터 애플리케이션들 등)을 포함하지만 이에 제한되지 않는 다양한 시스템들 및 애플리케이션들을 자동화할 수 있다.
수행기(120)는 프로비저닝, 배치, 구성, 큐잉, 모니터링, 로깅 및/또는 상호연결성의 제공을 포함하지만 이에 제한되지 않는 다양한 능력들을 가질 수 있다. 프로비저닝은 로봇들(130)과 수행기(120)(예를 들어, 웹 애플리케이션) 사이의 연결들의 생성 및 유지보수를 포함할 수 있다. 배치는 패키지 버전들을 실행을 위해 할당된 로봇들(130)에 정확히 전달하는 것을 보장하는 것을 포함할 수 있다. 구성은 로봇 환경들 및 프로세스 구성들의 유지보수 및 전달을 포함할 수 있다. 큐잉은 큐들 및 큐 항목들의 관리를 제공하는 것을 포함할 수 있다. 모니터링은 로봇 식별 데이터의 추적 및 사용자 허가들의 유지를 포함할 수 있다. 로깅은 데이터베이스(예를 들어, SQL 데이터베이스) 및/또는 다른 저장 메커니즘(예를 들어, 큰 데이터세트들을 저장하고 신속하게 질의할 수 있는 능력을 제공하는 ElasticSearch®)에 대한 로그들을 저장 및 인덱싱하는 것을 포함할 수 있다. 수행기(120)는 제3자 솔루션들 및/또는 애플리케이션들에 대한 통신의 중앙집중형 포인트로서 작용함으로써 상호연결성을 제공할 수 있다.
로봇들(130)은 설계기(110)에 구축된 워크플로우들을 실행하는 실행 에이전트들이다. 로봇(들)(130)의 일부 실시예들의 하나의 상업적인 예는 UiPath Robots™이다. 일부 실시예들에서, 로봇들(130)은 디폴트로 Microsoft Windows® 서비스 제어 관리자(Service Control Manager, SCM)-관리 서비스를 설치한다. 그 결과, 이러한 로봇들(130)은 로컬 시스템 계정 하에서 대화형 Windows® 세션들을 개방하고, Windows® 서비스의 권한들을 가질 수 있다.
일부 실시예들에서, 로봇들(130)은 사용자 모드에서 설치될 수 있다. 이러한 로봇들(130)의 경우, 이는, 이들이 주어진 로봇(130)을 설치한 사용자와 동일한 권한들을 가짐을 의미한다. 이러한 특징은 또한 고밀도(HD) 로봇들에 대해 이용가능하여, 이는 각각의 머신을 그 최대 잠재력으로 활용하는 것을 보장할 수 있다. 일부 실시예들에서, 임의의 유형의 로봇(130)이 HD 환경에서 구성될 수 있다.
로봇들(130)은 일부 실시예들에서 몇몇 컴포넌트들로 분할되고, 그 각각은 특정 자동화 작업에 전용된다. 로봇 컴포넌트들은 일부 실시예들에서 SCM-관리 로봇 서비스들, 사용자 모드 로봇 서비스들, 실행기들, 에이전트들, 커맨드 라인을 포함하지만, 이에 제한되지 않는다. SCM-관리 로봇 서비스들은 Windows® 세션들을 관리 및 모니터링하고 수행기(120)와 실행 호스트들(즉, 로봇들(130)이 실행되는 컴퓨팅 시스템들) 사이에서 프록시로서 작용한다. 이러한 서비스들은 신뢰되고 로봇들(130)에 대한 인증서들을 관리한다. 콘솔 애플리케이션이 로컬 시스템 하에서 SCM에 의해 개시된다.
사용자 모드 로봇 서비스들은 일부 실시예들에서 Windows® 세션들을 관리 및 모니터링하고 수행기(120)와 실행 호스트들 사이에서 프록시로서 작용한다. 사용자 모드 로봇 서비스들은 신뢰되고 로봇들(130)에 대한 인증서들을 관리할 수 있다. SCM-관리 로봇 서비스가 설치되지 않은 경우 Windows® 애플리케이션이 자동으로 개시될 수 있다.
실행기들은 Windows® 세션 하에서 주어진 작업들을 실행할 수 있다(즉, 이들은 워크플로우들을 실행할 수 있다). 실행기들은 모니터마다 인치 당 도트(dots per inch, DPI)를 인식할 수 있다. 에이전트들은 시스템 트레이 윈도우에서 이용가능한 작업들을 디스플레이하는 Windows® 프리젠테이션 파운데이션(Windows® Presentation Foundation, WPF) 애플리케이션들일 수 있다. 에이전트들은 서비스의 클라이언트일 수 있다. 에이전트들은 작업들을 시작 또는 중지하도록 요청하고 설정을 변경할 수 있다. 커맨드 라인은 서비스의 클라이언트이다. 커맨드 라인은 작업들을 시작하도록 요청할 수 있는 콘솔 애플리케이션이고 그 출력을 대기한다.
앞서 설명된 바와 같이 로봇들(130)의 컴포넌트들을 분할하는 것은 개발자들을 돕고, 사용자들을 지원하고, 컴퓨팅 시스템들이 각각의 컴포넌트가 실행하고 있는 것을 더 쉽게 실행, 식별 및 추적하는 것을 돕는다. 특수한 거동들은 실행기 및 서비스에 대해 상이한 방화벽 규칙들을 설정하는 것과 같은 방식으로 컴포넌트마다 구성될 수 있다. 실행기는 일부 실시예들에서 모니터마다 DPI 설정을 항상 인식할 수 있다. 그 결과, 워크플로우들은, 이들이 생성된 컴퓨팅 시스템의 구성과 무관하게 임의의 DPI에서 실행될 수 있다. 설계기(110)로부터의 프로젝트들은 또한 일부 실시예들에서 브라우저 줌 레벨과 독립적일 수 있다. DPI-미인식 또는 미인식으로 의도적으로 마킹된 애플리케이션들의 경우, DPI는 일부 실시예들에서 디스에이블될 수 있다.
도 2는 본 발명의 일 실시예에 따른 배치된 RPA 시스템(200)을 예시하는 아키텍처 도면이다. 일부 실시예들에서, RPA 시스템(200)은 도 1의 RPA 시스템(100)일 수 있거나 그 일부일 수 있다. 클라이언트 측, 서버 측 또는 둘 모두는 본 발명의 범위를 벗어남이 없이 임의의 원하는 수의 컴퓨팅 시스템들을 포함할 수 있음에 유의해야 한다 클라이언트 측에서, 로봇 애플리케이션(210)은 실행기들(212), 에이전트(214), 및 설계기(216)를 포함한다. 그러나, 일부 실시예들에서, 설계기(216)는 컴퓨팅 시스템(210) 상에서 실행되지 않을 수 있다. 실행기들(212)은 프로세스들을 실행하고 있다. 몇몇 비즈니스 프로젝트들은 도 2에 도시된 바와 같이, 동시에 실행될 수 있다. 에이전트(214)(예를 들어, Windows® 서비스)는 이러한 실시예에서 모든 실행기들(212)에 대한 단일 접촉 포인트이다. 이러한 실시예에서 모든 메시지들은 수행기(230)로 로깅되고, 수행기(230)는 데이터베이스 서버(240), 인덱서 서버(250) 또는 둘 모두를 통해 메시지들을 추가로 프로세싱한다. 도 1에 관해 앞서 논의된 바와 같이, 실행기들(212)은 로봇 컴포넌트들일 수 있다.
일부 실시예들에서, 로봇은 머신 이름과 사용자 이름 사이의 연관을 표현한다. 로봇은 다수의 실행기들을 동시에 관리할 수 있다. 동시에 실행되는 다수의 대화형 세션들을 지원하는 컴퓨팅 시스템들(예를 들어, Windows® 서버 2012) 상에서, 다수의 로봇들은 고유의 사용자 이름을 사용하여 각각 별개의 Windows® 세션에서 동시에 실행될 수 있다. 이는 앞에서의 HD 로봇들로 지칭된다.
에이전트(214)는 또한 로봇의 상태를 전송하는 것(예를 들어, 로봇이 여전히 기능하고 있음을 표시하는 "하트비트" 메시지를 주기적으로 전송하는 것) 및 실행될 패키지의 요구되는 버전을 다운로드하는 것을 담당한다. 에이전트(214)와 수행기(230) 사이의 통신은 일부 실시예들에서 항상 에이전트(214)에 의해 개시된다. 통지 시나리오에서, 에이전트(214)는, 커맨드들(예를 들어, 시작, 중지 등)을 로봇에 전송하기 위해 수행기(230)에 의해 추후에 사용되는 웹소켓 채널을 개방할 수 있다.
서버 측에서, 프리젠테이션 계층(웹 애플리케이션(232), 오픈 데이터 프로토콜(OData) 표현 상태 전송(REST) 애플리케이션 프로그래밍 인터페이스(API) 엔드포인트들(234), 및 통지 및 모니터링(236)), 서비스 계층(API 구현/비즈니스 로직(238)) 및 지속 계층(데이터베이스 서버(240) 및 인덱서 서버(250))가 포함된다. 수행기(230)는 웹 애플리케이션(232), OData REST API 엔드포인트들(234), 통지 및 모니터링(236) 및 API 구현/비즈니스 로직(238)을 포함한다. 일부 실시예들에서, 사용자가 수행기(230)의 인터페이스에서 (예를 들어, 브라우저(220)를 통해) 수행하는 대부분의 액션들은 다양한 API들을 호출함으로써 수행된다. 이러한 액션들은 본 발명의 범위를 벗어남이 없이, 로봇들 상에서 작업들을 시작하는 것, 큐들에 데이터를 추가/제거하는 것, 유인으로 실행할 작업들을 스케줄링하는 것 등을 포함할 수 있지만, 이에 제한되지 않는다. 웹 애플리케이션(232)은 서버 플랫폼의 시각적 계층이다. 이러한 실시예에서, 웹 애플리케이션(232)은 하이퍼텍스트 마크업 언어(HTML) 및 자바스크립트(JS)를 사용한다. 그러나, 본 발명의 범위를 벗어남이 없이, 임의의 원하는 마크업 언어들, 스크립트 언어들 또는 임의의 다른 포맷들이 사용될 수 있다. 사용자는 수행기(230)를 제어하기 위한 다양한 액션들을 수행하기 위해 이러한 실시예에서 브라우저(220)를 통해 웹 애플리케이션(232)으로부터 웹 페이지들과 상호작용한다. 예를 들어, 사용자는 로봇 그룹들을 생성하고, 로봇들에 패키지들을 할당하고, 로봇마다 및/또는 프로세스마다 로그들을 분석하고, 로봇들을 시작 및 중지시키는 것 등을 할 수 있다.
웹 애플리케이션(232)에 추가로, 수행기(230)는 또한 OData REST API 엔드포인트들(234)을 노출시키는 서비스 층을 포함한다. 그러나, 본 발명의 범위를 벗어남이 없이 다른 엔드포인트들이 포함될 수 있다. REST API는 웹 애플리케이션(232) 및 에이전트(214) 둘 모두에 의해 소비될 수 있다. 에이전트(214)는 이러한 실시예에서 클라이언트 컴퓨터 상의 하나 이상의 로봇들의 감독자이다.
이러한 실시예에서 REST API는 구성, 로깅, 모니터링 및 큐잉 기능을 커버한다. 구성 엔드포인트들은 일부 실시예들에서 애플리케이션 사용자들, 허가들, 로봇들, 자산들, 릴리스들 및 환경들을 정의 및 구성하기 위해 사용될 수 있다. REST 엔드포인트들을 로깅하는 것은 예를 들어, 에러들, 로봇들에 의해 전송된 명시적 메시지들, 및 다른 환경-특정 정보와 같은 상이한 정보를 로깅하기 위해 사용될 수 있다. 배치 REST 엔드포인트들은 작업 시작 커맨드가 수행기(230)에서 사용되면 실행되어야 하는 패키지 버전을 질의하기 위해 로봇들에 의해 사용될 수 있다. 큐잉 REST 엔드포인트들은 큐에 데이터를 추가하는 것, 큐로부터 트랜잭션을 획득하는 것, 트랜잭션의 상태를 설정하는 것 등과 같은 큐들 및 큐 항목 관리를 담당할 수 있다.
REST 엔드포인트들을 모니터링하는 것은 웹 애플리케이션(232) 및 에이전트(214)를 모니터링할 수 있다. 통지 및 모니터링 API(236)는 에이전트(214)를 등록하는 것, 에이전트(214)에 구성 설정을 전달하는 것, 및 서버 및 에이전트(214)로부터 통지들을 전송/수신하는 것을 위해 사용되는 REST 엔드포인트들일 수 있다. 통지 및 모니터링 API(236)는 또한 일부 실시예들에서 웹소켓 통신을 사용할 수 있다.
지속 계층은 이러한 실시예에서 한 쌍의 서버들, 즉, 데이터베이스 서버(240)(예를 들어, SQL 서버) 및 인덱서 서버(250)를 포함한다. 데이터베이스 서버(240)는 이러한 실시예에서 로봇들의 구성, 로봇 그룹들, 연관된 프로세스들, 사용자들, 규칙들, 스케줄들 등을 저장한다. 이러한 정보는 일부 실시예들에서 웹 애플리케이션(232)을 통해 관리된다. 데이터베이스 서버(240)는 큐들 및 큐 항목들을 관리할 수 있다. 일부 실시예들에서, 데이터베이스 서버(240)는 로봇들에 의해 로깅되는 메시지들을 (인덱서 서버(250)에 추가로 또는 그 대신에) 저장할 수 있다.
일부 실시예들에서 선택적인 인덱서 서버(250)는 로봇들에 의해 로깅되는 정보를 저장 및 인덱싱한다. 특정 실시예들에서, 인덱서 서버(250)는 구성 설정을 통해 디스에이블될 수 있다. 일부 실시예들에서, 인덱서 서버(250)는, 개방 소스 프로젝트 전체-텍스트 검색 엔진인 ElasticSearch®을 사용한다. (예를 들어, 로그 메시지 또는 기록 라인과 같은 활동들을 사용하여) 로봇들에 의해 로깅되는 메시지들은 로깅 REST 엔드포인트(들)를 통해 인덱서 서버(250)에 전송될 수 있고, 여기서 이들은 장래의 활용을 위해 인덱싱된다.
도 3은 본 발명의 일 실시예에 따른 설계자(310), 활동들(320, 330) 및 드라이버들(340) 사이의 관계(300)를 예시하는 아키텍처 도면이다. 앞의 내용에 따라, 개발자는 로봇들에서 실행되는 워크플로우들을 개발하기 위해 설계기(310)를 사용한다. 워크플로우들은 사용자-정의 활동들(320) 및 UI 자동화 활동들(330)을 포함할 수 있다. 일부 실시예들은 본 명세서에서 컴퓨터 비전(computer vision, CV)으로 지칭되는 이미지에서 비-텍스트 시각적 컴포넌트들을 식별할 수 있다. 이러한 컴포넌트들과 관련된 일부 CV 활동들은 클릭, 타이핑, 텍스트 획득, 선회, 요소 존재, 리프레시 스코프(scope), 강조 등을 포함할 수 있지만, 이에 제한되지 않는다. 일부 실시예들에서 클릭은 예를 들어, CV, 광학 문자 인식(optical character recognition, OCR), 퍼지 텍스트 기계가공, 및 멀티-앵커(multi-anchor)를 사용하여 요소를 식별하고 이를 클릭한다. 타이핑은 상기 내용을 사용하여 요소를 식별할 수 있고 요소에서 타이핑한다. 텍스트 획득은 특정 텍스트의 위치를 식별하고 OCR을 사용하여 이를 스캔할 수 있다. 선회는 요소를 식별하고 그 위에서 선회할 수 있다. 요소 존재는 전술된 기술들을 사용하여 화면 상에 요소가 존재하는지 여부를 체크할 수 있다. 일부 실시예들에서, 설계기(310)에서 구현될 수 있는 수백개 또는 심지어 수천개의 활동들이 존재할 수 있다. 그러나, 본 발명의 범위를 벗어남이 없이 임의의 수 및/또는 유형의 활동들이 이용가능할 수 있다.
UI 자동화 활동들(330)은 하위 레벨 코드로 기록된 특수한 하위 레벨 활동들(예를 들어, CV 활동들)의 서브세트이고 화면과의 상호작용들을 용이하게 한다. UI 자동화 활동들(330)은 로봇이 원하는 소프트웨어와 상호작용하도록 허용하는 드라이버들(340)을 통해 이러한 상호작용들을 용이하게 한다. 예를 들어, 드라이버들(340)은 OS 드라이버들(342), 브라우저 드라이버들(344), VM 드라이버들(346), 기업 애플리케이션 드라이버들(348) 등을 포함할 수 있다.
드라이버들(340)은 후크(hook)들을 찾는 것, 키(key)들을 모니터링하는 것 등을 위해 낮은 레벨에서 OS와 상호작용할 수 있다. 이들은 Chrome®, IE®, Citrix®, SAP® 등과의 통합을 용이하게 할 수 있다. 예를 들어, "클릭" 활동은 드라이버들(340)을 통해 이러한 상이한 애플리케이션들에서 동일한 역할을 수행한다.
도 4는 본 발명의 일 실시예에 따른 RPA 시스템(400)을 예시하는 아키텍처 도면이다. 일부 실시예들에서, RPA 시스템(400)은 도 1 및/또는 도 2의 RPA 시스템들(100 및/또는 200)일 수 있거나 이를 포함할 수 있다. RPA 시스템(400)은 로봇들을 실행하는 다수의 클라이언트 컴퓨팅 시스템들(410)을 포함한다. 컴퓨팅 시스템들(410)은 그 상에서 실행되는 웹 애플리케이션을 통해 수행기 컴퓨팅 시스템(420)과 통신할 수 있다. 이어서, 수행기 컴퓨팅 시스템(420)은 데이터베이스 서버(430) 및 선택적 인덱서 서버(440)와 통신할 수 있다.
도 1 및 도 3에 관하여, 이러한 실시예들에서 웹 애플리케이션이 사용되는 한편, 본 발명의 범위를 벗어남이 없이 임의의 적절한 클라이언트/서버 소프트웨어가 사용될 수 있음에 유의해야 한다. 예를 들어, 수행기는 클라이언트 컴퓨팅 시스템들 상의 비-웹 기반 클라이언트 소프트웨어 애플리케이션들과 통신하는 서버 측 애플리케이션을 실행할 수 있다.
도 5는 본 발명의 일 실시예에 따른 하나 이상의 테스트 케이스들을 생성 및 공개하도록 구성된 컴퓨팅 시스템(500)을 예시하는 아키텍처 도면이다. 일부 실시예들에서, 컴퓨팅 시스템(500)은 본 명세서에 도시된 및/또는 설명된 컴퓨팅 시스템들 중 하나 이상일 수 있다. 컴퓨팅 시스템(500)은 정보를 통신하기 위한 버스(505) 또는 다른 통신 메커니즘, 및 정보를 프로세싱하기 위해 버스(505)에 커플링된 프로세서(들)(510)를 포함한다. 프로세서(들)(510)는 중앙 처리 장치(CPU), 주문형 집적 회로(Application Specific Integrated Circuit, ASIC), 필드 프로그래밍가능 게이트 어레이(Field Programmable Gate Array, FPGA), 그래픽 프로세싱 유닛(GPU), 이들의 다수의 인스턴스들, 및/또는 이들의 임의의 조합을 포함하는 임의의 유형의 범용 또는 특수 목적 프로세서일 수 있다. 프로세서(들)(510)는 또한 다수의 프로세싱 코어들을 가질 수 있고, 코어들 중 적어도 일부는 특정 기능들을 수행하도록 구성될 수 있다. 일부 실시예들에서 다중-병렬 프로세싱이 사용될 수 있다. 특정 실시예들에서, 프로세서(들)(510) 중 적어도 하나는 생물학적 뉴런들을 모방하는 프로세싱 요소들을 포함하는 신경구조 회로일 수 있다. 일부 실시예들에서, 신경구조 회로들은 본 뉴만(Von Neumann) 컴퓨팅 아키텍처의 통상적인 컴포넌트들을 요구하지 않을 수 있다.
컴퓨팅 시스템(500)은 프로세서(들)(510)에 의해 실행될 명령어들 및 정보를 저장하기 위한 메모리(515)를 더 포함한다. 메모리(515)는 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 플래시 메모리, 캐시, 정적 저장부, 예를 들어, 자기 또는 광학 디스크, 또는 임의의 다른 유형들의 비일시적 컴퓨터 판독가능 매체들 또는 이들의 조합의 임의의 조합으로 구성될 수 있다. 비일시적 컴퓨터 판독가능 매체들은 프로세서(들)(510)에 의해 액세스될 수 있는 임의의 이용가능한 매체들일 수 있고 휘발성 매체들, 비휘발성 매체들 또는 둘 모두를 포함할 수 있다. 매체들은 또한 착탈식, 고정식 또는 둘 모두일 수 있다.
추가적으로, 컴퓨팅 시스템(500)은 무선 및/또는 유선 접속을 통해 통신 네트워크에 대한 액세스를 제공하기 위한 통신 디바이스(520), 예를 들어, 트랜시버를 포함한다. 일부 실시예들에서, 통신 디바이스(520)는 본 발명의 범위를 벗어남이 없이 FDMA(Frequency Division Multiple Access), SC-FDMA(Single Carrier FDMA), TDMA(Time Division Multiple Access), CDMA(Code Division Multiple Access), OFDM(Orthogonal Frequency Division Multiplexing), OFDMA(Orthogonal Frequency Division Multiple Access), GSM(Global System for Mobile) 통신들, GPRS(General Packet Radio Service), UMTS(Universal Mobile Telecommunications System), cdma2000, W-CDMA(Wideband CDMA), HSDPA(High-Speed Downlink Packet Access), HSUPA(High-Speed Uplink Packet Access), HSPA(High-Speed Packet Access), LTE(Long Term Evolution), LTE-A(LTE Advanced), 802. 11x, Wi-Fi, Zigbee, UWB(Ultra-WideBand), 802. 16x, 802. 15, HnB(Home Node-B), 블루투스, RFID(Radio Frequency Identification), IrDA(Infrared Data Association), NFC(Near-Field Communications), 5G(fifth generation), NR(New), 이들의 임의의 조합, 및/또는 임의의 다른 기존의 또는 장래에 구현되는 통신 표준 및/또는 프로토콜을 사용하도록 구성될 수 있다. 일부 실시예들에서, 통신 디바이스(520)는 본 발명의 범위를 벗어남이 없이 단일형, 어레이형, 위상형, 스위치형, 빔형성, 빔스티어링, 이들의 조합 및/또는 임의의 다른 안테나 구성인 하나 이상의 안테나들을 포함할 수 있다.
프로세서(들)(510)는 추가로 버스(505)를 통해 플라즈마 디스플레이, 액정 디스플레이(LCD), 발광 다이오드(LED) 디스플레이, 전계 방출 디스플레이(Field Emission Display, FED), 유기 발광 다이오드(OLED) 디스플레이, 플렉서블 OLED 디스플레이, 플렉서블 기판 디스플레이, 투사 디스플레이, 4K 디스플레이, 고해상도 디스플레이, Retina® 디스플레이, 평면 내 스위칭(In-Plane Switching, IPS) 디스플레이, 또는 사용자에게 정보를 디스플레이하기 위한 임의의 다른 적절한 디스플레이와 같은 디스플레이(525)에 결합될 수 있다. 디스플레이(525)는 저항성, 용량성, 표면 탄성파(surface-acoustic wave, SAW) 용량성, 적외선, 광학 이미징, 분산 신호 기술, 음향 펄스 인식, 좌절된 내부 전반사 등을 사용하여, 터치(햅틱) 디스플레이, 3차원(3D) 터치 디스플레이, 다중-입력 터치 디스플레이, 다중-터치 디스플레이 등으로서 구성될 수 있다. 본 발명의 범위를 벗어남이 없이 임의의 적절한 디스플레이 디바이스 및 햅틱 I/O가 사용될 수 있다.
키보드(530) 및 커서 제어 디바이스(535), 예를 들어, 컴퓨터 마우스, 터치패드 등이 추가로 버스(505)에 결합되어 사용자가 컴퓨팅 시스템(500)과 인터페이싱할 수 있게 한다. 그러나, 특정 실시예들에서, 물리적 키보드 및 마우스는 존재하지 않을 수 있고, 사용자는 단지 디스플레이(525) 및/또는 터치패드(도시되지 않음)를 통해 디바이스와 상호작용할 수 있다. 입력 디바이스들의 임의의 유형 및 조합은 설계 선택 사항으로서 사용될 수 있다. 특정 실시예들에서, 물리적 입력 디바이스 및/또는 디스플레이는 존재하지 않는다. 예를 들어, 사용자는 컴퓨팅 시스템(500)과 통신하는 다른 컴퓨팅 시스템을 통해 원격으로 컴퓨팅 시스템(500)과 상호작용할 수 있거나, 또는 컴퓨팅 시스템(500)은 자율적으로 동작할 수 있다.
메모리(515)는 프로세서(들)(510)에 의해 실행될 때 기능을 제공하는 소프트웨어 모듈들을 저장한다. 모듈들은 컴퓨팅 시스템(500)에 대한 운영 체제(540)를 포함한다. 모듈들은 본 명세서에서 설명된 프로세스들의 전부 또는 일부 또는 이들의 유도물들을 수행하도록 구성되는 테스트 케이스 모듈(545)을 더 포함한다. 컴퓨팅 시스템(500)은 추가적인 기능을 포함하는 하나 이상의 추가적인 기능 모듈들(550)을 포함할 수 있다.
본 기술분야의 당업자는, 본 발명의 범위를 벗어남이 없이 "시스템"이 서버, 내장된 컴퓨팅 시스템, 개인용 컴퓨터, 콘솔, 개인 휴대 정보 단말(PDA), 셀 폰, 태블릿 컴퓨팅 디바이스, 양자 컴퓨팅 시스템 또는 임의의 다른 적절한 컴퓨팅 디바이스 또는 디바이스들의 조합으로 구현될 수 있음을 인식할 것이다. 전술된 기능들을 "시스템"에 의해 수행되는 것으로 제시하는 것은 어떠한 방식으로도 본 발명의 범위를 제한하려는 의도가 아니라, 본 발명의 많은 실시예들의 일례를 제공하도록 의도된다. 실제로, 본 명세서에 개시된 방법들, 시스템들 및 장치들은 클라우드 컴퓨팅 시스템들을 포함하는 컴퓨팅 기술과 일치하는 로컬화된 및 분산된 형태들로 구현될 수 있다.
본 명세서에 설명된 시스템 특징들 중 일부는 이들의 구현 독립성을 더 특정적으로 강조하기 위해 모듈들로서 제시되었음에 유의해야 한다. 예를 들어, 모듈은 통상적인 VLSI(very large scale integration) 회로들 또는 게이트 어레이들, 기성품 반도체들, 예를 들어, 로직 칩들, 트랜지스터들 또는 다른 이산적 컴포넌트들을 포함하는 하드웨어 회로로서 구현될 수 있다. 모듈은 또한 필드 프로그래밍가능 게이트 어레이 로직, 프로그래밍가능 로직 디바이스들, 그래픽 프로세싱 유닛들 등과 같은 프로그래밍가능 하드웨어 디바이스들로 구현될 수 있다.
모듈은 또한 다양한 유형들의 프로세서들에 의한 실행을 위해 적어도 부분적으로 소프트웨어로 구현될 수 있다. 실행가능한 코드의 식별된 유닛은, 예를 들어, 객체, 절차 또는 함수로서 체계화될 수 있는, 예를 들어, 컴퓨터 명령어들의 하나 이상의 물리적 또는 논리적 블록들을 포함할 수 있다. 그럼에도 불구하고, 식별된 모듈의 실행가능한 것들은 물리적으로 함께 위치될 필요가 없지만, 논리적으로 함께 연결될 때 모듈을 포함하고 모듈에 대한 언급된 목적을 달성하는 상이한 위치들에 저장된 별개의 명령어들을 포함할 수 있다. 추가로, 모듈들은, 본 발명의 범위를 벗어남이 없이 예를 들어, 하드 디스크 드라이브, 플래시 디바이스, RAM, 테이프 또는 데이터를 저장하기 위해 사용되는 임의의 다른 이러한 비일시적 컴퓨터 판독가능 매체일 수 있는 컴퓨터 판독가능 매체 상에 저장될 수 있다.
실제로, 실행가능한 코드의 모듈은 단일 명령어, 또는 다수의 명령어들일 수 있고, 심지어, 몇몇 상이한 코드 세그먼트들에 걸쳐, 상이한 프로그램들 사이에 그리고 몇몇 메모리 디바이스들에 걸쳐 분산될 수 있다. 유사하게, 본 명세서에서 동작 데이터가 모듈 내에서 식별되고 예시될 수 있고, 임의의 적절한 형태로 구현되고 임의의 적절한 유형의 데이터 구조 내에서 체계화될 수 있다. 동작 데이터는 단일 데이터 세트로서 수집될 수 있거나, 또는 상이한 저장 디바이스들을 통하는 것을 포함하여 상이한 위치들에 걸쳐 분산될 수 있고, 적어도 부분적으로, 시스템 또는 네트워크 상에서 단지 전자 신호들로서 존재할 수 있다.
테스트 케이스 생성
도 6은 본 발명의 일 실시예에 따른 테스트 케이스를 생성하기 위한 프로세스(600)를 예시하는 흐름도이다. 일부 실시예들에서, 프로세스(600)는 602에서 Studio ProTM을 이용하여 기존의 워크플로우를 개방하는 것으로 시작한다. 앞서 언급된 바와 같이, 기존의 워크플로우는 생산 중인 또는 개발 중인 워크플로우일 수 있다. 604에서, 기존의 워크플로우는 워크플로우 테스트 케이스의 범위를 결정하도록 선택된다. 실시예에 따라, 전체 워크플로우 또는 워크플로우의 하나 이상의 부분들이 선택된다. 본 발명의 일 실시예에 따른 Studio ProTM에서 선택되는 워크플로우를 예시하는 GUI(1000)인 도 10을 참조한다.
606에서, 선택된 테스트 케이스가 생성된다. 예를 들어, 선택된 테스트 케이스는, 컴퓨팅 디바이스의 사용자가 워크플로우의 콘텍스트 메뉴로부터 '테스트 케이스 생성' 버튼을 선택할 때 생성된다. 생성된 테스트 케이스는 프로젝트의 '테스트 케이스들' 폴더 아래에 저장될 수 있다.
일부 실시예들에서, 테스트 케이스는 '기븐-휀-덴' 템플릿 또는 모듈을 사용한다. 본 발명의 일 실시예에 따른 '기븐-휀-덴(given-when-then)' 템플릿을 예시하는 GUI(1100)인 도 11을 참조한다. '휀' 모듈 하에서, 테스트 중인 워크플로우가 호출되고, 따라서 기준으로서 배치된다. 아이디어는, 테스트 케이스가 테스트 중인 워크플로우의 카피를 유지하지 않고 오히려 이를 직접 참조한다는 것이다. 이는, 테스트 중인 워크플로우가 시간이 지남에 따라 변하기 때문에 중요하다. '휀' 모듈은 주로, 테스트 중인 워크플로우를 실행 또는 호출하는 것을 담당한다. 예를 들어, 본 발명의 일 실시예에 따른 '휀' 모듈을 예시하는 GUI(1200)인 도 12를 참조한다.
'기븐' 모듈 하에서, 컴퓨팅 디바이스의 사용자는 '휀' 모듈이 성공적으로 실행되기 위해 요구되는 모든 선제조건들을 추가한다. 본 발명의 일 실시예에 따른 '기븐' 모듈에 입력되는 선제조건들을 예시하는 GUI(1300)인 도 13을 참조한다. 예를 들어, 요구되는 선제조건들은 입력 파라미터들, 애플리케이션들 등을 포함할 수 있다. '기븐' 모듈은 워크플로우가 성공적으로 실행되는 것을 보장하는 실행 환경을 제공할 수 있다. 이는, 예를 들어, 워크플로우가 프로세싱할 임시 파일들(예를 들어, 실제 인보이스들 대신)을 제공하는 것, 워크플로우가 실행하기 위해 요구되는 특정 애플리케이션을 시작하는 것, 또는 워크플로우 내에서 사용되고 워크플로우에 대한 입력으로서 예상되는 파라미터들 및 변수들(예를 들어, id 또는 인증서들)을 포함할 수 있다. 일부 추가 실시예들에서, '기븐' 모듈은 테스트 중인 워크플로우의 단계들을 모의할 가능성을 제공하도록 구성되어, 테스트 중인 워크플로우가 에러들 없이 실행되도록 보장한다. 모의는 테스트 중인 워크플로우 내의 일련의 단계들을 시뮬레이팅하는 것을 포함한다. 예를 들어, 일 실시예에 따르면, 테스트 중인 워크플로우의 모의를 예시하는 GUI들(1400, 1500)인 도 14 및 도 15를 예시한다. 일부 실시예들에서, 테스트 중인 워크플로우는 테스트 케이스들을 생성할 테스트 객체이고 '휀' 모듈에 의해 호출된다.
추가로, '기븐' 모듈 하에서, 워크플로우에 대해 요구되는 변수들 및/또는 파라미터들이 자동으로 식별된다. 특정 실시예들에서, 사용자는 '기븐' 모듈에서 임의의 활동들 및/또는 액션들을 배치할 수 있다. 추가적으로, 아규먼트들/파라미터들은 테스트 중인 워크플로우를 참조하는 '워크플로우 호출' 활동 상에서 '휀' 모듈에 직접 제공될 수 있다.
일례에서, 테스트 중인 워크플로우는 데이터 구동 테스트 케이스(DDT)의 일부인 변수 'Insurant. Name'를 사용한다. 일부 실시예들에서, DDT들은 상이한 데이터 변형들로 채워진 단일 테스트 케이스 정의로 표현된다. 그러한 변형들은 예를 들어, Excel® 파일로부터 올 수 있고, 이러한 데이터 파일이 링크되면, 아규먼트들은 데이터 소스의 각각의 테이블 열에 대해 생성된다. 테스트 케이스가 생성될 때, 동일한 이름을 갖는 변수가 '기븐' 모듈에서 자동으로 생성된다. 다른 예에서, 원래 'Insurant. Name' 변수의 디폴트 값이 이용가능한 경우 주어진다. 그렇지 않으면, 변수는 컴퓨팅 디바이스의 사용자가 값을 완료하도록 남겨진다.
'덴' 모듈 하에서, 이러한 모듈은 테스트 케이스의 본질적 부분을 표현하는 임의의 유형들의 진술(assertion)들을 유지할 수 있다. 설명의 목적으로, 테스트 케이스의 본질적 부분은 진술 또는 검증이고, 이는 테스트 목적(예를 들어, 대출 값이 500,000이라고 주장함)을 정의한다. 이는 테스트 중인 애플리케이션의 특정 요건이 달성되는 것을 테스트 케이스가 입증하는 방법이다. '덴' 모듈을 이용하여, 기존의 검증 활동들은 컴퓨팅 디바이스의 사용자에 의해 모듈의 '덴' 섹션으로 드래그될 수 있다. 일례에서, '휀' 모듈 내에서, 컴퓨팅 디바이스의 사용자는 보험 애플리케이션을 채우는 워크플로우를 호출할 수 있다. 본 발명의 일 실시예에 따른 '덴' 모듈을 예시하는 GUI(1600)인 도 16을 참조한다. '덴' 모듈 내에서, 컴퓨팅 디바이스의 사용자는 생성된 보험 번호를 조장하는 'UiElement 검증' 활동을 드래그할 수 있다. 본 발명의 일 실시예에 따른 실행된 워크플로우를 예시하는 GUI들(1700 및 1800)인 도 17 및 도 18을 참조한다.
테스트 케이스 공개
Studio ProTM 프로젝트는 1-n 워크플로우들, 1-n 워크플로우 테스트 케이스들 및 1-n 애플리케이션 테스트 케이스들을 유지할 수 있다. 공개할 때, Orchestrator™의 '테스트 케이스들' 섹션은 프로젝트, 애플리케이션 테스트 케이스들 및/또는 워크플로우 테스트 케이스들을 포함할 수 있다. 워크플로우 테스트 케이스들은 추가적으로 생성된 원래 워크플로우에 대한 기준을 포함할 수 있다. 예를 들어, 본 발명의 일 실시예에 따른 '링크된 프로세스'에 대한 열을 갖는 테스트 케이스 섹션을 예시하는 GUI(1900)인 도 19를 참조한다.
도 7은 본 발명의 일 실시예에 따른 테스트 케이스를 공개하기 위한 프로세스(700)를 예시하는 흐름도이다. 일부 실시예들에서, Studio Pro®를 이용하여, 사용자들은 자신들의 워크플로우들 또는 자신들의 테스트 케이스들을 공개할 수 있다. 공개되면, 사용자들은 하나 이상의 테스트 케이스들을 취하고 이들을 실행을 위한 테스트 세트들로 함께 그룹화할 수 있다. 프로세스(700)는 702에서, Studio Pro®에서 하나 이상의 테스트 케이스들을 생성하는 것으로 시작할 수 있고, 704에서 하나 이상의 테스트 케이스들이 공개가능한 것으로 설정된다. 예를 들어, 본 발명의 일 실시예에 따른, 공개가능하게 될 하나 이상의 테스트 케이스들을 설정하는 메뉴 옵션을 예시하는 GUI(3200)인 도 32를 참조한다. 706에서, 하나 이상의 테스트 케이스들이 공개를 위해 트리거된다. 예를 들어, 본 발명의 일 실시예에 따른, Studio Pro®에서 공개를 위한 애플리케이션을 예시하는 GUI(3300)인 도 33을 참조한다.
708에서, 특정 환경을 사용하여 테스트 케이스 패키지에 대한 프로세스가 생성된다. 예를 들어, 본 발명의 일 실시예에 따른 배치 프로세스를 예시하는 GUI(3400)인 도 34를 참조한다. 710에서, 하나 이상의 테스트 케이스들은 Studio Pro®의 '테스트 케이스들' 섹션에 나타난다. 예를 들어, 본 발명의 일 실시예에 따른, '테스트 케이스' 섹션에서 생성된 테스트 케이스들을 예시하는 GUI(3500)인 도 35를 참조한다.
워크플로우 테스트 케이스 실행
워크플로우 테스트 케이스들을 실행하는 것은 애플리케이션 테스트 케이스들을 실행하는 것과 상이하지 않다. 예를 들어, 도 8은 본 발명의 일 실시예에 따른 테스트 케이스를 실행하기 위한 프로세스(800)를 예시하는 흐름도이다. 일부 실시예들에서, 프로세스(800)는 802에서 테스트 세트를 생성하는 것 및 804에서, 하나 이상의 워크플로우들 또는 워크플로우의 하나 이상의 부분들에 대한 하나 이상의 테스트 케이스들을 테스트 세트에 할당하는 것으로 시작한다. 806에서, 테스트 세트가 실행된다.
워크플로우 테스트 케이스들의 실행 결과는 통상적인 애플리케이션 테스트 결과들과 유사한 구조를 가질 수 있지만, 추가적으로 테스트 중인 프로세스에 대한 기준을 가질 수 있음을 인식해야 한다. 도 20은 본 발명의 일 실시예에 따른 실행된 워크플로우 테스트 케이스들로부터의 테스트 결과들을 예시하는 GUI(2000)이다.
실패된 워크플로우 테스트 케이스의 경우, OrchestratorTM의 '프로세스' 섹션 내의 대응하는 프로세스들은 경고 삼각형 툴팁(tooltip)을 수신한다. 도 21은 본 발명의 일 실시예에 따른 OrchestratorTM의 '프로세스' 섹션을 예시하는 GUI(2100)이다. 일 실시예에서, 경고 삼각형 및 툴팁(2102)은 실패된 워크플로우 테스트 케이스에 의해 특정 프로세스가 영향받는다는 표시를 제공하고 생산 동안 성공적으로 실행하기 위한 적응들을 요구할 수 있다.
하나 이상의 사용자들이 전용 테스트 환경 내에서 워크플로우의 가장 최근 버전에 대한 하나 이상의 워크플로우 테스트 케이스들을 계속해서 실행할 수 있는 것을 고려할 때, 생산 중인 실제 프로세스는 이전 버전 및 상이한 환경을 사용한다. 예를 들어, RPA의 개발 동안, 제1 버전 및 그 다음 제2 버전이 있다. 이러한 제2 버전의 경우, 테스트 케이스들은 워크플로우에서 변화가 있을 때 실행된다. 다른 예에서, 제2 버전이 생산 중일 때, 워크플로우 테스트 케이스들의 세트가 또한 생산 중에 실행된다. 예를 들어, 테스트 케이스들은 생산 중인 워크플로우를 실행하기 전에 하루에 한번 실행된다. 이를 이용하여, 테스트 중인 워크플로우들은 워크플로우가 생산 스테이지에 진입하기 전에 파괴되고 확정될 수 있다. 설명의 목적으로, 용어 '환경'은 시스템, 즉, 프로그래밍, 데이터베이스들 등을 지칭한다. 즉, 몇몇 예를 들면, 개발 환경, 사전 생산 환경, 생산 환경으로 시작하는 많은 환경들이 있다.
이 때문에, 이러한 프로세스 내에서 잠재적인 문제들을 사용자들에게 경고 또는 통지하는 것이 유리할 수 있다. 따라서, 툴팁 또는 통지 메시지(2102)는 필요한 콘텍스트를 제공할 수 있다. 예를 들어, 툴팁 또는 통지 메시지(2102)는 하기 메시지를 포함할 수 있다: "환경 Y 상에서 버전 X. X. X에 대해 실패된 이러한 프로세스에 할당된 몇몇 테스트 케이스들. " 일부 실시예들에서, 콘텍스트 메뉴는, 기본적으로 경고(예를 들면, 경고 라벨)를 제거하는 '수신된 것(received)'으로서 경고를 마킹하는 것을 허용한다.
특정 실시예들에서, 실패된 워크플로우 테스트 케이스는 개발자로 하여금 워크플로우 및/또는 테스트 케이스를 분석하게 하고 Studio ProTM에서 워크플로우 및/또는 테스트 케이스를 디버깅하게 한다. 따라서, 도 22에 도시된 것과 같은 추가적인 콘텍스트 메뉴 엔트리는 대응하는 Studio ProTM 프로젝트의 직접적인 개방을 허용한다. 도 22는 본 발명의 일 실시예에 따른 StudioTM에서 실패된 워크플로우 테스트 케이스를 개방하는 추가적인 콘텍스트 메뉴 엔트리(2202)를 예시하는 GUI(2200)이다. 도 23은 본 발명의 일 실시예에 따른 Studio ProTM에서 영향받는 워크플로우(2302) 및 테스트 케이스를 예시하는 GUI(2300)이다.
데이터-구동 워크플로우 테스트 케이스들의 생성
일부 실시예들에서, 입력 데이터의 상이한 조합들을 테스트하는 것은 외부 데이터 소스를 테스트 케이스와 연결할 가능성을 요구한다. 일례에서, 데이터 소스가 Excel® 시트 내의 테이블인 것으로 가정하자. 예를 들어, 본 발명의 일 실시예에 따른 Excel® 내의 테이블을 예시하는 GUI(2400)인 도 24를 참조한다.
도 9는 본 발명의 일 실시예에 따른 데이터-구동 워크플로우 테스트 케이스를 생성하기 위한 프로세스(900)를 예시하는 흐름도이다. 일부 실시예들에서, 프로세스(900)는 902에서 Studio ProTM에서 워크플로우 또는 워크플로우의 하나 이상의 부분들을 선택하는 것으로 시작할 수 있다. 이러한 방식으로, 이 예에서는 Excel® 시트의 형태인 데이터 소스 내의 데이터가 레버리지된다(leveraged). 도 25는 본 발명의 일 실시예에 따른 선택될 워크플로우(2502)를 예시하는 GUI(2500)이다. 904에서, '워크플로우 테스트' 섹션으로부터 '데이터-구동 테스트 케이스 생성'이 선택되고 데이터 소스가 선택된다. 도 26은 본 발명의 일 실시예에 따른, 사용자가 데이터 소스를 선택하도록 허용하는 '데이터-구동 테스트 케이스' 메뉴(2602)를 예시하는 GUI(2600)이다.
906에서, '테이블 선택' 메뉴 하에서, 하나 이상의 테이블들이 선택된다. 테이블(들)이 선택되면, 908에서 필드들이 선택된다. 도 27은 본 발명의 일 실시예에 따른, 필드들이 선택되도록 허용하는 메뉴 옵션(2702)을 예시하는 GUI(2700)이다. 구체적으로, GUI(2700)는 사용자가 Excel® 시트 내의 데이터 소스로부터 하나 이상의 필드들을 선택하도록 허용하는 메뉴 옵션(2702)을 도시한다. 이는 데이터가 추출되는 이러한 필드들로부터의 것이다. 910에서, 데이터 소스가 Excel® 시트이기 때문에, Studio ProTM는 사용된 변수 이름들과 열들을 자동으로 매칭한다.
912에서, 특정 열과 매칭될 수 없는 그러한 변수들의 경우, 사용자는 선택된 시트 내에서 이용가능한 열들로부터 수동으로 선택한다. 도 28은 본 발명의 일 실시예에 따른, 선택된 Excel® 시트 내에서 사용자가 하나 이상의 이용가능한 열들을 선택하도록 허용하기 위한 메뉴 옵션(2802)을 예시하는 GUI(2800)이다.
914에서, 데이터 소스는 Studio ProTM에서 '데이터 세트 임포트' 체크박스 상에서 선택됨으로써 임포트된다. 실시예에 따라, (예를 들어, 메뉴 옵션의 '데이터 세트 임포트' 체크박스 상에서 클릭함으로써) 데이터 소스는 프로젝트의 일부로서 임포트되거나 (경로에 의해) 참조됨에 유의해야 한다. 도 29는 본 발명의 일 실시예에 따른, '데이터 세트 임포트'를 선택하는 옵션을 도시하는 메뉴 옵션(2902)을 예시하는 GUI(2900)이다. 일부 실시예들에서, 데이터 세트는 프로젝트 자체의 일부이고 초기 소스(파일)는 테스트 실행 동안 이용가능할 필요가 없다.
916에서, 변수 매칭이 완료된 후, 제1 테스트 케이스가 생성되고, '아규먼트들' 섹션 내의 변수들은 데이터 소스(외부 또는 내부)를 참조하여 설정된다. 도 30은 본 발명의 일 실시예에 따른, 데이터 세트로부터 생성된 제1 테스트 케이스(3002)를 예시하는 GUI(3000)이다.
도 31은 본 발명의 일 실시예에 따른, 다수의 테스트 데이터 변형들 갖는 테스트 케이스를 예시하는 GUI(3100)이다. 일부 실시예들에서, 임포트된 테스트 데이터를 갖는 테이블을 도시하는 '데이터 세트들'로 지칭되는 새로운 탭이 생성될 수 있다. 이 테이블은 주로 2개의 목적들을 갖는다. 첫째, 테이블은 단일 테스트 케이스가 다수의 테스트 데이터 변형들로 연결되는 것을 표시한다. 둘째, 테이블은 국부적으로 디버깅 목적으로 (예를 들어, 하나 이상의 변형들을 선택하고 '실행'을 클릭함으로써) 변형들 중 하나 이상을 실행한다. 예를 들어, OrchestratorTM에 공개할 때, 전체 데이터 세트가 공개되고 실행된다.
도 6 내지 도 9에서 수행되는 프로세스 단계들은 본 발명의 실시예들에 따라, 도 6 내지 도 9에 설명된 프로세스(들)의 적어도 일부를 수행하기 위해 프로세서(들)에 대한 명령어들을 인코딩하는 컴퓨터 프로그램에 의해 수행될 수 있다. 컴퓨터 프로그램은 비일시적 컴퓨터 판독가능 매체 상에 구현될 수 있다. 컴퓨터 판독가능 매체는 하드 디스크 드라이브, 플래시 디바이스, RAM, 테이프 및/또는 임의의 다른 이러한 매체 또는 데이터를 저장하기 위해 사용되는 매체들의 조합일 수 있지만, 이에 제한되지 않는다. 컴퓨터 프로그램은 도 6 내지 도 9에 설명된 프로세스 단계들 중 전부 또는 일부를 구현하기 위해 컴퓨팅 시스템의 프로세서(들)(예를 들어, 도 5의 컴퓨팅 시스템(500)의 프로세서(들)(510))를 제어하기 위한 인코딩된 명령어들을 포함할 수 있고, 이는 또한 컴퓨터 판독가능 매체 상에 저장될 수 있다.
컴퓨터 프로그램은 하드웨어, 소프트웨어 또는 하이브리드 구현으로 구현될 수 있다. 컴퓨터 프로그램은 서로 동작가능하게 통신하고 디스플레이할 정보 또는 명령어들을 전달하도록 설계되는 모듈들로 구성될 수 있다. 컴퓨터 프로그램은 범용 컴퓨터, ASIC, 또는 임의의 다른 적절한 디바이스 상에서 동작하도록 구성될 수 있다.
본 명세서에서 일반적으로 설명되고 예시된 바와 같이, 본 발명의 다양한 실시예들의 컴포넌트들은 매우 다양한 상이한 구성들로 배열되고 설계될 수 있음은 쉽게 이해될 것이다. 따라서, 첨부된 도면들에서 표현되는 바와 같이, 본 발명의 실시예들의 상세한 설명은 청구되는 본 발명의 범위를 제한하려는 의도가 아니며, 본 발명의 선택된 실시예들을 단지 예시한다.
본 명세서 전반에 걸쳐 설명된 본 발명의 특징들, 구조들 또는 특성들은 하나 이상의 실시예들에서 임의의 적절한 방식으로 조합될 수 있다. 예를 들어, 본 명세서 전반에 걸쳐 "특정 실시예들", "일부 실시예들" 또는 유사한 언어에 대한 참조는 실시예와 관련하여 설명된 특정 특징, 구조 또는 특성이 본 발명의 적어도 하나의 실시예에 포함되는 것을 의미한다. 따라서, 본 명세서 전반에 걸쳐 어구들 "특정 실시예들에서", "일부 실시예들에서", "다른 실시예들에서" 또는 유사한 언어의 등장들은 반드시 모두 동일한 실시예들의 그룹을 지칭하는 것은 아니며, 설명된 특징들, 구조들 또는 특성들은 하나 이상의 실시예들에서 임의의 적절한 방식으로 조합될 수 있다.
본 명세서 전반에 걸쳐 특징들, 이점들 또는 유사한 언어에 대한 참조는 본 발명과 함께 실현될 수 있는 특징들 및 이점들이 본 발명의 임의의 단일 실시예 내에 있거나 있어야 함을 의미하지 않음에 유의해야 한다. 오히려, 특징들 및 이점들을 나타내는 언어는, 실시예와 관련하여 설명된 특정 특징, 이점 또는 특성이 본 발명의 적어도 하나의 실시예에 포함되는 것을 의미하는 것으로 이해된다. 따라서, 본 명세서 전반에 걸쳐 특징들 및 이점들, 및 유사한 언어의 논의는 동일한 실시예를 지칭할 수 있지만, 반드시 그러한 것은 아니다.
또한, 본 발명의 설명된 특징들, 이점들 및 특성들은 하나 이상의 실시예들에서 임의의 적절한 방식으로 조합될 수 있다. 관련 기술분야의 당업자는, 특정 실시예의 특정 특징들 또는 이점들 중 하나 이상 없이도 본 발명이 실시될 수 있음을 인식할 것이다. 다른 경우들에서, 본 발명의 모든 실시예들에 존재하지는 않을 수 있는 특정 실시예들에서 추가적인 특징들 및 이점들이 인식될 수 있다.
본 기술분야의 당업자는, 앞서 논의된 바와 같은 본 발명이 상이한 순서의 단계들로 그리고/또는 개시된 것과는 상이한 구성들의 하드웨어 요소들로 실시될 수 있음을 쉽게 이해할 것이다. 따라서, 본 발명이 이러한 바람직한 실시예들에 기초하여 설명되었지만, 본 개시의 사상 및 범위 내에 유지되면서 특정 수정들, 변형들 및 대안적인 구성들이 명백할 것임은 본 기술분야의 당업자들에게 자명할 것이다. 따라서, 본 발명의 범위 및 한계들을 결정하기 위해, 첨부된 청구항들에 대한 참조가 이루어져야 한다.

Claims (20)

  1. 컴퓨터 구현 방법으로서,
    테스트 세트를 생성하는 단계;
    생산 중인 복수의 워크플로우들 중 대응하는 하나에 대한 하나 이상의 테스트 케이스를 상기 테스트 세트에 할당하는 단계;
    상기 하나 이상의 테스트 케이스 각각에 대한 환경 및 자동화 문제들 중 적어도 하나를 식별하기 위해 상기 테스트 세트를 실행하는 단계; 및
    상기 테스트 세트의 결과를 보고하는 단계를 포함하고,
    상기 결과는 하나 이상의 실패된 테스트 케이스를 사용자에게 통지하는 메시지를 갖는 상기 하나 이상의 실패된 테스트 케이스를 포함하고,
    상기 결과는 상기 하나 이상의 실패된 테스트 케이스 각각에 대한 경고 삼각형 및 툴팁을 포함하고, 상기 툴팁은 상기 하나 이상의 실패된 테스트 케이스의 버전 정보 및 환경 정보를 포함하는 콘텍스트 정보를 제공하는, 컴퓨터 구현 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 경고 삼각형 및 툴팁은, 상기 하나 이상의 실패된 테스트 케이스 각각에서 특정한 프로세스가 영향받는다는 표시를 제공하고 생산 동안 에러들 없이 실행하기 위한 적응들을 요구하는, 컴퓨터 구현 방법.
  4. 제1항에 있어서,
    상기 사용자가 상기 메시지를 '수신된 것(received)'으로 마킹하여, 상기 메시지로부터 경고 라벨을 제거하도록 허용하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  5. 제1항에 있어서,
    대응하는 애플리케이션 프로젝트를 개방하고 상기 하나 이상의 실패된 테스트 케이스 각각에서 하나 이상의 영향받는 영역을 강조하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  6. 제1항에 있어서,
    복수의 워크플로우들을 생성하는 단계를 더 포함하고,
    상기 복수의 워크플로우들을 생성하는 단계는 복수의 테스트 케이스들을 생성하기 위해 상기 복수의 테스트 케이스들을 선택하는 단계를 포함하는, 컴퓨터 구현 방법.
  7. 제6항에 있어서,
    상기 복수의 워크플로우들을 생성하는 단계는 데이터가 추출되는 데이터 소스를 선택하는 단계를 포함하는, 컴퓨터 구현 방법.
  8. 제7항에 있어서,
    상기 복수의 워크플로우들을 생성하는 단계는 상기 데이터가 추출되는 상기 데이터 소스로부터 하나 이상의 필드를 선택하는 단계를 포함하는, 컴퓨터 구현 방법.
  9. 제8항에 있어서,
    상기 복수의 워크플로우들을 생성하는 단계는 상기 데이터 소스로부터 선택된 상기 하나 이상의 필드로부터 상기 데이터를 임포트하는 단계를 포함하는, 컴퓨터 구현 방법.
  10. 제8항에 있어서,
    상기 복수의 워크플로우들을 생성하는 단계는 상기 데이터 소스로부터 선택된 상기 하나 이상의 필드로부터 상기 데이터를 참조하는 단계를 포함하는, 컴퓨터 구현 방법.
  11. 시스템으로서,
    컴퓨터 프로그램 명령어들을 저장하는 메모리; 및
    상기 컴퓨터 프로그램 명령어들을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고, 상기 컴퓨터 프로그램 명령어들은,
    테스트 세트를 생성하는 것;
    생산 중인 복수의 워크플로우들 중 대응하는 하나에 대한 하나 이상의 테스트 케이스를 상기 테스트 세트에 할당하는 것;
    상기 하나 이상의 테스트 케이스 각각에 대한 환경 및 자동화 문제들 중 적어도 하나를 식별하기 위해 상기 테스트 세트를 실행하는 것; 및
    상기 테스트 세트의 결과를 보고하는 것
    을 실행하도록 구성되고,
    상기 결과는 하나 이상의 실패된 테스트 케이스를 사용자에게 통지하는 메시지를 갖는 상기 하나 이상의 실패된 테스트 케이스를 포함하고,
    상기 결과는 상기 하나 이상의 실패된 테스트 케이스 각각에 대한 경고 삼각형 및 툴팁을 포함하고, 상기 툴팁은 상기 하나 이상의 실패된 테스트 케이스의 버전 정보 및 환경 정보를 포함하는 콘텍스트 정보를 제공하는, 시스템.
  12. 삭제
  13. 제11항에 있어서,
    상기 경고 삼각형 및 툴팁은, 상기 하나 이상의 실패된 테스트 케이스 각각에서 특정한 프로세스가 영향받는다는 표시를 제공하고 생산 동안 에러들 없이 실행하기 위한 적응들을 요구하는, 시스템.
  14. 제11항에 있어서,
    상기 컴퓨터 프로그램 명령어들은 또한,
    상기 사용자가 상기 메시지를 '수신된 것'으로 마킹하여, 상기 메시지로부터 경고 라벨을 제거하도록 허용하는 것을 실행하도록 구성되는, 시스템.
  15. 제11항에 있어서,
    상기 컴퓨터 프로그램 명령어들은 또한,
    대응하는 애플리케이션 프로젝트를 개방하고 상기 하나 이상의 실패된 테스트 케이스 각각에서 하나 이상의 영향받는 영역을 강조하는 것을 실행하도록 구성되는, 시스템.
  16. 제11항에 있어서,
    상기 컴퓨터 프로그램 명령어들은 또한,
    복수의 워크플로우들을 생성하는 것을 실행하도록 구성되고,
    상기 복수의 워크플로우들을 생성하는 것은 복수의 테스트 케이스들을 생성하기 위해 상기 복수의 테스트 케이스들을 선택하는 것을 포함하는, 시스템.
  17. 제16항에 있어서,
    상기 컴퓨터 프로그램 명령어들은 또한,
    데이터가 추출되는 데이터 소스를 선택하는 것을 실행하도록 구성되는, 시스템.
  18. 제17항에 있어서,
    상기 컴퓨터 프로그램 명령어들은 또한,
    상기 데이터가 추출되는 상기 데이터 소스로부터 하나 이상의 필드를 선택하는 것을 실행하도록 구성되는, 시스템.
  19. 제18항에 있어서,
    상기 컴퓨터 프로그램 명령어들은 또한,
    상기 데이터 소스에서 선택된 상기 하나 이상의 필드로부터 상기 데이터를 임포트하는 것을 실행하도록 구성되는, 시스템.
  20. 제18항에 있어서,
    상기 컴퓨터 프로그램 명령어들은 또한,
    상기 데이터 소스에서 선택된 상기 하나 이상의 필드로부터 상기 데이터를 참조하는 것을 실행하도록 구성되는, 시스템.
KR1020207028236A 2020-04-21 2020-09-18 로봇 프로세스 자동화를 위한 테스트 자동화 KR102412237B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US16/854,733 US20210326244A1 (en) 2020-04-21 2020-04-21 Test automation for robotic process automation
US16/854,733 2020-04-21
US16/855,563 2020-04-22
US16/855,563 US11789853B2 (en) 2020-04-21 2020-04-22 Test automation for robotic process automation
PCT/US2020/051508 WO2021216107A1 (en) 2020-04-21 2020-09-18 Test automation for robotic process automation

Publications (2)

Publication Number Publication Date
KR20210131216A KR20210131216A (ko) 2021-11-02
KR102412237B1 true KR102412237B1 (ko) 2022-06-23

Family

ID=78081351

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020207028233A KR102444475B1 (ko) 2020-04-21 2020-09-18 로봇 프로세스 자동화를 위한 테스트 자동화
KR1020207028236A KR102412237B1 (ko) 2020-04-21 2020-09-18 로봇 프로세스 자동화를 위한 테스트 자동화

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020207028233A KR102444475B1 (ko) 2020-04-21 2020-09-18 로봇 프로세스 자동화를 위한 테스트 자동화

Country Status (3)

Country Link
US (2) US20210326244A1 (ko)
KR (2) KR102444475B1 (ko)
WO (2) WO2021216107A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4243195A2 (en) 2021-01-19 2023-09-13 LG Energy Solution, Ltd. Electrode assembly, battery, and battery pack and vehicle comprising same
EP4270628A1 (en) 2021-02-19 2023-11-01 LG Energy Solution, Ltd. Electrode assembly and battery, and battery pack and vehicle comprising same
WO2022177377A1 (ko) 2021-02-19 2022-08-25 주식회사 엘지에너지솔루션 배터리, 그리고 이를 포함하는 배터리 팩 및 자동차
EP4246703A1 (en) 2021-02-19 2023-09-20 LG Energy Solution, Ltd. Battery, and battery pack and vehicle comprising same
WO2022177376A1 (ko) 2021-02-19 2022-08-25 주식회사 엘지에너지솔루션 배터리, 그리고 이를 포함하는 배터리 팩 및 자동차
US20230027880A1 (en) * 2021-07-22 2023-01-26 Infor (Us), Llc Techniques for automated testing of application programming interfaces
CN117172207B (zh) * 2023-11-02 2024-01-30 摩尔线程智能科技(北京)有限责任公司 ***总线互联验证方法、装置、电子设备、存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009020665A (ja) * 2007-07-11 2009-01-29 Canon Inc 情報処理装置、情報処理方法、記憶媒体、プログラム
JP2013218726A (ja) * 2007-09-11 2013-10-24 Ciambella Ltd ワークフロー生成、配置、及び/又は実行のためのシステム、方法、及びグラフィカルユーザインターフェイス
KR101335912B1 (ko) * 2012-12-05 2013-12-02 (주)아이지오 테스트 통합 관리 시스템 및 방법

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060195817A1 (en) 2005-02-28 2006-08-31 Microsoft Corporation Visual workflow modeling tools for user interface automation
US20110123973A1 (en) * 2008-06-06 2011-05-26 Sapient Corporation Systems and methods for visual test authoring and automation
US8418000B1 (en) 2012-03-13 2013-04-09 True Metrics LLC System and methods for automated testing of functionally complex systems
US9438695B2 (en) * 2012-03-21 2016-09-06 Servicetrace E.K. Process and apparatus for executing workflow scripts
GB2524737A (en) 2014-03-31 2015-10-07 Kainos Worksmart Ltd A system and method for testing a workflow
US9116767B1 (en) * 2014-06-06 2015-08-25 International Business Machines Corporation Deployment pattern monitoring
US10289524B2 (en) * 2014-06-06 2019-05-14 Accenture Global Services Limited Workflow test case generation
US20160055077A1 (en) * 2014-08-25 2016-02-25 General Electric Company Method, device, and program storage device for autonomous software product testing
US20160283293A1 (en) 2015-03-27 2016-09-29 Accenture Global Services Limited Automation system for implementing a standardized design methodology for a process automation service
EP3133539A1 (en) 2015-08-19 2017-02-22 Tata Consultancy Services Limited Method ans system for process automation in computing
US10019344B1 (en) * 2015-08-31 2018-07-10 VCE IP Holding Company LLC Computer implemented system and method and computer program product for a test framework for orchestration workflows
US10365799B2 (en) 2016-02-09 2019-07-30 Wipro Limited System and methods for creating on-demand robotic process automation
KR102089284B1 (ko) 2016-02-26 2020-03-17 노키아 솔루션스 앤드 네트웍스 오와이 클라우드 검증 및 테스트 자동화
KR101826618B1 (ko) 2016-08-02 2018-02-07 (주)씽크포비엘 테스트 케이스 생성 방법, 장치 및 컴퓨터 판독가능 기록매체
US10642720B2 (en) 2016-09-15 2020-05-05 Talend, Inc. Test case generator built into data-integration workflow editor
US11157855B2 (en) 2017-01-09 2021-10-26 Sutherland Global Services Inc. Robotics process automation platform
US9817967B1 (en) 2017-01-13 2017-11-14 Accenture Global Solutions Limited Integrated robotics and access management for target systems
US10592370B2 (en) 2017-04-28 2020-03-17 Advantest Corporation User control of automated test features with software application programming interface (API)
US10682761B2 (en) 2017-06-21 2020-06-16 Nice Ltd System and method for detecting and fixing robotic process automation failures
US10235192B2 (en) 2017-06-23 2019-03-19 Accenture Global Solutions Limited Self-learning robotic process automation
US10705948B2 (en) 2017-10-30 2020-07-07 Bank Of America Corporation Robotic process automation simulation of environment access for application migration
US10802954B2 (en) * 2017-11-30 2020-10-13 Vmware, Inc. Automated-application-release-management subsystem that provides efficient code-change check-in
US10606687B2 (en) 2017-12-04 2020-03-31 Bank Of America Corporation Process automation action repository and assembler
US20190294531A1 (en) * 2018-03-26 2019-09-26 Ca, Inc. Automated software deployment and testing based on code modification and test failure correlation
US10657032B2 (en) * 2018-03-30 2020-05-19 Atlassian Pty Ltd Systems and methods for monitoring performance of applications
US20200174917A1 (en) * 2018-12-03 2020-06-04 Bank Of America Corporation Rapid Automation First-pass Testing Framework
US20200184272A1 (en) * 2018-12-07 2020-06-11 Astound Ai, Inc. Framework for building and sharing machine learning components
US11003571B2 (en) * 2019-04-05 2021-05-11 Oracle International Corporation Customizable enterprise automation test framework

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009020665A (ja) * 2007-07-11 2009-01-29 Canon Inc 情報処理装置、情報処理方法、記憶媒体、プログラム
JP2013218726A (ja) * 2007-09-11 2013-10-24 Ciambella Ltd ワークフロー生成、配置、及び/又は実行のためのシステム、方法、及びグラフィカルユーザインターフェイス
KR101335912B1 (ko) * 2012-12-05 2013-12-02 (주)아이지오 테스트 통합 관리 시스템 및 방법

Also Published As

Publication number Publication date
US20210326244A1 (en) 2021-10-21
US11789853B2 (en) 2023-10-17
US20210334193A1 (en) 2021-10-28
KR20210131216A (ko) 2021-11-02
KR102444475B1 (ko) 2022-09-16
WO2021216107A1 (en) 2021-10-28
WO2021216106A1 (en) 2021-10-28
KR20210131215A (ko) 2021-11-02

Similar Documents

Publication Publication Date Title
US11494291B2 (en) System and computer-implemented method for analyzing test automation workflow of robotic process automation (RPA)
KR102412237B1 (ko) 로봇 프로세스 자동화를 위한 테스트 자동화
US10963231B1 (en) Using artificial intelligence to select and chain models for robotic process automation
JP2022552465A (ja) ロボティック・プロセス・オートメーションのためのヒューマンインザループ・ロボット・トレーニング
US11494203B2 (en) Application integration for robotic process automation
US11748479B2 (en) Centralized platform for validation of machine learning models for robotic process automation before deployment
JP2022552468A (ja) ロボティック・プロセス・オートメーション及びワークフローのマイクロ最適化のためのプロセス進化
WO2021126753A1 (en) System and computer-implemented method for analyzing a robotic process automation (rpa) workflow
EP3910468A1 (en) Application integration for robotic process automation
US11593709B2 (en) Inserting and/or replacing machine learning models in a pipeline for robotic process automation workflows
US11544082B2 (en) Shared variable binding and parallel execution of a process and robot workflow activities for robotic process automation
EP3901865A1 (en) Test automation for robotic process automation
US11507059B1 (en) System and computer-implemented method for seamless consumption of automations
EP3901864A1 (en) Test automation for robotic process automation
US11797432B2 (en) Test automation for robotic process automation
US11650871B2 (en) System and computer-implemented method for verification of execution of an activity

Legal Events

Date Code Title Description
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant