SW공학 묶음에서 가장 자주 나온 장이다. 기법의 이름, 커버리지의 강약, 흐름도에서 경로 적기 — 셋이 전부다
왜 이걸 하나 — SW공학 37문항 중 12문항이 이 장이고 11회 중 10회에 나왔다. 2024년 2회만 빠졌다.
11회분 220문항 중 이 장의 기출은 12문항이다. 2023년 2회와 2025년 3회에는 2문항씩이었고, 2026년 2회 1번(동치 분할)이 그 회차의 첫 문제였다. 같은 것이 되풀이된다 — 조건 커버리지 2번, 스텁 · 드라이버 2번, 분기 커버리지 경로 2번, 동치 분할 2번.
| 꼴 | 몇 문항 | 무엇을 적나 | 보기 |
|---|---|---|---|
| 기법 · 커버리지 이름 | 6 | 조건 커버리지 · MC/DC · 동치 분할 · 커버리지 3칸 | 2023-2회 6번 · 2024-1회 14번 · 2024-3회 9번 · 2025-3회 4번 · 2026-2회 1번 |
| 흐름도 → 경로 | 3 | 분기 커버리지 경로 2개, 구문 커버리지 실행 순서 | 2023-1회 19번 · 2025-1회 15번 · 2025-2회 11번 |
| 통합 테스트 용어 | 2 | 스텁 · 드라이버 | 2023-2회 7번 · 2026-1회 15번 |
| 테스트 케이스 구성 | 1 | 조건 · 데이터 · 예상 결과 | 2025-3회 19번 |
→ 2023년 1회 19번과 2025년 2회 11번은 같은 흐름도(노드 1~7, POINTER · X · RESULT)에 같은 답이다. 이 흐름도 하나를 손으로 풀어 두면 두 회차 분이 끝나고, 경로를 적는 규칙은 다른 흐름도에도 그대로 간다.
E01 진단의 SW공학 4문항 중 1번(동치 분할)이 이 장이었다. 「테스트」는 낱말이 많아 보여도 03절의 세 질문(무엇을 보나 · 얼마나 덮나 · 누가 대신하나)에 전부 들어간다.
문항 수는 이 노트의 문제 데이터에서 ch=E18 인 것을 센 값이다(2026-09-14). 흐름도는 grandlife.co.kr 복원 그림을 노드 표로 옮겼고, 2025-1회 15번의 C 함수도 거기서 옮겼다.
왜 이걸 하나 — 시험 전날 이름 17개와 순서 셋을 백지에 적어 본다.
왜 이걸 하나 — 이름 17개는 세 질문에서 나온다. 무엇을 보나, 얼마나 덮나, 누가 대신하나.
블랙박스는 코드를 안 보고 명세(입력과 기대 출력)만 본다. 그래서 기법 이름이 전부 「입력을 어떻게 고르나」다. 입력을 같은 결과가 나오는 무리로 나눠 대표 하나씩 고르면 동등 분할, 무리의 경계와 바로 앞뒤를 고르면 경계값 분석, 입력 조건과 결과의 관계를 그래프로 그려 고르면 원인-효과 그래프, 경험으로 고르면 오류 예측, 다른 버전과 견주면 비교 검사.
2026년 2회 1번이 이 갈림을 물었다. 평가표(90~100 은 A …)가 명세고, 테스트 내역의 입력이 −10 · 30 · 75 · 85 · 95 · 110 — 구간마다 가운데 값 하나씩이라 동등 분할이다. 0 · 69 · 70 · 79 · 80 · 89 · 90 · 100 처럼 경계에 몰려 있었다면 경계값 분석이다.
화이트박스는 코드 안을 보고 얼마나 지나갔나를 잰다. 그래서 이름이 전부 「커버리지」다. 화이트박스 · 블랙박스라는 낱말 자체를 묻기도 한다 — 「구조 기반」「제어 흐름」이면 화이트, 「명세 기반」「입력 · 출력」이면 블랙.
커버리지 여섯은 요구가 세지는 순서다. 구문은 모든 문장을 한 번씩만 실행하면 되고, 분기는 결정(if · while)마다 참 한 번 거짓 한 번, 조건은 결정 안의 개별 조건식(A > 0, B < 5 같은 것)마다 참 · 거짓 한 번씩, 조건/결정은 둘 다, MC/DC 는 개별 조건 하나만 바꿔도 결정이 바뀌는 케이스를 조건마다, 다중 조건은 조건들의 모든 조합이다.
| 커버리지 | 무엇을 한 번씩 | 표지 낱말 | 기출 |
|---|---|---|---|
| 구문(문장) | 모든 문장 | 최소 1회 실행 | 2024-3회 9번 · 2025-1회 15번 |
| 분기(결정) | 결정의 참 · 거짓 | 모든 분기 · 참/거짓 | 2023-1회 19번 · 2025-2회 11번 |
| 조건 | 개별 조건식의 참 · 거짓 | 결정 포인트 내 개별 조건식 | 2023-2회 6번 · 2025-3회 4번 |
| 조건/결정 | 위 둘 다 | 조건과 결정 모두 | — |
| MC/DC | 조건 하나가 결정을 독립적으로 바꾸는 케이스 | 독립적으로 영향 | 2024-1회 14번 |
| 다중 조건 | 조건의 모든 조합 | 모든 조합 | — |
→ 분기와 조건이 가장 많이 섞인다. 분기는 결정 전체의 참 · 거짓이고, 조건은 결정을 이루는 개별 조건식의 참 · 거짓이다. 「결정 포인트 내의 개별 조건식」이라는 문장이 보이면 조건 커버리지다.
흐름도 문제는 결정 노드(마름모)를 먼저 센다. 2023년 1회 19번 · 2025년 2회 11번의 흐름도는 결정이 2(X > K)와 6(RESULT > 1) 둘이고, 분기 커버리지는 각 결정의 YES 와 NO 를 한 번씩 지나면 되니 경로 두 개로 네 분기를 덮는다. 첫 경로는 2 에서 YES(→3) 6 에서 YES(→1) 로 1234561, 둘째는 2 에서 NO(→4) 6 에서 NO(→7) 로 124567.
6 에서 방향을 서로 바꾼 1234567 · 124561 도 네 분기를 다 덮으므로 정답이다. 답안에는 노드 번호를 이어 적고, 6 에서 1 로 돌아간 경로는 끝이 1 이다. 경로가 1 로 돌아가는 것을 「반복」이라 빼먹으면 6 의 YES 분기가 안 덮인다.
구문 커버리지 경로(2025년 1회 15번)는 실행되는 문장 번호를 순서대로 적는다. values = {−3}, count = 1 이면 문장 1 초기화 → 2 의 0 < 1 참 → 3 의 −3 < 0 참 → 4 → 5 에서 index 1 → 다시 2 의 1 < 1 거짓 → 6. 반복 조건을 거짓으로 한 번 더 지나는 것이 답의 두 번째 2 이고, 이것을 빼면 틀린다.
통합 테스트는 모듈을 붙여 가며 하는데, 아직 안 만든 모듈 자리를 누군가 대신해야 한다. 위에서부터 붙이면(하향식) 아래가 비어 있으니 아래를 흉내 내는 스텁이 필요하고, 아래에서부터 붙이면(상향식) 위가 비어 있으니 위에서 불러 주는 드라이버가 필요하다. 2023년 2회 7번과 2026년 1회 15번이 같은 두 칸이다.
수준은 작은 것부터 단위 → 통합 → 시스템 → 인수이고, 인수의 두 가지가 알파(개발자 쪽에서) · 베타(사용자 쪽에서)다. 고친 뒤 다른 곳이 안 망가졌는지 다시 하는 것이 회귀 테스트. 테스트 케이스는 조건 · 데이터 · 예상 결과 셋이 있어야 한 건이다(2025년 3회 19번).
형상 관리는 소스 · 문서의 변경을 통제하는 일이고 절차 넷이 순서대로다. 무엇을 관리할지 정하고(식별), 변경 요청을 심사해 승인하고(통제), 승인대로 바뀌었는지 검증하고(감사), 이력을 남긴다(기록). 「변경 요청 · 승인」이 보이면 통제다. 기준선은 승인된 시점의 형상, 도구는 Git · SVN 이다.
인터페이스 구현 문제는 두 갈래다. 검증 도구 이름(xUnit · Selenium · STAF · FitNesse · NTAF · watir)과 EAI 통합 방식(Point-to-Point · Hub & Spoke · Message Bus · Hybrid). 「1:1」「허브」「버스」가 방식의 표지고, AJAX(2023년 1회 4번 · 2025년 2회 8번)는 E16 에 두었다.
왜 이걸 하나 — 이름 문제는 표지 낱말 → 이름, 흐름도 문제는 결정 노드 세기 → 경로 연습이다.
흐름도 문제는 답 칸에 결정 노드 번호를 먼저 적고, 각 노드의 YES · NO 를 어느 경로가 덮는지 표로 그린 뒤 경로를 적는다. 정답에 「또는」이 있으면 두 조합 중 하나만 맞아도 된다.
다음 제어 흐름에서 분기 커버리지를 만족하도록 두 개의 실행 경로를 쓰시오.
제어 흐름도(그림을 표로 옮김)
| 노드 | 내용 | 다음 |
|---|---|---|
| 1 | POINTER = FALSE | 2 |
| 2 | X > K ? | YES → 3, NO → 4 |
| 3 | POINTER = TRUE | 4 |
| 4 | X = X + 2 | 5 |
| 5 | CALL SUB(X, POINTER, RESULT) | 6 |
| 6 | RESULT > 1 ? | YES → 1, NO → 7 |
| 7 | PRINT RESULT | 끝 |
결정 포인트 내의 모든 개별 조건식이 참 한 번, 거짓 한 번을 갖도록 테스트케이스를 설계하는 화이트박스 커버리지는?
통합 테스트에서 ① 하향식 테스트 시 아직 개발되지 않은 하위 모듈을 대신하는 임시 모듈 ② 상향식 테스트 시 상위 모듈을 대신해 테스트를 구동하는 임시 모듈은?
입력 데이터를 유효한 값과 무효한 값의 그룹으로 나누고 각 그룹의 대표값으로 테스트케이스를 도출하는 블랙박스 기법은?
개별 조건식이 다른 조건식에 영향을 받지 않고 전체 결정 결과에 독립적으로 영향을 주도록 설계하는 커버리지는?
커버리지 매칭: ① 모든 문장을 최소 1회 실행 ② 모든 분기의 참/거짓을 각 1회 ③ 개별 조건식의 참/거짓을 각 1회
다음 C 함수가 values = {-3}, count = 1로 호출될 때 실행되는 문장 번호를 순서대로 쓰시오.
다음 제어 흐름 그래프가 분기 커버리지를 만족하도록 테스트 경로 두 개를 쓰시오.
제어 흐름도(그림을 표로 옮김)
| 노드 | 내용 | 다음 |
|---|---|---|
| 1 | POINTER = FALSE | 2 |
| 2 | X > K ? | YES → 3, NO → 4 |
| 3 | POINTER = TRUE | 4 |
| 4 | X = X + 2 | 5 |
| 5 | CALL SUB(X, POINTER, RESULT) | 6 |
| 6 | RESULT > 1 ? | YES → 1, NO → 7 |
| 7 | PRINT RESULT | 끝 |
결정 포인트 내 개별 조건식이 참/거짓을 한 번씩 갖도록 하는 화이트박스 커버리지는?
테스트 케이스의 3대 구성 요소: ① 테스트 실행 전 만족해야 할 조건 ② 입력하는 값 ③ 기대하는 출력
통합 테스트: ① 하향식에서 미완성 하위 모듈을 대신하는 것 ② 상향식에서 상위 모듈을 대신해 호출하는 것
다음 [평가표]의 등급 기준을 바탕으로, 테스트 케이스의 입력값이 [테스트 내역]의 예상 결과값처럼 출력되는지 비교하는 명세 기반 테스트 기법을 쓰시오.
[평가표]
| 점수 | 성적 |
|---|---|
| 90~100 | A |
| 80~89 | B |
| 70~79 | C |
| 0~69 | D |
[테스트 내역]
| 입력값 | -10 | 30 | 75 | 85 | 95 | 110 |
|---|---|---|---|---|---|---|
| 예상 결과 | 에러 | D | C | B | A | 에러 |
| 실제 결과 | 에러 | D | C | B | A | 에러 |
입력 유효 범위가 0~100인 프로그램을 테스트하기 위해 -1, 0, 100, 101을 테스트 데이터로 선정했다. 오류가 경계 부근에 집중된다는 점을 이용한 이 블랙박스 테스트 기법은?
V모델의 테스트 수준 4단계를 실행 순서대로 나열하시오: (시스템 테스트 / 단위 테스트 / 인수 테스트 / 통합 테스트)
왜 이걸 하나 — 이 장은 비슷한 이름과 경로 표기에서 깎인다.
| 자리 | 새는 꼴 | 적는 법 | 기출 |
|---|---|---|---|
| 분기 · 조건 | 「개별 조건식」인데 분기라 적는다 | 개별 조건식이면 조건, 결정 전체면 분기(결정) | 2023-2회 6번 · 2025-3회 4번 |
| 동등 · 경계 | 대표값을 고른 문제에 경계값이라 적는다 | 구간 가운데면 동등 분할, 구간 끝과 앞뒤면 경계값 | 2026-2회 1번 · 예상 1회 19번 |
| 경로 표기 | 노드 사이에 화살표 · 쉼표를 섞거나 끝 노드를 뺀다 | 문제의 표기를 따른다. 1234561 처럼 붙여 쓰거나 1-2-3 처럼. 돌아가는 경로는 1 로 끝난다 | 2023-1회 19번 · 2025-2회 11번 |
| 반복 조건 | 구문 경로에서 거짓으로 빠져나가는 마지막 검사를 뺀다 | while 은 마지막에 한 번 더 검사한다 | 2025-1회 15번 |
| 스텁 · 드라이버 | 둘을 바꾼다 | 하향식 = 스텁(아래 대신), 상향식 = 드라이버(위 대신) | 2023-2회 7번 · 2026-1회 15번 |
| MC/DC 표기 | 「변경 조건 결정」만 적거나 「MCDC」 | 변경 조건/결정 커버리지(MC/DC) — 슬래시까지 | 2024-1회 14번 |
| 테스트 케이스 3요소 | 「입력 · 출력」만 적고 조건을 뺀다 | 테스트 조건 · 테스트 데이터 · 예상 결과 | 2025-3회 19번 |
세 칸 매칭(커버리지 3칸 · 케이스 3요소)은 사다리 순서대로 답이 배치돼 있는 경우가 많다. 구문 → 분기 → 조건 순서를 알면 칸이 뒤섞여도 자리를 찾는다.
왜 이걸 하나 — 기출에 아직 안 나온 이름이다. 블랙박스 나머지 셋, 커버리지 순서, 형상 관리 절차, 검증 도구 · EAI, 알파 · 베타 · 회귀.
5문항 전부 정의로 대조한 용어다. 흐름도 경로는 기출 3문항으로 충분해 훈련에서는 이름 쪽을 채웠다.
블랙박스 테스트 기법 중 다음 설명에 해당하는 것을 각각 쓰시오.
① 입력 조건과 결과의 관계를 그래프로 그려 효용성 높은 케이스를 고른다
② 과거 경험이나 직관으로 오류가 날 만한 입력을 골라 검사한다
③ 같은 명세로 만든 여러 버전에 같은 입력을 넣어 결과를 비교한다
화이트박스 커버리지를 약한 것부터 강한 것 순서로 나열하시오.
분기(결정) 커버리지, 다중 조건 커버리지, 구문(문장) 커버리지, MC/DC, 조건 커버리지, 조건/결정 커버리지
소프트웨어 형상 관리의 절차 4단계를 순서대로 쓰고, 다음 설명에 해당하는 단계를 고르시오.
변경 요청을 검토 · 승인하고 변경을 통제하는 단계
다음 설명에 해당하는 인터페이스 구현 검증 도구 · 통합 방식을 각각 쓰시오.
① 자바 · C 등 언어별 단위 테스트 프레임워크의 총칭(JUnit · CUnit)
② 웹 브라우저를 자동으로 조작해 UI 를 테스트하는 도구
③ 각 시스템을 1:1 로 직접 연결하는 EAI 통합 방식
④ 중앙의 허브가 모든 연결을 중개하는 EAI 통합 방식
다음 설명에 해당하는 테스트 이름을 각각 쓰시오.
① 개발자 환경에서 사용자가 참여해 수행하는 인수 테스트
② 실제 사용자 환경에서 사용자가 수행하는 인수 테스트
③ 수정한 뒤 다른 곳이 망가지지 않았는지 다시 확인하는 테스트
왜 이걸 하나 — 아래를 안 보고 적을 수 있어야 이 장이 끝난다.