본문 바로가기
정보처리기사

정처기 #14 애플리케이션 테스트 관리

by 싼쵸 2022. 2. 6.
반응형

1 ) 테스트 관련 용어

  • Debug : 디버그 또는 디버깅은 컴퓨터 프로그램의 논리적인 오류를 찾아내는 과정
  • Debugger : 디버거는 디버깅을 하려는 코드에 중단점을 지정해 단계를 지정된 값을 확인할 수 있도록 지원
  • Walk-Through : 소프트웨어 생명주기의 각 단계마다 산출된 명세서를 가지고 오류를 찾아내는 비정형 검토회의

2 ) 정형 기술 검토(FTR)의 검토 지침

  • 오류 검출에 초점을 두고 해결책은 나중으로 미룸(제품 검토의 집중성)
  • 검토를 위한 자료를 사전에 배포하여 검토(사전 준비성)
  • 의견을 제한하되 충분히 받아들임(의제의 제한성)
  • 안건을 세우면 고수(안건 고수성)
  • 논쟁과 반박을 제한(논쟁 반박의 제한성)
  • 문제 영역을 공개(문제 공개성)
  • 참가자의 수를 제한(참가 인원 제한성)
  • 발견된 오류는 문서화(문서성)

3 ) 테스트 원칙

  • 테스트는 계획 단계부터 함
  • 결함을 밝히는 활동
  • 개발자가 테스트하지 않음

효율적인 결함 제거 법칙 사용

  • 낚시의 법칙 : S /W 제품의 결함도 특정 기능, 모듈, 라이브러리에서 결함이 많이 발견된다는 것이 낚시의 법칙
  • Pareto의 법칙 : S/W 제품에서 발견되는 전체 결함의 80%는 S/W 제품의 전체 기능 중 20%에 집중
  • 완벽한 테스트는 불가능
  • 결함 집중을 고려
  • 살충제 패러독스를 고려
  • 오류- 부재의 궤변을 고려

4 ) 테스트 실행 기법

화이트박스 테스트(White Box Testing, 투명 상자)

  • 단위 테스트의 가장 기본적인 방법
  • 소스 코드의 모든 문장을 한 번 이상 수행함으로써 진행
  • 소스코드를 보면서 테스트 케이스를 다양화하게 만들어 테스트
  • 세부적 오류, 논리 구조상의 오류, 반복문 오류, 수행 경로 오류 등을 찾을 수 있음
  • 화이트 박스 종류 : 기초 경로 테스트, 루프 테스트, 데이터 흐름 테스트, 조건 테스트

블랙박스 테스트(Black Box Testing, 불 투명 상자)

  • 프로그램 외부 사용자 요구사항 명세를 보면서 테스트
  • 불투명 상자는 박스 안에 내용을 볼 수 없듯이 프로그램의 동작만으로 오류를 찾는 방법
  • 부정확하거나 빠진 오류, 인터페이스 오류, 자료 구조상의 오류, 성능 오류, 시작과 종결 상의 오류 등을 찾을 수 있음
  • 블랙박스 종류 : 동등 분할, 경곗값 테스트, 오류 예측, 원인 결과 그래프, 비교 테스트

5 ) 기초 경로 테스트의 복잡도 계산

  • 복잡도는 프로그램이 수행되는 경로의 수

복잡도 = 화살표로 둘러싸인 영역의 수 + 1

  • 오일러 공식을 이용

복잡도(R) : E- V + 2 (E : 간선, V : 노드)

 

6 ) 경계값 테스트

  • 범위의 한계 부분을 집중적으로 검사하는 경우를 정하여 검사하는 방법
  • 만약 점수의 범위가 0점부터 100점 사이라면 한계가 되는 0점에 인접한 자료나 100점에 인접한 자료를 집중적으로 검사 경우를 정하여 검사하는 방법

7 ) 하향식 통합과 상향식 통합 테스트

하향식 통합 상향식 통합 
테스트 시 프로그램 전체 실행 가능 전체 실행 불가능 
독립적인 구조를 가짐 독립적인 구조 불가능
가짜 모듈(Stub)필요 가짜 모듈(Stub)필요 없음
드라이버(시험 가동기)가 필요하지 않음 드라이버(시험 가동기)가 필요
하위 모듈 그룹(클러스터) 형성이 필요 없음 하위 모듈 그룹(클러스터) 형성이 필요
중요 모듈을 우선 테스트할 때 적합 하지 않음 중요 모듈을 우선 테스트할 때 적합
  • Stub(가짜 모듈) : 모듈명만 있고 모듈 안에 프로그램은 존재하지 않는 모듈
  • Driver(시험 가동기) : 독립적인 실행을 위해서 임시적으로 사용하는 시험 가동기

8 ) 인수 테스트 수행 방법

  • 알파 테스트 : 개발자 환경, 사용자 실행, 사용자와 개발자가 함께 확인
  • 베타 테스트 : 사용자 환경, 사용자 실행, 오류가 발견 시 개발자에 통보

9 ) 테스트 케이스

  • 명세 기반 테스트를 위한 설계 산출물
  • 실제로 다양한 데이터를 입력하여 그 결과를 확인해 보는 과정

구성 항목

항목 설명
식별자 항목 식별자, 일렬번호
테스트 항목 테스트할 모듈 또는 기능
입력 명세 입력값 또는 테스트 조건
출력 명세 테스트 케이스 실행 시 기대되는 출력값 결과
환경 설정 테스트 수행 시 필요한 하드웨어나 소프트웨어 환경
특수 절차 요구 테스트 케이스 수행시 특별히 요구되는 절차
의존성 기술 테스트 케이스 간의 의존성

10 ) 테스트 오라클(Test Oracle)

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

테스트 오라클의 유형

  • True 오라클 : 모든 입력 값에 대하여 기대하는 결과를 생성함으로 써 발생한 오류를 모두 검출
  • Sampling 오라클 : 특정한 몇 개의 입력값에 대해서만 기대하는 결과를 제공
  • Heuristic 오라클 : 샘플링 오라클을 개선한 오라클, 특정 입력값에 대해 올바른 결과를 제공, 나머지 값을에 대해서는 추정으로 처리
  • Consistent 오라클 : 소프트웨어 변경이 있을 때, 수행 전과 후의 결과 값이 동일한지 확인

11 ) 정적 분석 지원 도구

  • 오픈소스 : pmd, Find Bug, checkstyle, cppcheck, Corbetura
  • 상용 소스 : Coverity, IBM Rational Software, PolySpace

12 ) 품질 목표 항목

  • Correctness(정확성) : 사용자의 요구사항을 충족시키는 정도
  • Reliability(신뢰성) : 소프트웨어 품질 목표 중 주어진 시간 동안 주어진 기능을 오류 없이 수행하는 정도
  • Effeciency(효율성) : 최소의 작업으로 요구되는 기능을 수행하는 정도
  • Integrity(무결성) : 허용하지 않은 사용이나 자료의 변경을 제어하는 정도
  • Maintainability(유지보수 용이성) : 소프트웨어의 오류를 쉽게 수정할 수 있는 정도
  • Usability(사용 용이성) : 소프트웨어를 쉽게 사용할 수 있는 정도
  • Testability(검사 용이성) : 소프트웨어를 쉽게 검사할 수 있는 가의 정도
  • Portability(이식성) : 다양한 하드웨어 환경에서도 운용 가능하도록 쉽게 수정될 수 있는 정도
  • Interoperability(상호 운용성) : 다른 소프트웨어와 데이터 교환 가능한가의 정도
  • Flexibility(유연성) : 소프트웨어를 쉽게 수정할 수 있는가 의 정도
  • Reusability(재사용성) : 전체나 일부 소프트웨어가 다른 응용 목적으로 사용될 수 있는 정도

13 ) 외계인 코드

  • 아주 오래되었거나 참고 문서 또는 개발자가 없어 유지 보수 작업이 어려운 프로그램
  • 개발 시 문서화를 하지 않았거나 개발자가 없거나 비구조적으로 작성한 경우

14 ) 인터페이스 기술의 표준

1. EAI

  • 기업에서 운영되는 서로 다른 플랫폼 및 프로그램 간의 정보 전달, 연계 통합을 가능하게 해주는 설루션
  • 각 비즈니스 간 통합 및 연계성을 증대시켜 효율성을 높이고 각 시스템 간의 확장성을 높여줌

구축 유형

Point-to-point : 중간에 미들웨어를 두지 않고 각 애플리케이션 간 Point to Point 형태로 연결, 루션의 구매 없이 통합 가능, 변경, 재사용이 어려움

Hub & Spoke : 단일 접점이 허브 시스템을 통해 데이터를 전송하는 중앙 집중적 방식, 모든 데이터의 전송을 보장, 확장 및 유지보수가 용이

Message Bus(ESB 방식) : 애플리케이션 사이에 미들웨어를 두어 처리, 미들웨어를 통한 통합 가능, 어댑터가 각 시스템과 버스를 두어 연결하므로 뛰어난 확장성, 대용량 처리가 가능

Hybrid : 그룹 내에는 Hub & Spoke 방식을 그룹 간에는 Message Bus 방식을 사용 , 데이터 병목현상을 최소화

 

2. ESB

  • EAI와 유사, 서비스 중심으로 통합을 지향하는 기술
  • 웹 서비스 중심으로 표준화된 데이터, 버스를 통해 유연하게 통합하는 플랫폼 기술

3. EAI/ESB 방식

  • 트리거를 Java와 같은 프로그램 언어를 사용하거나 인터페이스 테이블 혹은 파일을 이용해 송신에서 수신으로 전송하는 방식

15 ) 데이터 통신을 통한 인터페이스 구현

  • 응용 프로그램 영역에서 인터페이스 형식에 맞춘 데이터 포맷을 인터페이스 대상으로 전송하고 수신 측에서 파싱 하여 해석
  • JSON 및 XML 형식의 데이터 포맷을 사용하여 인터페이스 구현

JSON(JavaScript Object Notation)

  • 데이터 객체를 속성-값 형태로 표현, 자바스크립트 토대로 개발된 형식
  • 속성과 값으로 이루어진 데이터 객체

 

XML(eXtensible Markup Language)

  • 특수한 목적을 갖는 마크업 언어를 만드는 데 사용하도록 권장하는 마크업 언어
  • 다른 많은 종류의 데이터를 기술하는 데 사용
  • 다른 종류의 시스템끼리 데이터를 쉽게 주고받음

16 ) 인터페이스 구현 검증 도구

도구 설명
xUnit java,C++등 다양한 언어를 지원하는 단위 테스트 프레임 워크
STAF 서비스 호출, 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임 워크
FitNesse 웹 기반 테스트 케이스 설계/실행/결과 을 지원하는 테스트 프레임 워크
NTAF 테스트 자동화 프레임워크
Selenium 다양한 브라우저 지원 및 개발 언어를 지원하는 웹 애플리케이션 테스크 프레임 워크
watir Ruby 기반 웹 애플리케이션 테스트 프레임 워크

 

출처 이기적 정보처리기사
반응형

'정보처리기사' 카테고리의 다른 글

정처기 #16 논리 데이터베이스 설계  (0) 2022.02.09
정처기 #15 데이터베이스의 개요  (0) 2022.02.08
정처기 #13 통합구현  (0) 2022.02.06
정처기 #12 정렬  (0) 2022.02.06
정처기 스터디 2주차  (0) 2022.02.06

댓글