테스팅 Fundamental에 대한 이해
소프트웨어 테스팅이란?
테스트 레벨에 따른 분류
- 테스트 대상 소프트웨어의 구현 범위의 따른 분류
- 유닛 테스트 : function, conponent 자체의 결함 발견
- 비즈니스 로직 검증
- 높은 프로그래밍 역량 필요
- 개발자 수행 (혹은 SDET)
- 충실도(fidlity)가 높지 않음
- 통합 테스트 : component 간 통합 시 결함 발견
- 시스템 테스트 : 통합 시스템의 기능/비기능 결함 발견
- E2E(End to End) 테스트
- QA 수행 (+ 개발자)
- 인수 테스트 : 고객 요구사항과의 일치성 확인
- 인수 조건(Acceptance Criteria)을 만족하는지 확인하는 시스템 테스트
- 이해 관계자와 데모
테스트 유형에 따른 분류
- 발견하려는 결함의 유형에 따른 분류
- 기능 테스트, 비기능 테스트, 구조/설계 테스트, 변경 테스트
- 모든 테스트 유형은 어느 테스트 레벨에서나 수행할 수 있음
테스트 수행 방식에 따른 분류
- 정적 테스트
- 소프트웨어를 구동하지 않고 리뷰/분석을 통해 결함 발견
- 리뷰
- (비즈니스/기능) 요구사항 명세서
- 디자인 명세
- 기술 명세
- 코드
- 분석/조사
- 인스펙션 (Inspection) : 코드를 실행하지 않고 코드 상의 잠재적인 오류를 찾아 개선
- 동적 테스트
- 대상 소프트웨어를 구동하여 결함 발견
- 기능 테스트
- 유닛 테스트
- 백엔드 서비스 테스트 (ex. API 테스트)
- 시스템 테스트 (E2E 테스트)
- 비기능 테스트
테스트 설계 기법에 따른 분류
- 테스트 케이스를 도출하는 기법에 따른 분류
- 명세 기반(Black box), 구조 기반(White box), 경험 기반 기법
애자일 개발 조직이 일하는 법, 그 안에서 QA 엔지니어의 역할
About 애자일