누락된 코드 커버리지를 정당화하는 Testwell CTC++ 10.1

min Read

CTC++ v10.1 신규 기능 – Justifications

Verifysoft는 새로운 기능인 “Justifications”를 포함한 Testwell CTC++ 10.1 버전을 출시했습니다.
이제 누락된 커버리지는 정당화될 수 있으며 이러한 Justification은 모든 커버리지 측정에 투명하게 영향을 미칩니다. Justification은 소스 코드 주석이나 설정 파일에 직접 입력할 수 있으며, Justification과 함께 개요에서 그룹화된 프레젠테이션에 사용되는 태그와 설명이 연관됩니다.

이와 같은 기능이 추가된 주된 이유는 실제 테스트 상황에서 여러 가지 이유로 100% Coverage를 달성하기가 매우 어렵기 때문입니다. 실제 모든 코드를 커버할 수 있는 테스트케이스를 작성하거나 이를 테스트하는 것은 매우 힘듭니다. 또한 Coverage Level이 높아질수록 Coverage 비율을 올리기도 더욱 힘든 실정이며, Function Coverage로 계측하여 Test Coverage를 달성하는 것과 Decision/Condition Coverage를 달성하는 것은 테스트케이스의 증가와 더 많은 테스트가 필요로 해질 수 있습니다.

이와 같은 이유로 추가된 ‘Justification’은 소스 코드의 구조화된 주석이나 텍스트 파일에 수집된 근거를 사용하여 TestwellCTC++로 누락된 coverage를 정당화할 수 있습니다.

커버리지
Source: www.verifysoft.com | Screenshot of the Code Coverage Analyzer Testwell CTC++

Code Coverage Analyzer Testwell CTC++의 스크린샷에서는 테스트된 코드 부분이 녹색으로 표시되며 테스트되지 않은 코드가 빨간색으로 표시됩니다. 477번째 줄의 코드는 테스트되지 않은 코드입니다. (왼쪽에 빨간색 표시로 알 수 있습니다.)
그러나 이 줄의 코드는 테스트할 수 없다는 정당화가 삽입되어 있습니다. 이 ‘Justification’ 코드 부분은 파란색으로 표시됩니다.

Overview Pie 차트에서는 테스트된 코드는 짙은 파란색, 정당화된 부분은 밝은 파란색, 테스트 되지 않은 코드는 옅은 빨간색으로 표시됩니다. Statement Coverage의 목표 값은 약 60%로 설정되어 있습니다. 따라서 60%를 초과하는 부분은 회색으로 표시됩니다.

‘Justification’을 적용하는 방법은 두 가지 방법이 존재합니다. 하나는 Source code 파일에 Cover하고자 하는 라인에 주석을 추가하여 적용하는 방식입니다. 그리고 다른 방법으로는 Justification 설정 파일에 추가하는 방식입니다. Source code 파일 경로와 Cover하고자 하는 라인 및 주석을 입력하면 됩니다.

다음은 각각의 예시입니다:

Source code 파일에 주석으로 추가

switch (month) {
         case JANUARY: …
         …
         case DECEMBER: …
         default: // CTC++ Justify | DefensiveDefaults: Function call is only performed with proper enumeration – reviewed.

Justification 설정 파일에 추가

@C:\users\chandlerbing\dev-projects\alpha\src\transponster.c
122 True      |DEFENSIVE: Must be present because of development guideline, never reached.
198 False | Endless Loop: Part of system design.
621                |DEFENSIVE: Default cannot be reached, enumeration used.

@C:\users\chandlerbing\dev-projects\alpha\src\wenus.c
13 Function | SmallFunction: No test needed due to low complexity.

또한 Justification이 포함된 HTML Report는 Justification 설정 파일에 새로운 Justification을 올바른 형식으로 수집하기 위해 클립보드를 통한 보조 기능을 제공합니다.

코드 커버리지
Source: www.verifysoft.com | Justification Files

새로워진 v10 New Report

01. 개편된 디자인 – Overview Page

10.x 버전이 Release 되면서 HTML Report가 완전히 새로워졌습니다. Text 위주와 Bar Chart만 지원하던 Old Version의 Overview Page와는 다르게 Pie 차트와 Bar 차트를 이용하여 심플하고 직관적으로 출력되게 변경되었습니다. 또한 각 Coverage Level 별로 각 커버율을 볼 수 있도록 하여 Overview에서 전체적인 상황을 한 눈에 확인할 수 있습니다.

v9.x Old Report – Overview Page

코드 커버리지
Source: www.verifysoft.com | HTML Report: Summaries

v10.x New Report – Overview Page

Source: www.verifysoft.com | HTML Report: Overview

02. Data Table 정렬

Overview 및 Detail Page에서 Coverage Data Table을 커버리지 비율이나 누락된 Hit 수에 따라 정렬 할 수 있습니다. Report 생성 시, 테이블의 엔터티는 알파벳 순서(디렉토리 및 파일)와 소스 파일에 나타나는 순서(함수)대로 정렬됩니다.

Source: www.verifysoft.com | HTML Sorting of the Data Table

03. Detail Page

Detail Page는 Overview Page의 한 엔터티와 하나 또는 두 개의 세부 수준에 대한 커버리지를 표 형식으로 나타냅니다. 또한 페이지 하단에 Overview Page와 다른 모든 Detail Page로 돌아갈 수 있는 링크가 포함된 탐색 막대가 있습니다.

코드 커버리지
Source: www.verifysoft.com | HTML Report: Detail Page

04.  Source Code View

Source Code View Page에는 해당 파일에 대한 커버리지 정보와 결합된 한 파일의 Source Code가 표시됩니다. 이미지의 2번과 같이 카운터는 두 개의 열로 표시됩니다. True로 실행 된 경우와 False로 실행된 경우를 모두 체크하여 해당 카운터로 집계 및 표시됩니다. 그리고 이미지의 4번과 같이 복잡한 커버리지 측정을 위한 추가적인 커버리지 정보가 제공됩니다.

Source: www.verifysoft.com | HTML Report: Source View

05.  Highlighting Counters

여러 개의 구조적 커버리지 측정이 보고된 경우, 특정 카운터를 강조하여 하나의 측정에 대한 커버리지 계산을 표시하여 출력합니다. 기본적으로 선택된 커버리지 측정을 위한 모든 사용 가능한 카운터가 강조 표시됩니다. 메뉴에서 보고서의 구조적 커버리지 측정 중 하나를 대신 선택할 수 있으며 선택한 측정에 기여하는 카운터는 강조 표시되고 관련 없는 카운터는 흐려져서 표시됩니다.

코드 커버리지
Source: www.verifysoft.com | Source View: Highlighting Counters

Get more insights into Testing & Security

빠르게 업데이트 되는 솔루션 인사이트에 대해 탐구해보세요 !

Jingoo Kim

Subscribe for the Latest News!

 
123
Edit Template