모델 기반 테스트란 무엇입니까?

모델 기반 테스트란 무엇입니까?

모델 기반 테스트는 테스트 중인 소프트웨어의 런타임 동작을 모델의 예측과 비교하여 확인하는 소프트웨어 테스트 기술입니다. 모델은 시스템의 동작에 대한 설명입니다. 행동은 입력 순서, 작업, 조건, 출력 및 입력에서 출력까지의 데이터 흐름 측면에서 설명할 수 있습니다. 실질적으로 이해할 수 있어야 하고 재사용이 가능해야 합니다. 공유 가능에는 테스트 중인 시스템에 대한 정확한 설명이 있어야 합니다.

다양한 모델을 사용할 수 있으며 시스템 동작의 다양한 측면을 설명합니다. 모델의 예는 다음과 같습니다.

  • 데이터 흐름
  • 제어 흐름
  • 종속성 그래프
  • 의사결정 테이블
  • 상태 전이 기계

모델 기반 테스트는 (모델에 의해 결정된) 작업에 응답하여 시스템이 어떻게 작동하는지 설명합니다. 조치를 제공하고 시스템이 예상대로 응답하는지 확인하십시오.

시스템을 검증하는 경량 형식 방법입니다. 이 테스트는 하드웨어 및 소프트웨어 테스트 모두에 적용될 수 있습니다.

모델 기반 테스트 예

모델 기반 테스트

위 모델은 메모장에서 시를 쓰는 단순화된 접근 방식과 각 단계와 관련된 가능한 동작을 설명합니다. 모든 작업(시작, 시 입력, 저장 등)에 대해 테스트 케이스 생성할 수 있으며 출력을 확인할 수 있습니다.

MBT의 종류

모델 기반 테스트 프레임워크에는 두 가지 유형이 있습니다.

  1. 오프라인/선험적: 테스트 스위트를 실행하기 전에 생성합니다. 테스트 스위트는 테스트 케이스 모음에 지나지 않습니다.
  2. 온라인/즉시: 테스트 실행 중 테스트 스위트 생성

테스트의 다양한 모델

MBT를 이해하려면 아래에 설명된 몇 가지 모델을 이해해야 합니다. 하나씩 살펴보겠습니다.

유한 상태 머신

이 모델은 테스터가 선택한 입력에 따라 결과를 평가하는 데 도움이 됩니다. 다양한 입력 조합을 통해 해당 시스템 상태가 생성될 수 있습니다.

시스템은 테스터가 제공한 일련의 입력에 의해 관리되는 특정 상태와 현재 상태를 갖습니다.

예를 고려하십시오 -

직원이 애플리케이션에 로그인할 수 있는 시스템이 있습니다. 현재 해당 직원의 상태는 'Out' 상태이며, 시스템에 로그인하면 'In' 상태가 됩니다. "in" 상태에서 직원은 시스템의 문서를 보고, 인쇄하고, 스캔할 수 있습니다.

유한 상태 머신

상태 차트

유한 상태 머신의 확장이며 복잡하고 실시간 시스템에 사용할 수 있습니다. 상태 차트는 시스템의 다양한 동작을 설명하는 데 사용됩니다. 이는 명확한 수의 상태를 갖습니다. 시스템의 동작은 각 상태에 대한 이벤트 형태로 분석되고 표현됩니다.

예를 들면 –

결함 관리 도구에서 결함은 신규 상태로 발생합니다. 개발자가 문제를 수정한 후에는 수정됨 상태로 변경해야 합니다. 결함이 수정되지 않은 경우 상태를 Re-open으로 변경합니다. 상태 차트는 각 상태에 대한 이벤트를 호출하는 방식으로 설계되어야 합니다.

상태 차트

통합 모델링 언어(UML)

통합 모델링 언어 (UML)은 표준화된 범용 모델링 언어입니다. UML에는 시스템의 매우 복잡한 동작을 설명할 수 있는 시각적 모델을 생성하기 위한 일련의 그래픽 표기법 기술이 포함되어 있습니다.

UML에는 다음과 같은 표기법이 있습니다.

  • 활동
  • 배우
  • 비즈니스 프로세스
  • 구성 요소들
  • 프로그래밍 언어

통합 모델링 언어

모델 기반 테스트의 과제

모든 조직에서 MBT를 배치하려면 분명히 많은 투자와 노력이 필요합니다. 다음은 MBT의 단점입니다. 소프트웨어 공학.

  • 테스터에게 필요한 필수 기술
  • 학습 곡선 시간이 더 길어질 것입니다.
  • 모델 자체를 이해하기 어려움

모델 테스트의 장점

MBT의 이점은 다음과 같습니다.

  • 손쉬운 테스트 케이스/스위트 유지 관리
  • 비용 절감
  • 향상된 테스트 범위
  • n개의 머신에서 다양한 테스트를 실행할 수 있습니다.
  • 조기 결함 감지
  • 결함 수 증가
  • 시간 절약
  • 테스터 작업 만족도 향상

결론

테스터는 테스트 중에 어쨌든 정신 모델을 구성합니다. 이러한 정신적 모델은 종이 위의 모델로 변환될 수 있습니다. 이는 테스터가 가독성과 재사용성을 달성하는 데 도움이 됩니다.

모델 기반 테스트는 새로운 접근 방식입니다. 소프트웨어 테스팅. 소프트웨어 테스팅의 발전은 다음과 같습니다.

소프트웨어 테스팅의 진화