PE Notes · SW
테스트 기법
V 모델의 단계 대응과 TDD·BDD 리듬을 잡고, 명세 기반·구조 기반 기법과 테스트 레벨을 나눈 뒤, 피라미드·커버리지·시프트 레프트로 자동화를 붙입니다.
입력을 모두 칠 수는 없습니다. 어디를 어떻게 치면 결함이 값싸게 드러나는지가 기법입니다. 는 그 기법을 명세·구조·경험으로 적고, 계획서부터 완료 보고까지 문서 자리를 줍니다. 그림은 그 선택을 V 모델의 단계 대응, TDD·BDD의 리듬, 자동화 피라미드에 붙입니다.
V 모델과 TDD·BDD
은 왼쪽 개발 단계와 오른쪽 시험 단계를 한 쌍으로 둡니다. 요구는 인수, 시스템은 시스템 시험, 아키텍처는 통합, 상세 설계는 단위와 만납니다. 검증·확인을 코딩이 끝난 뒤에 몰지 않고, 각 왼쪽이 생길 때 오른쪽 계획을 같이 씁니다.
는 Red(실패 시험) → Green(최소 통과) → Refactor입니다. 시험 가능한 구조가 먼저 나오고, 회귀는 같은 시험이 다시 막습니다. 는 그 시험을 업무 문장으로 올립니다. Given(전제) · When(행위) · Then(기대)이 개발과 비개발의 같은 명세가 됩니다.
품질관리의 통제를 이 리듬에 심으면, 검사가 출고 한 번이 아니라 커밋마다입니다.
블랙박스·화이트박스와 레벨
명세 기반(블랙박스)은 코드를 보지 않고 입출력·규칙을 칩니다. 은 같은 동작을 낼 구간에서 대표값만 고릅니다. 은 그 구간의 가장자리와 바로 안팎을 칩니다. 범위 오류가 경계에 모인다는 가정입니다. 은 조건 조합과 동작을 표로 펼쳐 누락 규칙을 찾습니다. 상태가 있는 흐름은 전이 경로를 케이스로 삼습니다.
구조 기반(화이트박스)은 실행 경로를 잽니다. 구문 커버리지(C0)는 문장 한 번, 분기 커버리지(C1)는 if의 참·거짓입니다. 는 복합 조건의 각 항이 결정에 독립으로 영향을 미치게 칩니다. 항공 소프트웨어 안전 기준이 이 칸을 요구합니다.
레벨은 단위(함수·클래스, 개발자, TDD와 만남), 통합(인터페이스, 빅뱅 또는 점증), 시스템·인수(비기능과 사용자 수락)입니다. 분류트리는 여러 입력을 나무로 조합할 때, A/B는 이미 나간 화면의 지표 실험일 때 옆에 둡니다. 명세가 얇으면 으로 학습·설계·실행을 한 세션에 붙입니다.
피라미드와 파이프라인
자동화는 아래를 두껍게 둡니다. 는 단위를 많이, 통합(계약·API·DB)을 중간, E2E UI를 꼭대기에 적게입니다. 위는 느리고 비쌉니다.
지표는 커버리지(구문·분기), 결함 밀도(LOC 또는 분모), 단계별 검출율입니다. 늦게 찾을수록 고치는 값이 큽니다. 는 시험을 설계·구현 옆과 게이트로 당깁니다. 커밋이 단위·통합을 돌리고, 실패하면 배포가 멈춥니다. 카오스 엔지니어링은 운영에 장애를 넣어 복원력을 봅니다. 피라미드의 꼭대기를 대체하지 않습니다.
답안은 V의 짝, TDD 세 박자, 동등·경계·결정표, C0·C1·MC/DC, 피라미드 세 층과 시프트 레프트를 한 장에 올립니다.