DASE

정보처리학회논문지/소프트웨어 및 데이터 공학 8(4), 2019 · 실습 데모

잠수함 데이터 분산 시스템을 위한 테스트 케이스 생성 기법

여러 체계가 데이터 분산 시스템(DDS)을 거쳐 데이터를 주고받을 때, 연동 시험을 어떤 순서와 단위로 할지 정하는 방법입니다. 논문은 데이터별로 체계를 묶고, 모델을 DDS가 루트인 트리(DFG)로 바꾼 뒤 DDS 이전은 후위 순회(LRV), 이후는 전위 순회(VLR)로 테스트 경로를 만듭니다. 그 과정을 직접 실행하고, 테스트 수가 줄어든 대가로 무엇을 잃는지 따져 봅니다. 논문 DOI

문제 상황

잠수함의 전투·항해·기관 체계는 제조사와 데이터 형식이 다르고, 데이터 분산 시스템(DDS)이 이들 사이에서 데이터를 나눠 줍니다. 모든 체계가 모든 데이터를 주고받는 것은 아니므로, 같은 데이터(Topic)를 공유하는 체계끼리 묶어 그 체계들이 준비되는 대로 먼저 시험하면 시험을 앞당길 수 있습니다.

  1. 체계 모델링: DDS와 연동 체계(P1~P6)를 모델로 그립니다.
  2. 데이터별 그룹핑: 데이터 Ta·Tb·Tc마다 송신(DP)·수신(DS) 체계를 묶습니다.
  3. DFG 생성: 증폭기·변환기 같은 세부 체계까지 그린 뒤, DDS를 루트로 하는 이진 트리로 바꿉니다. 갈래를 둘로 맞추려고 임시 노드 X를 넣습니다.
  4. 테스트 경로 생성: DDS 이전은 LRV, 이후는 VLR로 순회하고 X를 지웁니다.
  5. 테스트 케이스 명세: 경로를 시나리오(START → T1 → … → DDS → R16 → … → END)로 적습니다.

용어 주의: 논문의 DDS는 잠수함의 데이터 분산 시스템(하드웨어 캐비닛)이고, OMG의 DDS는 데이터 분산 서비스(미들웨어 표준)입니다. 논문은 OMG의 Participant·Topic·Publish·Subscribe 용어를 빌려 모델을 표현합니다.

그림 4 · 제안 테스트 케이스 생성 과정

그림 4

그림 1 · ISUS 83 데이터 인터페이스 (실제 연동 예)

그림 1

그림 2 · OMG DDS의 Topic 기반 공유 개념

그림 2

그림 8·9 · 체계 모델링과 데이터별 그룹핑 (Ta, Tb, Tc)

그림 8그림 9B그림 9C그림 9D

표 1·그림 7의 트리로 순회 연습

왜 DDS 앞뒤로 순회 방법을 바꾸나

데이터는 송신 체계 → DDS → 수신 체계로 흐릅니다. DDS를 루트로 놓으면 송신측은 잎에서 루트로, 수신측은 루트에서 잎으로 흐릅니다.

  • 후위(LRV)는 자식을 모두 방문한 뒤 부모를 방문하므로, 송신측에서 데이터가 “만들어지는 곳 → 합쳐지는 곳” 순서와 맞습니다.
  • 전위(VLR)는 부모를 먼저 방문하므로, 수신측에서 “DDS → 나눠지는 곳 → 최종 수신” 순서와 맞습니다.

그래서 노드를 데이터 흐름을 거스르지 않는 한 줄로 세울 수 있고, 각 노드는 한 번씩만 나옵니다. 이것이 제안 기법의 핵심입니다.

다만 “한 줄로 세운 순서”가 “한 번에 흘러가는 경로”는 아닙니다. ③·④ 탭에서 이 차이를 확인합니다.

그림 11의 DFG에 하이브리드 순회 적용

탐색 경로 (X 포함)

테스트 경로 (X 제거, 표 4·5의 TC-01)

초록 화살표(→) = 실제 데이터 흐름 간선을 따라간 걸음, 빨간 점선 화살표(⇢) = 그래프에 없는 건너뜀(형제 노드나 다른 갈래로 이동).

그림 10·11 · Ta 세부 모델과 변환된 DFG

그림 10그림 11

같은 Ta 모델(그림 11)을 세 가지 방식으로 시험한다고 할 때, 테스트 수뿐 아니라 링크(인터페이스) 결함을 얼마나 찾고, 찾았을 때 어디까지 좁힐 수 있는지 비교합니다. 논문도 그림 1에서 “인터페이스는 경로, 체계는 노드”로 보았고, 완료 기준을 “모든 노드와 엣지를 한 번 이상”으로 정했으므로 간선 기준 평가가 맞습니다.

링크 하나에 결함을 심어 보기

테스트 수와 진단력은 맞바꾸는 관계

제안 기법은 데이터 하나당 테스트 케이스 하나를 만듭니다. 그래서 테스트 수가 데이터 수와 같아지는 것은 방법의 정의에서 나오는 결과입니다. 그 대신:

  • 경로가 “순서대로 방문할 체계 목록”이라, 실제로 데이터가 그 순서로 흐르지 않는 건너뜀이 많습니다. 건너뛴 자리에 있는 인터페이스는 시험되지 않습니다.
  • 테스트가 하나라서, 실패했을 때 수십 개 체계·링크 중 어디가 문제인지 알 수 없습니다. 결국 원인을 찾으려면 송신-수신 쌍 단위 시험을 다시 해야 합니다.
  • 모든 노드와 링크를 덮으면서 테스트 수를 줄이려면, 종단 경로 최소 커버(송신 잎과 수신 잎을 짝지은 max(송신 수, 수신 수)개 경로)가 좋은 기준선이 됩니다.

표 6 · 테스트 케이스 수

표 6 · 테스트 수행횟수

“73.7% 감소”를 다시 계산하면

그림 12 · 테스트 케이스 수 비교

그림 12

그림 13 · 수행횟수 비교

그림 13

현재 관점의 검토 의견

  1. 감소율을 반대로 보고했습니다. 표 6의 비교 열은 “제안 ÷ 중복제거 기법”입니다. 수행횟수 70 ÷ 95 = 73.7%는 기존의 73.7%를 쓴다는 뜻이므로 실제 감소는 26.3%입니다. 초록과 결론의 “73.7% 테스팅 리소스 감소”는 고쳐야 합니다. DFS 대비로 계산하면 감소는 71.9%(70 ÷ 249 = 28.1%)입니다.
  2. 테스트 경로가 실행 가능한 경로가 아닙니다. 그림 11의 Ta에 대해 재현한 테스트 경로 25걸음 가운데 실제 간선은 13걸음이고, 덮는 간선은 24개 중 12개입니다. 완료 기준(“모든 노드와 엣지를 한 번 이상”)을 만족하지 못하므로, 노드 커버와 엣지 커버를 구분해 보고해야 합니다.
  3. 비교 단위가 다릅니다. 제안 기법의 ‘수행횟수’는 노드 수(한 번씩 방문)이고, 기존 기법은 종단 경로를 실제로 흘려 보는 횟수입니다. 하나는 점검 목록 길이이고 다른 하나는 데이터 흐름 시험 횟수입니다. 같은 결함 모델(링크 결함 하나 등)로 검출률과 진단력을 함께 비교해야 합니다(④ 탭).
  4. 테스트 케이스 수 감소는 정의상 결과입니다. 데이터마다 경로 하나를 만들므로 테스트 수가 데이터 수와 같습니다(표 6의 ④열이 1~7). 그만큼 테스트 하나가 길어져, 실패 시 원인 위치를 좁히지 못합니다.
  5. 예시 모델이 섞여 있습니다. 표 4·5의 Ta(그림 11, 노드 26회 방문)와 표 6의 Ta(송신 2·수신 2, 수행 9회)가 서로 다른 모델입니다. 3.1절의 그룹(TG 1~3)과 4.1절의 그룹(Ta: P1~P6 등)도 다릅니다. Ta~Tg 모델도 공개되지 않아 표 6을 재현할 수 없습니다.
  6. 기존 기법의 구현이 모호합니다. 모델 단축(Summary)과 중복 제거(Deduplication)를 어떤 규칙으로 적용했는지 예가 부족합니다. 종단 경로 최소 커버 같은 단순한 기준선과도 비교하면 좋습니다(그림 11에서 9개 경로·51회로 모든 간선을 덮음).
  7. 연동 시험에서 중요한 다른 요소가 빠졌습니다. 그림 1처럼 DDS는 이중화되어 있지만, 절체(failover) 시험이 없습니다. 메시지 주기·지연·데이터 내용 검증(형식, 범위, 단위)과, OMG DDS라면 QoS(신뢰성, 지속성, 데드라인) 시험도 다루지 않았습니다. 경로 순서만으로는 인터페이스 시험의 일부만 정할 수 있습니다.
  8. 순회 방법의 선택 근거: DDS 이전 송신측은 여러 송신원이 동시에 데이터를 만드는 병렬 구조입니다. 후위 순회 순서는 그 가운데 하나의 선형화일 뿐이므로, 다른 선형화(예: 위상 정렬)와 결과가 같다는 점을 밝히면 일반화가 쉬워집니다.

수업 과제

  1. ② 탭의 트리에서 전위·중위·후위 순서를 손으로 쓰고 데모로 확인하세요.
  2. 그림 11의 DFG에서 모든 간선을 덮는 종단 경로 최소 집합을 직접 찾고, 이것이 왜 max(송신 잎 수, 수신 잎 수)개인지 설명하세요.
  3. ④ 탭에서 결함을 바꿔 가며 세 방식의 진단 결과를 비교하고, “좋은 테스트 묶음”의 기준을 정의하세요.
  4. 표 6의 비교 열을 다시 계산해 초록 문장을 바르게 고쳐 쓰세요.

연구를 보강한다면

  • 노드 커버·간선 커버·종단 경로 커버를 구분한 커버리지 보고
  • 결함 주입(링크·노드)으로 검출률과 진단 해상도 측정
  • Ta~Tg 모델 공개와 기존 기법 적용 규칙의 명시
  • 이중화 절체, 주기·지연, 데이터 내용, QoS 시험과의 결합
  • 자동 변환 도구(모델 → DFG → 경로)와 실제 체계 적용 사례

그림 5 · 데이터 분산 시스템 모델링 예

그림 5

그림 7 · LRV·VLR 순회 예의 트리

그림 7

그림 출처: 손수익·강동수, 「잠수함 데이터 분산 시스템을 위한 테스트 케이스 생성 기법」, 정보처리학회논문지/소프트웨어 및 데이터 공학 8(4), pp.137–144, 2019. CC BY-NC 3.0.

연구·교육용 데모 · 순회와 커버리지 계산은 논문의 그림 7·11 모델로 브라우저에서 수행합니다.