테스트 유형의 목적 : 특정 테스트 목적을 위해 테스트하는 활동의 집합
- 기능 품질 특성 평가
완전성
내가 기대한 정확한 기능을 하느냐 - 정확성
적합성(편의성, 사용자가 효율적으로 편리하게 쓸 수 있게 되어있느냐, 비슷한 품질로 '사용성(학습용이성,심미성)'과 혼동이 될 수 있음)
- 비기능 품질 특성 평가
- 구조적 테스팅(컴포넌트, 시스템 아키텍처 구조가 정확 명시와 일치하느냐)
- 수정의 효과 평가(확인&리그레션 테스팅)
2.3.1 기능 테스팅
- ✔︎ 실제 소프트웨어는 존재하나 명세에 존재하지 않는 기능이 있을 수 있음을 염두해두자.
- "무엇"을 시스템이 해야 하는지 얘기한다.
- 모든 테스트레벨에서 수행, 하지만 각 레벨에서의 관심 사항은 다를 수 있다.
- 기능 테스팅은 블랙박스 테스팅 기법을 가장 많이 참조하기는 하나 다른 테스팅기법은 안된다는 말은 아니다(ex 구조기반, 경험기반)
- 충분히 테스트했다를 평가하는 기준은 기능의 커버리지를 측정해서 커버리지로 보장할 수 있다.(다양한 기법으로 커버리지 측정이 가능)
커버리지 종류에 따라 다를 순 있음.
2.3.2 비기능 테스팅
- 시스템이 얼마나 잘 동작하느지에 대한 테스팅
- 비기능테스팅은 모든 레벨(현장에선 시스템레벨에서 많이함)에서 가능하다(컴포넌트 test : 메모리 릭, 유지보수성 테스팅, 사용성 테스팅, 성능...)
ex) 시스템테스트에서 메모리 릭 현상 결함원인을 찾을 수 있을까?
어느 모듈에서 나오는 지 알려면 하나하나 다 뜯어봐야함.
단위테스트에서 발견하지 제일 쉬움
사용성도 빠르면 좋은 이유: 대량의 화면 UI 테스팅 시 초기(단위레벨)에 테스팅하면 일찍 발견해서 좋.
성능 테스트는?
보통 시스템레벨에서 하는게 더 신뢰성 있다.
- 기능이 결함이 있는 상태에서 성능테스트를 하면 의미없는 테스팅일 경우가 높다.
- 기능테스트를 통해 완전성을 확보하고 성능테스트를 하는게 좋다.
비기능테스트 설계 및 실행에느느 특수한 역량이나 지식이 필요할 수 있다. - 보안에 관련 지식, 능력, 지원도구 사용가능 , 도메인 지식
2.3.3 화이트 박스 테스팅
- 시스템의 내부 구조나 구현을 기반으로 테스트 도출
정적테스팅
- 상태 전이 모델, 유즈케이스, 코드등은 정적분석도구(규칙이 명확한 산출물)로 테스팅 가능하다.
- 리뷰:사람이 직접 눈으로 찾는 것 (모든 산출물 대상), 단 코드를 일일히 다 읽어서 리뷰하는 것은 어렵다.
- 정적 테스팅의 가치 - 결함이 테스트를 통해서 찾는 거보다 조기에 찾는게 가능.다음단계로 전이될 수 있는 것을 예방하는게 가장 큼
- 비용이 훨씬 적게 듦(정적테스팅은 테스트케이스 안만들어도됨, 테스트 환경구출 안해도됨, 테스터데이터,사람등등, 재테스트 할 필요도 없음)
- 예방적 차원이냐, 사후조치 차원이냐, 찾을 수 있는 결함 유형도 정적과 동적은 다다르다. 특히 유지보수성은 정적에서만 찾을 수 있음.
- 포멀리뷰가 효과도 비용도 인포멀리뷰보다 크다
리뷰 프로세스
포멀한 리뷰는 사소한 결함까지 찾을 수 있게 찾아야할 결함갯수까지 정해준다.
포멀한 리뷰 프로세스:
- 계획(테스트 일정,범위, 대상등을 정의) - 저자가 산출물을 설명해줌(설명회) - 개별리뷰 - 리뷰 - 수정작업 & 재리뷰할 것 판단 - 클로징
모더레이터의 역할과 권한이 중요: 운영
오픈 결함: 결함 확정된 것
이슈 : 아직 결함인지 미확정
정적분석(제일 비용이 싼 test, 빨리 돌아가고, 한번에 찾아주고) - 리뷰 - 화이트박스테스팅(설계, 테스트 환경, 재테스트등 비용이 많이듦)
이런관점으로 테스트 순서를 정할 줄 알아야함.
리스크와 비용은 항상 고려해야함.
리스크 비용을 초과하는 테스트는 잘못된 것.
공식리뷰는 비싸서 리스크가 큰 산출물 위주로 리뷰를 진행한다.
워크쓰루는 흐름을 주제로 읽어서 리뷰. 오픈앤드세션, 자유롭
공식리뷰는 라인 바이 라인. 앤드가 정해짐(시간지정)
기술 리뷰: 테크니컬 문서(not 요구사항명세서) 아기텍쳐 정의서, 프로그램 코드등을 기술 리뷰를 통해 정적 테스팅
작업 산출물에 리뷰 기법을 적용해 결함을 식별할 수 있다.
요구사항명세서,비즈니스 플로우, 계획서 - 인포말,워크스루
아키텍처 구조, 설계서 - 포말
리뷰 성공 요소 - 중재자의 역할
정적분석 - 코드, 모델로 이루어진 구조를 분석하는게 제일 효율적.
화이트박스테스트설계가 정적테스트의 가치가 있기도 함. 하지만 정적테스팅은 아님.
정적테스트로는 장애를 찾을 수 없다. 동적테스트로 장애도 찾고 결함도 찾을 수 있다.
매트릭은 formal한 리뷰에서 주로 씀(기록을 남기니까)