슈어소프트테크 반기보고서 (2023.06)
1. 사업의 개요

당사는 고신뢰 고위험 소프트웨어, 즉 Mission Critical Software의 안전성을 검증하기 위한 자동화 도구 개발 및 공급과 3자 검증 서비스를 제공하는 소프트웨어 자동화 검증 플랫폼 회사입니다.

고신뢰 고위험 소프트웨어는 기능안전 국제표준에 근거하여 개발 과정(V-Process)에 따라 정의된 검증 활동이 필수적으로 요구되고, 당사는 필수 검증 활동을 자동화하는 소프트웨어 원천 기술과 20여년간 축적된 3자 검증 서비스 기술력을 보유하고 있으며, 자체 개발 기술로 빠른 고객 서비스 대응의 차별성을 가지고 국내 시장 점유율을 높여가고 있습니다.

당사는 시험검증 자동화 솔루션을 라이선스 및 유지보수(license and maintenance), 기간단위 구독 방식(subscription)으로 자동차, 국방, 원자력 및 에너지, 철도/항공/조선/로봇 분야의 국내 선두 기업에 공급하고 있으며 고위험 고신뢰 소프트웨어 특성상 개발자와 별도의 3자 검증이 필요한 고객들을 대상으로 자사 솔루션을 활용한 검증 서비스도 제공하고 있습니다.

현재 자동차 소프트웨어 분야는 당사 사업 성장의 핵심 영역입니다. 글로벌 자동차 시장의 중심축이 된 SDV(Software Defined Vehicle) 체제 전환은 당사의 소프트웨어 시험검증 사업과 밀접한 관계를 형성합니다. 자동차 제어기 시험검증 사업을 수행하며 자동차 제어기 소프트웨어에 대한 지식과 경험이 축적되었으며, 자동차 소프트웨어의 개발 과정에 대한 이해가 깊어지며 자동차 소프트웨어에 특화된 시험검증 솔루션을 개발하는 영역까지 확대되었습니다. 최근에는 차세대 차량의 제어기 일부 소프트웨어를 직접 개발하며 자동차 소프트웨어 종합 엔지니어링 파트너로 성장하고 있습니다.

당사의 사업에 대하여 자세히 설명하기에 앞서 소프트웨어 테스팅에 대한 간략한 설명을 서술하자면 다음과 같습니다.

소프트웨어 테스팅은 수동이나 자동으로 시스템을 작동시키고 평가하는 작업으로, 명시된 요구 사항을 만족하는지 여부를 확인하는 것입니다. 즉, 예상된 결과와 실제 결과와의 차이를 인식하기 위한 목적을 지니고 있습니다. 구체적으로 소프트웨어 테스팅이란 응용 프로그램 또는 시스템(구성요소를 포함해서)의 동작과 성능, 안전성이 사용자가 요구하는 수준을 만족하는지 확인하기 위해 결함을 발견하는 매커니즘입니다. 해당 매커니즘을 통해 사용자의 기대 수준과 요구 사항에 맞게 구현되고 동작하는지를 확인하고 이를 통해 결함을 발견하고 최종적으로 결함 데이터를 근간으로 개발 프로젝트의 리스트 정보를 정량적 수치로 프로젝트 관리자에게 전달할 수 있습니다.

소프트웨어를 개발하는 동안 개발자(Human)는 코드를 잘못 쓰거나 문서 작성에 실수를 하는 오류를 범할 수 있습니다. 이러한 오류는 소프트웨어 코드의 결함을 유발하게 되며, 해당 결함이 장애(오작동)을 일으키게 되고 이는 심각한 경우 인명의 피해 및 재산상의 피해를 야기하게 됩니다. 따라서 개발 과정에서부터 소프트웨어 테스팅을 통해 문서 결함 수정 및 코드 내 결함 등을 발견하여 소프트웨어 기능 구현시 위험을 줄일 수 있으며, 이는 소프트웨어 품질 향상을 통해 사용자에게 안전성을 제공하게 됩니다.

소프트웨어 테스팅은 크게 두가지의 구분(테스트 수행시 소프트웨어의 동작 유무에 따른 구분, 소프트웨어 내부 구조의 파악여부)과 네 가지의 용어(정적 테스트/동적 테스트, White Box 테스팅/Black Box 테스팅)로 구분을 할 수 있습니다.

먼저, 테스트 수행시 소프트웨어의 동작 유무에 따른 구분입니다. 정적 테스트 (Static Testing)은 프로그램을 실행하지 않고 소스코드 전체 또는 일부를 분석하는 기법이고, 동적 테스트 (Dynamic Testing)은 소프트웨어를 실행하여 다양한 입력 값에 대해 기대하는 결과 값이 나타나는지 확인하는 테스팅 기법입니다.

두번째 구분 기준은 소프트웨어 내부 구조의 파악여부입니다. White-Box 테스팅은 소스 코드 구조를 기반으로 테스트를 수행하는 기법으로 코드의 수행 경로, 불필요한 코드 혹은 테스트되지 못한 부분을 확인합니다. Black-Box 테스팅은 프로그램 코드의 정보를 이용하지 않거나, 혹은 이용할 수 없을 때에 테스트 케이스를 설계하는 방법으로 코드 정보 이외에 명세 정보나 시스템 인터페이스 정보 등을 이용하여 테스트 케이스를 설계하는 방법으로, 이를 통해 기능 누락 오류를 검출하는 것을 목적으로 한다. 당사는 White-Box 테스팅 분야에서 강점을 보이고 있으며, 코드를 기반으로 전문 테스트 기술력으로 사업화에 성공하였습니다.

소프트웨어 테스팅과 관련하여 V-Model은 소프트웨어 생명 주기를 모형화 한 것으로 소프트웨어 공학에서 발현된 폭포수 모형에서 시스템 검증과 테스트 작업이 강조된 체계입니다. 시스템이나 시스템 컴포넌트 또는 소프트웨어 프로그램 등을 테스트하는 작업이 이들에 포함된 단순한 코딩의 오류만을 찾는 작업이 아니라 요구사항 분석에서의 오류, 설계 등 개발 단계의 작업들에 대한 테스트를 포함한다는 내용을 개발 프로세스와 통합하여 체계화한 개념으로 국내 임베디드 기업들 대부분이 도입하고 있는 프로세스입니다.

아래 예시는 V-Model을 국제기능안전표준에 명시한 내용입니다. (자동차 분야 ISO26262 Part6 중)

이러한 V-Model 상에서 요구사항을 정의하는 개발의 시작 단계부터 마지막 인수 단계까지 각 단계별 활동에 대한 검증을 통해 소프트웨어 품질을 높이는 활동을 V(Validation Verification)이라고 합니다. 당사는 단계별로 필요한 자동화 도구를 사업화하는데 성공하였고, 자동화 도구로 활용할 수 없는 영역은 전문 검증 인력들이 고객사에 투입되어 직접 검증을 수행하고 있습니다.

* Validation: 소프트웨어 요구사항에 따른 구현 및 동작을 확인하는 활동으로 사용자의 관점에서 요구사항을 만족하는지 평가하는 활동입니다.

* Verification: 표준 및 지침에서의 정의된 품질 특성을 만족하는지 확인하는 활동으로 개발단계의 산출물이 설정 조건을 만족하는지 검증하는 활동입니다.

Mission Critical Software Verification Validation: 자동차·국방·우주항공·의료·금융 등 작은 실수만으로도 치명적인 결과를 초래할 수 있는 산업을 고신뢰 고위험(Mission Critical) 산업이라고 정의할 수 있습니다. 해당 분야의 소프트웨어는 결함이 발생할 경우 인명 사고 또는 막대한 경제적 손실을 초래하기 때문에 신뢰성, 안전성 등 고품질 확보가 매우 중요합니다.

당사는 국내 원천 기술 보유, 최다 업무 경험 보유, 자체 개발 기술로 빠른 고객 서비스 대응의 차별성을 가지고 국내 시장 점유율을 높여가고 있습니다.

당사의 솔루션과 서비스는 크게 네 가지 유형으로 나눌 수 있습니다.

Code Verification: 소프트웨어 소스 코드의 정적, 동적 오류를 검출하는 자동화 소프트웨어 (Controller Tester, STATIC), 시험검증 활동을 모니터링하고 추적하는 소프트웨어 (COVER, VPES, VSPICE) 및 이를 활용한 3자 코드 검증 서비스를 포함합니다.

System verification: 소프트웨어 모듈 구성과 상호 작용을 시험하는 소프트웨어 (AESOP, AUTORACT), 결함주입시험과 부하시험 등 시스템 강건성을 시험하는 소프트웨어 (FIT, PROV) 및 이를 활용한 3자 시스템 검증 서비스를 포함합니다. 이 시험에서는 HILS(Hardware-in-Loop), EILS(ECU-in-Loop) 등 별도의 시험장비와 환경을 구축하여 활용하기도 합니다.

Model verification: 소프트웨어 코딩 전에 모델 단계에서 정적, 동적 오류를 검출하는 자동화 소프트웨어 (Model Inspector, Model Verifier) 및 이를 활용한 3자 모델 검증 서비스를 포함합니다.

미래기술검증솔루션: 자율주행차, 커넥티드카, 배터리 기반 전력저장장치 등 미래 기술에 대한 검증 솔루션 과 서비스를 포함합니다. 시뮬레이션 검증, 커넥티비티 검증, 사이버보안 검증 등 다양한 측면의 검증을 위한 소프트웨어 (VISTA, ADI, SIMVA, AUTOSIM, FUZZIT)를 개발하고 있으며 당사의 미래 먹거리로 준비하고 있습니다.