품질활동은 ‘비용’ 아닌 ‘투자’…SW개발 인식 개선 필요

[컴퓨터월드] 많은 SW기업들이 새로운 기회를 좇아 해외로 시선을 돌리고 있다. 하지만 수많은 시도에 비해 결과는 아직 미미한 수준이다. 가장 큰 이유는 글로벌 SW기업에 비해 제품 경쟁력이 부족하기 때문이다. 그 원인중 하나가 ‘품질’에 대한 인식 부족이다.

교통, 항공, 국방 등 사람의 목숨을 좌지우지할 수 있는 미션 크리티컬 분야에 SW비중이 늘어나면서 SW품질 확보는 ‘반드시 진행해야 하는 업무’가 되었지만, 일반 SW분야의 ‘품질활동’은 여러 이유로 여전히 등한시되고 있는게 현실이다.

업계 관계자들은 SW 품질활동은 ‘비용’이 아닌 ‘투자’라며, 이용으로 인식하는 우리의 문화적 인식 전환이 시급하다고 강조하고 있다.

 


SW테스팅, 시장은 커지고 있지만 성숙도 낮아

스마트폰을 위시한 임베디드 시장의 성장으로 ‘SW 테스팅’ 시장이 빠르게 성장하고 있다. 현재 SW테스팅 시장 규모는 약 5천억 원 정도로 추정된다. 세계적인 불경기로 타 시장이 정체되고 있음에도 스마트폰, 임베디드, IoT 등 SW의 분야가 확장되면서 ‘테스팅’분야 기업은 점차 몸집을 불려 나가고 있다. 업계에 따르면 테스팅 시장의 성장률은 약 연평균 18% 정도로 추산되고 있다.

하지만 그에 반해 테스팅 시장의 성숙도는 아직 높지 않다는 게 업계 관계자들의 목소리다. 엔지니어들의 임금 수준은 같은 경력의 개발자에 비하면 턱없이 낮은 수준이다. 한 업계 관계자는 고객사의 5년차 초급 개발자 임금이 500~600만 원에 달할 때 테스터의 경우 250~400만 원에 불과하다고 언급했다.

이런 상황이 벌어지는 가장 큰 원인은 ‘SW품질’에 대한 문화적 인식 때문이다. MS, 애플 등 해외 소프트웨어 개발 업체들은 SW의 개발에 앞서 기획 단계에서부터 체계적인 품질 관리에 나서는 데 반해, 국내는 이러한 품질관리(QA)를 중요시하시 않고 있다는 것이다. 글로벌 기업들은 SW를 개발할 때 개발자만큼이나 많은 수의 테스팅 엔지니어가 프로젝트에 투입된다. 개발자 한 명당 테스팅 엔지니어의 비율이 1:1에서 1:3 수준으로, 국내보다 월등히 많은 테스팅 인원이 투입된다.

업계에 따르면 가까운 일본의 경우 SI 등 개발 사업 진행 시 품질 관리 예산을 절반 가까이 할당하고 있다. 국내의 경우 업종에 따라 상이하지만 평균적으로 전체 프로젝트 예산의 10% 정도만이 품질관리에 할당되고 있는 것으로 전해진다.

이처럼 적은 품질관리 예산은 결국 SW 테스팅 역량을 떨어트리는 ‘악순환’을 야기한다. 경기가 어렵다는 핑계로 각 기업들은 테스팅 등 품질활동 비용을 줄이고, 테스팅 업체들은 저가 입찰 경쟁으로 제 살 깎아 먹기 식 경쟁구도에 내몰린다. 이러한 경쟁 구도는 테스팅 업체들의 수익성 악화를 불러오고 엔지니어들의 임금확보를 어렵게 해, 전문 인력 확보를 어렵게 만들며, ‘아르바이트’ 수준의 단순 테스팅 수행으로 내몰리게 만든다. 그리고 이러한 구조는 고객사들이 테스팅 수행을 ‘싸게 해도 괜찮은 것’으로 오해하게 만든다.


‘품질활동이 곧 비용절감’

테스팅 업체들은 이러한 문화적 인식을 개선해나가는 것이 가장 시급하다고 입을 모은다. 업체들은 특히 많은 기업들이 품질활동을 ‘비용’이라는 측면에서만 접근하고 있다는 점을 지적했다. 개발의 경우 당장의 결과물이 나오는 ‘생산’ 업무이며, ‘QA’업무는 생산 과정을 늦추고 비용이 추가로 들어가는 ‘덤’으로 생각한다는 주장이다.

▲ SW품질 비용

업계는 이러한 시각이 ‘당장의 이익’만을 바라본 ‘오해’라고 주장한다. 기획단계부터 품질활동을 진행하는 것이 오히려 개발기간이나 비용 절감에 훨씬 효과적이라는 것. 실제로 정보통신산업진흥원이 발간한 ‘2015년 SW공학백서’에 따르면, 2015년 한 해 동안 진행된 국내 프로젝트 가운데 품질 ‘예방비용’과 ‘평가비용’이 높을수록 ‘비용 성과’와 ‘납기 성과’가 높은 것으로 나타났으며, 내·외부 실패비용 또한 낮은 것으로 드러났다.

‘2015 SW공학백서’ 중 ‘품질’ 관련 주요 내용

▲ 기업규모별 품질비용

중소기업의 경우 대기업에 비해 상대적으로 품질 활동을 소홀히 하는 것으로 나타났다. 대기업의 품질 예방비용과 평가비용은 중소기업에 비해 높았으며, 내·외부 실패비용은 반대로 나타났다.

▲SW프로젝트 공학수준 등급 별 품질비용

SW공학수준이 높을수록 예방 및 평가비용은 높았으며, 내·외부 실패 비용은 낮았다.
 

▲SW공학수준별 납기성과별 분포

SW공학수준이 높을수록 납기 준수율 또한 높아졌다.

 

품질활동을 SW개발 전 단계로 확대한 ‘지속적 통합(Continuous Integration)’과 ‘지속적 테스팅(Continuous Testing)’이 진행되면 전체 프로젝트 비용 및 시간 절감에 도움이 된다는 의미다.

하지만 국내 기업 문화의 한계 때문에 이 같은 지속적 테스팅은 쉽게 이뤄지지 않고 있다. 김성환 MDS테크놀로지 SES사업 3팀장은 “고객사 테스팅 담당자가 이러한 품질활동을 모르는 것은 아니다”라며, “우리나라 기업의 구조상 이들이 주도적으로 품질활동을 진행하는 것 자체가 어렵다”고 지적했다.

기업 의사결정자들의 경우 “처음부터 (개발을) 잘 하면 되는 것 아닌가”라는 피상적인 이해만 갖춘 수준이다. 또한 개발자나 품질 담당자가 품질관리의 중요성을 알고 있다고 하더라도, 담당이 아니라는 이유에서 관여하지 않거나 사내 정치·분위기에 밀려 제대로 된 품질활동을 진행하기 어려운 상황이다.

한 테스트 업계 관계자는 우리나라의 개발자들 또한 테스트엔지니어의 품질활동에 대해 유독 거부감이 심하다고 지적했다. 이 관계자는 자신의 코드를 제삼자가 검증하는 ‘코드 인스팩션’이 해외에서는 당연시되고 있지만, 국내에서는 ‘월권’행위로 여겨진다고 주장했다. 기업 내·외부적으로 ‘SW품질’에 관한 인식 개선이 필요한 이유이다.

인력 중심 시장구조 문제…처우 개선 통해 역량 확보 시급

고객사들의 품질 인식과 더불어 시장 자체가 가진 한계 또한 있다. 현재 국내 SW 테스팅 시장은 대부분 ‘블랙박스 테스트’를 위주로 하는 ‘테스트 외주 수행’이다. 블랙박스 테스트는 소프트웨어의 내부 구조를 참조하지 않고 수행하는 테스트로, 소프트웨어의 내부 구조를 참조하는 ‘화이트박스 테스트’와 대비되는 개념이다.

이러한 ‘테스트 수행’ 업무는 필연적으로 많은 인력을 필요로 하며, 시장에서 가장 빠르게 성장하고 있는 분야이기도 하다. 하지만 동시에 이러한 구도 자체가 ‘부실한 성장’으로 이어지고 있다는 지적 또한 있다.

테스트 수행이 SW의 품질 역량을 확보하기 보다는 ‘단순 테스팅 수행’으로 전락함으로써, ‘테스트 엔지니어’가 역량을 갖춰 성장하기 어렵다는 것이다. 일정부분 저가 입찰을 고집하는 고객사의 ‘마인드 부족’으로 야기된 문제지만, 동시에 테스팅 기업들 스스로 ‘엔지니어링 역량 확보’에 힘을 쏟지 못했다는 지적을 피하기는 어렵다는 게 관계자들의 지적이다.

이처럼 엔지니어 처우 개선이 어려운 이유는 지나치게 인력에 기대는 시장 구조 때문이다. 저가 입찰로 인해 제 값을 받기 어려운 와중에 테스트 업체들의 지나친 경쟁으로 인해 엔지니어의 대가 산정이 매년 줄고 있다. 이로 인해 인력 유출이 심해지고, 인력 유출은 업체들의 엔지니어 역량 투자 의욕을 떨어트리며, 이는 다시 테스팅 수행 업무의 질 하락이라는 결과를 낳는 악순환이 계속되고 있다.

한 업체 관계자는 “테스팅 기업들이 엔지니어의 처우와 역량확보에 얼마나 노력해왔는지 되돌아봐야할 때”라며, “엔지니어들을 성장시키고, 적정 가격에 사업을 수주해 엔지니어 처우를 개선해 나가는 것이 시급하다. 역으로 엔지니어의 역량이 성장한다면 시장의 인식 개선에도 효과적일 것”이라고 말했다.

소프트웨어 개발 단계에 따른 테스트의 분류 및 방법
김영민 와이즈스톤 팀장


1. 소프트웨어 테스트

우리가 이용하고 있는 많은 제품(휴대폰, 의료기기, TV, 자동차, 비행기)에 대한 소프트웨어의 비중이 점점 더 증가하고 있다. 이러한 소프트웨어의 오작동으로 많은 업체들이 금전적인 손실을 입고 있으며, 더 나아가 브랜드 이미지 하락과 더불어 인명 피해까지 발생할 수 있다. 이렇게 소프트웨어의 품질이 매우 중요하다는 인식이 점차 확산되면서 소프트웨어 테스트에 대한 관심과 활동이 지속적으로 증가하고 있다.

그렇다면, 소프트웨어 테스트란 무엇인가.

소프트웨어 테스트에 대해서 ISTQB(International Software Testing Qualifications Board)와 IEEE(Institute of Electrical and Electronics Engineers) 829에서는 아래와 같이 정의하고 있다.

ISTQB Glossary
Testing : The process consisting of all life cycle activities, both static and dynamic, concerned with planning, preparation and evaluation of software products and related work products to determine that they satisfy specified requirements, to demonstrate that they are fit for purpose and to detect defects.

IEEE 829-1998(Test Documentation)
Software Testing : The process of analyzing a software item to detect the differences between existing and required conditions (that is, bugs) and to evaluate the features of the software item.

즉, 소프트웨어 테스트는 사용자의 요구사항이 만족하는지 확인 및 결함을 발견하고 평가하는 활동이라고 쉽게 정의할 수 있다. 소프트웨어 테스트를 통해서 소프트웨어에 남아있는 결함 발견과 결함 예방을 수행할 수 있는 것. 또한 소프트웨어 테스트를 프로젝트 초기부터 계획하고 시작하여 제품의 품질을 더욱더 향상시키고 소프트웨어의 유지보수 비용을 줄일 수 있다.

테스트와 디버깅(Debugging)도 구분해야 한다. 테스트가 결함을 발견하는 활동이라면, 디버깅은 결함의 원인을 확인해 코드를 수정하는 활동이다.

2. V-Model

테스트는 소프트웨어 개발 단계와 밀접한 관련이 있다. 각 개발 단계에 따라 테스트를 어떻게 적용할 수 있는지 소프트웨어 개발 단계와 테스트와의 관계를 표현한 모델을 V-Model이라고 한다.

V-Model은 요구사항 분석(Requirement), 아키텍처 설계(Specification), 상세설계(Design), 구현(Code) 및 테스트 순서로 이루어진 개발 수명주기 모델(SDLC, Software Development Life Cycle) 중 폭포수 모델(Waterfall Model)을 바탕으로 하여 테스트 단계를 정의한 모델이다. V-Model에 정의된 테스트 단계는 4단계로 구성돼 있다.

▲ V모델

V-Model에서 정의된 4개의 테스트 단계는 아래와 같은 테스트를 수행한다. 테스트 주체는 테스트 환경이나 상황에 따라 변동이 될 수 있으며, 주로 아래와 같은 테스트 주체를 가지고 수행을 진행한다.

▲ 테스트 단계 구분


3. 소프트웨어 테스트 방법

보통 소프트웨어 테스트 방법은 크게 블랙박스 테스트와 화이트박스 테스트로 구분한다. ISTQB에서는 블랙박스 테스트와 화이트박스 테스트를 아래와 같이 정의한다.

ISTQB Glossary
Black-Box testing : Testing, either functional or non-functional, without reference to the internal structure of the component or system.

White-box testing : Testing based on an analysis of the internal structure of the component or system.

블랙박스 테스트는 소프트웨어의 내부 구조를 참조하지 않고, 소프트웨어의 기능과 비기능에 대해 테스트를 수행하는 것을 말한다. 반면 화이트박스 테스트는 블랙박스 테스트와 반대로 소프트웨어의 내부 구조를 기반으로 하여 테스트를 수행하는 것이다.

▲ 블랙박스 테스트와 화이트박스 테스트

보통 블랙박스 테스트는 V-Model의 테스트 단계 중에서 통합 테스트, 시스템 테스트 및 인수 테스트에서 주로 사용하고 있으며, 화이트박스 테스트는 단위 테스트에서 주로 사용하고 있다.

 

SW품질, 선택 아닌 필수다

 

그렇다면 품질이 확보된 좋은 소프트웨어란 어떤 것일까. 업계 관계자들은 ‘좋은 소프트웨어’라는 관점을 ISO25010에 근거한 8가지로 제시했다.

세부적으로는 기능이 정상적으로 동작하는가를 판단하는 기준인 ‘기능성’, 해당 기능이 사용하기 편한가를 확인하기 위한 ‘사용성’, 속도나 성능 등 얼마나 빠르게 동작하는가를 확인하는 기준인 ‘효율성’, 예상하지 못한 동작 등 문제가 발생했을 때 장애를 완화할 수 있는가를 판단하는 기준인 ‘신뢰성’, 지원하는 다양한 환경에서 운영될 수 있는가를 판단하는 ‘이식성’, SW의 문제를 빠르게 개선해나갈 수 있는가를 판단하는 ‘유지보수성’ 등 기존 ISO9126의 6가지 기준에 정보 및 데이터를 보호하는 ‘보안성’, 다른 시스템과의 상호 연동 능력을 판단하기 위한 ‘상호 운영성’ 등 두 가지 기준을 포함한 것이다.

‘품질이 좋은 SW’를 평가할 때에도 해당 8가지 기준을 통해 판단하게 된다. ‘원하는 기능이 잘 동작함은 물론, 빠르게, 편리하게, 장애 없이, 다양한 환경에서 동작하며, 유지보수가 편리하고, 보안이 뛰어나며, 상호 연동이 원활한’ SW가 ‘잘 만들어 진’ SW라는 의미다.

국내에서도 이러한 SW공학적인 접근을 통해 SW품질을 향상하려는 시도가 이전에 비해 많이 늘어났지만, 이는 ‘미션 크리티컬한 영역’, ‘대기업 진행 프로젝트’에 국한돼 있으며, ‘SW일반’에까지 확대되고 있지 못하다는 게 업계의 중론이다.

업계 관계자들은 ‘비용 절감’을 넘어서 ‘SW 안전’을 위해서는 테스팅을 위시한 품질활동이 필수라고 지적한다. 해외는 이미 오래 전부터 여러 사건사고를 거쳐 이러한 품질활동의 중요성을 인지하고 있다.

1980년대 방사선 치료 기기 ‘Therac-25’는 피부 근처의 종양과 피부 깊숙한 종양을 제거할 수 있는 혁신적인 기기였지만 치료 기계의 제어 코드에 있던 버그로 인해 3명이 사망하고 3명은 심각한 방사능 후유증에 시달리게 됐다. 2000년대 들어서도 SW오류로 인한 인명 피해는 끊이질 않고 있다. 2009년 워싱턴 지하철의 SW 오류로 인해, 뒤따라오던 열차가 앞선 열차를 추돌, 9명이 사망하고 70여명이 중경상을 입기도 했다.

이처럼 SW의 비중이 높아지면서 SW품질은 비단 경제적 이유에서뿐 아니라 사람의 안전을 위해 빠질 수 없는 필수적인 요소가 되고 있다. IoT 시장이 확장되면서 이러한 경향은 더욱 커질 것으로 예측된다.


문화적인 개선 필요

이처럼 SW의 품질이 중요시되는 시대지만 여전히 우리나라의 ‘SW품질’인식은 낮은 편이다. 업계 전문가들은 ‘문화적 인식 전환’이 시급하다고 입을 모았다. 모든 SW에 대해 ‘제삼자’가 검증할 수 있도록 문화를 바꿔나가야 한다는 주장이다.

기업체의 경우도 개발자들이 자신의 코드에 대해 제삼자가 왈가왈부하는 것을 꺼리는 문화가 만연해 있는 상황이다. 해외의 경우 이러한 ‘코드 인스팩션’이 당연시 되고 있다고 관계 전문가들은 지적한다. SW처럼 다차원의 복잡한 구조는 자신이 개발했다고 하더라도 문제점을 찾아내기가 쉽지 않다는 것이다.


▲ 세계 IT지출 중 테스팅 예산 할당량<World quality report(2015-2016)>

나아가 공공기관의 발주 문화도 개선할 필요가 있다고 지적했다. SI사업자를 통해 통합 발주되는 현재의 시스템 하에서는 ‘SW테스팅’이 ‘SW품질활동’으로 연결되기 어렵다는 주장이다. 발주처가 테스팅 수행 기관을 분리 발주해 일종의 ‘품질감시 활동’으로 연결했을 때, 공공기관의 SW구축사업이 제대로 품질을 갖출 수 있게 된다는 논리다. 업계 관계자들은 현재와 같은 통합발주에서는 SW테스팅이 SI업체의 ‘눈치’를 볼 수밖에 없으며, 따라서 제대로 된 품질활동이 아닌 단순 ‘인수 테스트’에 머무를 수밖에 없다고 설명했다.
이영석 와이즈스톤 대표는 “SW 품질을 높이기 위해서는 단순한 ‘인증’을 늘리는 것이 아니라 ‘과정’을 개선해 나가야 한다”며, “테스팅 비용이 부담되는 중소기업에게 다양한 지원책과 더불어 ‘품질 활동 로그’ 등을 제출하도록 하는 과정 중심의 품질활동 지원책이 필요한 시점”이라고 강조했다.

또한 SW테스팅이 ‘산업군’으로 인정받을 필요도 있다. 박성호 한국SW테스팅협의회장은 “테스팅 시장은 아직 정부의 정확한 통계자료도 없으며, 산업군으로 분류되고 있지도 않은 상황이다”라며, “소프트웨어 직무체계는 ‘품질’이 별도 분류되기 시작했다. 마찬가지로 산업군에 대한 통계에서도 ‘품질’이 별도로 분류될 필요가 있다”고 말했다.

이런 많은 악재 속에서도 SW테스팅 시장은 꾸준히 성장하고 있다. 특히 IoT시대가 전개되면서 SW품질과 SW안전은 필수적인 요소가 되고 있다. 향후 모든 사물이 SW를 탑재하게 되는IoT세상이 열리면 SW테스팅은 더더욱 중요한 ‘기술’이 될 것이란 게 업계의 중론이다.

국산 SW가 해외로 뻗어나가기 위해서는 SW테스팅 업계가 단순한 기능테스트에 머무르는 것이 아니라, SW의 기획, 개발 단계부터 ‘품질’을 끌어올릴 수 있는 동반자가 돼야 한다고 업계는 강조하고 있다.

저작권자 © 아이티데일리 무단전재 및 재배포 금지