ASPICE 기본 이론

번외. SWE.4에서 등장하는 검증 용어

아즈마민초 2024. 1. 22. 15:58

SWE.4의 BP를 보면 

static analysis, code review, unit test라는 용어가 나오는데 이를 간단히 구분하겠다

먼저

 

<static analysis>

소스코드의 실행 없이 정적으로 프로그램의 문제를 찾는 과정을 의미함. (동적 분석은 런타임 환경에서 작동하지만 정적 분석은 비 런타임 환경에서 수행됨), 정적 분석은 코드 스멜(소스 코드에서 문제가 일어날 가능성이 농후한 특징을 지닌 소스코드)을 미리 적발하는데 매우 좋은 기법이다. 그 이유는 정적 분석은 동적 분석과 다르게 소스코드가 완성되어 있지 않더라도 분석이 가능하고 이미 많은 실무 현장에서 발생했던 사례로부터 코드 스멜이 일어나는 곳에 대한 패턴이 파악이 되어 있기 때문이다.

대표적인 코드스멜은 다음과 같다

○잠재적으로 버그가 발생할 수 있는 코드 ○안티 패턴 ○ 코드 스타일(관습적인) 위반 여부 ○ 사용되지 않는 코드 ○ 잠재적 보안 취약점 ○ 오타 ○ 성능 문제

 

<code review>

소스코드를 동료들과 검사 및 평가를 하는 과정임. 일반적으로 이 구성원들은 중재자, 품질 엔지니어, 관리자 ,동료 소프트웨어 개발자로 구성됨. 보통 이루어지는 행위는 코드 복잡도를 평가하고, 논리적 또는 프로그래밍적 오류를 찾고, 코딩 표준(MISRAC)같은 준수 여부를 검사 거기에 정적 코드 분석툴은 코드 리뷰를 보조하는데 쓰임

 

<unit test>

프로그램을 작은 단위로 쪼개고 각 단위가 정확하게 동작하는지 그리고 문제 발생 시 정확하게 어느 부분이 잘못되었는지를 재빨리 확인할 수 있도록 프로그램의 각 부분을 고립시켜서 가각의 부분이 정확하게 동작하는지 확인하는 것.

유닛 테스트 활동에는

○ 논리 검사, ○ 경계 검사, ○ 오류 처리, ○ 객체 지향 검사 등이 있다. 이 중 논리 검사는 매우 정밀한 검사지만 그만큼 매우 많은 리소스가 소모된다. 논리검사는 소스코드로 작성된 의도된 경로를 올바르게 따르고 있는지를 보는 것이다.

경계 검사는 주어진 입력에 대하여 시스템이 어떻게 출력을 하는지 보는 것으로 비교적 리소스가 적게 든다.

 

'ASPICE 기본 이론' 카테고리의 다른 글

번외. 요구사항 분석에 대하여  (0) 2024.01.24
SWE.4  (0) 2024.01.22
SWE.2  (0) 2024.01.18
SWE.1  (0) 2024.01.15
SYS.5  (0) 2024.01.12