심각한 장애가 발생하곤 한다는 점이다. IT 시스템을 성공적으로 개통하기 위한 가장 확실한 방법은 사전에 실제 상황과 동일한 조건으로 해당 시스템이나 서비스를 일정 기간 반복적으로 테스트하여 식별된 결함들을 사 전에 모두 제거한 후 개통하는 것이다. 그러나, 모든 IT 프로젝트는 시간과 비용의 제약이 있는 만큼, 실제 상황에서 발생 가능한 모든 시나리오와 케이스를 누락 없이 정의하거나 설계 또는 코드가 변경될 때마다 전체 테스트 케이스를 반복하여 테스트하는 것은 현실적으 로 불가능했다. 따라서, 시스템 개통 전 모든 잠재 결함들을 제거하는 데 한계가 있을 수밖에 없고, 개통 직전 “○○○시스템이 개통하면 장애 없이 안정적으로 운영될 수 있는가?”라는 근본적인 질문에 누구도 “그렇다”라고 확신하지 못하는 상황이 되는 것이다. * 본 내용은 김용식 전문위원(☎ 02-2099-0683, yongsikkim@lgcns.com)에게 문의하시기 바랍니다. ** 본 내용은 필자의 주관적인 의견이며 IITP의 공식적인 입장이 아님을 밝힙니다. 실거래 테스트 자동화를 통한 SW 품질 확보 방안 Chapter 02 주간기술동향 2021. 9. 8. 18 www.iitp.kr 그렇다면 이런 문제점을 해결할 방법은 없을까? 수작업 테스트를 자동화하는 기술 자체는 오래전에 등장하여 성능 테스트를 중심으로 널리 활용되어 왔다. 그러나, 기능 테스트의 경 우, 테스트를 자동화하기까지 장시간이 소요되는 데다 설계나 코드의 변경사항을 추적하여 생성된 테스트 케이스에 반영해야 하는 어려움으로 인해, 기간이 한정된 시스템 개발 프로젝 트보다는 운영 또는 유지보수 프로젝트에 적용되는 경우가 많았다. 그러나, 최근의 테스트 자동화 도구는 스크립트가 아닌 모델을 기반으로 하거나, AI(ML) 기술을 활용한 자동화된 테스트 케이스 생성을 지원하거나, 기능 테스트와 성능 테스트를 단일 사용자 환경에서 모두 지원하는 등의 발전을 지속해 나가고 있다[2]. 하지만, 어떤 비즈 니스(업무) 시나리오와 케이스를 테스트할 것인지는 여전히 업무전문가, 설계자 또는 테스터 의 판단에 달려있다. 본 고에서는 ‘PerfecTwin’이라는 실제 트랜잭션(거래) 기반으로 대규모 테스트를 자동화 하는 새로운 접근 방식을 소개하고자 한다. PerfecTwin은 신규 개발(구축) 시스템과 현재 운영 중인 시스템을 병행하여 검증하는 것으로, 현행 시스템에서 처리되는 실제 거래를 신규 시스템에서 자동으로 재현하고 그 결과를 실시간 비교, 판정함으로써 기존 테스트 방식의 한계를 극복하고, 신규 시스템 개통 전 실제 개통한 것처럼 테스트해봄으로써 개통 후에 발생할 수 있는 잠재 결함들을 사전에 제거할 수 있도록 도와준다. II. 새로운 테스트 접근방법 대다수의 IT 프로젝트는 SI(시스템 통합), SM(시스템 유지보수), 클라우드 마이그레이션, 인프라 고도화의 4가지 유형으로 분류할 수 있다. [그림 1]은 각 IT 프로젝트 유형별로 기존 시스템의 업무 또는 서비스가 신규 시스템에서 그대로 유지되거나 일부 변경되는 비율을 보여준다. 일반적으로 신규 시스템은 기능 측면에서 기존 서비스를 유지하거나 부분적으로 개선하는 경우가 대부분이다. 차세대시스템 개발의 경우에도 신규로 개발되는(이전에는 수 작업으로 처리했던) 서비스의 비중은 최대 30%를 넘지 않는다. 따라서, 신규 시스템을 테스 트하는 데 있어 기존 시스템에서 제공하던 핵심 서비스들이 기능과 성능 측면에서 올바르게 수행되는지 검증하는 것이 가장 중요하다. 이러한 측면에서 PerfectTwin은 현행 시스템의 실제 사용자, 장치(단말기) 또는 외부 시