모델 기반 테스트

Model-based testing
일반적인 모델 기반 테스트 설정

모델 기반 테스트는 모델 기반 설계를 적용하여 설계를 수행하고 선택적으로 소프트웨어 테스트 또는 시스템 테스트를 수행하기 위한 아티팩트를 실행하는 것입니다.모델을 사용하여 테스트 대상 시스템(SUT)의 원하는 동작을 나타내거나 테스트 전략 및 테스트 환경을 나타낼 수 있습니다.오른쪽 그림은 전자의 접근을 묘사하고 있다.

SUT를 설명하는 모델은 일반적으로 SUT가 원하는 동작을 추상적으로 부분적으로 보여주는 것입니다.이러한 모델에서 파생된 테스트 케이스는 모델과 동일한 추상화 수준의 기능 테스트입니다.이러한 테스트 케이스를 추상 테스트 스위트라고 합니다.SUT가 잘못된 추상화 수준에 있으므로 추상화 테스트 스위트를 SUT에 대해 직접 실행할 수 없습니다.실행 가능한 테스트 스위트는 해당하는 추상 테스트 스위트에서 파생되어야 합니다.실행 가능한 테스트 스위트는 테스트 대상 시스템과 직접 통신할 수 있습니다.이는 추상적인 테스트 케이스를 실행에 적합한 구체적인 테스트 케이스에 매핑함으로써 달성된다.일부 모델 기반 테스트 환경에서는 모델에 실행 가능한 테스트 스위트를 직접 생성하기에 충분한 정보가 포함되어 있습니다.또, 추상 테스트 스위트의 요소는 구체적인 테스트 스위트를 작성하기 위해 소프트웨어의 특정 문 또는 메서드 호출에 매핑해야 합니다.이것을 '매핑 문제'[1] 해결이라고 합니다.온라인 테스트(아래 참조)의 경우 추상 테스트 스위트는 개념적으로만 존재하며 명시적 아티팩트로 존재하지 않습니다.

테스트는 다양한 방법으로 모델에서 파생될 수 있습니다.테스트는 보통 실험적이고 휴리스틱에 기초하기 때문에 테스트 도출을 위한 단일 최선의 접근법은 알려져 있지 않다.흔히 "시험 요건", "시험 목적" 또는 "사용 사례"로 알려진 패키지에 모든 시험 파생 관련 매개변수를 통합하는 것이 일반적이다.이 패키지에는 초점을 맞춰야 하는 모델의 부품 또는 테스트 종료 조건(테스트 중지 기준)에 대한 정보가 포함될 수 있습니다.

테스트 스위트는 소스 코드가 아닌 모델에서 파생되므로 모델 기반 테스트는 일반적으로 블랙박스 테스트의 한 형태로 간주됩니다.

복잡한 소프트웨어 시스템에 대한 모델 기반 테스트는 여전히 진화하는 분야입니다.

모델

특히 모델 중심 엔지니어링 또는 객체 관리 그룹(OMG)의 모델 중심 아키텍처에서는 모델이 대응하는 시스템보다 먼저 또는 병렬로 구축됩니다.완성된 시스템에서 모델을 구성할 수도 있습니다.테스트 생성을 위한 일반적인 모델링 언어에는 UML, SysML, 주류 프로그래밍 언어, 유한 기계 표기법 및 Z, B(이벤트-B), 합금 또는 Coq와 같은 수학적 형식이 포함됩니다.

모델 기반 테스트 도입

모델 기반 테스트 워크플로우의 예(오프라인 테스트 사례 생성).IXIT는 구현 추가 정보를 의미하며 추상 테스트 스위트를 실행 가능한 테스트 스위트로 변환하는 데 필요한 정보를 의미합니다.일반적으로 IXIT에는 테스트 하니스, 데이터 매핑 및 SUT 구성에 대한 정보가 포함되어 있습니다.

모델 기반 테스트에는 온라인 테스트, 실행 가능한 테스트 오프라인 생성, 수동으로 배포 가능[2]테스트 오프라인 생성다양한 방법이 있습니다.

온라인 테스트는 모델 기반 테스트 도구가 SUT에 직접 연결하여 동적으로 테스트하는 것을 의미합니다.

실행 가능한 테스트의 오프라인 생성은 모델 기반 테스트 도구가 나중에 자동으로 실행될 수 있는 컴퓨터 판독 가능한 자산(예: 생성된 테스트 로직을 구현하는 Python 클래스 모음)으로 테스트 케이스를 생성하는 것을 의미합니다.

오프라인에서 수동으로 전개 가능한 테스트를 생성한다는 것은 모델 기반 테스트 툴이 나중에 수동 테스트를 지원할 수 있는 사람이 판독할 수 있는 자산으로 테스트 케이스를 생성하는 것을 의미합니다.예를 들어 생성된 테스트 단계를 설명하는 PDF 문서입니다.

알고리즘으로 테스트 유도

모델 기반 테스트의 효율성은 주로 자동화의 가능성에 기인합니다.모델이 잘 정의된 행동 해석을 가질 정도로 기계적으로 판독 가능하고 형식적인 경우, 원칙적으로 테스트 사례를 기계적으로 도출할 수 있다.

유한 상태 기계에서

모델은 종종 유한 상태 오토마톤 또는 상태 전이 시스템으로 변환되거나 해석됩니다.이 자동화는 테스트 대상 시스템의 가능한 구성을 나타냅니다.테스트 케이스를 찾기 위해 자동에서 실행 가능한 경로를 검색합니다.가능한 실행 경로가 테스트 케이스로 사용될 수 있습니다.이 방법은 모형이 결정론적이거나 결정론적인 모형으로 변환할 수 있는 경우에 효과가 있습니다.이러한 모델에서 지정되지 않은 전환을 활용하면 귀중한 오프-공칭 테스트 케이스를 얻을 수 있다.

테스트 대상 시스템의 복잡성과 대응하는 모델에 따라 시스템 구성이 매우 많기 때문에 경로 수가 매우 많을 수 있습니다.적절하지만 유한한 경로의 수를 커버할 수 있는 테스트 케이스를 찾기 위해서는 선택을 안내하기 위한 테스트 기준이 필요하다.이 기술은 모델 기반 [3]테스트를 시작한 논문에서 Offutt와 Abdurazik에 의해 처음 제안되었습니다.Rushby는 [4]테스트 사례 생성을 위한 여러 기술을 개발하여 조사했습니다.시험기준은 [1]시험교과서에 일반적인 그래프로 기술되어 있다.

정리 증명

정리 증명은 원래 논리식의 자동 증명에 사용되었습니다.모델 기반 테스트 접근법의 경우, 시스템은 일련의 술어로 모델링되어 시스템의 [5]동작을 지정합니다.테스트 케이스를 도출하기 위해 모델은 테스트 대상 시스템을 기술하는 술어 집합의 유효한 해석에 걸쳐 동등성 클래스로 분할됩니다.각 클래스는 특정 시스템 동작을 설명하므로 테스트 케이스로 사용할 수 있습니다.가장 간단한 분할은 시스템의 동작을 기술하는 논리 표현식이 분리 정규 형식으로 변환되는 분리 정규 형식 접근법입니다.

제약 로직 프로그래밍 및 심볼릭 실행

Constraint 프로그램 시험 사례의 제약 조건 변수의 집합에 대한 세트 해결함으로써 특정 제약 조건 충족을 선택하는 데 사용될 수 있다.시스템은 제약 조건의 방법으로 설명되어 있다.[6]제약 조건의 세트를 해결하려면 부울 해결사들(예를 들어 SAT-solvers이 Boolean충족 가능 문제에 기초한)나 숫자 분석으로, 가우스 소거 법 저렇게 할 수 있다.해결책이 공식들로 해당 시스템에 대한 시험 사례 역할을 할 수 있는 일련의 제약 조건 해결함으로써 발견했다.

Constraint 프로그래밍 상징적인 집행이 결합할 수 있습니다.이 접근 방식에서 시스템 모델 상징적으로 상이한 제어 경로, 그리고와 시험 사례한다면 제약 조건 해결을 위한 제약 조건은 프로그래밍 방법을 사용하여 데이터 제약 조건을 수집하는 포지티브 시행되고 있다.[7]

모델 점검

모형 체커 또한 시험 케이스의 생성에 쓰일 수 있습니다.[8]원래 정형 검증이 따른 규격의 속성을 모델로 유효한 확인하기로 개발되었다.시험할 때, 시험 대상 시스템의 모델이 되고 속성에 대한 시험에 사용되는 모델 검사기 위해 제공됩니다.강화 프로그램의 절차 내에서, 이 속성은 모델에서는, 모델 검사기에서 발견된 증인들과 counterexamples 유효합니다.재산이 침해되는 중요한 모델의 실행에서 반면에 반증하는 경로 재산이, 만족하는 증인이 되는 경로이다.이 길이 다시 시험 사례로 쓰일 수 있습니다.

는 마르코프 연쇄 시험 모델을 사용하여 시험 케이스의 생성.

마르코프 체인은 모델 기반 테스트를 처리하는 효율적인 방법입니다.마르코프 체인으로 실현된 테스트 모델은 사용 모델로 이해할 수 있습니다. 즉, 사용/통계 모델 기반 테스트라고 합니다.사용 모델, 즉 마르코프 체인은 주로 2개의 아티팩트로 구성됩니다.Finite State Machine(FSM; 유한 상태 머신)은 테스트된 시스템의 가능한 모든 사용 시나리오를 나타내며, FSM이 통계적으로 어떻게 사용되거나 사용될 것인지를 나타내는 운용 프로파일(OP)입니다.첫 번째(FSM)는 테스트할 수 있는 것 또는 이미 테스트한 것을 파악하는 데 도움이 되며 두 번째(OP)는 운용 테스트 케이스를 도출하는 데 도움이 됩니다.사용/통계 모델 기반 테스트는 시스템을 완전히 테스트할 수 없고 고장이 매우 낮은 [9]비율로 나타날 수 있다는 사실에서 시작됩니다.이 접근방식은 테스트 대상 시스템의 신뢰성 향상에 초점을 맞춘 테스트 케이스를 정적으로 도출할 수 있는 실용적인 방법을 제공합니다.용도/통계 모델 기반 테스트는 최근 임베디드 소프트웨어 [10][11]시스템에 적용할 수 있도록 확장되었습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ a b 폴 암만과 제프 오푸트.소프트웨어 테스트의 개요.케임브리지 대학 출판부, 2008.
  2. ^ 실제 모델 기반 테스트: 도구 접근법 Wayback Machine에서 2012-08-25 아카이브, Mark Uting 및 Bruno Legeard, ISBN978-0-12-372501-1, Morgan-Kaufmann 2007
  3. ^ 제프 오푸트와 아이누르 압두라지크.UML 사양에서 테스트 생성.통합 모델링 언어에 관한 제2차 국제 회의(UML '99), 416-429페이지, 포트 콜린스, CO, 1999년 10월
  4. ^ 존 러쉬비.자동 테스트 생성 및 검증된 소프트웨어.확인된 소프트웨어:이론, 도구, 실험:제1회 IFIP TC 2/WG 2.3 회의, VSTTE 2005, 10월 10-13일 스위스 취리히. 페이지 161-172, Springer-Verlag
  5. ^ Brucker, Achim D.; Wolff, Burkhart (2012). "On Theorem Prover-based Testing". Formal Aspects of Computing. 25 (5): 683–721. CiteSeerX 10.1.1.208.3135. doi:10.1007/s00165-012-0222-y. S2CID 5774837.
  6. ^ 제퍼슨 오푸트.제약 조건 기반 자동 테스트 데이터 생성.소프트웨어 엔지니어링에 관한 IEEE 트랜잭션, 17:900-910, 1991
  7. ^ 앤티 후이마Conformiq Qtronic 구현소프트웨어 및 통신 시스템 테스트, 2007년 컴퓨터 과학 강의 노트, Volume 4581/2007, 1-12, DOI: 10.1007/978-3-540-73066-8_1
  8. ^ 고든 프레이저, 프란츠 워타와, 폴 E.암만모델 체커를 사용한 테스트: 설문 조사.소프트웨어 테스트, 검증 및 신뢰성, 19(3): 215~261, 2009.URL: [1]
  9. ^ 헬레네 르귄.Validation d'un logiciel par le test statisticique d'usage : de la modelization de la decision ar livraison, 2005.URL : ftp://ftp.irisa.fr/techreports/theses/2005/leguen.pdf
  10. ^ Böhr, Frank (2011). "Model Based Statistical Testing of Embedded Systems". 2011 IEEE Fourth International Conference on Software Testing, Verification and Validation Workshops. pp. 18–25. doi:10.1109/ICSTW.2011.11. ISBN 978-1-4577-0019-4. S2CID 9582606.
  11. ^ Böhr, Frank (2012). Model-Based Statistical Testing of Embedded Real-Time Software with Continuous and Discrete Signals in a Concurrent Environment: The Usage Net Approach. ISBN 978-3843903486.

추가 정보