Performance Testing 시장 동향 분석
Updated:
이번 글은 Gartner에서 발간한 보고서 “Market guide for Performance Testing” 내용을 기반으로, 성능테스트 관련 Global 기술 동향을 정리하였습니다. 필요한 부분만 요약정리 하였기 때문에, 전체 자료가 필요하신 경우 아래의 원문을 참고하시기 바랍니다.
Source: https://www.gartner.com/document/3133717
Key Findings
- 복잡한 IT 환경(Mobile, Digital Business Transformation 및 IoT 등)에 새로운 비즈니스 기능을 빠르게 제공하기 위한 방안으로, 성능테스트에 대한 중요성이 부각되고 있습니다.
- 비즈니스에 대한 Agility 요구를 지원하기 위해 Agile 및 MSA기반 성능 솔루션의 빠른 채택이 필요하며, 개발팀 및 전사 테스트 조직은 기존의 접근방식 및 자동화 도구의 변화를 통해, 시스템의 성능 품질을 보다 정확하고 광범위하게 파악할 수 있도록 변화해야 합니다.
- ‘High Performance End User Expreience’에 대한 시장의 기대치가 높아짐에 따라, 개발조직은 SW개발 Lifecycle 전반에 걸쳐 성능 테스트가 포함되도록 ‘Quality Focus’를 확장해야 합니다.
- 여전히 많은 개발 조직이 비즈니스 요구사항에 대한 이해뿐만 아니라, ‘Performance’ 및 ‘Scalability’를 어떻게 비기능 요구사항(NFR/ Non-Functional Requirements)으로 전환해야 하는지 어려움을 겪고 있습니다.
Market Definition
대부분의 IT그룹들은 성공적인 Digital Business Transformation 추진을 위해 필수적으로 요구되는, ‘High Performance End User Expreience’에 대한 시장의 needs를 따라잡기 어려운 상황에 처해 있습니다. 기존처럼 정상적으로 처리되는 기능만을 테스트하는 것으로는, 비즈니스에 실제적인 영향을 미치는 Quality Risk를 완화하기에 충분하지 않습니다. ‘응답성능’, ‘안정적인 처리성능’ 및 ‘서비스의 확장성’ 등과 같이 성능 관점의 Application 특성에 중점을 둔 추가적인 성능 테스트가 요구되고 있습니다. 이러한 시장의 needs를 충족시키는 자동화 도구들은 ‘Performance Testing Tool’로 분류될 수 있습니다.
성능 테스트 시장은 전체 소프트웨어 테스트 도구 시장의 일부 영역입니다. 온 프레미스 성능 테스트, 클라우드 성능 테스트, 웹 성능테스트 등을 포함한 여러 세그먼트로 구성되어 있습니다. 이 보고서는 Application 및 Application Architecture의 성능테스트 수행을 위한 자동화 도구에 중점을 두어 기술되고 있습니다.
성능 테스트의 주요 목적은 시스템(컴퓨터, 네트워크, 소프트웨어 프로그램 또는 디바이스 포함)이 다양한 작업 부하 상황에서도 적절한 응답성능과 안정적인 처리성능을 유지하는지 측정하고 의사결정하기 위한 것입니다. ‘Scalability’, ‘Reliability’, ‘Interoperability’ 및 ‘Resource usage’등과 같은 추가적인 품질특성에 대해서도 측정하고 검증하는 역할을 지원하기도 합니다.
진단 솔루션과 함께 성능테스트를 기반으로 구간별 병목 지점을 분석할 수 도 있습니다. 이것은 단위기능의 Transaction별로 심층적인 데이터를 수립하는 ‘Performance Profiling’과, 시스템 사용자가 상용환경에서 기대하는 성능 수준을 보증하기 위해, Transaction을 모니터링하고 분석기능을 제공하는 ‘APM(application performance monitoring)’과 관련이 있습니다.
Market Direction
가트너 보고서(“Market Share: All Software Markets, Worldwide, 2014”)에 따르면, 2014년 전체 소프트웨어 테스팅 도구 시장 규모는 15억 달러로 추정되었으며, 매년 약 5%수준으로 성장하는 것으로 분석되었습니다.
성능테스트 자동화도구가 처음 등장한 시기는 1990년대 중반입니다. 기존 기능 테스트 도구 위주의 시장에 성능 테스트 자동화도구 공급업체들이 새롭게 진입하면서 시장은 꾸준한 성장을 보였습니다. 이 시기는 최신 웹의 등장과 함께 사용자 규모가 빠르게 증가하면서 ‘엄격한 성능테스트의 필요성’이 처음으로 강조되던 시기이기도 합니다. 기존에는 시스템의 주 사용자가 내부에만 있었지만, 점차 웹환경 기반의 외부 고객대상 Application으로 전환되기 시작하면서, 성능저하 이슈는 더이상 ‘불편함’의 문제로만 그치지 않았으며 수익 손실의 주요 요인으로 지목되기 시작했습니다.
Mercury Interactive사의 ‘LoadRunner’ 또는 SEGUE사의 ‘Silk Performer’(현재 모두 Micro Focus사에서 인수)와 같은 초기 시장 참가자의 제품들이 가장 많이 채택되면서, 현재까지도 성능테스트 자동화도구 시장에서 높은 점유율을 보이고 있습니다. 최근 모바일 및 클라우드 기반 Application 개발 추세의 빠른 증가와 고성능 Application Architecture의 필요성이 높아지면서, 전반적으로 성능테스트 솔루션에 대한 수요는 더욱 더 높아지고 있습니다.
한편, 지난 5년동안 협업과 가시성을 강조하는 새로운 자동화 도구와 Practice들이 등장하면서 성능테스트 자동화도구 시장을 활성화시켰습니다. 새로운 Practice(ex. Agile, Lean, DevOps)가 널리 채택되면서, 기존의 자동화 도구도 함께 발전했습니다.(cf.Micro Focus사는 SaaS기반 성능 테스트 제품군에 AWS 및 Azure 클라우드 환경에서 즉시 사용가능한 LoadRunner Cloud 서비스를 추가하였음)
SaaS 모델은 대규모 부하 테스트에 적합하며, 클라우드 기반 성능테스트 자동화도구는 기존 온 프레미스 기반 성능테스트 도구(전용 인프라가 필요하고 설정은 복잡함)의 매력적인 대안이 되었습니다. 성능 테스트 시장에서 LoadRunner는 계속적으로 지배적인 역할을 해왔지만, SaaS 시장에 중점을 둔 최신 공급업체들이 등장하면서 다양한 솔루션의 선택이 가능하게 되었습니다.
가트너가 분석한 전체 성능테스트 시장 규모는 약 2015년 9월 기준 약 6억9천만달러 수준으로, 매년 9.6%의 성장률을 가지는 것으로 분석하고 있습니다.
Market Analysis
서비스 지향적인 Architecture로의 전환과 Agile기반 SW개발 프랙티스의 채택이 확대되면서, 기존의 테스트 관행을 탈피하여 개발 초기부터 자주 성능테스트를 수행해야할 필요성이 커지고 있습니다. 전체 Application의 성능은 많은 개별 구성요소들에 의해 결정됩니다. 성능테스트는 병목 현상을 식별하고 Application Architecture를 변경하여 성능을 개선함으로, 고객 만족도를 높이는데 직접적으로 기여할 수 있습니다.
성능테스트가 제공하는 명백한 이점에도 불구하고, 현실적으로는 투자를 감당할 수 있는 대규모 조직에서만 성능테스트 환경이 구축되고 있습니다. 성능테스트 전문가와 자동화도구에 대한 높은 비용부담으로 인해, 많은 소규모 조직에서 성능테스트 수행 없이 시스템을 Open하고 있으며, 그 결과 장애발생을 반복적으로 경험하고 있습니다.
한편, 성능테스트 체계를 구축하고 있는 조직이라도, 성능테스트 서비스 역량을 갖춘 업체를 통해 전문인력 및 성능테스트 인프라를 제공받음으로, 정작 성능담당자가 성능테스트 전문 지식과 수행역량을 확보하는데 있어서는 점점 고립되는 경우도 발생하고 있습니다.
그러나, Agile기반 개발 및 배포 체계가 빠르게 확산되면서 성능테스트는 더 이상 기존과 같이 고립된 활동으로 남아있을 수 없게 되었습니다. 다른 유형의 테스트(ex. 단위 테스트 및 기능 테스트)와 마찬가지로 성능테스트 또한 전체 개발 프로세스에서 필수적인 부분이 되고 있습니다.
특히, SaaS기반 클라우드 성능테스트 서비스(ex. AWS 및 Azure의 전세계 클라우드 인프라를 활용하여, 버튼 클릭 한번으로 전세계 어디서나 대규모 부하발생을 수행할 수 있음)는 시장을 활성화하고 기존 및 신규 자동화도구 서비스 업체에게 추가적인 기회를 제공하고 있습니다. SaaS는 전체 인프라 비용을 줄이는데 큰 영향을 미치며, PPU(Pay-Per-Use) 모델과 포괄적인 가격 책정을 통해 더 많은 유연성을 제공하고 있습니다. 표준모델은 여전히 동시 가상사용자 수를 기반으로 하며, 일부 공급업체는 별도의 가격이 책정된 특정 프로토콜 지원과 같은 추가 옵션을 제공하고 있습니다.
성능 테스트 도구를 사용하면 부하 발생을 통해 Application을 쉽게 중단시킬 수 있고 병목 현상 자체를 강조할 수 는 있지만, 문제의 근본원인을 찾기는 쉽지 않습니다. 이를 위해 성능테스트 자동화도구 업체들은 진단 기능 및 Drill-Down 기능을 제공하는 APM 자동화도구와 연동하여 Root Cause Analysis가 가능하도록 기능을 추가 제공하고 있습니다.
Market Recommendations
성능 테스트는 단순히 자동화 도구를 수행하는 것만이 전부가 아닙니다. 개발팀과 QA팀이 Architecture 기술뿐 아니라 (시나리오를 모델화하기 위한) 비즈니스 Use Case에 대한 이해를 바탕으로 수행하는 종합적인 관점의 성능 테스트 활동을 포함합니다.
한편, APM기반 성능 모니터링은 상용 시스템 및 사용자 경험을 분석하는데 도움을 주는 중요한 요소입니다. 이를 통해 부하 테스트 시나리오와 전체적인 성능 엔지니어링 파라미터를 조정할 수 있습니다.
이 두가지 자동화도구는 DevOps Tool Chain의 일부로 구성되어, 중요한 성능지표에 대해 지속적인 정보를 제공할 수 있습니다. SW개발 Lifecycle 전반에 걸친 측정지표 기반 성능테스트 체계를 구축함으로, 성능 문제를 최소화하고 해결방안을 찾는데 성공적인 기여를 할 수 있습니다.
조직 내에 성능 테스트 도구 및 APM 도구를 선택하기 위해서는 프로세스, 자동화도구 요구사항, 장점, 비용, 전문지식 및 교육을 고려한 장기적인 자동화도구 적용전략을 수립해야 합니다. 잠재적인 이점을 평가하기 위해서는 PoC(Proof of Concept)을 고려할 수 있습니다.
이러한 성능 기술과 자동화도구의 채택은 여러 조직들이 사용을 공유할 수 있는 환경이 제공될 때 가장 효과적이고 성공적인 결과를 가져올 수 있습니다.
모바일 환경의 확대, Digital Business 및 IoT의 지속적인 출현으로 성능테스트 솔루션의 적용의 확대는 앞으로도 계속될 것으로 예상됩니다. 특히, 모바일 기반 트래픽이 지속적으로 증가함에 따라, 앞으로의 성능테스트 자동화도구 영역은 모바일 생태계에 대한 지원이 지속적으로 강화 될 필요가 있습니다.