은팡이의 이것저것

[정보처리기사실기]애플리케이션 테스트 관리1 본문

자격증/정보처리기사

[정보처리기사실기]애플리케이션 테스트 관리1

은팡이 2022. 7. 23. 04:30
728x90
반응형

오늘은 애플리케이션 테스트 관리 첫번째 입니다!

 

오늘도 화이팅해봅시다!😉


1.애플리케이션 테스트 케이스 작성()

1)소프트웨어 테스트란?

: 개발된 응용 애플리케이션이나 시스템이 사용자가 요구하는 기능과 성능, 사용성, 안정성 등을 만족하는지 확인하고, 노출되지 않은 숨어있는 소프트웨어의 결함을 찾아내는 활동

 

2)소프트웨어 테스트 필요성

*오류 발견 관점
: 프로그램에 잠재된 오류를 발견하고 이를 수정하여 올바른 프로그램을 개발하기 위해 필요

*오류 예방 관점
: 프로그램 실행 전에 동료 검토, 워크스루, 인스펙션 등을 통해 오류를 사전에 발견하는 예방 차원의 필요

*품질 항상 관점
: 사용자의 요구사항 및 기대 수준을 만족하도록 반복적인 테스트를 거쳐 제품의 신뢰도를 향상하는 품질 보증을 위해 필요

 

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

[소프트웨어 테스트 원리]
*테스팅은 결함이 존재함을 밝히는 것
: 결함이 존재함을 밝히는 활동, 결함이 없다는 것을 증명할 수는 없음, 결함을 줄이는 활동

*완벽한 테스팅은 불가능
: 완벽하게 테스팅하려는 시도는 불필요한 시간과 자원낭비

*개발 초기에 테스팅 시작
: 조기 테스트 설계 시 테스팅 결과를 단시간에 알 수 있고, 테스팅 기간 단축, 재작업을 줄여 개발 기간 단축 및 결함을 예방할 수 있다.

*결함집중
: 적은 수의 모듈에서 대다수의 결함이 발견됨, 소프트웨어 테스트에서 오류의 80%는 전체 모듈의 20% 내에서 발견

*살충제 패러독수
: 동일한 테스트 케이스에 의한 반복적 테스트는 새로운 버그를 찾지 못함

*테스팅은 정황에 의존적
: 소프트웨어의 성격에 맞게 테스트 실시, 정황과 비즈니스 도메인에 따라 테스트를 다르게 수행

*오류-부재의 궤변
: 요구사항을 충족시켜주지 못한다면, 결함이 없다고 해도 품질이 높다고 볼 수 없음

 

4)소프트웨어 테스트 유형

: 프로그램 실행 여부, 테스트 상세 기법, 테스트에 대한 시각, 테스트의 목적, 테스트의 종류에 따라 분류

[프로그램 실행 여부에 따른 분류]
*정적 테스트
: 테스트 대상을 실행하지 않고 구조를 분석하여 논리성을 검증하는 테스트
: 리뷰, 정적 분석

*동적 테스트
: 소프트웨어를 실행하는 방식으로 테스트를 수행하여 결함을 검출하는 테스트
: 화이트박스 테스트, 블랙박스 테스트, 경험기반 테스트

[테스트 기법에 따른 분류]
*화이트박스 테스트
: 각 응용 프로그램의 내부 구조와 동작을 검사하는 소프트웨어 테스트
: 코드 분석과 프로그램 구조에 대한 지식을 바탕으로 문제가 발생할 가능성이 있는 모듈 내부를 테스트하는 방법이다.
: 내부 소스 코드의 동작을 개발자가 추적할 수 있기 때문에, 동작의 유효성 뿐만아니라 실행되는 과정을 확인할 수 있다.
:구문 커버리지, 결정 커버리지, 조건 커버리지, 조건/결정 커버리지, 변경 조건/결정 커버리지, 다중 조건 커버리지, 기본 경로 커버리지, 제어 흐름 테스트, 데이터 흐름 테스트

*블랙박스 테스트
: 프로그램 외부 사용자의 요구사항 명세를 보면서 수행하느 테스트
: 소프트웨어의 특징, 요구사항, 설계 명세서 등에 초점을 맞춰 테스트가 이루어진다.
: 기능 및 동작 위주의 테스트를 진행하기 때문에 내부 구조나 작동 원리를 알지 못해도 가능하다
: 동등분할 테스트, 경곗값 분석 테스트, 결정 테이블 테스트, 상태 전이 테스트, 유스케이스 테스트, 분류 트리 테스트, 페어와이즈 테스트, 원인-결과 그래프 테스트, 비교 테스트

[테스트 시각에 따른 분류]
*검증
: 소프트웨어 개발 과정을 테스트, 올바른 제품을 생산하고 있는지 검증, 이전 단계에서 설정된 개발 규격과 요구를 충족시키는지 판단, 개발자 혹은 시험자의 시각으로 소프트웨어가 명세화된 기능을 올바로 수행하는지 알아보는 과정

*확인
: 소프트웨어 결과를 테스트, 만들어진 제품이 제대로 동작하는지 확인, 최종 사용자 요구 또는 소프트웨어 요구에 적합한지 판단, 사용자 시각으로 올바른 소프트웨어가 개발되었는지 입증하는 과정

[테스트 목적에 따른 분류]
*회복 테스트
: 시스템에 고의로 실패를 유도하고, 시스템의 정상적 복귀 여부를 테스트하는 기법

*안전 테스트
: 불법적인 소프트웨어가 접근하여 시스템을 파괴하지 못하도록 소스 코드 내의 보안적인 결함을 미리 점검하는 테스트 기법

*성능 테스트
: 사용자의 이벤트에 시스템이 응답하는 시간, 특정 시간 내에 처리하는 업무량, 사용자 요구에 시스템이 반응하는 속도 등을 측정하는 테스트 기법

*구조 테스트
: 시스템의 내부 논리 경로, 소스 코드의 복잡도를 평가하는 테스트 기법

*회귀 테스트
: 회귀 테스트는 오류를 제거하거나 수정한 시스템에서 오류 제거와 수정에 의해 새로이 유입된 오류가 없는지 확인하는 일종의 반복 테스트 기법

*병행 테스트
: 변경된 시스템과 기존 시스템에 동일한 데이터를 입력 후 결과를 비교하는 테스트 기법

[테스트 종류에 따른 분류]
*명세 기반 테스트
: 프로그램의 요구사항 명세서를 기반으로 테스트 케이스를 선정하여 테스트하는 기법

*구조 기반 테스트
: 소프트웨어 내부 논리 흐름에 따라 테스트 케이스를 작성하고 확인하는 테스트 기법

*경험 기반 테스트
: 유사 소프트웨어나 유사 기술 평가에서 테스터의 경험을 토대로 한, 직관과 기술 능력을 기반으로 수행하는 테스트 기법

 

5)정적 테스트

: 리뷰, 정적 분석

*리뷰
: 소프트웨어의 다양한 산출물에 존재하는 결함을 검출하거나 프로젝트의 진행 상황을 점검하기 위한 활동
: 관리 리뷰, 기술 리뷰, 인스펙션, 워크스루, 감사

*정적 분석
: 도구의 지원을 받아 정적 테스트를 수행하는 방법
: 자동화된 도구를 이용하여 산출물의 결함을 검출하거나 복잡도를 측정한다.
: 코딩 표준, 복잡도 측정, 자료 흐름 분석

 

6)동적 테스트

: 화이트박스 테스트, 블랙박스 테스트(명세 기반 테스트), 경험 기반 테스트

*화이트박스 테스트
: 각 응용 프로그램의 내부 구조와 동작을 검사하는 소프트웨어 테스트
: 코드 분석과 프로그램 구조에 대한 지식을 바탕으로 문제가 발생할 가능성이 있는 모듈 내부를 테스트하는 방법이다.
: 내부 소스 코드의 동작을 개발자가 추적할 수 있기 때문에, 동작의 유효성 뿐만아니라 실행되는 과정을 확인할 수 있다.
:구문 커버리지, 결정 커버리지, 조건 커버리지, 조건/결정 커버리지, 변경 조건/결정 커버리지, 다중 조건 커버리지, 기본 경로 커버리지, 제어 흐름 테스트, 데이터 흐름 테스트

*블랙박스 테스트
: 프로그램 외부 사용자의 요구사항 명세를 보면서 수행하느 테스트
: 소프트웨어의 특징, 요구사항, 설계 명세서 등에 초점을 맞춰 테스트가 이루어진다.
: 기능 및 동작 위주의 테스트를 진행하기 때문에 내부 구조나 작동 원리를 알지 못해도 가능하다
: 동등분할 테스트, 경곗값 분석 테스트, 결정 테이블 테스트, 상태 전이 테스트, 유스케이스 테스트, 분류 트리 테스트, 페어와이즈 테스트, 원인-결과 그래프 테스트, 비교 테스트

*경험 기반 테스트
: 유사 소프트웨어나 유사 기술 평가에서 테스터의 경험을 토대로 한, 직관과 기술 능력을 기반으로 수행하는 테스트 기법
: 탐색적 테스트, 오류 추정, 체크리스트, 특성테스트

 

7)테스트 케이스

: 특정 요구사항에 준수하는 지를 확인하기 위해 개발된 입력값, 실행 조건, 예상된 결과의 집합

 

8)테스트 케이스 작성 절차

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

 

9)테스트 오라클

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

: 참 오라클, 샘플링 오라클, 휴리스틱 오라클, 일관성 검사 오라클


2.애플리케이션 테스트 시나리오 작성()

1)테스트 레벨이란?

: 함께 편성되고 관리되는 테스트 활동의 그룹

 

2)테스트 레벨 종류

: 단위 테스트, 통합 테스트, 시스템 테스트, 인수 테스트

*단위 테스트
: 사용자 요구사항에 대한 단위 모듈, 서브루틴 등을 테스트하는 단계

*통합 테스트
: 단위 테스트를 통과한 모듈 사이의 인터페이스, 통합된 컴포넌트 간의 상호작용을 검증하는 테스트 단계

*시스템 테스트
: 통합된 단위 시스템의 기능이 시스템에서 정상적으로 수행되는지를 검증하는 테스트 단계

*인수 테스트
: 계약상의 요구사항이 만족되었는지 확인하기 위한 테스트 단계

 

3)테스트 시나리오란?

: 테스트 수행을 위한 여러 테스트 케이스의 집합으로서, 테스트 케이스의 동작 순서를 기술한 문서이며 테스트를 위한 절차를 명세한 문서

 

4)테스트 시나리오 작성 시 유의점

: 테스트 항목을 하나의 시나리오에 모두 작성하지 않고, 시스템별, 모듈별, 항목별 테스트 시나리오를 분리하여 작성한다.

: 고객의 요구사항과 설계 문서 등을 토대로 테스트 시나리오를 작성한다

: 각 테스트 항목은 식별자 번호, 순서 번호, 테스트 데이터, 테스트 케이스, 예상 결과, 확인 등의 항목을 포함하여 작성한다.

 

5)테스트 환경 구축

: 개발된 응용 소프트웨어가 실제 운영 시스템에서 정상적으로 작동되는지 테스트하기 위하여 실제 운영 시스템과 동일한사양의 하드웨어, 소프트웨어, 네트워크 등의 환경 시설을 구축하는 활동

 

6)테스트 환경 구축 유형

: 하드웨어 기반의 테스트 환경 구축, 소프트웨어 기반의 테스트 환경 구축, 가상 시스템 기반의 테스트 환경 구축

*하드웨어 기반의 테스트 환경 구축
: 서버 장비, 클라이언트 장비, 내트워크 장비를 설치하는 작업

*소프트웨어 기반의 테스트 환경 구축
: 구축된 하드웨어 환경에 테스트할 응용 소프트웨어를 설치하고 필요한 데이터를 구축하는 작업

*가상 시스템 기반의 테스트 환경 구축
: 물리적으로 개발 환경 및 운영 환경과 별개로 독립된 테스트 환경을 구축하기 힘든 경우 사용

 

7)테스트 데이터

: 개념, 필요성, 유형, 준비

*개념
: 컴퓨터의 동작이나 시스템의 적합성을 시험하기 위해 특별히 개발된 데이터 집합

*필요성
: 테스트 수행 시 잘못된 데이터를 사용하면 잘못된 결과가 도출되어 시간을 낭비하고, 비용만 소진하는 결과가 나옴

*유형
: 선행된 연산에 의해 얻어진 실제 데이터와 인위적으로 만들어진 가상 데이터로 구분

*준비
: 실제 데이터는 연산에 의해 준비하거나 실제 운영 데이터를 복제하여 준비 가능

 

8)테스트 조건

: 테스트 시작 조건, 테스트 종료 조건, 테스트 성공과 실패의 파단 기준

*테스트 시작 조건
: 테스트 계획의 수립, 사용자 요구사항에 대한 테스트 명세의 작성, 투입 조직 및 참여 인력의 역할과 책임의 정의, 테스트 일정의 확정, 테스트 환경의 구축 등이 완료되었을 때 테스트 시작 조건 정의 기능

*테스트 종료 조건
: 정상적인 테스트를 모두 수행한 경우, 차기 일정의 도래로 테스트 일정이 만료되었을 경우, 테스트에 소요되는 비용을 모두 소진한 경우 등 업무 기능의 중요도에 따라 조건 설정 변경 가능

*테스트 성공과 실패의 판단 기준
: 기능 및 비기능 테스트 시나리오에 기술된 예상 결과를 만족하면 성공으로, 아니라면 실패로 판단할 수 있음

오늘도 고생하셨습니다!😊

 

도움이 되셨다면 공감버튼!💕

728x90
반응형