Proven by Intelligence
보이지 않는 안전을 인텔리전스로 증명하다.
기술 인사이트를 만나보세요.
오늘날의 소프트웨어 개발자들은 짧은 시간에 더 많은 코드를 제공하기 위해 지속적인 압력을 받고 있습니다. 특히, 임베디드 시스템이 진화하고 자동차 및 항공 전자 등의 산업 내에서 중요한 역할을 하고 있습니다.
그러나 빠르게 개발된 코드는 높은 수준의 품질을 기대하기 어렵습니다. 놓치는 부분이 있거나, 오 동작으로 인하여 다음과 같은 결과를 얻을 수 있습니다.:
- Lost revenue
- Unhappy customers
- Damaged brand reputation
- Sever injuries or death
- Delayed certification (delayed time to market)
개발자들은 시스템 시험의 충분성을 분석할 수 있어야 하며, 테스트되지 않은 코드 및 추적성이 없는 코드가 포함된 응용 프로그램이 출시되지 않도록 해야 합니다. 코드 커버리지 도구 덕분에, 개발자들은 상세한 코드 커버리지 정보를 통하여 편리하게 이러한 추적성을 분석할 수 있게 되었습니다. 이 정보를 통하여 테스트 작업의 효과를 측정 가능 하며, 테스트되지 않은 부분 및 추적성이 없는 코드에 대하여 식별할 수 있습니다. 보통 효과적인 코드 커버리지 도구들은 “How thorough is my testing?”이라는 질문에 대답하기 위하여 구현되었습니다.
이제 소프트웨어 개발자들이 코드 커버리지 도구를 채택해야 하는 몇 가지 이유에 대하여 살펴보겠습니다:
I 1. Ability to Test Thoroughly During New Development
효과적인 코드 커버리지 도구는, 단위 및 통합 시험부터 시스템 시험 전반에 걸쳐 코드 커버리지 측정 정보를 수집할 수 있어야 합니다. 이러한 방법을 이용하면 전체 테스팅 생명 주기에 대한 100% 코드 커버리지 달성도 현실이 될 수 있습니다.
I 2. Increased confidence in Existing Legacy Code
레거시 코드의 경우 단위 시험에 대한 Test Suites가 존재하기 어렵고, 그러한 Test Suites가 개발될 가능성은 낮습니다. 코드 커버리지 도구 및 기존의 시스템 Test Suites를 이용하여 레거시 코드를 테스트하는 경우, 보통 60~70% 정도의 코드 커버리지가 달성됩니다. 결과적으로, 새로 개발되어 추가된 코드와, 아직 테스트되지 않은 기존 레거시 코드만 단위 시험의 대상으로 남게 되기 때문에, 전체 응용 프로그램에 대한 현명한 단위 시험 접근 방법이 됩니다.
I 3. Easily Deployed Code Coverage Metrics
코드 커버리지 도구는 임베디드 타겟 기반의 시스템 시험에 대한 코드 커버리지 측정 정보를 사용자들이 쉽게 확인할 수 있게 합니다. 이것은 각각의 시스템 시험에 의해 응용 프로그램의 어느 부분이 실행되었는지 식별 가능 하게 하며, 더욱 중요한 것은 어떤 시험에 의해서도 한 번도 실행되지 코드 부분을 식별할 수 있다는 것입니다. 이러한 측정 정보를 공유하는 것은 일정에 최소한의 영향을 줄 만큼 간편하며, 매우 가치 있는 통계를 산출하여 품질 향상을 높이는데 매우 좋은 방법입니다.
I 4. Removing Testing Redundancies
최근 통계에서 평균 적으로 Test Suite의 25%가 중복된다고 합니다. 이 연구는 또한 소프트웨어의 테스트 중복 및 버그 사이의 상관 관계를 말합니다. 이것은 중복된 Test Cases가 직접 적으로 버그를 발생시키는 것은 아니지만, 확실히 시험 품질이 좋지 않다는 것을 의미합니다. 코드 커버리지는 Test Cases에 의해서 한 번도 실행되지 않은 부분 및 중복된 부분을 식별하는데 가장 큰 도움을 줄 수 있습니다. 그러므로 조직은 중복된 Test Cases를 제거하고 좀 더 가치 있는 Test Cases로 대체함으로써 그들의 Test Suite에 대한 품질을 향상시킬 수 있습니다.
I 5. Increased Confidence for Release
다른 무엇보다도, 코드 커버리지 도구는 소프트웨어를 출시하거나 인증을 위해 제출하기 전에 개발자 들에게 그들의 소프트웨어를 검사하기 위한 항목들을 제공합니다. 코드 커버리지가 소프트웨어 테스팅의 유일한 과정은 아니지만, 확실한 장점을 갖습니다. 강력한 코드 커버리지 시험 주기를 설계에 포함한다면 품질 목표를 만족시키는데 도움이 될 것입니다.
오늘날의 소프트웨어에서 품질의 수준을 높이는 것은 다양한 방법 및 개발 프로세스의 여러 단계에서 달성될 수 있습니다. 코드 커버리지 도구는 적용하기 쉽고 자동화된 방식으로 코드 실행에 대한 분석을 간편하게 제공합니다. 이 포스트에 게시된 장점들은 소프트웨어 개발 및 테스팅 프로세스의 모든 단계에 걸쳐 코드 커버리지의 긍정적인 효과들에 대하여 설명합니다.
해당 블로그 글에 대해 더 궁금하신 사항이 있으시다면 vectorcast@mdsit.co.kr으로 메일 남겨주세요!
혹시 VectorCAST에 대해 더 알고 싶으신가요? 💁
MDS인텔리전스는 매달 1회씩 VectorCAST 도구 기본 교육을 진행하고 있습니다!🙌
아래 링크를 통해 MDS인텔리전스 홈페이지를 방문하시어 도구 사용자 교육을 수강해 보세요!
훨씬 더 쉽게 VectorCAST를 활용하실 수 있습니다
MDS인텔리전스
소프트웨어 동적시험 및 커버리지 분석 자동화 솔루션, VectorCAST
E. vectorcast@mdsit.co.kr
