“소프트웨어 중심 시대, 품질 강화는 필수” (1)
상태바
“소프트웨어 중심 시대, 품질 강화는 필수” (1)
  • 윤현기 기자
  • 승인 2018.09.05 23:21
  • 댓글 0
이 기사를 공유합니다

결함 확인 위한 소프트웨어 테스팅 중요성 대두…개발 패러다임도 변화

4차 산업혁명으로 대변되는 지능정보사회가 도래하면서 소프트웨어의 중요성이 점차 높아지고 있다. 전 세계 많은 기업들이 소프트웨어기업을 자처하며 소프트웨어 역량을 키워나가고 있지만, 아직까지 국내는 이렇다 할 변화가 없는 것이 사실이다. 여전히 국내 소프트웨어 기업들은 열악한 개발 환경에 놓여있으며, 소프트웨어 품질에 대한 인식 역시 저조한 편이다. 그러나 품질이 보증되지 않는 소프트웨어로 인해 발생할 수 있는 위험성은 매우 치명적이기에 소프트웨어 품질 향상을 위한 노력은 반드시 병행돼야 한다. <편집자>

“소프트웨어가 세상을 집어삼키고 있다.”

이는 현재 기업들의 상황을 정확히 묘사하고 있다. 4차 산업혁명으로 대변되는 지능정보사회로 접어들면서 소프트웨어가 디지털 변혁을 위한 핵심 동인으로 떠올랐으며, 기업들은 소프트웨어를 활용해 이전에는 없던 새로운 비즈니스 모델을 만들며 업계를 긴장시키고 있다. 우버, 에어비앤비 등이 차량이나 호텔 하나 보유하고 있지 않으면서도 세계 최대의 운송 서비스 업체와 숙박 서비스 업체로 등극한 것이 이를 방증한다.

이에 전 세계 많은 기업들이 디지털 비즈니스를 위한 소프트웨어 역량 강화에 나서고 있다. 그 여파가 어느 정도냐 하면 제조기업인 GE와 금융기업인 골드만삭스 등도 스스로를 소프트웨어기업이라 칭할 정도다.

이처럼 높아진 소프트웨어의 위상은 우리 주변에서도 쉽게 찾아볼 수 있다. 가장 대표적인 사례가 인공지능(AI)이다. 3년 전 구글 딥마인드가 세상에 선보인 ‘알파고’는 소프트웨어의 힘이 어디까지 발전할 수 있을지를 가늠해볼 수 있는 중요한 척도가 됐다. 이제 AI는 우리 생활에서 커뮤니케이션, 교육, 쇼핑, 엔터테인먼트, 차량관리 등 다양한 분야에 활용되면서 사람의 삶을 윤택하게 만들어주고 있다.

최근 전 세계적으로 연구개발이 활발히 진행되고 있는 자율주행도 소프트웨어 영역이다. 그동안 자동차·전장 산업은 제조업의 꽃이라 불릴 정도로 기계공학적인 요소가 강했지만, 이제는 절반 이상이 소프트웨어 코드로 구성될 정도다. 특히 자율주행 기술이 가미되면서 소프트웨어화가 더욱 가속되고 있다.

없다시피 한 국내 소프트웨어 품질 활동

문제는 이처럼 중요한 소프트웨어의 쓰임새가 늘어나는데, 그에 따른 소프트웨어 품질이 제대로 보증되고 있는지에 대한 여부다. 심지어 자율주행과 같이 사람의 생명이나 재산에 직결되는 부분에서도 소프트웨어 사용이 늘어나고 있는 만큼 그 기능이 올바르게 동작하도록 확인하는 것은 반드시 필요하다. 그러나 소프트웨어 품질까지 고려하지 못하고 있는 것이 국내 소프트웨어 업계의 현실이다.

공장에서 생산하는 제품은 결함이 있는지 아닌지를 쉽게 확인 가능하다. 1차적으로 제품 외형에서 확인 가능하며, 실제 제작 의도대로 제품이 생산됐는지를 쉽게 테스트 해볼 수도 있다. 만약 결함이 발견됐을 경우 폐기하거나 수리 과정을 거쳐 정상적인 제품으로 재탄생시키는 것이 가능하다.

그러나 소프트웨어는 눈에 보이지 않기 때문에 최종 버전이 출시돼 실행해보기 전까지 불량 여부 확인이 어렵다. 설령 특정 환경에서 기능이 제대로 동작하지 않는 문제가 있다 하더라도 증상이 나타나지 않으면 결함이 있을 것이라고 생각하지 못한다. 평소 이상이 없었기 때문에 정말 긴박하고 중요한 순간에 문제가 발생하리라 예상하는 것은 불가능에 가깝다.

초기 컴퓨터는 계산기 역할만을 수행했기에 소프트웨어 구조가 단순했다. 그러나 현재 사용되는 소프트웨어들은 단순히 연산만을 위한 것이 아니라 이벤트 발생에 따라 프로세스를 처리하고, 데이터를 뽑아 결과를 제시하는 복잡한 과정을 거치고 있다. 소프트웨어를 구성하는 코드 역시 엄청나게 늘어났기에 제대로 관리하지 않으면 개발자 스스로도 혼란에 빠질 지경이다.

스마트폰의 보급에 힘입어 사용이 늘어나고 있는 모바일 앱은 한 사람만 쓰는 것이 아니라 동시다발적으로 여러 명이 앱의 기능을 호출하는 구조이기에 서비스 효율을 높이기 위한 방안을 강구하면서 의도치 않은 결함을 만들어 내기도 한다.

이처럼 소프트웨어는 필연적으로 결함을 가질 수밖에 없는 구조임에도 불구하고 국내 소프트웨어 업계에서는 예산 및 인력 부족을 이유로 이를 간과하는 경향이 크다. 그럴 수밖에 없는 업계 입장도 이해는 간다. 품질에 신경을 쓰게 되면 소프트웨어 개발 기간과 비용이 늘어나는 것은 당연하기 때문이다. 소프트웨어 제값받기의 어려움, 개발자 부족, SI 프로젝트성 개발 문화 등 오랫동안 지적돼 온 고질적인 병폐가 해소되지 못하고 있는 것도 이 같은 현상을 더욱 심화시키고 있다.

점차 확대되는 테스팅 중요성 인식

좋은 소프트웨어 혹은 잘 만든 소프트웨어는 무엇일까? 견해에 따라 다양한 대답이 나올 수 있지만 가장 대중적으로 수용될 수 있는 답변은 ‘설계된 기능이 정확히 동작하는 소프트웨어’라 할 수 있겠다. 물론 소프트웨어의 사용성 등도 중요하지만, 필요로 하는 기능이 제대로 동작하지 않아서야 좋은 소프트웨어라고 부를 수는 없는 노릇이다.

미국이나 유럽 등 IT 강국들은 소프트웨어 개발비의 약 25%를, 이웃나라인 일본은 33%가량을 소프트웨어 품질 강화를 위하 사용하고 있는 것으로 알려져 있다. 이에 비해 국내에서는 소프트웨어 개발비에 품질 강화 활동이 포함돼 있지 않다. 설령 있다 하더라도 1% 내외에 불과한 수준이다.

소프트웨어 품질을 향상시킬 수 있는 가장 기초적인 방법으로는 소프트웨어 테스팅이 있다. 말 그대로 개발된 소프트웨어의 기능이 정상적으로 동작하는지를 확인하는 과정이다. 해외에서는 소프트웨어 테스팅 시장이 큰 규모로 형성돼 성장하고 있지만, 국내에서는 아직까지 미미한 수준에 불과하다. 해외에 제품을 수출하는 대기업들이나 결제·주문 등의 기능이 중요한 전자상거래 업체들이 국내 소프트웨어 테스팅 시장을 작게나마 형성해 이끌어가고 있다.

하지만 클라우드, 사물인터넷(IoT)와 같은 새로운 IT 환경이 등장하면서 소프트웨어 테스팅에 대한 업계 인식도 달라지고 있다. 소프트웨어에 사용되는 코드가 다양하고 복잡해지면서 관리의 어려움이 증가했으며, 이렇게 관리되지 못한 코드로 인해 사람의 안전이나 재산상에 영향이 미칠 수도 있음을 깨달았기 때문이다. 이제 기업과 개발자들은 소프트웨어 품질 향상을 위한 방안으로 소프트웨어 테스팅으로 점차 눈을 돌리고 있다.

공신력 확보 통한 테스트 역량 강화

소프트웨어 테스팅의 중요성을 알고 실제로 전문 업체를 통해 테스팅을 진행하려 해도 반드시 제기되는 질문이 있다. 바로 테스트 결과의 공신력이다. 실제로 소프트웨어 테스팅은 정교한 예측 모델과 테스팅 모델을 제작해 시뮬레이션 해봄으로써 완성도를 검증하는 고도의 전문성이 요구되는 분야인 만큼 공신력을 반드시 필요로 한다.

그동안 상용 소프트웨어에 대해서는 정부가 주도하는 ‘굿소프트웨어(GS) 인증’ 등을 통해 품질 완성도를 증명해왔지만, IT서비스 프로젝트, 국가 R&D과제 결과물, 세이프티 크리티컬(Safety-Critical) 시스템 등 사실상 인증서를 요구할 수 없는 분야에 대해서는 달리 품질 완성도를 검증할 수 있는 도구가 없었으며, 적극적으로 다뤄지지도 않았던 것도 사실이다.

▲ 와이즈스톤 ICT시험인증연구소

이에 소프트웨어 테스팅 전문기업 와이즈스톤은 지난해 ICT시험인증연구소를 설립하고, 상용 소프트웨어, 임베디드 소프트웨어, IT서비스 프로젝트, 세이프티 크리티컬 시스템 등을 대상으로 한 시험 및 시험성적서 발행 서비스를 시작했다.

와이즈스톤은 10년 이상의 소프트웨어 및 ICT 제품 테스트 경험과 400여명의 전문 테스트 엔지니어, 그리고 수많은 테스팅 및 컨설팅 경험과 노하우를 바탕으로 공정하고 객관적인 시험을 통해 공신력 있는 시험성적서 발행 서비스에 나선다는 방침이다.

올해 초 와이즈스톤은 국가기술표준원 한국인정기구(KOLAS)로부터 KOLAS 국제공인시험기관으로 인정받는데도 성공했다. KOLAS는 국가표준제도 확립, 국내외 시험기관 자격 인정 업무를 수행하기 위해 설립된 정부기구로 시험능력 및 환경을 평가하여 국제공인시험기관으로 인정하는 제도다.

와이즈스톤은 KOLAS로부터 소프트웨어 분야 ISO/IEC 9126 항목에 대한 국제공인시험기관으로 인정을 받음으로써 와이즈스톤이 발행하는 시험성적서는 KOLAS 국제공인시험성적서로 공신력이 한층 높아지게 됐다.

와이즈스톤이 발행하는 공인시험성적서는 미국·일본·중국·유럽 등 국제시험기관 인정협력체 상호인정협정(ILAC-MRA)에 가입한 72개국 86개 시험기관과 아시아태평양 시험기관 인정협력체 상호인정협정(APLAS-MRA)에 가입한 23개국 37개 시험기관에서 발행한 시험성적서와 상호인정이 되며 동일한 효력을 갖는다. 이는 해외로 제품을 수출할 때 별도의 시험이나 제품인증을 다시 받지 않아도 된다는 것을 의미한다.

소프트웨어 개발 패러다임 변화 … 테스팅 트렌드 바꿔

소프트웨어의 빠른 개발과 배포가 중요해지면서 소프트웨어 개발 방법론도 점차 변화를 거듭하고 있다. 여러 기능이 하나로 통합된 일체형(Monolithic) 구조로 소프트웨어를 개발하는 것보다 이제는 각 소프트웨어의 기능을 모듈화시켜 개발하는 클라우드 네이티브 개발 방식이 선호되고 있다. 이는 소프트웨어를 좀 더 빠르게 개발하고 배포할 수 있다는 장점 외에도 소프트웨어 품질을 향상시키는데도 이점을 제공한다.

일체형 구조로 개발된 소프트웨어는 각 기능들이 유기적으로 연결돼 있어 어떤 하나의 기능만을 별도로 떼어내거나 수정하는 것이 어렵다. 설령 수정한다 하더라도 그와 연계된 구조를 정확히 알고 있지 않은 이상 수정에 따른 예기치 못한 변화가 일어날 가능성도 농후하다.

그러나 각 기능들이 모듈로 분리돼 있으면 다른 기능들을 생각할 필요 없이 문제가 발생한 기능만 삭제하거나 수정하는 방법으로 손쉽게 해결 가능하다. 문제의 원인을 찾아내는 것도 용이하기 때문에 소프트웨어 품질 활동에 있어서도 부담감이 줄어든다.

소프트웨어 테스팅 트렌드도 점차 변해가고 있다. 과거에는 개발된 소프트웨어 테스트를 전문 팀이 담당했지만, 이제는 그런 환경을 구축하는 것도 쉬운 일이 아니다. 테스트를 위한 시스템 인프라를 구비해야 하기에 비용 문제가 발생하는 것 외에도 테스팅에 시간을 허비하느라 소프트웨어 배포 일정을 맞추기도 어렵기 때문이다. 테스팅은 모두 무사히 마쳤지만 정작 소프트웨어 배포 이후 문제가 발견되는 경우도 부지기수다.

소프트웨어 테스팅 역시 소프트웨어 개발이 끝난 이후 본격적인 서비스 돌입에 앞서 진행하는 경우가 대부분이었지만, 최근 들어 비즈니스가 지속적으로 이뤄지도록 소프트웨어의 빠른 개발과 출시가 강조되면서 소프트웨어 개발 전 단계에 걸쳐 테스팅을 진행하는 방향으로 선회하고 있는 추세다. 이는 소프트웨어의 지속적인 전달(Continuous Delivery)을 넘어 지속적인 테스팅 관점으로 변화하면서 궁극적으로는 데브옵스(DevOps) 개념으로까지 확장되고 있다.

CA테크놀로지스는 개발부터 배포까지 한 방향으로만 진행되던 관점을 뒤집는 ‘시프트 레프트(Shift Left)’를 패러다임을 주장한다. 개발-빌드-배포-운영 순으로 이어지던 일방적인 소프트웨어 개발주기 관점 대신, 반대로 운영에서 개발로 테스트 영역을 확대시켜야 한다는 주의다. 새로운 코드를 만들 때마다, 코드를 배포할 때마다 테스트를 해야 한다는 입장이다.

CA는 SaaS 기반의 성능 테스트 솔루션 ‘블레이즈미터’를 통해 ‘시프트 레프트’ 패러다임을 증명하고 있다. 블레이즈미터는 아마존웹서비스(AWS), MS 애저(Azure), 구글, 알리윈(Aliyun) 등 다양한 클라우드 환경에 배포돼 있는 부하기를 이용해 UI 및 API의 성능 테스트를 수행할 수 있도록 한다.

JMeter, Taurus, Gatling, Grinder 등 오픈소스 성능 테스트 솔루션과 완벽히 호환돼 기존스크립트를 변경 없이 사용할 수 있으며, CI 솔루션과의 통합도 지원한다. 사용자나 개발자는 애플리케이션의 개발 주기 어느 단계에서도 자동으로 애플리케이션의 성능 테스트를 수행할 수 있다.

특히 클라우드상에 분포돼 있는 부하기를 이용해 별도 설치 과정 없이 최소한의 설정만으로 언제 어디서나 쉽게 테스트를 수행할 수 있고, 수백만 가상 유저 생성을 지원하므로 엔터프라이즈 성능 테스트 도구로 부족함이 없다.

모바일 전성시대…모바일 앱 테스트 시장 성장

무선 인터넷이 발달하고 스마트폰이 대중화되면서 우리 사회는 모바일 기기 전성시대를 맞이하고 있다. 많은 서비스들이 모바일 기기에 맞춰 출시되고 있으며, 그에 따라 다양한 앱들도 개발되고 있다. 모바일 시장의 성장으로 인해 전통적인 PC 시장이 위축되고 있다는 통계자료도 나왔을 정도다.

모바일 앱 역시 소프트웨어인 만큼 개발자들은 모바일 앱 품질 향상에도 많은 신경을 기울이고 있다. 무엇보다 모바일 세대는 아주 잠깐 동안 서비스를 이용할 수 없게 되더라도 바로 해당 서비스를 벗어나는 경향이 강하기 때문에, 모바일 앱 사업자들은 지속적인 서비스와 더불어 사용자들이 원하는 새로운 경험을 지속 제공하기 위한 방안을 강구하고 있다.

그러나 이를 충족하는 것은 결코 쉬운 일이 아니다. 무엇보다 사용자들이 이용하는 모바일 기기가 제각각이라는 점에 주목해야 한다. 단순히 제조사를 떠나 그들이 사용하는 스마트폰의 운영체제 버전이 다르고, AP도 다르며, 화면 해상도도 다르다. 말 그대로 기기의 파편화가 심한 만큼 각 사용자들에게 일관된 사용 경험을 제공하려면 많은 노력이 필요하다.

이로 인해 모바일 앱 개발사들에게는 서비스 출시 전 테스트와 출시 후 모니터링이 매우 중요하다. 호환성이 부족한 앱 서비스는 사용자들의 불만을 야기할 수 있으며, 서비스를 유지하기 힘든 상황까지 초래할 수 있다. 하지만 개인 및 중소 개발사들이 호환성 테스트를 위해 현재 보급된 다양한 단말기들을 모두 보유한다는 것은 사실상 불가능한 일이다.

이에 모바일 앱 테스트 시장이 성장하고 있다. 모바일 앱 테스트는 전 세계에서 수집된 다양한 디바이스 정보를 토대로 개발된 앱을 테스트하면서 기능이 정상적으로 동작하는지 등을 확인하는 것으로, 이 모든 것을 자동화시키는 방향으로 확대되고 있다.

시장조사기관 QY리서치에 의하면 지난해 글로벌 모바일 앱 테스팅 시장은 약 37억5000만 달러(4조1900억 원) 규모를 형성한 것으로 보이며, 연평균 12.7%의 성장세를 보이고 있다.

소프트웨어 테스팅 서비스 기업 어니컴은 모바일 앱 전문 테스트 서비스 ‘테스트포르테(TestForte) MTS’를 오픈하고 모바일 앱 테스트 시장에 뛰어들었다. 어니컴의 다년간 축적된 노하우와 기술력을 바탕으로 출시된 ‘테스트포르테 MTS’는 테스트 자동화 솔루션 및 전문 테스터를 통한 실제 모바일 단말기를 이용, 호환성 테스트는 물론 앱 출시를 위한 필수 테스트를 지원하며 지속적인 품질 모니터링도 제공한다. 또한 테스트 신청부터 결과 리포트 수령까지 원스톱으로 진행 가능하다.

여기에 어니컴은 모바일 성능 모니터닝(MPM) 솔루션 ‘IMQA’를 출시, 모바일 앱 테스트 시장에서의 영향력을 높이고자 하고 있다. 어니컴의 IMQA는 모바일 서비스의 성능 이상 징후(Crash)가 발생된 시점에서의 문제 원인을 파악하는 기존 솔루션들과는 달리, 실시간으로 다양한 성능지표를 모니터링하며 소스코드 레벨에서의 성능 저하 원인을 찾아준다.

자동화는 기본, 기능성 경쟁 확대

모바일 앱 테스트 시장 성장에 따라 관련 솔루션을 내놓는 기업들도 늘어나고 있으며, 원격기술 전문기업 알서포트도 그 중 하나다. 알서포트는 지난 MWC 2017에서 모바일 테스트 자동화 솔루션 ‘타스(TaaS)’ 데모 버전을 공개하며 모바일 앱 테스트 시장에 뛰어들었다.

알서포트의 타스는 프로젝트명이면서 서비스형 테스트(Test as a Service)의 약자로 클라우드 기반 테스트 서비스를 뜻한다. 이름에서 알 수 있듯이 타스는 클라우드 기반 모바일 테스트 자동화 제품으로 클라우드뿐만 아니라 모바일 단독으로도 테스트를 자동 수행할 수 있다.

알서포트 측은 모바일 앱 개발 시 개발자가 수동으로 일일이 테스트 코드를 입력하는 수고를 자동화시켜 부담을 낮췄으며, 단순 반복적인 회귀테스트 역시 자동화시킴으로써 앱 출시기간을 단축하고 비용도 절감할 수 있도록 하는 방향으로 제품을 개발했다고 설명했다.

타스는 ▲테스트 스크립트를 자동 생성 해주는 티스튜디오(Tstudio) ▲클라우드 기반으로 프로젝트를 관리하는 티콘솔(Tconsole) ▲모바일 단독 테스터인 ‘티플레이어(Tplayer) 등 크게 3개의 서비스 모듈로 구성된다.

타스는 테스트 스크립트 자동 생성과 모바일 무선 연결 테스팅 기능이 핵심이다. 테스트 스크립트 자동 생성은 개발자가 직접 스크립트는 작성하는 수동 방식이 아니라 테스터의 액션이 테스트 스크립트로 작성되는 자동 방식이며, 모바일 무선 연결 테스팅은 기존의 PC와 모바일을 USB로 연결하는 것이 아닌 와이파이(WiFi), 3G, LTE 등과 같은 무선 네트워크에서도 연결돼 테스트를 수행한다.

알서포트는 올해 하반기 중 타스 정식 버전을 출시할 예정으로, 마지막 담금질에 한창이다. 또한 자사 솔루션이 강세를 보이고 있는 일본 시장에도 론칭해 국내외 모바일 앱 테스트 시장 동시 공략에 나선다는 방침이다.

와이즈스톤도 모바일 앱 테스트 시장 역량 강화에 나섰다. 영국 테스트플랜트(TestPlant)사가 개발한 모바일 테스트 자동화 솔루션 ‘에그플랜트’를 국내에 공급하고 있는 와이즈스톤은 해당 시장 공략을 통해 국내 에그플랜트 사용자를 늘리고 시장 규모를 늘리겠다는 계획이다.

에그플랜트는 지난해 가트너 매직 쿼드런트 보고서에서 향후 5년간 가장 유망한 테스트 자동화 솔루션으로 선정된 툴이다. 보잉, 나사 등을 비롯한 전 세계 약 350여개 기업과 기관이 사용 중이며, 특히 나사에서 개발 중인 다목적 유인 우주선 ‘오리온(Orion)’의 소프트웨어 검증에도 사용되고 있어 전 세계적으로 주목을 받고 있다.

에그플랜트는 독자적인 이미지 인식 기술과 광학 인식 문자(OCR) 기술을 이용해 사용자 화면을 그대로 인식하고 테스트할 수 있는 것이 가장 큰 특징이다. 이러한 기능 덕분에 사용자는 코딩이나 프로그래밍 지식 없이도 툴을 쉽게 사용할 수 있다. 에그플랜트의 성공적인 도입사례로 뽑히는 파이낸스타임즈는 에그플랜트 도입 후 3개월 만에 모바일 앱 테스트의 90%를 1명의 엔지니어로 자동화한 것으로 유명하다.

한편 와이즈스톤은 올해 초 에그플랜트의 공인 엔지니어 자격인증 취득했으며, 에그플랜트의 모든 기능을 무료로 사용할 수 있는 30일 체험 프로그램을 제공하고 있다. 체험 기간 중에도 에그플랜트 인증을 획득한 공인 엔지니어 및 영국 테스트플랜트의 기술 지원을 제공한다.



댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.