본문 바로가기

ISTQB CTFL

ISTQB Foundation level Study1

용어
버그, 결함, 에러, 장애, 결점, 실수, 품질, 리스크

1.1.1 소프트웨어 시스템 관점에서의 테스팅의 필요성

1.1.2 소프트웨어 결함의 원인
개발자는 코드를 쓰거나 소프트에어나 시스템 또는 문서를 작성할 때 결함(debugs, bug)를 만드는 오류를 범할 수 있음.
sw, 시스템, 문서의 결함은 장애의 원인이 되지만 모든 결함이 장애를 일으키는 것은 아님.
시간적인 압박, 복잡한 코드, 기반환경(infrastructure)의 복잡성, 기술이나 시스템의 변경 그리고 수 많은 시스템 상호 간의 연동등으로 발생함.

방사, 자기, 전자기장, 물리적 오염이 소프트웨어의 결함을 유발시킬 수 있으며, 이러한 환경적인 조건이 하드웨어 조건을 변경시켜 소ㅡ트웨어의 실행에 영향을 미칠 수 있음

1.1.3 소프트웨어의 개발, 유지보수, 운영시 테스팅의 역할
sw 테스팅은 계약 또는 법적 요구사항이나 특정한 산업 표준을 만족시키기 위해서도 필요하다.

1.1.4 테스팅과 품질
기능적 또는 비기능적 sw 요구사항과 특성(신뢰성, 사용성, 효율성, 유지보수성, 이식성) 등에 관련된 해당 sw 품질을 발견된 결함에 근거하여 측정하는 것이 가능하다.
sw의 품질 특성에 대한 상세 정보는 국제 표준인 sw 공학 - sw 제품 품질 ISO/IEC 9126 에 기술되어 있음.

1.1.5 테스팅 얼마나 해야 충분한가?
적절한지 파악하기 위해서는 리스트 수준을 고려해야 하며, 기술적인 내용과 비즈니스 제품 및 프로젝트 리스크, 시간과 비용 같은 프로젝트의 제약사항을 고려해야 한다.

테스팅은 테스트된 SW나 시스템의 다음 개발 단계로의 릴리즈 결정 또는 고객에게 이양하는 릴리즈 결정을 개발 프로젝트 관련자들이 내릴 수 있도록 충분한 정보를 제공해야 한다.

1.2 테스팅이란 무엇인가
테스팅은 SW를 실행하면서 테스트를 수행하는 것이 있고, 아닌 것도 있다.

테스트를 수행 하기 전과 후에도 존재하며 테스팅 계획과 제어 같은 활동이나 조건의 선택, TC 디자인, 테스트 수행 결과 점검, 테스트 완료 및 통과 적ㄴ의 평가, 테스트 프로세스와 테스트 중인 시스템에 대한 리포트, 마무리 또는 마감 과 같은 일련의 활동들을 포함한다.
테스팅은 문서(소스 코드 포함)의 리뷰와 정적 분석에 의한 테스팅을 포함한다.

동적 테스팅과 정적 테스팅 모두 테스트 대상 시스템의 품질을 향상시키고 개발 프로세스와 테스팅 프로세스를 개선하기 위한 정보를 제공함

테스트의 목적에는 결함 발견, 품질 수준에 대한 자신감 획득과 정보 제공, 결함 예방

개발 초기 테스트를 디자인하는 방식의 테스팅 프로세스는 코드에 유입될 수 있는 결함을 방지하는데 도움이 된다.
문서 (요구사항) 리뷰 역시 코드에 결함이 발생하는 것을 사전에 방지하게 할 수 있다.

EX. 개발 과정에서 테스팅(컴포넌트, 통합, 그리고 시스템 테스팅)의 주요 목적은 SW의 결함을 찾아내고, 수정하기 위해 많은 장애를 발생시키는 것이다.

인수테스팅에서 주요 목적은 예상대로 시스템이 잦ㄱ동하고, 요구사항에 맞는지 확신을 얻는 과정이다.

유지보수 테스팅은 개발 과정에서 변경 작업이 일어나는 경우 새로운 ㅇ=결함이 유입되었는지 확인하는 리그레션 테스팅 과정을 포함한다.

운영 테스팅의 주요 목적은 신뢰성 또는 가용성과 같은 시스템의 특성을 평가하는 것이다.

테스팅은 디버깅과 근본적으로 구분되는 개념
테스팅은 결함에 의해 발생한 장애를 드러내는 활동 반면 디버깅은 결함의 원인을 밝히는 개발 활동으로 코드를 수정하고 올바르게 수정되었는지 확인한다. 이후에 테스터에 의해 확인 테스팅이 발생하며 이 과정에서 장애가 정말로 수정되었는지 확인한다.
각 활동에 대한 임무는 다르며 테스터는 테스트를 하고 개발자는 디버깅을 한다.

1.3 테스팅의 일반적인 원리
용어 철저한 테스팅.

다수의 테스팅 원리가 제안되ㅇ어 왔으며 테스팅 전체에 대한 일반적인 가이드라인 역할을 해오고 있다.
테스팅은 결함이 존재함을 드러내지만 결함이 없다는 것을 증명할 수는 없다

원리2 - 완벽한 테스팅(Exhaustive testing)은 불가능하다.
원리3 - 개발 초기에 테스팅 시작하라.
원리 4 - 결함 집중(defect clustering) : 출시 전의 테스팅 기간 동안 적은 수의 모듈에서 대다수의 결함이 발견되거나 대다수의 운영상의 장애를 초래한다.
https://www.sten.or.kr/syllabus/syl_06.htm