기존 테스트 기법의 적용 가능성

1. 기존 소프트웨어 테스트 기법

  • 동치 분할 검사법(Equivalence Partitioning Test)
    • 같은 특징을 가지는 그룹으로 입력값과 출력값을 분류(분할)하는 기법
    • 동치 클래스(Equivalence Class)
      • 같은 특징을 가지는 분할된 그룹
    • 경곗값(Boundary Value)
      • 인접하는 동치 클래스에 가장 가까운 값
      • 동치 클래스의 대푯값으로 자주 사용됨
      • 사용 이유
        • 요구사항과 구현에서 동치 클래스가 서로 어긋날 가능성이 가장 높은 부분이 경곗값이므로.

    • 전제 조건
      • 같은 동치 클래스에 포함된 입력 값에 대한 소프트웨어의 처리 결과는 같다.
    • 검사 방법
      • 발생할 수 있는 모든 값을 사용해서 테스트하는 것은 비현실적이므로
      • 각 동치 클래스의 대푯값을 테스트 대상 소프트웨어에 입력하여 출력이 올바른지 확인함
      • 입력된 대푯값에 대한 출력이 올바르다면 ➜ 동치 클래스에 포함된 모든 값에 대한 출력이 올바르다고 판정함
    • 이러한 개념을 토대로 모든 입력을 시험해보지 않더라도 대푯값만으로 테스트를 수행할 수 있음

2. 기존 테스트 기법의 적용 가능성

2.1 기존 소프트웨어의 동치 분할 테스트

2.2 AI 소프트웨어에 대한 적용 가능성 검토

  • 기존 소프트웨어 → AI 소프트웨어
    • 과거 방문객의 기록 ➜ 학습용 데이터셋
    • 학습용 데이터셋 구성
      • 입력 데이터셋: 방문객의 생년월일, 방문일자
      • 정답 데이터셋: 입장료
    • 학습용 데이터셋 ➜ 훈련용 데이터셋과 평가용 데이터셋으로 분할하여 적용
  • 테스트 적용 검토
    • 입력 데이터: 방문객의 생년월일, 방문일자
    • 출력 결과: 방문객에 대한 대략적인 입장료 추정 값(정확한 값이 아님)
  • 동치 분할 기법 적용 검토
    • 요구사항의 동치 클래스 정의 불가능
      • 전제사항으로 존재하는 것: 과거의 방문객 기록
      • 요구사양: 없음
    • 동치 클래스의 대푯값을 사용한 테스트 불가능
    • 경곗값을 사용한 테스트 불가능
  • 머신러닝의 학습 방향에 의한 문제점
    • 유사한 입력에 대하여 유사한 출력을 도출하도록 학습
      • ‘동일한 동치 클래스의 입력에 대해서 동일한 처리가 수행된다’는 전제사항 불성립
    • DNN 등 머신러닝의 추론에서 같은 처리(계산)를 수행하는 입력은 거의 존재하지 않음
      • 유사한 데이터가 출력되어도 같은 방식으로 계산된 결과인지 알 수 없음
    • 유사한 출력을 기준으로 구성된 동치 클래스를 구성하는 경우라도
      • ‘대푯값과 동일한 처리를 수행하므로 출력도 동일한 방식으로 추정할 수 있다’로 주장 불가
    • 머신러닝 모델의 학습 결과로 도출되는 경계(분류용 모델에서)
      • 데이터의 어딘가에 경계가 있기는 하겠지만 어디에 있는지 알 수 없음
      • 모든 입력 데이터와 출력 결과를 하나씩 확인해서 경계를 찾는 방법
        • 이론적으로는 가능하더라도 현실적으로 불가능(너무 방대한 데이터)
        • 또한 이렇게 찾은 경계가 올바른지 아닌지 확인할 수 있는 방법이 존재하지 않음



  • 결국 기존의 소프트웨어 테스트 기법은 AI 소프트웨어에서 적용 불가능