2021-11-02
org.kosen.entty.User@2e8c4d7
코센2021(kosen2021)
분야
기계,정보/통신
발행기관
정보통신기획평가원
발행일
2021.09.08
URL
서론
대다수의 IT 시스템 개발 프로젝트는 업무전문가, 설계자 또는 테스터를 중심으로 충분하 다고 판단하는 수준에서 테스트 시나리오와 케이스를 정의하고 이를 기반으로 수작업 테스 트를 최대한 반복하는 방식으로 개발 품질을 확보한 후 시스템을 개통해왔다. 보통은 단위 테스트, 통합 테스트, 시스템 테스트, 사용자 테스트와 같이 테스트 대상과 범위를 확대하는 방식으로 단계별로 반복적으로 수행하는데, 프로젝트의 규모에 따라 차이는 있지만, 100억 원 이상의 중대형 IT 프로젝트의 경우, 테스트 단계부터 안정화 단계까지 투입되는 비용이 평균적으로 전체 비용의 약 45%를 차지한다[1]. 이러한 기존의 테스트 방식은 비용도 문제 지만, 더 큰 문제는 테스트와 결함 조치를 완료한 후에도, 사전에 식별하지 못했거나 반복적 으로 확인하지 못한 결함들로 인해 개통 직후 심각한 장애가 발생하곤 한다는 점이다.
IT 시스템을 성공적으로 개통하기 위한 가장 확실한 방법은 사전에 실제 상황과 동일한 조건으로 해당 시스템이나 서비스를 일정 기간 반복적으로 테스트하여 식별된 결함들을 사 전에 모두 제거한 후 개통하는 것이다. 그러나, 모든 IT 프로젝트는 시간과 비용의 제약이 있는 만큼, 실제 상황에서 발생 가능한 모든 시나리오와 케이스를 누락 없이 정의하거나 설계 또는 코드가 변경될 때마다 전체 테스트 케이스를 반복하여 테스트하는 것은 현실적으 로 불가능했다. 따라서, 시스템 개통 전 모든 잠재 결함들을 제거하는 데 한계가 있을 수밖에 없고, 개통 직전 “○○○시스템이 개통하면 장애 없이 안정적으로 운영될 수 있는가?”라는 근본적인 질문에 누구도 “그렇다”라고 확신하지 못하는 상황이 되는 것이다.
그렇다면 이런 문제점을 해결할 방법은 없을까? 수작업 테스트를 자동화하는 기술 자체는 오래전에 등장하여 성능 테스트를 중심으로 널리 활용되어 왔다. 그러나, 기능 테스트의 경 우, 테스트를 자동화하기까지 장시간이 소요되는 데다 설계나 코드의 변경사항을 추적하여 생성된 테스트 케이스에 반영해야 하는 어려움으로 인해, 기간이 한정된 시스템 개발 프로젝 트보다는 운영 또는 유지보수 프로젝트에 적용되는 경우가 많았다.
그러나, 최근의 테스트 자동화 도구는 스크립트가 아닌 모델을 기반으로 하거나, AI(ML) 기술을 활용한 자동화된 테스트 케이스 생성을 지원하거나, 기능 테스트와 성능 테스트를 단일 사용자 환경에서 모두 지원하는 등의 발전을 지속해 나가고 있다[2]. 하지만, 어떤 비즈 니스(업무) 시나리오와 케이스를 테스트할 것인지는 여전히 업무전문가, 설계자 또는 테스터 의 판단에 달려있다.
본 고에서는 ‘PerfecTwin’이라는 실제 트랜잭션(거래) 기반으로 대규모 테스트를 자동화 하는 새로운 접근 방식을 소개하고자 한다. PerfecTwin은 신규 개발(구축) 시스템과 현재 운영 중인 시스템을 병행하여 검증하는 것으로, 현행 시스템에서 처리되는 실제 거래를 신규 시스템에서 자동으로 재현하고 그 결과를 실시간 비교, 판정함으로써 기존 테스트 방식의 한계를 극복하고, 신규 시스템 개통 전 실제 개통한 것처럼 테스트해봄으로써 개통 후에 발생할 수 있는 잠재 결함들을 사전에 제거할 수 있도록 도와준다.
대다수의 IT 시스템 개발 프로젝트는 업무전문가, 설계자 또는 테스터를 중심으로 충분하 다고 판단하는 수준에서 테스트 시나리오와 케이스를 정의하고 이를 기반으로 수작업 테스 트를 최대한 반복하는 방식으로 개발 품질을 확보한 후 시스템을 개통해왔다. 보통은 단위 테스트, 통합 테스트, 시스템 테스트, 사용자 테스트와 같이 테스트 대상과 범위를 확대하는 방식으로 단계별로 반복적으로 수행하는데, 프로젝트의 규모에 따라 차이는 있지만, 100억 원 이상의 중대형 IT 프로젝트의 경우, 테스트 단계부터 안정화 단계까지 투입되는 비용이 평균적으로 전체 비용의 약 45%를 차지한다[1]. 이러한 기존의 테스트 방식은 비용도 문제 지만, 더 큰 문제는 테스트와 결함 조치를 완료한 후에도, 사전에 식별하지 못했거나 반복적 으로 확인하지 못한 결함들로 인해 개통 직후 심각한 장애가 발생하곤 한다는 점이다.
IT 시스템을 성공적으로 개통하기 위한 가장 확실한 방법은 사전에 실제 상황과 동일한 조건으로 해당 시스템이나 서비스를 일정 기간 반복적으로 테스트하여 식별된 결함들을 사 전에 모두 제거한 후 개통하는 것이다. 그러나, 모든 IT 프로젝트는 시간과 비용의 제약이 있는 만큼, 실제 상황에서 발생 가능한 모든 시나리오와 케이스를 누락 없이 정의하거나 설계 또는 코드가 변경될 때마다 전체 테스트 케이스를 반복하여 테스트하는 것은 현실적으 로 불가능했다. 따라서, 시스템 개통 전 모든 잠재 결함들을 제거하는 데 한계가 있을 수밖에 없고, 개통 직전 “○○○시스템이 개통하면 장애 없이 안정적으로 운영될 수 있는가?”라는 근본적인 질문에 누구도 “그렇다”라고 확신하지 못하는 상황이 되는 것이다.
그렇다면 이런 문제점을 해결할 방법은 없을까? 수작업 테스트를 자동화하는 기술 자체는 오래전에 등장하여 성능 테스트를 중심으로 널리 활용되어 왔다. 그러나, 기능 테스트의 경 우, 테스트를 자동화하기까지 장시간이 소요되는 데다 설계나 코드의 변경사항을 추적하여 생성된 테스트 케이스에 반영해야 하는 어려움으로 인해, 기간이 한정된 시스템 개발 프로젝 트보다는 운영 또는 유지보수 프로젝트에 적용되는 경우가 많았다.
그러나, 최근의 테스트 자동화 도구는 스크립트가 아닌 모델을 기반으로 하거나, AI(ML) 기술을 활용한 자동화된 테스트 케이스 생성을 지원하거나, 기능 테스트와 성능 테스트를 단일 사용자 환경에서 모두 지원하는 등의 발전을 지속해 나가고 있다[2]. 하지만, 어떤 비즈 니스(업무) 시나리오와 케이스를 테스트할 것인지는 여전히 업무전문가, 설계자 또는 테스터 의 판단에 달려있다.
본 고에서는 ‘PerfecTwin’이라는 실제 트랜잭션(거래) 기반으로 대규모 테스트를 자동화 하는 새로운 접근 방식을 소개하고자 한다. PerfecTwin은 신규 개발(구축) 시스템과 현재 운영 중인 시스템을 병행하여 검증하는 것으로, 현행 시스템에서 처리되는 실제 거래를 신규 시스템에서 자동으로 재현하고 그 결과를 실시간 비교, 판정함으로써 기존 테스트 방식의 한계를 극복하고, 신규 시스템 개통 전 실제 개통한 것처럼 테스트해봄으로써 개통 후에 발생할 수 있는 잠재 결함들을 사전에 제거할 수 있도록 도와준다.
추천 리포트
-
[동향보고서] [중국23-02호] 2023년 중국 콘텐츠산업 7대 키워드
-
[동향보고서] 중국 제조업 고도화로 성장세를 회복하는 공업용 로봇 시장
-
리포트 평점
해당 콘텐츠에 대한 회원님의 소중한 평가를 부탁드립니다. -
0.0 (0개의 평가)