Accenture의 Quality Engineering in the New(1)

Updated:

들어가기 전에..

Accenture 소개

Accenture는 경영 컨설팅 서비스를 제공하는 회사로 우리에게 잘 알려져 있습니다. 특히, IT 서비스 분야에 있어서도 강점을 보유하고 있는데, 글로벌 리서치 회사인 Everest Group에서 매년 선정하고 있는 “Top 20 IT Service Provider of the Year”에서 2017년부터 올해까지 4회 연속 1위를 차지하는 탁월한 성과를 보여주고 있습니다.

“Accenture takes No. 1 for fourth straight year; TCS, Cognizant, Wipro and Capgemini round out the Top 5 IT service providers based on broad-based capabilities and successful service strategies” - reports from industry analyst firm Everest Group.

ITS TOP 20 그림 1. 2020년 IT service Provider of the Year

Source: https://www.wipro.com/content/dam/nexus/en/analyst-speak/pdfs/wipro-recognized-as-the-it-service-provider-of-the-year-in-everest-group-peak-matrix-service-provider-of-the-year-2020.pdf

한편, Accenture는 Gartner의 2020 Magic Quadrant에서도 ‘Public Cloud Infra 전문역량 및 관리 서비스’ 부문의 Leaders 그룹으로 선정된 바 있습니다.

Gartner 그림2. Magic Quadrant for Public Cloud Infrastructure Professional and Managed Services

Source: https://www.gartner.com/doc/reprints?id=1-1YZHRXKA&ct=200507&st=sb

이와같이, IT 및 Digital Service 영역에서 높은 수준의 역량을 보유하고 있는 Accenture에서, 최근 2018년에는 “Quality Engineering in the New”라는 Accenture Testing Service의 새로운 비전을 발표하면서, Quality&Testing 영역의 성장 방향성을 한차례 공유한 바 있습니다.

“Every Business is a Digital Business(모든 회사는 디지털 회사이다)”라는 ‘Accenture Technology Vision’이 2014년 선포된 이후, 고객의 미래를 향한 Digital Transformation을 빠르게 리딩해 가고 있는 Accenture에서는, Qualtiy Engineering에 대해 어떻게 인식하고 있는지, 그리고 Testing - Agile - DevOps의 교차점에서 그 미래 방향성을 어떻게 가져가고 있는지 간략히 살펴 보도록 하겠습니다.

아래 기술된 내용은 Accenture에서 2018년 발간한 보고서인 “QUALITY ENGINEERING IN THE NEW - A vision and R&D update from Accenture Labs and Accenture Testing Services” 내용을 기반으로, Quality Engineering 관련 Global 기술 동향을 정리하였습니다. 필요한 부분만 요약정리 하였기 때문에, 전체 자료가 필요하신 경우 아래의 원문을 참고하시기 바랍니다.

Source: https://www.accenture.com/us-en/insights/technology/quality-engineering-new

Quality Engineering with Business Purpose

최근 몇년 동안, Application Testing에 대한 전통적인 접근 방식은 Digital Application의 확산 뿐만 아니라, DevOps 및 지능형자동화(Intelligent Automation)의 출현으로 큰 혼란에 빠져있는 것이 사실입니다. 납기 일정이 몇개월에서 몇주로, 그리고 요즘은 몇일까지도 줄어들고 있음에 따라, Testing은 S/W Development Lifecycle에서 Left와 Right 양쪽 모두로 이동되었습니다.

DevOps와 Agile은 개발과 Testing을 하나의 연속적인 Activity로 통합해왔습니다. Testing은 초기 Application 계획단계의 일부로서 선행되어 시작되고 있으며, 미지의 상태(on the unknown)에서 예측하고 수행하기 위한 지속적인 피드백 구조를 구축하는 Quality Engineering으로 진화해왔습니다.

그러나, 우리가 Testing에서 Quality Engineering으로 진화하는 그 규모를 현실적으로 이해하기 위해서는, 우선 Data가 S/W 개발 자체를 어떻게 변화시켜 왔는지 인식할 필요가 있습니다. 이것은 반복적인 개발 및 Testing 업무들을 수행하기 위해 Automation Use Case 및 AI Learning Data Sets에 Data를 공급하는 것 이상의 힘을 보여주고 있습니다.

대규모 사용자가 매일 생성하는 많은 양의 Data들은 Quality Engineer가 Risk를 예측하고, 기회들을 식별하고, Speed 및 Agility를 가속화하고, 기술부채(technical debt)를 최소화할 수 있도록 돕고 있습니다.

용어. 기술 부채(technical debt, design debt, code debt) 현 시점에서 더 오래 소요될 수 있는 더 나은 접근방식을 사용하는 대신 쉬운(제한된) 솔루션을 채택함으로써 발생되는 ‘추가적인 재작업의 비용’을 반영하는 소프트웨어 개발의 한 관점이다.

Source: Wikipedia

이 막대한 양의 Data가 유입되면서, Quality Engineer의 역할은 훨씬 더 흥미진진하면서도 복잡해졌습니다. 이러한 상황은 우리가 AI, Edge Computing, 완전한 자율성과 Failsafe Protection을 가진 M2M(machine-to-machine) Comunication을 요구하는 대규모 IoT End Datasets을 향해 이동함에 따라 더욱더 진화하게 될 것입니다.

Accenture는 Testing Innovation의 최전선에 있어 왔으며, 현재에도 고객들이 Quality Engineering의 세계로 확장되어 갈 수 있도록 리딩하고 있습니다. R&D그룹으로서 Accenture Labs은 Accenture Testing Service 조직과 함께 가능성을 재정의하고, 신규 컨셉을 성장시켜 Prototype을 만들고, 비즈니스 운영 방식의 개선을 위한 고유한 기술 Solution을 찾는데 있어 긴밀하게 협력하고 있습니다. 더불어, Accenture는 Quality Engineering Lifecycle에 걸쳐 250개 이상의 특허 및 출원중인 Application들을 보유하고 있습니다.

At the Forefront of Quality Engineering

지난 10년 동안 Application Testing이 겪어온 극심한 혼란의 시기를 통해, 개발 주기는 몇달에서 단 몇일로 단축되었고, DevOps와 Agile Approaches가 통합되었으며, ‘Shift Left’가 부각되면서 Testing이 착수단계부터 Application 계획안에 깊게 내장되었고, Quality Engineering을 근본적으로 변화시키는 일련의 새로운 움직임이 지금 시작되고 있습니다.

첫번째는 Quality의 변화입니다. 하늘을 찌를듯한 고객의 기대(Sky-high customer expectations)는 Application 개발에 있어 새로운 수준의 붕괴(disruption)을 요구합니다. 사실상, 우리는 우리가 QE에 대해 알고 있다고 생각하는 것의 대부분에 대해 잊어버릴 필요가 있습니다.

오늘날, 기능으로서의 Quality(Quality as a function)은 단순히 S/W가 작동하고 있음을 확인하는 것에만 한정되어 있지 않으며, Application이 ‘Always-on Digital Market’에서 높은 경쟁력을 갖추고 차별화된 사용자 경험을 제공하고 있다는 것을 함께 보증해 주는 것에 있습니다.

두번째는, Technology의 변화입니다. 새로운 기술들은 더 빠른 속도로 진화하고 있으며, Application의 복잡도는 기하급수적으로 가속화되고 있어서, 점점 더 이해하기 어려운 수준이 되어가고 있습니다. 확장성을 가진 Architecture 전반에 걸쳐 도입되고 있는 첨단 기술들은 그 기술 추상화 계층의 복잡도가 점점 더 증가하고 있기 때문에, 기능으로서의 Quality Engineering(QE as a function)가 적용되기 위해서는, 반드시 Apllication에 대한 지속적인 모니터링(Continuous Application Monotoring)이 보장되어야 합니다.

Blockchain Testing과 같은 새로운 기술 패러다임이 등장함에 따라,QE는 진화하는 Edge Computing, Industry X.O Technologies(AI와 결합된 지능형 자동화, IoT 및 digital technologies), machine-to-machine communication, 그리고 방대한 IoT 데이터셋과 같이 빈번하고 갑작스러운 핵심 기술변화에 적응하기 위한 민첩성(Agility)을 확보해야 합니다.

아래 그림은, QE Function이 직면한 다양한 비즈니스 및 기술적인 과제들을 나타내고 있습니다.

The callenge in QE today 그림 3. The challenges in QE today

전통적인 정적 스크립트 및 Tool 기반 접근방식은 현재의 새로운 multi-device, multi-platform, Scalable Application Engineering 환경에는 적합하지 않습니다. 대신, 기업들은 성능 이슈와 미래 혼란을 사전 예측하기 위한 Intelligent Technologies 및 (특히) Machine Learning의 사용을 극대화하고 있다는 것을 보장해야 합니다.

기업들은 self-managing, self-learning 및 self-adapting 가능한 Testing Function을 개발하기 위해, 지속적인 모니터링과 통합 관점의 사용 수준을 진화시켜야 합니다. 또한, 실시간 의사결정이 가능할 수 있도록, 예측 가능한 Dataset과 결합한 지속적인 성능테스트 시뮬레이션(Continuous Load Testing Simulations)을 사용해야 합니다.

오늘날 진행되고 있는 세번째 변화는 Talent의 변화입니다. Application 사용자는 더이상 옛날과 같이 순수한 사용자(the pure consumers of old)가 아닙니다. 그들은 복잡하고 끊임없이 변화하는 개발 프로세스에서, Machine Learning 및 Automation 기회를 강화할 수 있도록, 방대한 양의 데이터를 생산하는 공동 개발자 및 공동 혁신가가 되어 왔습니다. 또한, Edge Computing 및 IoT의 출현으로 더 방대한 Dataset이 출현하게 될 것이며, 완전한 자율성과 Failsafe Protection을 갖춘 M2M communication이 요구될 것입니다.

이것은 SDET(Software Development Engineer in Test)의 역할을 근본적으로 변화시키고 있습니다. 이들은, 개발 프로세스 내에서 고객들의 핵심적인 역할을 이해하고 있는 Cross Functional Expertise를 갖춘 테스트 설계 전문가로서 ‘Reskilling’됨으로써, 보다 밀접하게 비즈니스 목적에 부합할 수 있도록 진화해야 합니다.

이러한 Talent는 적은 비용으로는 확보되기 쉽지 않습니다. 일반적으로, 기업들은 Modern Application Development에 내재되어 있는 다양한 플랫폼, 디바이스, 기술, 데이터 및 고객을 커버할 수 있는 희소한 Cross-Domain Expertise를 확보하기 위해 Premium을 지불해야 합니다.

마지막 변화는 Organization 스스로의 변화입니다. SDET의 역할이 진화하고, QE가 돌이킬 수 없는 변화를 하는 것처럼 기업도 마찬가지 입니다. 조직은 명확한 비즈니스 목적을 위해 분산되어 있는, 국경없는 기업에 걸쳐있는 유동인력자원(mobile workforce)을 관리하기 위해, 새로운 수준의 Agility, flexibility 및 Responsiveness를 확보해야 합니다.

이러한 변화에 적응하려면, QE는 반드시 진화해야 합니다. 한마디로 정의하자면 다음과 같습니다. “It’s time to take QE into the New.”

Taking QE into the New

품질, 기술, 인력 및 조직의 변화에 기반한 Business Continuity 및 Business Value를 보장하기 위해, QE는 AI 주도의 자율적인 Framework를 통해 확장성, Real-time 및 Insight-driven Function을 갖춘 형태로 진화하게 될 것입니다. Data, Frameworks, Process, Technology 및 Organization의 5가지 차원에서, Testing은 전통적인 접근 방식에서 미래의 Application Engineering 세계에 적합한 새로운 아이디어 및 방법론으로 전환될 것입니다.

QE in the New 그림 4. QE in the New

FRAMEWORKS: Beyond DevOps

“the New”에서 QE는 DevOps 너머로 보여지는 ‘the Autonomous Frameworks’를 통해, 비즈니스 요구에 대해 현실적인 초점을 맞추는 것이 가능하도록 해줄 것입니다. 대부분의 기업들은 이미 ‘the agile DevOps frameworks’를 채택했으며, 그것은 Shift Left Testing, Specialized Automation Testing Tools 및 Testing을 초기에 그리고 자주 수행하기 위한 Continuous Integration을 사용하고 있습니다.

DevOps가 계속 발전함에 따라, 보안을 위한 Testing(DevSecOps)이 더 많은 Application Engineering 영역에 포함될 것입니다. 이것은 Application이 장애상태(Failure)로부터 돌아오는 것을 보장하기 위한 QE Function을 위해, 자동화 및 모니터링을 High Level 수준에서 제공할 것입니다. User Behavior 및 Business Value와 같이 측정에 대한 관심이 성장함에 따라, Frameworks는 다시 end-to-end business test cases(BizDevOps)와 관련된 AI기반 자동화로 진화하게 될것입니다.

궁극적으로, Application Developement Framework는 고도로 자율적이고, 장애지점(Failure Points)을 선제적으로 식별하며, 전체의 복잡한 Application 환경에 넓게 퍼지게 됨으로써, 개발자, 고객 및 사용자 모두 Applcation이 항상 실제 비즈니스 요구를 준수할 수 있도록 보장하기 위해 함께하는 구조를 가져오게 할 것입니다.

Rise of autonomous frameworks, beyond DevOps 그림 5. Rise of autonomous frameworks, beyond DevOps