일학습 병행 SW개발_L3 훈련과정

[NCS 모듈] 애플리케이션 배포-애플리케이션 소스 검증(2)

faring 2024. 12. 9. 14:53
반응형
SMALL

 

애플리케이션 소스 검증

 

소스코드 검증도구

1. 검증도구의 구분 

소스코드 검증도구는 구현된 SW를 실행하지 않고 테스트하는 정적 테스트 도구와 구현된 SW를 실행하여 동작을 보면서 테스트하는 동적 테스트 도구로 구분.

2. 소스코드 검증도구의 용도

    (1) 정적 테스트 도구 사용 목적

          테스트하기 전에 코딩 오류, 성능 저하, 보안 취약점 등의 결함을 조기에 발견할 수 있도록 지원함으로써 개발의 생산성을 

          향상 시키고, 운영환경에서 프로그램의 품질 향상을 제고하며, 정량적은 품질 관리시스템을 구축하게 함.

    (2) 동적 테스트 도구 사용 목적 

          테스트 미수행 코드를 확인하고 분기문 등 특정 유형의 코드 구조가 충분히 테스트 되었는지를 확인하여 추가적인 테스트를

          진행함으로써 애플리케이션의 안정성을 제고하고, 소스 품질 관리 활동을 할 수 있는 정량적인 품질 관리시스템을 구축할 수

          있게 한다.

 

코드 인스펙션(Code Inspetion)

 

정적 테스트의 가장 일반적인 유형으로 사전에 정의된 코드 작성 규칙 기반으로 소스코드를 점검하여 작성 규칙에 위반되는 소스코드를 추출하는 분석 도구로 애플리케이션 개발 시 대부분 사용되며, 빌드 도구와 연계하여 빌드 배포 수행 시 자동적으로 점검 가능.

 

1.코드 인스펙션 Rule 유형

   (1) 성능 개선

         애플리케이션 성능에 영향을 미칠 수 있는 코드를 점검하는 Rule이다. 

   (2) 코드 작성 규칙

         개발언어에 사전에 정의된 작성 규칙 또는 프로젝트 내에서 정의된 프로그램 명명규칙의 준수 여부를 점검하는 Rule이다.

   (3) 에러 발생 가능성

         애플리케이션 동작 중 에러 발생 가능성이 있는 코드를 점검하는 Rule이다.

2. 코드 작성 Rule 심각도 구분(예시)

    (1) 필수, Blocker

          에러 발생 가능성이 매우 높거나 메모리 누수가 발생되는 코드로, 반드시 수정되어야 하는 위반 사항을 말한다.

    (2) 권고 상, Critical

          에러 발생 가능성이 높거나 일반적으로 수정되어야 하는 심각한 위반 사항을 말한다.

    (3) 권고 중, Major

          에러 발생이 있거나 수정을 권고하는 중요 위반 사항을 말한다.

    (4) 권고 하, Minor

          소스코드의 가독성, 유지보수성 향상을 위해 수정을 권고하는 위반 사항을 말한다.

    (5) 정보, Info.

          정보성으로 제공되는 위반 사항으로 개발자가 참고하여 적용할 수 있다.

3. 정규 표현식 (Regular Expression)

정규 표현식은 특정한 규칙을 가진 문자열의 집합을 표현하는 범용적인 방식을 말한다.

메타 문자 의미  설명
. 문자 1개의 문자와 일치한다. 단일행 모드에서는 새줄 문자를 제외한다.
[] 문자 클래스 ''["과 "]" 사이의 문자 중 하나를 선택한다. "|"를 여러 개 쓴 것과 같은 의미이다.
[^] 부정 클래스 안의 문자를 제외한 나머지를 선택한다.
^ 처음 문자열이나 행의 처음을 의미한다.
$ 문자열이나 행의 끝을 의미한다.
() 하위식 여러 식을 하나로 묶을 수 있다.
\n 일치하는 n번째 패턴 일치하는  패턴들 중 n번쨰를 선택하며, 여기에서 n은 1에서 9 중 하나가 올 수 있다.
* 0회 이상 0개 이상의문자를 포함한다.
{m,n} m회 이상 n회 이하 {1,3}b"는 "ab", "aab", "aaab"를 포함하지만, "b"sk "aaaab"는 포함하지 않는다.

          

테스트 프레임워크(동적 분석 도구)의 구성

 

테스트 케이스를 별도의 테스트 코드로 작성하고 동작시킬 수 있는 환경을 제공하는 도구로, 개발자의 반복적이고시간이 많이 소요되는 테스트 작업을 자동화하여 테스트에 소요되는 시간과 노력을 절감할 수 있게 한다.

 

1. 테스트프레임워크의 구성

    (1) 테스트 코드

         테스트 코드 작성 및 자동화된 운영환경을 구성한다.

    (2) 테스트 저장소

          테스트 수행을 위한 테스트 코드, 테스트 데이터, 관련 테스트 스크립트, 테스트 수행 결과를 저장, 관리한다.

2. Junit 테스트 프레임워크

Java, 오픈소스 기반의 테스트 픞레임워크로 Java 개발환경의 범용적인 표준으로 사용되며(Eclipse 개발 도구에 기본 내장 기능),

Assert 함수를 제공한다.

제공 함수 설명
assertArrayEquals(a,b) 배열 a와 b가 일치함을 확인
assertEquals(a,b) 객체 a와 b가 일치함을 확인
assertSame(a,b) 객체 a와 b가 같은 객체임을 확인
assertTrue(a) a값이 참인지 확인
assertNotNull(a) 객체 a가 null이 아님을 확인

         

 

2024.12.09 - [분류 전체보기] - [NCS 모듈] 애플리케이션 배포 - 애플리케이션 배포환경 구성하기(1)

 

[NCS 모듈] 애플리케이션 배포 - 애플리케이션 배포환경 구성하기(1)

애플리케이션 배포환경 구성 소스코드 빌드 과정의 이해 빌드는 소스코드를 실행할 수 있는 상태로 변환하는 과정을 말하며, 프로그래밍 언어의 유형에 따라 빌드 과정이 상이하다. 1. 컴파일

faring.tistory.com

*NCS 모듈 참조

반응형
LIST