You are on page 1of 26

소프트웨어 테스트 교육 자료

• 참조 : ISTQB CTFL Syllabus 2018


• 기획 : 와이즈와이어즈㈜
• 담당자 : 이현재 책임연구원
• Email : hjlee1@wisewires.com
목차

1. 소프트웨어 테스팅 2. 결함 리포트 작성

1. 소프트웨어 테스팅이란 ? 1. 결함의 정의

2. 소프트웨어 테스팅의 목적 2. 결함 추적 관리 활동

3. 소프트웨어 테스팅은 언제 3. 테스트 작업 산출물

할까요 ? 4. 결함 리포트

4. 소프트웨어 테스팅의 분류 5. 결함 리포트 구성 요소

5. 테스트케이스 6. 결함 리포트 작성 방법

6. 결함 워크 플로우 및 심각도
1. 소프트웨어 테스팅

1. 소프트웨어 테스팅이란 ?

2. 소프트웨어 테스팅의 목적

3. 소프트웨어 테스팅은 언제 할까요 ?

4. 소프트웨어 테스팅의 분류

5. 테스트케이스

6. 결함 워크 플로우 및 심각도
1. 소프트웨어 테스팅이란 ?

소프트웨어의 다양한
오작동 시 , 리스크 증가
영역확대 및 복잡화

이커머스 자동차 은행 금전 손실 시간 손실 평판 손실 인명 피해

소프트웨어 테스팅은 소프트웨어의 품질을 평가하고 , 운영 중


소프트웨어 장애의 발생 가능성을 줄이는 하나의 방법이다 .
1. 소프트웨어 테스팅이란 ?
• 국제 표준에서의 테스팅 정의

Reference : IEEE Standard 829-2008

An activity in which a system or component is executed


under specified conditions, the results are observed or recorded,
and an evaluation is made of some aspect of the system or component.

시스템 또는 컴포넌트가 지정된 환경에서 실행되고 그 결과가 관찰 / 기록되어


시스템과 컴포넌트의 일부분에 대한 평가가 이루어지는 활동

Reference :ISO/IEC/IEEE 29119-1

set of activities conducted to facilitate discovery and/or


evaluation of properties of one or more test items

하나 이상의 테스트 항목의 속성 발견 그리고 / 또는 평가를 용이하게 하기 위해


수행하는 일련의 활동
비고 : 테스트 활동은 계획 , 준비 , 실행 , 보고 및 관리 활동을 포함할 수 있다 .
1. 소프트웨어 테스팅이란 ?
• 그 외의 정의
 결함을 찾을 목적으로 프로그램 또는 시스템을 실행하는 프로세스 (Glen Myers, 1979)

 프로그램 또는 시스템의 속성과 능력을 평가하기 위한 활동이며 , 요구되어지는 결과 (Required Result) 를 판단하는 것 (Bill Hetzel, 1988)

 소프트웨어 테스트는 수동이나 자동으로 시스템을 시험 작동시키고 평가하는 작업으로 , 명시된 요구를 잘 만족하는지 , 즉 예상된 결과와
실제 결과와의 차이를 인식하기 위한 목적을 가짐 (IEEE)
 결함을 발견하는 메커니즘
 제품에 자신감을 (Confidence) 부여
 품질에 대한 Insight 제공
2. 소프트웨어 테스팅의 목적
• 단순히 SW 의 작동여부를 확인하는 것이 아니라 , Defect 을 발견하려고 프로그램을 실행시키는 것
→ 명세 충족 확인 , 사용자 및 비즈니스의 요구 충족을 확인 , 잔존 결함의 발견

• 실 운용 환경에서 System 이 정확히 수행될 것이라는 확신을 사용자가 수용할 수 있는 수준까지 높이기 위한
활동
→ 개발 시스템 & SW 에 대한 자신감 부여

• 결함을 미연에 방지

• 발견된 결함 기반의 수치적 데이터를 제공함으로써 Well-Informed 조언을 제공


3. 소프트웨어 테스팅은 언제 할까요 ?
• 소프트웨어 생명주기 전 과정에서 소프트웨어 테스트 활동이 이루어짐
소프트웨어 생명주기

소프트웨어 개발 과정

요구사항 분석 설계 구현 테스팅

S/W 제품
폐기 유지보수
소프트웨어 운영 과정
4. 소프트웨어 테스팅의 분류
• 소프트웨어 테스팅은 다양한 방법으로 분류됨

계획 평가

요구명세 설계 실행 Acceptance Test( 인수 )


테스트 프로세스
사용자 요구사항 : Acceptance Test 계획
계획 평가
System Test( 시스템 )
분석
설계 실행

시스템 요구사항 : System Test 계획


계획 평가
상위 설계 설계 실행 Integration Test( 통합 )

아키텍처 : Integration Test 계획


계획 평가
설계 실행
하위 설계 Unit Test( 단위 )

Test Level 의미
구현 요구사항 : Unit Test 계획
 개발 초기단계부터 테스트 설계
 결함 예방차원에서의 테스트
코딩  V&V (Verification & Validation)
4. 소프트웨어 테스팅의 분류
• 소프트웨어 테스팅은 다양한 방법으로 분류됨

 테스트 레벨 (Level) 에 의한 분류 (V 모델 )

테스트 레벨 내용

 구현단계에서 프로그램 개발자에 의해 수행


단위 / 모듈테스트
 개별 모듈 테스트를 위해 모듈의 단독 실행 환경 필요

 모듈을 결합해 하나의 시스템으로 구성 시 테스트 수행


통합테스트
 빅뱅통합 , 하향식 통합 , 상향식 통합 , 상하향식 통합 등이 있음

 통합 모듈에 대한 시스템적 ( 비기능적 ) 테스트


시스템 테스트
 신뢰성 , 견고성 , 성능 , 안전성 등의 비기능적 요구사항도 테스트

 사용자의 만족 여부를 테스트 하는 품질 테스트

인수 테스트  알파테스트 : 개발자 환경에서 사용자가 수행


 베타테스트 : 일정 수의 사용자가 테스트 후 피드백
4. 소프트웨어 테스팅의 분류
• 소프트웨어 테스팅은 다양한 방법으로 분류됨

 테스트 목적에 의한 분류
테스트 유형 내용

 주어진 입력에 대해 기대되는 출력이 제공되는지 테스트


기능 테스트
 주로 당사 테스트 조직이 수행하는 테스트

 시스템의 성능을 테스트


성능 테스트
 응답시간 , 처리량 , 메모리 활용도 , 처리 속도 등을 테스트

 과다한 정보 거래량이 부과되거나 제 조건에 미달 혹은 최고 조건에 초과되는 경우 ,


스트레스 테스트
물리적인 충격이나 변화 시의 반응 정도로 신뢰성을 테스트

 SW 에 내재되어 있는 논리경로의 복잡도를 평가하고 모듈 테스트 / 통합테스트 /


구조 테스트
시스템 테스트에 광범위하게 적용되는 개념

회복 테스트  고의적 실패 유도

회귀 테스트  변경 또는 교정이 새로운 오류를 발생시키지 않음을 확인


4. 소프트웨어 테스팅의 분류
• 소프트웨어 테스팅은 다양한 방법으로 분류됨

 테스트 기법에 의한 분류
테스트 내용

 프로그램 외부 명세를 보면서 테스트 ( 기능테스트 )


블랙박스 테스트
 동등 분할 , 경계값 분석 , cause-effect 그래프 , 오류예측 기법 등

화이트박스 테스트  프로그램 내부 로직을 보면서 테스트 ( 구조테스트 )


5. 테스트케이스
• 테스트케이스란 ?
 정의 : 특별한 목표 또는 테스트 사황을 테스트하기 위해 개발된 입력값 , 실행 사전조건 ,

예상결과 및 실행 사후조건들의 집합체

 특별한 목표와 테스트 상황은 특정 프로그램 경로를 실행하거나 지정된 요구사항을 준수하는

검증하는 것을 의미

• 테스트케이스의 구성
 테스트 케이스 구성 예시
ID 구분 사전조건 수행순서 기대결과 실행결과 Data

1. 물품 상세 페이지에서 [ 장바구니에 상품이


1 장바구니 로그인 상태 ID : Test1
장바구니 담기 ] 버튼 클릭 보여짐
장바구니에 1. 장바구니에서 물품을 선택 선택된 상품이
2 장바구니 물품이 담긴 ID : Test1
후 [ 결제하기 ] 버튼 클릭 결제페이지로 이동
상태
6. 결함 워크플로우 및 심각도

• 결함 워크플로우 (Workflow) 및 심각도


 결함을 발견 , 수정 및 해결하는 과정은 일련의 워크프롤우를 가짐

상태 설명 처리

New (Open) 결함이 검출되어 최초로 보고된 상태 . 테스트팀 순위 심각도

Assign 결함 내용의 처리가 개발자에게 할당됨 . 개발팀 1 치명적 결함 (Critical)

Start 결함 수정 중 . 개발팀 2 주요 결함 (Major)

Resolve 결함 수정 완료 . 개발팀 3 일반적 결함 (Normal)

4 사소한 결함 (Minor)
Resolve 상태의 결함 확인 결과 수정되지 않았거나
Reopen 테스트팀
수정으로 인해 추가 결함이 발생 . 5 개선사항 (Enhancement)

6 실행불가 (No Run)


Close 결함 해결 . 테스트팀
2. 결함 리포트 작성

1. 결함의 정의

2. 결함 추적 관리 활동

3. 테스트 작업 산출물

4. 결함 리포트

5. 결함 리포트 구성 요소

6. 결함 리포트 작성 방법
1. 결함의 정의
• Error( 에러 , 오류 )
 문제를 일으키는 실제 원인
 잘못된 결과를 낳는 인간의 행위 , 실수와 동의어
 수행된 결과값이나 조건에 대해 예상했던 것과 일치하는 않는 사항

• Defect( 결함 )or Bug, Fault


 일반적인 버그 (Bug), 결함 (Defect), 결점 (Fault) 은 동의어로 사용될 수 있으며 , 요구된 기능의 부정확한 처리
즉 , 장애 (Failure) 를 발생시키는 원인을 말한다 .
 SW 개발자에 의하여 만들어진 오류 표출
 SW 산출물 (Source Code, 문서등 ) 에서 요구사항이나 관련 표준에 비추어 불완전 하거나 틀린 사항
 잘못된 정보를 프로그램에 반영하는 경우와 , 올바른 정보를 누락시키는 경우에 발생함

• Failure( 장애 )
 코드에 존재하는 결함의 실행 또는 환경적 조건에 의한 부정확한 처리
 미리 규정된 수준의 심각성을 가지는 옳지 않거나 바람직하지 않은 효과를 야기시키는 SW 나 System 의 행위
 Defect 이 실행 될 때 발생됨
 실패는 Defect 에 의해 발생하지만 , 반드시 Defect 이 있다고 해서 실패가 유발되지 않음
2. 결함 추적 관리 활동
2. 결함 추적 관리 활동
• 결함 추척 예시
Open In progress Resolved Reopened Defer Closed

5
의사결정 의사결정필요 조치보류
의사결정 보류 / 추후수정
그룹
조치필요
결함수정확인

테스트 1 4 6
결함재현
담당자
결함 등록 확인 조치 재요청 결함 해결

3
조치 결함 조치 / 보류
담당자
2

업무별 결함 구분
PL 담당자지정

절차 역할 상태 구분 내용
1 테스트 담당자 Open  테스트 담당자가 결함을 결함 관리 게시판에 등록한 최초의 상태

2 업무별 PL In Progress  업무별 PL 이 결함 내용 검토 및 처리 담당자를 지정하는 상태

3 조치 담당자 Resolved  결함의 조치가 이루어져 테스트가 가능한 상태 / 수정 불가 / 오류 아님 확인

4 테스트 담당자 Reopened  조치 완료된 결함의 테스트 실패 상태

5 의사 결정 그룹 Defer  현재 시점에서 기술 / 환경 요건으로 조치 불가능한 상태 ( 의사결정그룹 협의 )

6 테스트 담당자 Closed  조치 완료된 결함의 재테스트 성공 상태 ( 최종 해결 상태 )


3. 결함 리포트
4. 결함 리포트 구성 요소
4. 결함 리포트 구성 요소
5. 결함 리포트작성 방법
5. 결함 리포트작성 방법
6. 결함 리포트 작성 예시
6. 결함 리포트 작성 예시
감사합니다
Thank you

You might also like