7일차 : 2-2 통합구현

Dev_HG·2020년 7월 4일
0

모듈 구현

1. 단위 모듈 구현

1. 단위 모듈 구현의 개념

  • 소프트웨어 개발에 있어 기능을 분할하고 추상화하여 성능을 향상시키고 유지보수를 효과적으로 하기위한 단위 컴포넌트별 구현 기법이다.
  • 인터페이스 모듈, 데이터베이스 접근모듈 등 통합 구현에 필요한 단위에 컴포넌트를 구현한다.

2. 단위 모듈 구현 원리

[4가지]

  • 정보은닉(Information Hiding) : 어렵거나 변경 가능성이 있는 모듈을 타 모듈로부터 은폐
  • 분할과 정복(Divide & Conquer) : 복잡한 문제를 분해, 모듈 단위로 문제 해결
  • 데이터 추상화(Data Abstraction) : 각 모듈 자료 구조를 액세스하고 수정하는 함수내에 자료 구조의 표현 내역을 은폐
  • 모듈 독립성(Module Inpendency) : 낮은 결합도와 높은 응집도를 가짐

3. 단위 모듈 구현 대상

  • 단위 모듈은 화면 모듈, 화면에서 입력받은 데이터 처리를 위한 서비스 컴포넌트, 비즈니스 트랜잭션 컴포넌트 등이 이싿.
  • 통합 구현에서 단위 모듈 구현은 상세 설계된 단위 모듈, 환경 변수를 실제 프로그래밍 언어로 구현한다.
    cf : 환경변수 : 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 모임이다.

2. 단위 모듈 테스트

1. 단위 모듈 테스트의 개념

  • 단위 모듈 테스트를 위해 IDE(Integrated Development Environment)도구를 활용하여 개별 단위 모듈에 대한 디버깅을 수행
  • 단위 모듈 테스트는 화이트 박스 기법을 사용한다.
    cf: 화이트박스(Whitebox) 기법 : 화이트 박스 기법은 프로그램의 로직을 이해하고, 내부 구조화 동작을 검사하는 소프트웨어 테스트 방식을 말한다.

2. 단위 모듈 테스트의 종류

1. 화이트박스 테스트

  • 단위 모듈 테스트의 가장 기본적 방법은 모듈 내부의 소스를 보면서 수행하는 화이트 박스 테스트
  • 소스 코드를 보면서 테스트 케이스를 다양하게 만들어 테스트를 수행

2. 메소드 기반 테스트

  • 단위 모듈의 외부에 공개된 메소드 기반의 테스트
  • 메소드에 서로 다른 파라미터 값을 호출하면서 다양한 테스트를 수행

3. 화면 기반 테스트

  • 사용자용 화면이 있는 경우, 각각의 화면단위로 단위 모듈을 개발 후에 화면에 직접 데이터를 입력하여 테스트를 수행
  • 화면 기반 테스트는 화면과 연계된 서비스, 비즈니스 컴포넌트 및 공통 컴포넌트를 한꺼번에 단위 모듈 테스트에 참여
  • 사용자 시나리오에 기반한 단위 모듈 테스트를 할 수 잇는 장점이 있음

4. 테스트 드라이버(Driver)/ 테스트 스텁(Stub)

  • 기능을 테스트할 수 있는 화면 또는 하위 모듈이 구현 되지 않은 경우 테스트 드라이버, 테스트 스텁을 통해 테스트를 수행
  • 테스트 드라이버는 하위 모듈은 있지만 상위 모듈은 없는 경우 사용하는 기법이며, 테스트 스텁은 상위 모듈은 있지만 하위 모듈은 없는 경우

3. 단위 모듈 테스트 커버리지

1. 테스트 커버리지 개념

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

2. 테스트 커버리지 유형

  • 대표적인 테스트 커버리지 유형은 구문 커버리지, 결정 커버리지, 조건 커버리지로 구분 된다.

[테스트 커버리지 유형]

1. 구문 커버리지

  • 프로그램 내 모든 문장을 적어도 한 번 이상 실행하는 것을 기준으로 수행하는 테스트 커버리지
  • 조건문 결과와 관계없이 구문 실행 개수로 계산

2. 결정 커버리지

  • 결정 조건 내 전체 조건식이 최소한 참/거짓 한 번의 값을 가지도록 측정하는 테스트 커버리지

3. 조건 커버리지

  • 전체 조건식 결과와 관계없이 각 개별 조건식이 참/거짓 한 번 모두 한 번씩 갖도록 조합하는 테스트 커버리지

4. 조건/결정 커버리지

  • 전체 조건식이 참/거짓 한 번씩 가지면서, 개별 조건식이 참/거짓 모두 한 번씩 갖도록 조합하는 테스트 커버리지

5. 변경 조건/결정 커버리지

  • 각 개별 조건식이 다른 개별 조건식의 영향을 받지 않고 전체 조건식의 결과에 독립적으로 영향을 주도록 함으로써 조건/결정 커버리지를 향상시킨 테스트 커버리지

6. 다중 조건 커버리지

  • 결정 조건 내 모든 개발 조건식의 모든 가능한 조합을 100% 보장하는 테스트 커버리지

4. 소스 코드 커버리지 사례

1. 구문 커버리지

if(a>0 and b>0) or (C>D)
then value = value + add; --------------------1
else
then value = value + add; --------------------2

2. 결정 커버리지

  • 결정 커버리지는 A,B,C,D값 관계없이 전체 조건식이 참/거짓이면 된다.
  • 조건 커버리지는 전체 조건식과 관계없이 A,B,C,D 값에 의해 개별 조건식이 참/거짓 한 번씩을 갖도록 수행

3. 조건 커버리지

  • 조건 커버리지는 개별 조건식 참/거짓의 모든 값을 갖게 되는 경우 달성되는 커버리지 이다.

4. 조건/결정 커버리지

  • 조건 커버리지와 결정 커버리지를 최소한의 조합으로 달성하는 경우이다.
  • 모든 개별 조건식이 참이고, 전체 조건식이 참일 경우와, 모든 개별 조건식이 거짓이면서, 전체 조건식이 거짓일 경우를 의미한다.
profile
꾸준함

0개의 댓글