Clean & Blue 자세히보기

전공/정보처리기사 실기

정보처리기사 실기 - 6. 애플리케이션 테스트 관리(1) /테스트케이스/정적•동적테스트/화이트박스/블랙박스

_청렴 2021. 4. 24. 00:09
반응형

1) 애플리케이션 테스트케이스 설계하기

- 애플리케이션 테스트 케이스 작성

- 소프트웨어 테스트 : 소프트웨어의 결함을 적극적으로 찾아내는 활동

 -> 테스트 : 알려지지 않은 에러의 발견, 시스템 내부 관련자, 외부의 제3자

 -> 디버깅 : 이미 알고 있는 에러의 수정, 에러의 정확한 위치 파악, 에러 타입 식별, 에러 수정 -> 시스템 내부 관련자

 

- 소프트웨어 테스트 필요성

  • 오류 발견 관점
  • 오류 예방 관점
  • 품질 향상 관점

 

* V모델

V 모델
V 모델

- 소프트웨어 테스트의 기본 원칙

- 테스팅은 개발 초기에 시작 : 소프트웨어 개발 생명 주기의 각 단계에 맞춰 전략적으로 접근하는 것을 고려하라는 의미

- 테스팅은 결함이 존재함을 밝히는 활동 : 결함이 발견 되지 않아도 결함이 없다고 증명할 수 없음

- 완벽한 테스팅은 불가능

- 결함 집중 : 결함의 대부분은 소수의 특정한 모듈에 집중되어 존재(파레토의 법칙)

- 살충제 패러독스 : 동일한 테스트 케이스로 반복 실행하면 결함을 발견할 수 없으므로 주기적으로 테스트 케이스를 리뷰하고 개선해야 함

- 테스팅은 정황에 의존

- 오류-부재의 궤변 : 오류를 발견하고 그 오류를 제거하였다 해도 해당 애플리케이션의 품질이 높다고 말할 수 없음

- 소프트웨어 테스트 프로세스

소프트웨어 테스트 프로세스 5단계
소프트웨어 테스트 프로세스 5단계

 

- 소프트웨어 테스트 산출물

  • 테스트 계획서
  • 테스트 케이스
  • 테스트 시나리오
  • 테스트 결과서

 

- 소프트웨어 테스트의 유형

- 프로그램 실행 여부에 따른 실행

  • 정적 테스트 : 프로그램의 실행 없이 소스코드의 구조를 분석하여 논리적으로 검증하는 테스트
  • 동적 테스트 : 프로그램의 실행을 요구하는 테스트로 화이트박스, 블랙박스 테스트가 있음

 

- 테스트 기법에 따른 유형

 

- 화이트박스 테스트 : 프로그램의 내부 로직(수행 경로 구조, 루프 등)을 보면서 테스트를 수행

  • 문장 커버리지 : 프로그램을 구성하는 문장들이 최소한 한번은 실행 될 수 있는 입력 값을 테스트 케이스로 선정
  • 분기/결정 커버리지 : 프로그램에 있는 분기를 최소한 한번은 실행하게 하는 테스팅 방법
  • MC/DC : 조건 커버리지와 분기 커버리지를 보완해서 만든 커버리지, 각 개별 조건식이 다른 개별 조건식에 영향을 받지 않고 전체 조건식의 결과에 독립적으로 영향을 주도록 함, 다른 상태들의 변동이 없으며 자신의 상태가 변경 되었을 때 결과 값에 영향을 미치는 경우 해당 상태는 MC/DC를 만족한다 할 수 있음
  • 다중 조건 : 전체 조건식의 조건을 검사하는 테스트 케이스를 만드는 방법
  • 기본 경로 테스트 : 프로그램의 제어 구조를 플로우 그래프로 표현 -> 순환 복잡도를 통해 독립적인 경로의 수를 찾아 테스트 케이스를 추출하는 기법

 

* 순환복잡도 : 프로그램 복잡도를 측정하는데 이용, 컴포넌트를 통한 경오릐 수를 측정하며 조건부 분기의 수와 복장성에 의해 결정

  • V(G) = E-N+2 = R = P+1
  • V(G) : 순환복잡도
  • E : 엣지의 수
  • N : 노드의 수
  • R : 화살표와 노드로 둘러싸인 구역
  • P : 분기의 수

 

- 블랙박스 테스트 : 프로그램의 외부 사용자 요구사항 명세를 보면서, 주로 구현된 기능을 테스트 -> 명세 기반 기법

 

동등 분할 클래스 : 입력값의 범위를 유사한 특징을 갖는 동등 그룹으로 나누고 각 그룹마다 대표값을 선정하여 테스트 케이스를 생성하는 방식

 

경계값 분석 : 경계값에 기반하여 테스트 케이스를 설계, 등가 분할된 경계의 유효한 값과 경계에서 가장 가까운 유효하지 않은 값을 테스트 데이터로 선택하여 컴포넌트나 시스템을 테스트 하는 기법

 -> 개발자가 분할된 경계값을 처리하면서 개발 상의 실수 가능성이 높다는 것에 착안

 

도메인 테스트 : 입력 변수들 간에 상관관계가 존재하는 경우 그 관계에 따라 영역을 분할하고 테스트 케이스를 도출하는 방법

  • ON 포인트 : 경계에 있는 값
  • OFF 포인트 : 경계에 있지 않은 경계에 가까운 값
  • IN 포인트 : 경계에 있지 않은 경계 조건을 만족하는 값
  • OUT 포인트 : 경계에 있지 않은 경계조건을 만족하지 않는 값

 

Pairwise 테스트 : 대부분의 결함이 2개 이상 요소의 상호작용에 기인한다는 것에 착안

-> 테스트의 필요한 각 요소의 값들이 다른 값들과 최소한 한번씩은 조합을 이루게 함

 

상태 전이 테스트 : 테스트 대상 시스템이나 객체의 상태를 구분

-> 이벤트에 의해 어느 한 상태에서 다른 상태로 전이되는 경우의 수를 테스트 케이스로 구성

 

결정 테이블 기반 테스트 : 입출력값이 True, False로 결정될 수 있는 모든 경우의 수를 확인해볼 수 있는 방법

 

- 그레이박스 테스트 : 소프트웨어의 내부 구조의 일부만 알고 수행하는 테스트로 블랙박스 시험과 화이트 박스 시험이 혼합된 방식의 시험 형태

 

- 테스트에 대한 시각에 따른 유형

  • 검증(Verification) : 제품의 생산과정을 테스트 -> 올바른 제품을 생산하고 있는지
  • 확인(Validation) : 생산된 제품의 결과를 테스트 -> 생산된 제품이 정상적으로 동작하는지

 

- 테스트 목적에 따른 유형

  • 회복테스트 : 시스템에 고의로 실패를 유도하고 시스템이 정상적으로 복귀하는지
  • 안전테스트 : 소스코드 내의 보안적인 결함을 미리 점검하는 테스트
  • 강도테스트 : 과다 정보량을 부과하여 과부하시에도 시스템이 정상적으로 작동되는지 점검
  • 성능테스트 : 시스템이 응답하는 시간, 측정시간 내에 처리하는 업무량, 사용자 요구에 시스템이 반응하는 속도 등
  • 구조테스트 : 내부 논리 경로, 소스코드의 복잡도를 평가
  • 회귀테스트 : 변경 또는 수정된 코드에 대하여 새로운 결함 발견 여부를 평가
  • 병행테스트 : 변경된 시스템과 기존 시스템에 동일한 데이터를 입력 후 결과를 비교

 

- 테스트 종류에 따른 유형

  • 명세 기반 테스트 : 주어진 명세를 빠짐 없이 테스트케이스로 구현하고 있는지
  • 구조 기반 테스트 : 소프트웨어 내부 논리 흐름에 따라 테스트 케이스를 작성하고 있는지
  • 경험 기반 테스트 : 유사 소프트웨어나 유사 기술 평가에서 테스터의 경험을 토대로 함, 직관과 기술 능력을 기반

- 테스트 케이스와 테스트 오라클의 이해

- 테스트 케이스의 개념 : 명세 기반 테스트의 설계 산출물

 -> 설계된 입력 값, 실행 조건, 기대 결과로 구성된 테스트 항목의 명세서

 

-> 테스트 계획 검토 및 자료확보 -> 위험 평가 및 우선순위 결정 -> 테스트 요구사항 정의 -> 테스트 구조 설계 및 테스트 방법 결정 -> 테스트 케이스 정의 -> 테스트 케이스 타당성 확인 및 유지보수

 

- 테스트 오라클 : 테스트의 결과가 참인지 거짓인지 판단하기 위해 사전에 정의된 참 값을 입력하여 비교하는 기법 및 활동

  • 참 오라클 : 모든 입력 값에 대하여 기대하는 결과를 생성함 -> 발생된 오류를 모두 검출
  • 샘플링  오라클 : 특정한 몇개의 입력 값에 대해서만 기대하는 결과를 제공
  • 휴리스틱 오라클 : 샘플링 오라클을 개선한 오라클 -> 특정 입력 값외 나머지 값들에 대해서는 휴리스틱(추정)으로 처리
  • 일관성 검사 오라클 : 애플리케이션 변경이 있을 때, 수행 전과 후의 결과 값이 동일 한지

 

- 애플리케이션 테스트 시나리오 작성

- 테스트 시나리오 : 테스트 수행을 위한 여러 텥스트 케이스의 집합

 -> 테스트 케이스의 동작 순서를 기술한 문서, 테스트를 위한 절차를 명세한 문서

 -> 유의점 : 테스트 항목을 하나의 시나리오에 모두 작성하지 않고 시스템별, 모듈별, 항목별 테스트 시나리오를 분리하여 작성 -> 식별자 번호, 문서 번호, 테스트 데이터, 테스트 케이스, 예상 결과, 확인 등의 항목을 포함

 

- 테스트 환경 구축 : 실제 운영 시스템과 동일 또는 유사한 사양의 하드웨어, 소프트웨어, 네트워크 등의 시설을 구축하는 활동

 

- 테스트 데이터 : 프로그램의 기능을 하나씩 순번에 따라 확실하게 테스트 할 수 있도록 조건을 갖춘 데이터 -> 테스트를 효율적, 데이터 기밀 유지, 신뢰 및 예측 가능한 테스트

 -> 테스트 데이터 유형

  • 실제 데이터 : 선행된 연산에 의해 얻어진 것
  • 가상의 데이터

 

 

정보처리기사 실기 - 6. 애플리케이션 테스트 관리(2) /통합테스트/테스트자동화/결함관리

2) 애플리케이션 통합 테스트하기 •통합 테스트 소프트웨어 각 모듈간의 인터페이스 관련 오류 및 결함을 찾아내기 위한 체계적인 테스트 기법 -> 목적 : 단위 테스트가 끝난 모듈 또는 컴포넌

aapslie94.tistory.com