ISTQB) Part 1. 소프트웨어 테스팅의 기초
본문 바로가기
IT 자격증/ISTQB

ISTQB) Part 1. 소프트웨어 테스팅의 기초

by 코딩하는 핑가 2020. 12. 23.
반응형

* 이 글은 개발자도 알아야할 소프트웨어 테스팅 실무 제3판을 토대로 작성되었습니다.

* 책에 실린 내용 외 추가적인 정의가 있으며 교재 목차와 순서가 다소 다를 수 있습니다.

* 2차 가공 및 재배포는 금지합니다.

* 잘못된 개념 혹은 오탈자는 댓글로 알려주세요.

 

1. 테스팅 관련 용어

[ 테스팅과 디버깅 ]

* 테스팅

   - 결함을 발견하고 예방하기 위한 활동

 

* 디버깅

   - 결함의 원인을 밝히고 코드를 수정하는 개발 활동. 이후, 테스터에 의한 확인 테스팅을 수행함

 

[ 오류, 결함, 장애 차이점과 실수, 버그와의 관련성 ]

* 오류(Error) - 실수(Mistake)

   - 결함의 원인, 사람에 의해 발생되는 실수 또는 오해

   예) 잘못 입력한 변수 이름, 개발자의 잘못된 계산식의 이해

 

* 결함(Defect) - 버그(Bug)

   - 오류 또는 실수의 결과

   - 코드에 존재하는 결함은 장애의 원인이지만, 모든 결함이 장애를 일으키는 것은 아님

   예) 요구사항과의 편차, 잘못된 계산식으로의 코딩

 

 

* 장애(Failure)

   - 결함이 실행될 때 발생할 뿐만 아니라 환경적인 조건에 의해 의도치 않은 결과 발생

   예) 방사, 자기, 전자기장, 물리적 오염

 

2. 테스팅 정의와 종류 및 목적

[ 테스팅 정의 ]

* 과거 : 응용 프로그램, 시스템의 정상 작동 여부 확인

 

* 현재 : 사용자의 요구사항에 맞게 구현되고 동작하는지를 확인하여 결함을 발견 ( 결함 예방, 발견 활동 )

 

* 필요성 : 소프트웨어가 기대한대로 동작하지 않은 경우 다양한 문제가 발생되는 것을 최소화하기 위함

   다양한 문제) 금전적 손실, 시간 낭비, 비즈니스 이미지 손상, 부상, 사망 등

 

[ 테스팅과 품질 ]

* 품질

   - 컴포넌트, 시스템, 프로세스가 명시된 요구사항은 물론 사용자와 고객의 필요와 기대를 충족시키는 정도

 

* 높은 소프트웨어 품질 판단 수단

   - 기능 및 비기능 테스트에서 찾은 결함이 극소수이거나 없을 경우

 

* 품질 높이는 방법

   - 경험 기반 테스트를 통한 품질보증(QA; Quality Assurance) 관점에서의 정보 확보

   - 품질보증(QA) : 주로 고객 요구 규격에 대한 적합성 판단이나 품질 경영 시스템 추진, 관리 등을 담당

 

[ 테스팅 종류 및 목적 ]

* 개발 과정에서의 테스트

   - 개발 초기 요구사항 분석 단계에서 테스팅

   - 효과 : 높아지는 품질, 결함 발생 가능성 최소화, 개발 후반부에서의 낮아지는 테스팅 비용

   - 테스팅은 한 번에 이루어지는 것이 아니라 각각의 개발 단계에 대응하는 테스트 레벨이 별도로 존재

   - 테스트 레벨 : 한 번에 총체적으로 조직화하고 관리하기 위한 테스트 활동의 묶음

 

* 유지보수 과정에서의 테스트

   - 필요 이유 : 시스템 변경, 단종, 운영 환경의 변화

   - 효과 : 변경으로 야기될 수 있는 결함과 그로인해 발생 가능한 장애를 예방하기 위함

 

[ 테스팅 목적 ]

* 일반적인 테스팅의 목적

   - 결함 예방 및 발견, 사용자 및 비즈니스 요구 충족 확인

 

* 부가적인 테스팅의 목적

   - 품질 수준에 대한 자신감 획득과 정보 제공, 시스템과 소프트웨어가 적절히 동작함을 확인

 

* 관점에 따른 테스팅의 목적

   - 개발 과정 : 결함 발견, 수정을 위한 가능한 많은 장애 상황 만들기

   - 인수 테스팅 : 예상에 맞는 동작 확인, 요구사항과 맞는지 확신 얻기

   - 품질 평가 : 특정 시간에 시스템을 출시하는 것의 리스크를 개발 프로젝트 관련자에게 전달

   - 유지보수 : 리그레션 테스팅(Regression Testing) 과정 포함

   - 운영 : 시스템 특성(신뢰성, 가용성 등)을 평가

 

* 리그레션 테스팅(Regression Testing)

   - 회귀 테스팅

   - 수정으로 인해 변경되지 않은 소프트웨어 영역에 의도하지 않은 새로운 결함이 유입되지 않았는지

   - 기존에 숨어있던 결함이 노출되지 않았는지 확인하기 위해 이전에 테스트한 프로그램을 다시 테스팅

 

3. 테스팅 원리 및 프로세스

[테스팅 원리 - 소프트웨어 테스트에 일반적으로 적용되는 7원칙]

* 목적

   - 결함 발견 : 테스팅은 결함제거가 아닌 결함의 발견을 목적으로 함

 

* 법칙

   - 초기 집중 : 품질 비용 감소를 위한 개발 설계, 초기에 테스트 시작

   - 요르돈 법칙 : 소프트웨어 개발 초기 체계적인 분석 및 설계가 수행되지 못하면 그 결과가 프로젝트 후반에 영향을 미치게 되어 비용이 커진다는 법칙

 

   - 결함 집중 : 결함의 80%는 20% 코드에 집중, 결함이 높은 곳에 자원 집중

   - 파레토 법칙

 

   - 오류-부재 궤변 : 결함을 모두 제거했을지라도 우수한 품질이라고 볼 수 없음

 

* 한계

   - 불완전성 : 자원의 한계때문에 완벽한 테스팅은 불가능

   - 무한 경로(내부 조건이 많음), 무한 입력값(입력값의 조합이 많음), 무한 타이밍(GUI 이벤트 발생 순서에 대한 조합 많음)

 

   - 살충제 페러독스 : 동일한 테스트 전략을 반복적으로 수행한다면, 더이상 새로운 결함을 찾아내지 못함

 

   - 정황 의존성 : 테스트는 테스트 주변 환경에 의한 영향을 받기 때문에 분야에 따라 다른 테스팅을 해야함

 

[테스팅 프로세스]

* 테스팅 준비 단계

   - 테스트 실행 전(계획, 설계)에 준비해야할 네 가지와 테스트 실행 시 준비해야할 테스트 대상이 필요함

   - 테스트 대상은 미리 정해둬야함

 

   1) 테스트 베이시스

       - 개발 중간산출물 등 테스트 설계 및 구현의 기반이 됨

       - 테스트 계획 단계에서부터 필요, 설계 시 반드시 요구

 

   2) 테스트 기법

       - 테스트 분석 및 설계 단계에서 필요

 

   3) 테스트 기반 설비 및 환경

       - 테스트 실행 단계 전에 구축되어야 함

 

   4) 테스트 조직

       - 계획 단계에서부터 필요

       - 테스트 실행 단계에서는 상대적으로 다수의 인력을 필요로 함

 

* 테스팅을 효과적으로 수행하기 위해서는 실행에 앞서 계획, 설계, 준비, 평가 등의 작업이 선행되어야 함

   - 순서 : 계획/제어 → 분석/설계 → 구현/실행 → 완료 조건 평가/리포팅 → 마감

 

* 테스트 계획

   - 테스트 목표와 임무를 확인하고 필요한 활동을 정의하는 것

   - 테스팅 목적 식별, 테스트 접근 방법 결정, 일정 관리, 완료 조건 결정 등

   - 산출물 : 테스트 계획 문서

 

* 테스트 제어

   - 계획 대비 실제 진행 상황을 비교하는 지속적인 활동

   - 테스트 결과에 대한 측정 및 분석, 테스팅의 진행/변경에 대한 의사 결정

   - 산출물 : 테스트 계획 문서

 

* 테스트 분석과 설계

   - 테스트 베이시스,  요구사항 명세서 리뷰, 테스트 상황 식별 및 우선 순위 결정 등

   - 산출물 : 테스트 설계 문서, 테스트 케이스 진행 리포트

 

* 테스트 구현과 실행

   - 테스트 케이스 개발, 구현과 우선순위 선정, 자동화 테스트 스크립트 작성

   - 각각의 조치한 결과를 확인하기 위해 테스트 활동 반복

   - 산출물 : 테스트 프로시저, 테스트 실행 결과, 진행 리포트, 결함 리포트

 

* 테스트 완료 조건 평가

   - 테스트 실행 결과가 완료 조건을 만족하는지 확인

   - 추가 테스트의 필요 여부와 완료 조건의 변경 여부에 대한 평가 수행

   - 산출물 : 릴리즈 조언, 최종 보고서

 

* 리포팅

   - 발견된 결함과 미해결 결함의 추이 및 우선순위 표현

   - 산출물 : 릴리즈 조언, 최종 보고서

 

* 테스트 마감

   - 산출물 확인 및 결함 리포트 작성 종료, 시스템 인수 문서화

   - 테스트 프로세스 심사(평가) 및 개선 사항 제안

   - 산출물 : 테스트 프로세스 심사 보고서, 테스트 프로세스 개선 계획서

반응형

'IT 자격증 > ISTQB' 카테고리의 다른 글

ISTQB) Part5 테스트 관리  (0) 2020.12.29
ISTQB) Part4 테스트 설계 기법  (0) 2020.12.23
ISTQB) Part3 정적 기법  (0) 2020.12.23
ISTQB) Part2. 소프트웨어 수명주기와 테스팅  (0) 2020.12.23

댓글