Thief of Wealth
Published 2019. 12. 23. 19:23
사이클로매틱 복잡도 개발/QA

SW품질관리에서 코드의 복잡한 정도를 수치화하면,

특정 기준 이상이면 조치를 취해 복잡도를 제어할 수 있다.


if/else/switch 등의 분기문을 많이 쓰면 복잡한 코드에 해당한다.


복잡한 정도를 수치화하는 방법 중 대표적인 것으로 사이클로매틱 복잡도가 있다.


- 사이클로매틱 복잡도

: 조건 복잡도라고도 불린다.


사이클로매틱 복잡도는 계산 방법에 따라서 여러가지로 나뉘는데 CC2라고 불리는 방법이 가장 엄격한 방법이다.


SW 공학에서 가장 보편적으로 사용되는 복잡도 측정 방법이기도 하며, 여기에 Boolean에 대한 복잡도 까지 함께 계산하는 것이 CC2이다.


CC2값이 높을 수록 코드가 복잡하다는 것을 의미한다.


CC2 = (Decision 수의 합) + (추가 Boolean 연산의 합) + 1


여기서 (Decision 수의 합)은 조건문(if, elseif, switch, while)의 개수,

(Boolean 연산의 합, &&, ||, ? 같은거)은 조건 연산자의 개수를 말한다.


CC2의 최소값은 1이고, 크기제한은 없다.



Construct

CC2 값의 변경

설명

if

+1

if문 하나에 1 증가

else if

+1

else if 문 하나에 1증가

else

0

else문은 복잡도에서 제외

switch case

case 하나당 +1

case문 하나에 1증가

switch default

0

default는 복잡도에서 제외

for

+1

for문하나에 1증가

while

+1

while문 하나에 1증가

do while

+1

do while하나에 1증가

try catch

+1

catch 하나에 1증가

try finally

0

finally는 복잡도에서 제외

Booleans

Boolean 연산당 +1

Boolean연산 하나에 1증가


'개발 > QA' 카테고리의 다른 글

TDD (테스트 주도 개발) 이란  (0) 2019.12.24
폭포수 모델 vs 애자일 방법론  (0) 2019.12.24
성능/부하/스트레스 테스트  (0) 2019.12.22
네이티브앱/하이브리드앱  (0) 2019.12.21
확인테스팅/회귀테스팅  (0) 2019.12.21
profile on loading

Loading...