Learning
토픽 207 / 214·비교표

소프트웨어 테스트

블랙박스 vs 화이트박스 테스트

항목블랙박스화이트박스
기반명세 기반구조(코드) 기반
관점사용자 관점개발자 관점
코드 지식불필요필수
기법EP, BVA, 결정테이블문장/결정/조건 커버리지
발견 결함기능 누락/오류논리적 오류/경로 오류

테스트 수준: 단위→통합→시스템→인수

항목단위통합시스템인수
대상함수/클래스모듈 간전체 시스템사용자 관점
수행자개발자개발팀/QAQA팀고객/사용자
목적코드 정확성인터페이스 검증요구 충족비즈니스 충족
도구JUnit, pytestPostmanSeleniumUAT 시나리오

EP vs BVA vs 결정테이블

항목동등분할(EP)경계값분석(BVA)결정테이블
원리클래스 대표값경계 인접값조건-행동 조합
강점케이스 수 감소off-by-one 발견완전성 보장
케이스 수클래스 수4N+1 또는 6N+12^N 조합

TDD vs BDD vs ATDD

항목TDDBDDATDD
초점테스트 우선/기술적행위 중심/협업인수 조건
주체개발자개발+비즈니스팀 전체
형식Red-Green-RefactorGiven-When-Then인수 시나리오
도구JUnit, pytestCucumber, SpecFlowFitNesse
언어프로그래밍 언어자연어(Gherkin)자연어

테스트 피라미드 계층: Unit vs Integration vs E2E

항목UnitIntegrationE2E
비율70~80%15~20%5~10%
실행 속도매우 빠름중간느림
유지 비용낮음중간높음
신뢰도낮음(격리)중간높음(실제 환경)
결함 위치명확중간불명확

테스트 피라미드 vs Ice Cream Cone vs Testing Trophy

항목피라미드Ice Cream ConeTesting Trophy
구조Unit 많고 E2E 적음E2E 많고 Unit 적음통합 테스트 중심
효율최적비효율/느림/취약통합 균형
비용낮음높음중간

SIL/HIL: MIL vs SIL vs PIL vs HIL

항목MILSILPILHIL
대상모델소스코드타겟 바이너리실제 ECU
환경시뮬레이터호스트 PC타겟 보드HIL 시뮬레이터
비용낮음낮음중간높음
현실성낮음중간높음매우 높음

정형 기법: Z/VDM vs Petri-Net vs 모델검사 vs 정리증명

항목Z/VDMPetri-Net모델 검사정리 증명
접근명세 중심/상태 기반동시성/그래프자동/상태 탐색수학적 증명
자동화수동분석 가능자동(반례 제공)반자동
한계명세 복잡도상태 폭발상태 폭발완전하나 수동
적합안전 필수 명세분산/병렬 시스템프로토콜 검증완전 검증

Property-Based vs Example-Based vs Fuzzing

항목Property-BasedExample-BasedFuzzing
입력속성 정의/자동 생성개별 케이스/수동무작위/자동
범위광범위(수천 입력)제한적광범위
초점불변 조건 검증기대 결과 확인보안/크래시
디버깅축소(Shrinking)직관적반례 추적

Mutation Testing vs Code Coverage vs Property-Based

항목Mutation TestingCode CoverageProperty-Based
목적테스트 품질 평가코드 실행 비율입력 다양화
방법코드 변형→테스트 탐지실행된 라인/분기 측정속성+자동 입력
측정Mutation Score커버리지 %속성 위반 여부

테스트 vs 정적분석 vs 정형검증

항목테스트(동적)정적 분석정형 검증
실행실행 필요실행 불필요수학적 추론
발견결함(동적 오류)코드 구조/스멜정확성 증명
완전성불완전오탐 가능완전(이론적)
자동화자동화 가능자동반자동

Contract Testing vs Integration vs E2E vs Mock

항목ContractIntegrationE2EMock
범위API 계약모듈 간전체 시스템단위 격리
속도빠름중간느림빠름
독립 배포지원불가불가N/A
실제성계약 기반실제 연동가장 현실적가짜