Industry Insights 블로그 시리즈
Jan Aarsaether
소프트웨어 품질 보증 팀 시니어 사업개발 리드
Cliff Bilbrey
솔루션 엔지니어 II
국방 계약은 계약 시점에 총액을 미리 정하는 확정 가격 방식으로 체결되는 경우가 많습니다. 납기가 엄격하고, 오류가 허용될 여지도 사실상 없습니다. 이러한 계약을 맡은 프로그램 관리자는 까다로운 안전 인증 요구사항과 보안 제약을 모두 충족하면서, 복잡한 시스템을 팀과 함께 기한 안에 납품해야 하는 책임을 집니다.
그렇기 때문에 국방 사업의 성패는 대개 효과적인 소프트웨어 품질 관리 전략에서 갈린다고 할 수 있습니다. 개발 후반에 가서야 문제를 발견하는 팀보다, 초기에 문제를 미리 막는 팀이 꾸준히 더 좋은 성과를 냅니다.
국방 소프트웨어 개발을 위해 반드시 해결해야 할 4가지 과제
1. 안전 인증 요구사항이 납기 일정과 예산에 미치는 영향을 관리하세요
과제: DO-178C와 같은 안전 인증에는 테스트 커버리지 요구사항이 포함되어 있어, 국방 프로그램의 일정과 예산에 큰 위험 요소가 됩니다. 필요한 커버리지를 수작업으로 확보하려면 막대한 엔지니어링 인력이 투입되며, 이 과정에서 만들어지는 방대한 문서는 감사관의 엄격한 검토까지 통과해야 합니다.
해결 방법: Coco와 같은 코드 커버리지 도구는 객관적이고 추적 가능한 근거를 제공하며, 수준이 높으면서도 실제로 자주 요구되는 커버리지 레벨인 구문 블록 커버리지(Statement Block), 분기 커버리지(Branch), 변형 조건/결정 커버리지(MC/DC, Modified Condition/Decision Coverage)를 지원합니다. Squish와 같은 UI 테스트 자동화 도구는 이 커버리지를 효율적으로 끌어올려 빈틈없이 채울 수 있도록 돕고, 실행되지 않아 제거해야 할 데드 코드(Dead Code)를 찾아냅니다. 두 도구 모두 다양한 안전 표준에 대응하는 도구 자격 인증 키트(Tool Qualification Kit)를 제공합니다. 여기에는 국제 항공 소프트웨어 개발 도구의 신뢰성을 검증하는 표준인 DO-330 자격 인증도 포함되어 있어, DO-178C 및 DO-278A 요구사항이 적용되는 프로그램에서도 두 도구를 사용할 수 있습니다.
기대 효과: 프로그램 관리자는 인증 기간을 더 짧고 예측 가능하게 운영할 수 있습니다. 엔지니어는 수정 비용이 훨씬 적게 드는 개발 초기 단계에서 테스트되지 않은 코드 경로를 미리 찾아낼 수 있습니다. 또한 감사 프로세스 전체가 더욱 체계적으로 진행되어, 막판에 문서를 몰아서 준비해야 하는 부담이 줄어듭니다.
2. 다양한 플랫폼이 복잡하게 뒤섞인 국방 시스템 테스트 환경을 관리하세요
과제: 국방 시스템은 Linux, VxWorks, INTEGRITY와 같은 다양한 독자 실시간 운영체제(Real-Time Operating System)를 사용합니다. 실시간 운영체제란 정해진 시간 안에 작업을 반드시 처리하도록 설계된 운영체제로, 이 때 오래전에 개발되어 지금도 운영 중인 레거시 Java 애플리케이션이 섞여 있는 경우도 많습니다. 이처럼 서로 다른 환경이 뒤섞인 상황에서 수작업으로 테스트를 진행하는 것은 현실적으로 어렵습니다. 그렇다고 자동화 도구를 쓰려 해도, 대부분의 테스트 자동화 도구는 국방 팀이 일하는 보안 환경, 즉 외부 네트워크와 차단된 오프라인 환경에서는 사용할 수 없는 경우가 많습니다.
해결 방법: Squish는 테스트를 관리하는 호스트와 실제 장비인 타겟에서 테스트를 실행하는 경량 구성 요소를 분리하는 방식으로, 이처럼 다양한 환경에서 자동화된 테스트를 지원합니다. 타겟에서 동작하는 구성 요소는 소스 코드에서 직접 빌드할 수 있어 대부분의 임베디드 환경에서 실행이 가능합니다. 또한 화면 이미지 비교에만 의존하는 도구와 달리, Squish는 화면 속 버튼이나 입력창 같은 요소(객체)를 직접 인식하는 객체 기반 방식으로 테스트를 만들기 때문에 화면 구성이 바뀌어도 테스트가 쉽게 깨지지 않습니다. 인터넷 연결 없이 완전한 오프라인 환경에서도 모든 기능을 사용할 수 있으며, 보안 네트워크 사용 요건도 충족합니다.
기대 효과: 여러 시스템 구성 요소를 하나로 합치는 과정에서 생기는 통합 문제를 개발 주기 초기에 발견할 수 있습니다. 모든 시스템 구성 요소에서 안정적으로 동작하는 테스트 자동화는 개발 전 과정에 걸쳐 시스템이 안정적이라는 구체적인 근거를 제공하며, 이는 발주 기관이 개발 진행 상황을 점검하는 국방 계약 검토 과정에서, 사업이 계획대로 진행되고 있음을 객관적으로 입증하는 핵심 자료가 됩니다.
3. 소리 없이 진행되는 시스템 아키텍처 침식과 코드 품질 저하를 예방하세요
과제: 국방 프로그램은 수십 년에 걸쳐 이어지기도 합니다. 그동안 요구사항이 바뀌고 담당 팀이 교체되면서, 처음 설계한 구조와 원칙을 지키려는 규율이 점차 느슨해지는 '아키텍처 침식'이 일어납니다. 개별 구성 요소만 놓고 보면 코드가 깔끔하게 작성된 시스템이라도, 시간이 지나면서 전체 구조가 조금씩 무너질 수 있습니다. 그 결과 유지보수 비용이 늘어나고, 변화에 유연하게 대응하기 어려워지며, 규정 준수 측면에서도 위험과 문제가 생길 수 있습니다.
해결 방법: Axivion은 실제로 구현된 코드가 처음 의도한 설계대로 만들어졌는지 비교하는 아키텍처 검증 기능을 제공하며, 구조를 벗어난 부분이 굳어지기 전에 미리 찾아 알려줍니다. 또한 Axivion은 일반적인 정적 분석을 넘어, 공통 취약점 목록(CWE, Common Weakness Enumeration) 기반의 보안 점검을 제공하고, 각 프로그램의 요구사항에 맞춰 코딩 표준을 자유롭게 설정할 수 있도록 지원합니다.
기대 효과: 시스템이 운영되는 기간 내내 아키텍처의 일관성과 코드 품질을 유지할 수 있습니다. 개발팀은 구조나 코드 차원의 문제가 유지보수 및 규정 준수 문제로 커지기 전에 미리 발견할 수 있으며, 이를 통해 시스템을 실전에 배치한 이후 발생할 수 있는 막대한 재작업 비용, 시스템 다운, 제품 리콜의 위험을 줄일 수 있습니다.
4. 방대한 테스트 데이터를 의미 있는 인사이트로 활용하여 소프트웨어 품질을 개선하세요
과제: 다양한 빌드, 타겟 장비, 실행 환경으로 테스트 자동화의 범위가 넓어질수록 테스트 데이터의 양은 감당하기 어려울 만큼 늘어납니다. 그런데 통과/실패 여부만 보여주는 기본적인 지표로는 품질 개선을 위해 어디에 힘을 쏟아야 할지 파악하기 어렵습니다.
해결 방법: Test Center는 Squish 테스트 실행 결과와 Coco 커버리지 보고서 등 여러 출처의 테스트 결과를 한곳에 모아, 의미 있는 패턴을 찾아냅니다. 개발팀은 이를 통해 서로 다른 실행 환경별로 테스트 이력을 추적하고, 같은 조건에서도 결과가 들쭉날쭉한 불안정한 테스트를 가려내며, 실패가 반복되거나 커버리지가 줄어드는 영역을 찾아낼 수 있습니다.
기대 효과: 직감이 아닌 실제 데이터를 근거로, 위험도가 가장 높은 컴포넌트에 소프트웨어 품질 관리 리소스를 집중할 수 있습니다. 이러한 체계적인 접근 방식은 문제의 근본 원인을 더 효율적으로 찾아내므로, 눈에 보이는 개별 증상만 고치는 데 그치지 않고 같은 유형의 결함 자체를 없앨 수 있습니다.
가장 어려운 부분부터 집중해 보세요. 지금까지 익힌 내용을 바탕으로, 뚜렷한 목적과 인사이트를 가지고 다음 단계를 설계하세요.
백서
효과는 높이고, 유지보수는 줄이는 테스트 자동화 전략
GUI 테스트 자동화에서 테스트 유지보수가 왜 중요할까요?
백서를 통해 유지보수 부담이 적은 테스트를 만들기 위한 전략과 모범 사례를 알아보세요.
백서 다운로드
국방 소프트웨어의 높은 기준을 충족하는 통합 소프트웨어 품질 전략
앞서 살펴본 기능들이 하나로 어우러지면, 국방 계약 특유의 까다로운 요구사항에 대응할 수 있는 종합적인 소프트웨어 품질 관리 체계를 완성할수 있습니다.
- 코드 커버리지 분석과 테스트 자동화를 함께 활용하여 프로젝트 계약 요구사항과 품질 요구사항을 효율적으로 충족할 수 있습니다.
- 임베디드 하드웨어와 실시간 운영체제 등 다양한 타겟 장비에서의 테스트를 지원하는 유연한 도구 구성을 제공합니다.
- 차별화된 정적 분석 기능과 아키텍처 검증을 결합해 시스템 개발 전 과정에서 소프트웨어의 일관성과 규정 준수를 유지할 수 있습니다.
- 테스트 결과를 한곳에서 관리하여 프로젝트 목표 대비 진행 상황을 시간의 흐름에 따라 쉽게 추적하고 파악할 수 있습니다.
복잡한 조달 절차를 거쳐야 하는 국방 프로젝트라면, Qt Group의 통합 툴체인이 해답이 될 수 있습니다. 접근이 제한적되고 보안이 엄격한 폐쇄 환경인 국방/방산 프로젝트를 위해 특별히 설계된 Qt Group의 솔루션으로, 필요한 도구를 하나의 공급업체를 통해 모두 갖춰 사용해 보세요.
검증된 소프트웨어 품질로 국방 계약 수주 경쟁력을 높이세요
국방 계약에서 소프트웨어 품질 관리는 단순히 규정을 준수하는 것만으로는 부족합니다. 약속한 결과를 제대로 납품할 수 있다는 신뢰를 심어주는 구체적인 근거가 되어야 합니다.
Qt Group의 통합 솔루션을 이용하면, 프로그램 매니저는 인증 기간을 단축하고 결함을 더 이른 단계에서 발견할 수 있습니다. 기술 책임자는 다양한 플랫폼에서 믿을 수 있는 테스트를 수행하고, 코딩 표준 준수 여부를 자동으로 점검할 수 있습니다. 엔지니어링 팀은 수작업 검증에 들이던 시간을 줄이고, 그만큼 혁신에 더 많은 시간을 쏟을 수 있습니다.
무엇보다 중요한 것은 확정 가격 계약 제안서의 신뢰도가 높아진다는 점입니다. 막연한 가정이 아니라 실제로 입증할 수 있는 품질 관리 프로세스가 제안서를 뒷받침하기 때문입니다.
결국 여러 업체의 도구를 "그럭저럭" 조합해 쓰는 방식으로는 국방 프로젝트의 까다로운 요구사항을 감당하기 어렵습니다. 국방 산업의 엄격한 계약 조건과 임무 수행에 필요한 높은 기준에 맞춰 설계된 Qt Group의 통합 솔루션을 통해 경쟁력을 높여보세요.
다음 단계
보안 환경에서 복잡한 임베디드 시스템을 개발하면서 규정 준수와 인증에 어려움을 겪고 계시거나, 소프트웨어 품질 테스트를 개선해야 하시나요?
Qt Group에 문의해 주세요. 귀사의 프로젝트 요구사항에 맞춰 함께 논의해 드리겠습니다.
문의하기