로봇 프로세스 자동화(RPA) vs 테스트 자동화(Test Automation)


 "The application of technology that enables computer software to partially or fully automate human activities which are manual, repetitive and rule-based"
출처:Mayer Brown(2016)

"컴퓨터 소프트웨어가 수동, 반복 및 규칙 기반의 인간 활동을 부분적으로 또는 완전히 자동화 할 수있게 해주는 기술의 응용분야" 정도가  적당할 듯 하다.

오래전부터 IT 분야에서는 사람을 대신해서 Operation 해 주는 소프트웨어를 꿈꿔 왔다. 대표적인 분야가 기능 테스트 자동화 분야이다. 특히 Regression 테스트는 반복이고 지루한 일이며 비용대비 효과 측면에서 계륵과 같은 존재이다. 이에 이의 극복을 위해 테스트를 자동화 하기 위한 많은 솔루션 들이 제시되어 왔다.  예를 들어HPE Unified Functional Testing (UFT)Compuware Test Partner 등 이 있다. 



<HP UFT 12.0 Start Page>

테스트 자동화는 QA 분야의 영원한 화두이다. QA 입장에서 테스트는 검증을 위한 확실한 방법이다. 하지만 인력에 의존하는 테스트는 필요한 횟수, 정도, 시점에 무한히 할 수 없는 것이 현실이고 이를 극복하기에 테스트 자동화는 매력적인 키워드 이다. 하지만 Client의 개발 환경이 다양하고  Test case가 너무 다양할 경우 자동화를 위한 스크립트의 양이 개발 분량에 육박하게 되는 주객이 전도되는 문제로 완전한 자동화가 현실적으로 불가능에 가깝다는 문제가 있다.


<VBScript code in Expert View of HP UFT>

기본적으로 RPA 솔루션의 실행 부분은 Test Automation 솔루션과 유사하다. Application 사용자의 행위를 기록(Record)하고 기록에 기반한 스크립트가 자동 생성된다. 이후 스크립트를 수작업으로 일정 부분 수정하고, 테스트 데이터를 연력한 후 실행하고 실행 결과를 기록하도록 한다. 이후 실행 기록을 분석하여 원하는 결과를 도출한다. 

실행 관점에서 기존 Test 자동화 솔루션과 RPA의 가장 큰 차이점은 "추상화"의 정도라 생각한다. Test 자동화 솔루션의 유저는 IT 전문가 이다. 즉 자동 생성된 스크립트를 보고 해석하고 수정할 수 있는 능력이 있는 사람을 대상으로 한다. 이에 반해 RPA 솔루션은 PC를 가지고 Business 관련 Operation을 하는 보통의 사람을 유저로 하고 있다. 따라서 Workflow 등 보통의 사람이 쉽게 이해 할 수 있는 Graphical 인터페이스가 스크립트를 대신한다. 



<Workflow Designer of Automation Anywhere>

필자는 현재 상용으로 판매되고 있는 테스트 자동화 솔루션을 개발한 경험을 가지고 있다. 사용자의 이벤트를 레코딩(Recording)하여 C#기반의 스크립트를 자동으로 생성하고 실행 파일로 빌드한 후 실행(Generating)하는 형태이다.

<Test 자동화 솔루션 시스템 구성>

이러한 솔루션의 키포인트는 쉬운 이벤트 레코딩이다. 사용자의 모든 이벤트의 Recording을 위해서는 Windows에서 실행되는 모든 Application내의 Object를 식벽할 수 있어야 하고 모든 Event를 hooking 가능해야 완벽한 스크립트 생성이 가능하지만 이는 사실상 불가능 하다. 그래서 스크립팅이 가능한 스크립터의 수정과 추가가 필수 적이다. HPE 등의 솔루션 또한 한계를 가지고 있다.


그럼 RPA 솔루션 들은 과연 가능할 것인가? 심지어 스크립팅이 아니라 workflow내의 조건 등의 설정만으로 말이다. (물론 고급 기능으로 스크립트를 제공할 것으로 추측한다.)

각 솔루션을 좀더 연구해 보아야 확실히 알수 있겠지만 결국 스크립트에 의존하여 "실행" 영역을 구현하여야 할 것으로 생각된다. 아직은 "실행" 단계에서의 차이점은 잘 모르겠다. (각 솔루션에 대해 리뷰를 진행한 후에 다시 생각해보자.)

"실행" 관점에서 라고 말하는 이유는 RPA가 단순히 레코딩된 내용을 기반으로 반복 실행해 주는 것과는 다르다고 생각하기 때문이다. "실행" 하기 이전에 "인지"하고 "판단"하는 단계가 있는 것과 "실행" 이후에 컴플라이언스 관점의 행위를 모두 포함하기 때문에 구분해야 한다고 생각한다.






댓글

이 블로그의 인기 게시물

Free RPA - Workfusion RPA Express

RPA 솔루션