본문 바로가기
CS기본지식

[ISTQB] 1장 - 테스팅의 기초

by 미소5 2025. 1. 27.
728x90
반응형
테스팅이란

 

  • 품질 제어(QC) : 품질 달성을 지원하는 활동 ( 제품 중심 )
    • 주로 테스팅 활동
  • 품질 보증(QA) : 프로세스의 구현과 개선을 지원하는 활동 ( 프로세스 중심 )
    • 품질 보증은 개발 및 테스팅 프로세스에 모두 적용됨

 


테스팅 원리

 

  • 테스팅의 7가지 원리

1. 테스팅은 결함의 존재를 밝히는 활동이지, 결함이 없음을 증명하지는 않는다.

 

2. 완벽한 테스팅은 불가능하다.

모든 것을 테스팅한다는 것은 매우 간단한 소프트웨어를 제외하고는 불가능하다.

 

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

프로세스 초기에 발견해 제거한 결함은 연관된 다른 산출물의 후속 결함으로 이어지지 않기 때문에 품질 비용이 절감된다. 초기에 결함을 찾기 위해 정적 테스팅과 동적 테스팅 모두 최대한 이른 시점에 시작해야 한다.

 

4. 결함은 집중된다.

대부분의 결함은 소수의 컴포넌트에 집중되어 발생하며, 대부분의 운영 장애 역시 소수의 컴포넌트에서 발생한다.

 

5. 테스트 효과는 줄어든다.

만일 같은 테스트를 계속해서 반복하면, 결국 해당 테스트의 신규 결함 식별 효과는 점점 줄어들게 된다. 이런 현상을 극복하기 위해 기존 테스트와 테스트 데이터의 수정 및 새로운 테스트 작성이 필요할 수 있다. 

 

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

모든 상황에 적용할 수 있는 하나의 테스팅 접근법은 없다. 테스팅은 정황에 따라 다르게 진행한다.

 

7. 결함-부재는 궤변이다.

정의한 모든 요구사항을 철저히 테스트하고, 발견한 모든 결함을 수정하더라도 사용자의 요구나 기대에 못 미치거나, 고객의 비즈니스 목표 달성에 도움이 되지 않고 경쟁 시스템에 비해 부족한 시스템이 만들어질 수도 있다. 

 


Q.

‘결함 부재의 궤변’은 테스팅의 원리 중 하나이다. 다음 중 실무에서 이것에 대처하는 예제로 적절한 것은?

 

a. 테스팅으로 결함이 없음을 증명하기는 불가능하다는 것을 설명한다

b. 최종 사용자가 인수 테스팅을 수행하도록 지원한다

c. 인도된 시스템에 구현 결함이 남아있지 않음을 확인한다

d. 잔존 결함의 최소화를 위해 장애를 유발하지 않는 테스트를 수정한다

더보기

답: b

최종 사용자가 인수 테스팅을 수행할 수 있도록 지원함으로써 시스템이 사용자의 요구를 충족하는지 확인할 수 있다.

 

a) ‘테스팅은 결함의 존재를 밝히는 활동이지, 결함이 없음을 증명하지는 않는다.’는 원리에 대한 설명 

c) 인도된 시스템에 구현 결함이 남아있지 않음을 보장하는 것은 불가능 

d) ‘테스트 효과는 줄어든다’ 는 원리를 해결하는 방법


테스트 활동과 테스트 역할

 

테스트 프로세스를 구성하는 주요 활동은 보통 다음과 같다. 

 

  • 테스트 계획(Test planning) : 테스트 목적과 전반적인 상황에 따른 제약 조건을 고려하여, 목적을 가장 잘 달성할 수 있는 접근법을 선택하는 것이다.  
  • 테스트 모니터링과 제어(Test monitoring and control) : 테스트 모니터링은 지속적으로 모든 테스트 활동을 점검하고, 실제 진행 상황을 계획과 비교하는 활동이다. 테스트 제어는 테스트 목적을 달성하는 데 필요한 조치를 하는 활동이다.  
  • 테스트 분석(Test analysis) : 테스트 베이시스를 분석하여  테스트 가능한 기능을 식별하고, 각 기능에 대한 테스트 컨디션의 정의 및 우선순위를 선정하는 작업. 이와 관련된 리스크와 리스크 수준도 같이 고려된다. 또한, 테스트 베이시스와 테스트 대상을 평가해서 결함을 식별한다. 테스트 기법을 적용할 수 있다. → 측정할 수 있는 커버리지 조건으로 “무엇을 테스트할지”
  • 테스트 설계(Test design): 테스트 컨디션을 테스트 케이스와 기타 테스트웨어(ex테스트 차터)로 구체화하는 작업. 그 외, 필요한 테스트 데이터 식별, 테스트 환경 설계와 필요 인프라 및 도구 식별 등.  테스트 기법을 활용할 수 있다.   “어떻게 테스트할지”  .
  • 테스트 구현(Test implementation) : 테스트 실행에 필요한 테스트웨어(ex 테스트 데이터)를 생성하고 완성하는 작업. 테스트 케이스를 테스트 절차(test procedure)/테스트 스위트(test suite)로 묶는다. 수동 및 자동 테스트 스크립트 생성. 테스트 절차/테스트 스위트를 우선순위를 반영하여 테스트 실행 일정으로 정리한다. 테스트 환경을 구축하고 올바르게 설정되었는지 확인한다. → "테스트 실행에 필요한 모든 것이 갖춰져 있는지" 
  • 테스트 실행(Test execution) : 테스트 실행 일정에 따라 테스트를 수행(수동이나 자동으로 실행). 기대 결과와 실제 결과 비교, 테스트 실행 결과 기록, 이상 현상을 분석해 가능한 원인 파악, 이런 분석을 통해 관찰한 장애를 기반으로 결함 보고
  • 테스트 완료(Test completion) : 일반적으로 프로젝트 마일스톤 시점(예: 릴리스, 반복 주기 완료, 테스트 레벨 완료)에서 수행. 해결되지 않은 결함에 대해 수정 요청서 또는 제품 백로그 항목을 생성, 향후 유용할 수 있는 테스트웨어를 식별해서 보관하거나 적절한 팀에 인계, 테스트 활동을 분석해 향후 반복 주기, 릴리스, 프로젝트를 위한 개선 사항(교훈)을 파악, 테스트 완료 보고서를 작성해 이해관계자에게 전달.

  • 테스트 컨디션: 테스트케이스로 검증될 수 있는 항목 (요구사항)
  • 테스트 베이시스: 요구사항 명세서를 포함한 모든 문서

  • 테스팅에서의 역할
    • 테스트 관리 역할:  테스트 계획, 테스트 모니터링과 제어, 테스트 완료 활동
    • 테스팅 역할:  테스트 분석, 테스트 설계, 테스트 구현, 테스트 실행 활동

테스팅 프로세스는  다음과 같은 여러 정황 요소에 따라 달라진다. ☆암기☆ 

  • 이해관계자(필요, 기대, 요구사항, 협력 의지 등)
  • 팀원(기술, 지식, 경험 수준, 가용성, 훈련 필요성 등)
  • 비즈니스 도메인(테스트 대상의 중요도, 식별된 리스크, 시장 요구사항, 구체적인 법적 규제 등)
  • 기술적 요인(소프트웨어 유형, 제품 아키텍처, 사용된 기술 등)
  • 프로젝트 제약 조건(범위, 시간, 예산, 자원 등)
  • 조직적 요인(조직 구조, 기존 정책, 적용한 실천법 등)
  • 소프트웨어 개발수명주기(SDLC)(공학적 실천법, 개발 방법론 등)
  • 도구(가용성, 사용성, 규정 준수 등)

Q. 다음 중 테스트 프로세스에 중대한 영향을 미치는 요소를 고르시오.


테스트웨어 ( 테스트 활동의 결과물 )

  • 테스트 계획 작업 산출물: 테스트 계획, 테스트 일정, 리스크 관리 대장( 리스크 발생 가능성, 리스크 영향, 리스크 완화 정보가 들어있는 리스크 목록 ), 시작 및 완료 조건
  • 테스트 모니터링과 제어 작업 산출물 : 테스트 진행 상황 보고서, 제어 지침 문서, 리스크 정보
  • 테스트 분석 작업 산출물 : (우선순위가 지정된) 테스트 컨디션, (바로 수정하지 않았다면)테스트 베이시스의 결함에 관한 결함 보고서
  • 테스트 설계 작업 산출물 : (우선순위가 지정된) 테스트 케이스, 테스트 차터, 커버리지 항목, 테스트 데이터 요구사항, 테스트 환경 요구사항
  • 테스트 구현 작업 산출물 : 테스트 절차, 자동 테스트 스크립트, 테스트 스위트, 테스트 데이터, 테스트 실행 일정, 테스트 환경 요소 (ex. 스텁, 드라이버, 시뮬레이터, 서비스 가상화 등)
  • 테스트 실행 작업 산출물 : 테스트 로그, 결함 보고서 
  • 테스트 완료 작업 산출물 : 테스트 완료 보고서, 향후 프로젝트 또는 반복 주기 때 개선할 실천 항목, 문서로 기록한 교훈, 변경 요청서 (ex. 제품 백로그 항목)

  • 테스트 베이시스와 테스트웨어 간의 추적성
    • 좋은 추적성은 보고서를 더 쉽게 이해할 수 있게 한다.
    • 비즈니스 목표 대비 제품 품질, 프로세스 역량, 프로젝트 진행 상황 등을 평가할 수 있다.
    • ex) 테스트 케이스에서 요구사항으로의 추적성을 통해 테스트 케이스 요구사항을 커버하고 있 지 확인
    • ex) 테스트 결과에서 리스크로의 추적성을 통해 테스트 대상의 잔존 리스크 수준을 평가

테스팅의 필수 기술 및 모범 사례

 

  • 전체 팀 접근법 (Whole Team Approach)
    • 테스터에게 중요한 기술 중 하나는 팀 환경에서 효과적으로 일하고, 팀 목표에 긍정적으로 기여하는 능력이다. 전체 팀 접근법에서는 필요 지식과 기술을 갖춘 팀원이라면 누구나 모든 작업을 수행할 수 있고, 모든 팀원이 품질에 대해 책임진다. 
    • 테스터는 필요한 수준의 품질 달성을 위해 다른 팀원과 긴밀히 협력하게 된다.
    • ex) 비즈니스 담당자와 협력해 적절한 인수 테스트를 작성하고, 개발자와 협력해 테스트 전략을 협의하고, (개발자와 비즈니스 담당자의 도움을 받아) 테스트 자동화 접근법을 결정

 


728x90
반응형