-
테스트 레벨
테스트가 수행될 소프트웨어 개발 주기의 여러 단계 (테스트 프로세스 중의 특정 예시 단계)
소프트웨어 개발 프로세스에 중점을 둔 영역에 따라, 4 개의 점진적 테스트 레벨이 있음
<구체적인 목적, 테스트 베이시스, 테스트 대상 결함/장애, 접근법/역할> 기준으로 분류
컴포넌트/유닛 테스트 - 통합테스트 - 시스템 테스트 - 인수 테스트
컴포넌트/ 유닛 테스트
유닛: 소프트웨어 시스템에서 테스트할 수 있는 가장 작은 부분
소프트웨어 시스템의 모든 단일 단위를 검사하여, 예상한대로 요구 사항과 기능을 충족하는지 확인하는데 목적을 둠
일반적으로, 개발자가 개발 프로세스 초기에 수행
각 컴포넌트를 독립된 환경에서 테스트
<테스트 대상 = 컴포넌트/단위/모듈, 코드/데이터 구조, 클래스, 메서드, 데이터베이스 모듈>
통합 테스트
결합된 단위가 그룹으로 함께 잘 작동하는지 확인하는데 목적을 둠
모듈 내 단위 간의 상호 작용에서 결함 감지
통합된 장치 간의 인터페이스 및 상호 작용에서 오류 노출
시스템 연동의 기능적인 면을 주로 검토, 비기능적인 면은 검증 X
<테스트 대상 = 서브 시스템, 데이터베이스, 인프라, 인터페이스, APIs, 마이크로서비스>
주요 접근 방식: 상향식, 하향식
상향식 - 단위 테스트로 시작하여, 테스트 중인 소프트웨어 모듈의 복잡성을 연속적으로 증가시킴
하향식 - 높은 수준의 조합에 초점을 맞추고 나중에 간단한 조합을 검토함
컴포넌트 통합 테스트 - 통합된 컴포넌트나 시스템 간의 상호운용성 & 인터페이스에 초점, 컴포넌트 테스팅 후 수행 (자동화), 반복적/점진적 개발에서 지속적 통합(CI) 프로세스의 일부로 수행, 개발자 책임
시스템 통합 테스트 - 시스템, 패키지, 마이크로 서비스 간의 상호운용성 & 인터페이스에 초점, 시스템 테스팅 후 또는 진행 중인 테스팅 활동과 병행해서 수행, 테스터 책임
시스템 테스트
완전한 소프트웨어 시스템을 전체적으로 테스트
제품의 기능 및 기술 요구사항과 전반적인 품질 표준 준수 여부 평가
+ 동작 & 능력, 비기능 동작, 데이터 품질 검증 테스트
주로 부하를 주는 상황에서 수행, 비기능 테스트를 중점적으로 진행
최대한 실제 비지니스 사용 시나리오에 가까운 환경에서 전문적인 테스트 팀에 의해 수행
<테스트 대상 = 애플리케이션, 하드웨어/소프트웨어 시스템, 운영 시스템, 테스트 대상 시스템, 시스템 설정/설정 데이터>
애자일 개발 방식의 시스템 테스트 - 스프린트 또는 주기가 종료될 때마다 테스트 환경에서 진행, 제품 출시 전의 몇 번의 시스템 테스트는 테스트 환경이 아닌 실 운영 환경에서 테스트 진행 (소프트웨어뿐만 아닌 운영 환경 자체에 대한 검증 진행)
인수 테스트
시스템의 인수 가능성을 테스트
개발이 완료된 후 시스템 출시 전 최종적으로 수행되는 테스트
최종 사용자 요구 사항과 정확성에 대해 제품을 검증하는 테스트 프로세스의 마지막 단계
결함 발견 목적 X, 제품 출시 여부 판단 목적
제품 배포 준비 여부 결정에 도움이 됨
작은 이슈들이 프로세스 초기에 발견, 해결되야 함
콘텐츠 및 UI에서 성능 문제에 이르기까지의 전반적인 시스템 품질에 중점을 둠
인수 단계에 이어 알파 및 베타 테스트가 진행 → 소수의 실제 사용자가 공식적으로 출시되기 전에 시험
B2C 서비스 = 알파 & 베타 서비스 수행, 사용자 경험 테스트는 성공 요인을 결정하는 중요점
최종적인 보안 테스트 수행 (제품 출시와 서비스 오픈 후에도 지속적 수행, 보안 결함 발견된 경우 보안 패치 적용)
<테스트 대상 = 테스트 대상 시스템, 시스템 설정/설정 데이터, 완전 통합 시스템의 비즈니스 프로세스, 법적 사항, 사용자 경험(UX), 복원 시스템과 비즈니스 연속성/긴급 복구 테스팅을 위한 핫사이트, 운영/유지보수 프로세스, 양식, 보고서, 기존/전환된 생산 데이터>
유닛 테스트 통합 테스트 시스템 테스트 인수 테스트 왜 코드가 올바르게 개발되었는지 확인하기 위해 시스템 구성요소들의 결합이 요구하는대로 작동하는지 확인하기 위해 통합된 시스템이 전체적으로 작동이 잘 되는지 확인하기 위해 고객과 최종 사용자의 기대에 충족하는지 확인하기 위해 누가 개발자 / 기술 설계자 개발자 / 기술 설계자 / 테스터 소프트웨어 품질 전문가 / 수동 QA / 비지니스 분석가 / 제품 소유자(Owner) 개발자 / 품질 전문가 / 수동 QA / 제품 소유자 / 제품 최종 사용자 / 시스템 운영자 무엇을 모든 새로운 코드 + 리팩터링한 기존 코드 + 유닛 테스트 새로운 웹 서비스, 구성요소, 컨트롤러 등 시나리오 테스트, 사용자 플로우, 성능 테스트, 보안 테스트 유저 스토리에 대한 인수 테스트 검증, 기능(feature) 검증 언제 새로운 코드 작성하자마자 새로운 구성요소가 추가되자마자 제품이 완성되었을 때 제품이 릴리즈할 준비가 되었을 때 어디서 Local Dev + CI Local Dev + CI Staging 환경 CI / 테스트 환경 어떻게 (툴, 방법) 자동화, Junit, TestNG 등 자동화, SoapUI 등 자동화 (웹드라이버)
탐색적 테스트자동화 (Cucumber) '테스팅 관련 > 개념' 카테고리의 다른 글
테스트 유형 (0) 2020.10.09 테스트 방법 (0) 2020.10.09 테스트 전략(Strategy) & 테스트 계획(Plan) (0) 2020.10.05 소프트웨어 테스트 수명 주기(STLC) (0) 2020.10.04 SW 테스트 7가지 원리 (0) 2020.09.29