본문 바로가기
CSTS (일반등급)

CSTS 1장 테스트 개요

by record2840 2025. 5. 22.

대중교통 이용하면서 잠깐식 보려고 만들었습니다. 

CSTS는 요약만 봐서는 힘들 것 같고 책을 읽어보고 단원 뒤에 나오는 연습문제도 풀어야 합격율이 높아집니다. 


테스트 목적

  1) 결함의 검출과 제품 품질 개선  
  2) 품질 평가와 의사 결정 지원
  3) 개발 프로세스 개선 지원

 

- 오류(Error)
  잘못된 결과를 만드는 사람의 행위(사람의 실수)
- 결함(defect)
  오류에 의해 발생한 것. 실제로 코드에 구현된 것. S/W 상의 오류를 일으키는 징후. 
요구 사항의 부정확한 처리,       Failure의 원인이 될 수 있음
- 장애 : 예상과 다르게 동작하는 SW의도하지 않은 결과

 

S/W, 시스템, 문서의 결함은 장애의 원인이 되지만 반대는 아니다. 

 

- S/W 결함의 원인
  인간의 실수 : 요구사항의 오류 및 변경.시간적 압박,복잡한 코드,기반 환경의 복잡성, 기술 시스템의 변경 S/W 상호간의 연동
  환경적 요인 : 방사 자기 전자기장 물리적 오염

 

- S/W 개발 유지보수 운영 시 테스팅의 역할
1) S/W
개발과정에서의 테스팅
    -
개발 초기에 요구사항 분석 단계부터 테스트 리뷰와 정적 분석을 통해 정적 테스팅
    -
개발 단계에 대응하는 테스트 레벨에 따른 테스팅
    -
최종 인수단계 →  인수테스팅

2) 유지보수. 운영에서의 테스팅
    -
유지보수 활동으로 변경 및 단종되는 경우 테스팅
    -
환경 변했을 경우 변경된 시스템의 대상 변경된 환경에서의 운영 테스팅

      얼마나 테스트해야 충분한가? →  적절한 테스팅의 정도 파악 →  리스크 수준을 고려

 

 

> 테스팅 ?
응용 프로그램, 시스템의 동작과 성능, 안정성이 사용자가 요구하는 수준을 만족하는지 확인하기 위해 결함을 발견하는 매커니즘

> 테스팅의 정의
  현재의 테스팅 : 사용자의 기대수준과 요구사항에 맞게 구현 동작되는지 확인
  최종적으로 결함 데이터를 근간. 개발 프로젝트의 리스크 정보를 정량적 수치로 의사결정권자에게 전달

테스팅: 결함존재를 확인하지만 그 위치와 원인을 알 수 없음
   디버깅: 결함위치 파악 및 결함 제거
   재테스팅: 결함이 제거되었는지 확인

 

> 테스트 원칙
1)
테스트는 반드시 프로그램을 개발한 프로그래머나 팀과는 무관한 그룹이 수행해야 한다.
2)
결함이 발견되지 않으리라는 가정하에 테스트 계획을 수립해서는 안 된다.
3)
타당한 경우뿐만 아니라 타당하지 않고 예상하지 못한 경우에 대해서도 테스트를 수행해야 한다.
4)
프로그램의 어떤 부분에 결함이 남아있을 확률은 그 부분에서 이미 발견된 결함의 수에 비례한다.
5)
테스트 케이스를 체계적으로 관리하라
6)
각각의 테스트 결과를 철저하게 점검하라. (테스트 케이스 재사용 할 수 있다. )
7)
각각의 테스트 결과를 철저하게 점검하라.

 

 

※ ISO 25010 품질 특성 분류

주특성 설 명
기능 적합성 요구되는 기능을 만족시키는 능력
성능 효율성 적절한 자원의 사용 및 적정한 반응시간 정도
호환성 다른 시스템과의 상호 연동 능력
사용성 사용자가 이해하고 배우기 쉬운 정도
신뢰성 규정된 조건에서 규정된 기간 동안 오동작 없이 의도된 기능을 수행하는 소프트웨어의 능력
보안성 정보 및 데이터를 보호하는 능력
유지보수성 소프트웨어 유지보수의 용이성
이식성 다양한 플랫폼에서 운영될 수 있는 소프트웨어의 능력

 

☞ 기성호사신보유이 : 일단 앞글자만 따서 외워둡니다. 

 

포함관계 : 테스트 < V&V < 품질 보증

 

Verification(검증): S/W 개발과정에서 수행한 활동의 적합성 검사에 초점. 요구사항 명세서가 결과물에 적절하게 반영되었는가
Validation(
확인): 결과물의 적합성에 초점.

☞ 구분할 줄 알아야 합니다. 

 

> 정적 테스트: 테스트 대상을 실행하지 않고 테스트를 수행하는 방식. 실행환경이 불필요. 소스 코드 작성 전에서 테스트 가능
    -
리뷰: 산출물이 품질 목표에 부합하는지 점검 또는 결함 검출 목적
    >
정적 분석: 소스 코드를 대상으로 결함 판단할 수 있는 특정 패턴이 소스 코드에 있는지 분석 자동화 도구를 활용함으로써 테스트를 자동으로 수행할 수 있다는 장점이 있다.

> 동적 테스트: 소프트웨어를 실행. 요구사항은 어떤 입력에 대한 기대 결과를 명시한다
  소프트웨어는 필요하나 소스 코드는 사용하지 않는다. S/W 실행할 환경이 필요
.
소프트웨어 품질 요구사항(가용성 확장성, 신뢰성 등)등도 동적테스트를 통해서 확인이 가능
 -
명세 기반 방법: 요구명세이용 TC 개발. , , , 인 등 전 과정에 사용
 -
구조 기반 방법: 제어흐름, 자료 흐름 정보를 이용하여 TC 설계.
 -
경험 기반 방법: 테스터의 경험. 직관을 활용하여 테스트. TC 를 바탕으로 테스트 수행하지 않음
                
) 오류추정, 탐색적 테스트  

> 테스트 케이스 : 특정한 입력값으로 테스트 대상을 실행하였을 때 기대되는 값도 결정해야 한다. 이유는 실제 출력이 예상 기대값과 다른 경우 테스트 대상은 결함을 가지고 있다고 간주할 수 있다.

 

◈ 기출문제에서 나오는 문구 중 헤깔린 것이 있어서  포함해서 정리했습니다. 

반응형