New World

[ISTQB-CTFL] CTFL(Foundation Level) 정리 #1 테스팅의 기초 본문

Self-Study/자격증

[ISTQB-CTFL] CTFL(Foundation Level) 정리 #1 테스팅의 기초

hyeovi 2021. 4. 23. 20:22
728x90
반응형

1장 테스팅의 기초

1.1 테스팅이란 무엇인가?

소프트웨어 테스팅: 소프트웨어의 품질을 평가, 운영 중 소프트웨어 장애의 발생 가능성

동적 테스팅: 테스트 대상 컴포넌트나 시스템을 실행하는 테스팅

정적 테스팅: 테스트 대상 컴포넌트나 시스템을 실행하지 않는 테스팅

검증, 베리피케이션(verification): 테스팅이 요구사항, 사용자 스토리, 그 외 기타 명세

확인, 밸리데이션(validation): 시스템이 주어진 명세, 운영 환경에서 요구를 만족시키는지 확인

 

1.1.1      테스팅의 일반적인 목적

목적: 테스트하고 있는 컴포넌트나 시스템의 정황에 따라 변함

품질: 컴포넌트, 시스템, 프로세스가 명시된 요구사항, 사용자와 고객의 필요와 기대 충족

결함: 장애 발생, 오류 또는 실수의 결과, 코드, 소프트웨어, 시스템, 문서 상의 결함

장애: 코드에 존재하는 결함의 실행, 결함 또는 환경적 조건에 의한 시스템의 부적절한 처리

오류: 인간에 의해 만들어진 실수

효과성: 높은 커버리지의 테스트 기법 적용, 계획/원했던 테스트 결과 산출

효율성: 자동화 도구, 테스트 환경 개선, TPI Next TMMi 모델을 활용해 테스트 프로세스 개선

 

1.1.2      테스팅과 디버깅

테스트: 소프트웨어 결함으로 인한 장애를 찾아냄

디버깅: 장애의 원인을 찾고 분석해서 수정하는 개발 활동

 

1.2 테스팅이 왜 필요한가?

1.2.1      성공을 위한 테스팅의 기여

테스트 기법을 테스트 전문성을 가지고 테스트 레밸과 개발 수명주기 단계에 적용하면 소프트웨어와 시스템이 문제를 안고 배포되는 경우

 

1.2.2      품질 보증과 테스팅

품질 관리: 품질 측면에서 조직이 나아가야 하는 방향을 제시/제어하는 모든 활동 포함

품질 보증: 품질 수준을 달성했는지 확신을 얻기 위해 적절한 프로세스를 준수

 

1.2.3      오류, 결함, 장애

작업 산출물을 작성하면서 결함을 발생시키는 오류가 생김

장애: 코드 결함뿐만 아니라 환경 조건으로 인해 발생

거짓 양성: 결함으로 보고됐지만 실제 결함이 아닌 경우

 

1.2.4      결함, 근본 원인, 결과

결함의 근본 원인: 해당 결함을 만들어낸 최초의 행동이나 조건

근본적인 원인을 분석하고 집중하여 프로세스 개선은 결함 수

 

1.3 테스팅의 7가지 원리

1.     테스팅은 결함이 존재함을 밝히는 활동이지 결함이 없음을 밝히는 활동 X

2.     완벽한 테스팅 X

3.     조기 테스팅으로 시간과 비용을 절약

4.     결함은 집중

5.     살충제 패러독스에 유의

6.     테스팅은 정황에 의존적

7.     오류 부재는 궤변

 

1.4 테스트 프로세스

테스트 프로세스: 설정한 목적의 달성 가능성을 높여주는 공통적인 테스트 활동 세트

1.4.1      정황에 따른 테스트 프로세스

테스트 레벨과 유형에 상관 없이 테스트 베이시스에 대한 측정 가능한 커버리지 조건이 설정

커버리지 조건: 소프트웨어 테스트의 목적 달성 여부를 보여주는 활동의 주요 성능 지표

 

1.4.2      테스트 활동과 작업

테스트 계획: 테스팅의 목적과 정황으로 인한 제약 사항을 고려해 테스트 목적을 달성하기 위해 필요한 접근법을 정의

테스트 모니터링: 테스트 계획에 정의된 테스트 모니터링 메트릭을 활용해 실제 진행 상황을 계획한 진척 상황과 지속적으로 비교하는 활동

테스트 제어: 시간이 지나면서 업데이트될 수 있는 테스트 계획의 목적 달성을 위해 필요한 활동

테스트 분석: “무엇을”, 테스트 가능한 기능과 연관된 테스트 컨디션을 식별

테스트 설계: “어떻게”, 테스트 컨디션 기반으로 테스트 케이스/케이스 세트, 기타 테스트웨어 생성

테스트 구현: “갖춰져 있는가?, 테스트 실행에 필요한 테스트웨어를 생성/완성

테스트 케이스를 배치해 테스트 프로시저를 만드는 것

테스트 실행: 테스트 스위트를 테스트 실행 일정에 따라 실행

테스트 완료: 완료한 테스트 활동에서 데이터를 수집해 경험, 테스트웨어, 기타 관련 정보 축적

 

1.4.3      테스트 작업 산출물

테스트 계획: 테스트 베이시스에 대한 정보, 추적성 정보

테스트 모니터링과 제어: 지속적, 정기적으로 생성되는 테스트 진행 현황 보고서, 다양한 테스트 완료 마일스톤에서 생성되는 테스트 요약 보고서와 같은 여러 형태의 테스트 보고서

테스트 분석: 양방향 추적성, 분석을 통해 식별되고 우선순위가 선정

테스트 베이시스의 결함 발견, 보고, 요구사항의 테스트 용이성 평가

테스트 설계: 테스트 분석에서 정의한 테스트 컨디션 실행할 수 있는 테스트 케이스, 케이스 세트

           입력 값과 기대 결과로 사용할 값이 고정되지 않은 테스트 케이스를 설계하여 재활용

양방향 추적성, 테스트 환경 설정과 도구를 정의

테스트 분석/설계의 테스트 베이시스 리뷰: 요구사항 분석서, 개발 설계 문서, 아키텍쳐

테스트 구현: 테스트 컨디션을 통해 테스트 프로시저와 테스트 베이시스 개별 요소(테스트 하네스) 간의 양방향 추적성

                      테스트 스위트 작성

테스트 실행: 연관된 테스트 프로시저와의 양방향 추적성

테스트 베이시스 개별 요소의 상태에 대해 판단, 보고

테스트 완료: 테스트 요약 보고서, 차후 프로젝트나 반복주기의 개선을 위한 액션 아이템, 수정 요청서 혹은 제품 백로그 항목, 완성된 테스트웨어 등

 

1.4.4      테스트 베이시스와 테스트 작업 산출물 간의 추적성

테스트 커버리지에 대한 평가 가능

테스트 작업 산출물 일부 또는 전부를 포함한 테스트 작업 산출물 모델을 제공

작업 산출물을 정리, 필요한 추적성 정보를 제공하기 위해 자체 관리 시스템을 구축

 

1.5 테스팅의 심리학

1.5.1      인간 심리학과 테스팅

확증 편향과 인지 편향으로 테스팅으로 얻은 정보를 이해하고 받아들이기 힘듦

 

1.5.2      테스터와 개발자의 사고방식

목적

테스팅: 제품에 대한 확인과 검증, 릴리스 전 결함 발견

개발: 제품을 설계하고 구축

 

사고방식

테스터: 호기심, 전문적 비평 능력, 비판적 시각, 세밀한 것에 주목, 긍적적인 의사소통, 관계 수립

개발자: 해결책을 설계하고 구축, 확증 편향으로 자신이 만든 오류에 대해 인지 X

반응형
Comments