단위모듈 테스트

2020. 7. 22. 10:45컴퓨터언어/소프트웨어공학

728x90
반응형

 

👍 단위모듈이란?

단위모듈은 소프트웨어 구현에 필요한 여러 동작 중 "한" 가지 동작을 수행하는 기능을 모듈로 구현한 조각이다.

즉 n개의 단위모듈이 합쳐지면 n개의 기능을 구현할 수 있다.

단위모듈의 구성 요소로는 처리문, 명령문, 데이터 구조 등이 있고, 각 단위모듈은 독립적인 컴파일이 가능하며 다른 모듈에 호출되거나 삽입되기도 한다.

 

👊 단위모듈의 구현

 

단위모듈 구현이란, 비즈니스 컴포넌트, 내외부 인터페이스 모듈, 데이터베이스 접근 모듈 등 통합구현이 필요한 단위 컴포넌트를 구현하는 것을 말한다.

구현 시에는 응집도는 높이고 결합도는 낮춰야 하며, 공통모듈을 먼저 구현해 재사용성을 높이며, 항상 예외처리 로직을 포함해야 한다.

단위모듈을 구현하기 위해서는 단위 기능 명세서를 작성하고 입출력기능과 알고리즘을 구현해야 한다.

 

🙌 단위 기능 명세서 작성

복잡한 시스템을 단순하게 추상화한다.

대형 시스템을 분해하여 단위 기능별로 구분하고, 각 기능들을 계층적으로 구성하는 구조화 과정을 거친다.

각 모듈의 독립성을 위해 정보 은닉의 원리를 고려한다.

 

🙌 입출력 기능 구현

단위모듈 간 연동 또는 통신을 위한 입출력 데이터를 구현한다.

입출력 기능 구현 시에는 사용자 인터페이스인 CLI, GUI와의 연동을 고려하며, 네트워크나 외부장치와의 입출력은 Open Source API를 사용하면 편하다.

 

🙌 알고리즘 구현

입출력 데이터를 바탕으로 단위기능 별 요구사항들을 구현 가능한 언어를 이용하여 모듈로 구현한다.

알고리즘 구현 단계에서는 구현된 단위 기능들이 사용자의 요구와 일치하는지 확인하는 과정이 필요하다.

구현되는 모듈은 단위기능의 종류에 따라 다음과 같이 구분된다.

 

  • 디바이스 드라이버 모듈 : 하드웨어 주변장치의 동작을 구현한 모듈
  • 네트워크 모듈 : 네트워크 장비 및 데이터 통신을 위한 기능을 구현한 모듈
  • 파일 모듈 : 컴퓨터 내부의 데이터 구조 영역에 접근하는 방법을 구현한 모듈
  • 메모리 모듈 : 파일을 프로세스의 가상 메모리에 매핑/해제하는 방법, 프로세스 사이의 통신 기능을 구현한 모듈
  • 프로세스 모듈 : 하나의 프로세스 안에서 다른 프로세스를 생성하는 방법을 구현한 모듈

 


👍 단위모듈 테스트란?

단위모듈 테스트란, 컴퓨터 프로그래밍에서 소스코드의 특정 모듈이 의도된 대로 정확히 작동하는지 검증하는 절차를 말한다.

테스트 방법으로는 다음이 있다.

 

🙌 화이트박스 테스트

단위모듈 테스트의 가장 기본적인 방법

모듈 내부의 소스코들르 보면서 테스트 케이스를 다양하게 만들어서 테스트

 

🙌 메서드기반 테스트

단위모듈의 외부에 공개된 메서드를 기반으로 테스트

메서드에 파라미터 값을 다르게 호출하면서 다양한 테스트 수행

 

🙌 화면기반 테스트

사용자용 화면이 있는 경우, 각각의 화면 단위로 단위모듈 개발 후 화면에 직접 데이터를 입력하며 테스트 수행

화면과 연계된 서비스 컴포넌트, 비즈니스 컴포넌트 및 공통 컴포넌트를 한꺼번에 단위 테스트에 참여시킬 수 있음

사용자 시나리오에 기반한 단위모듈 테스트

 

🙌 스텁과 드라이버 활용 테스트

사용자용 화면이 없는 경우 또는 서비스 컴포넌트, 비즈니스 컴포넌트 등 하위 모듈 개발이 안된 경우 스텁과 드라이버를 활용하여 테스트 수행

 


👍 소스코드 커버리지란?

프로그램의 테스트 수행 정도를 나타내는 값으로, 테스트 수행의 완벽성을 측정하는 도구

 

기법 설명
구문 커버리지(Statement) 소스코드 구문에 대한 단순한 실행여부 측정
조건문의 결과와 관계없이 실행된 개수로만 계산
결정 커버리지(Decision) 결정 조건 내의 전체 조건식이 최소한 참/거짓 한번의 값을 가지도록 측정
조건 커버리지(Condition) 전체 조건식의 결과와 관계없이 각 개별 조건식이 참/거짓 한번 모두 갖도록 조건식을 조합
조건/결정 커버리지(Condition/Decision) 전체 조건식이 참/거짓 한번씩 가지면서, 개별 조건식이 참/거짓 모두 한번씩 갖도록 조합
변경조건/결정 커버리지(Modified ~) 각 개별 조건식이 다른 개별 조건식에 무관하게 전체 조건식의 결과에 영향
다중조건 커버리지(Multiple Condition) 결정 조건 내의 모든 개별 조건식의 모든 가능한 논리적 조합
728x90
반응형