가장 빠른

Fastest

Fastest는 Z 표기법으로 작성된 사양으로 작동하는 모델 기반 테스트 도구입니다.이 도구는 Phil Stocks와 David Carrington이 제안한 테스트 템플릿 프레임워크(TTF)를 구현합니다(Stocks & Carrington 1996).

사용.

Fastast는 명령줄 사용자 인터페이스를 제공합니다.사용자는 먼저 ISO 표준(Z Standard 2002)을 확인하는 LaTeX 형식으로 작성된 Z 사양을 로드해야 합니다.그런 다음 테스트할 작업 목록과 각 작업에 적용할 테스트 방법을 입력해야 합니다.세 번째 단계에서 Fastest는 각 작업의 테스트 트리를 생성합니다.테스트 트리가 생성된 후 사용자는 테스트클래스와 테스트클래스를 브라우즈 할 수 있습니다.더 중요한 것은 테스트클래스를 자동으로 또는 수동으로 삭제할 수 있습니다.테스트 트리를 프루닝하면 사용자는 각 테스트 트리의 리프별로 추상 테스트 케이스를 하나씩 찾도록 Fast에 지시할 수 있습니다.( Christia , Rodriguez Monetti & Albertengo 2009 ) target: CITREFCristia Rodrigue _ 2009

Fastest가 지원하는 테스트 전술

현재 [when?]Fastast는 다음과 같은 테스트 방법을 지원합니다.

  • 분리정규형(DNF)이는 기본적으로 적용되는 유일한 테스트 전략이며(사용자가 다른 테스트 방법을 추가했는지 여부에 관계없이) 가장 먼저 적용됩니다.
  • 표준 파티션(SP).사용자는 텍스트 파일(Cristia, Rodriguez Monetti 및 Albertengo 2009)을 편집하는 것만으로 사전 정의된 Z 연산자의 표준 파티션을 추가, 변경 및 삭제할 수 있습니다. 2009
  • 프리타입(FT)
  • 내선번호 설정(ISE)
  • Set Extension(PSE)의 적절한 서브셋
  • Set Extension(SSE; 세트 확장)

테스트 트리의 가장 빠른 프루닝

Fastest는 테스트 트리를 가지치기하는 두 가지 방법(Cristia, Rodriguez Monetti 및 Albertengo 2010)을 제공합니다.

  • 자동 프루닝
테스트 트리를 제거하기 위해 Fast는 각 잎의 술어를 분석하여 술어가 모순인지 여부를 판단합니다.이 문제는 판별할 수 없기 때문에 사용자가 개선할 수 있는 best effort 알고리즘을 구현합니다.알고리즘의 가장 중요한 측면은 각각 모순의 패밀리를 나타내는 소위 제거 이론의 라이브러리입니다.이 라이브러리는 사용자가 텍스트 파일을 편집하는 것만으로 확장할 수 있습니다.소거 정리란 파라메트릭 Z 원자 술어의 결합이다.
  • 수동 프루닝
가장 빠른 사용자는 두 가지 명령을 실행하여 하위 트리 또는 테스트 트리의 개별 리프를 제거할 수 있습니다.이러한 명령어는 서브트리의 모든 테스트클래스가 비어 있는지 여부에 관계없이 플루닝합니다.이러한 명령어의 주된 목적은 엔지니어가 중요하지 않은 테스트 케이스의 수를 줄이거나 제거할 수 있도록 하는 것입니다.

추상적인 테스트 케이스를 가장 빨리 검색하는 방법

이 도구는 테스트 트리의 각 잎에 대한 유한 모델을 계산하여 추상적인 테스트 케이스를 찾습니다(Cristia & Rodriguez Monetti 2009).유한 모델은 VIS 변수의 유형을 유한 집합으로 제한한 다음 이들 집합 사이의 데카르트 곱을 계산함으로써 계산됩니다.각 잎 술어는 술어가 충족될 때까지(추상적인 테스트 사례가 발견되었음을 의미) 또는 소진될 때까지(테스트 클래스가 만족스럽지 못하거나 유한 모델이 불충분함을 의미) 이 데카르트 곱의 각 요소에 대해 평가된다.마지막 경우 사용자는 적절한 유한 모델을 찾는 데 도구를 지원하거나 만족스럽지 못하기 때문에 테스트 클래스를 플루닝할 기회가 있습니다.

아키텍처와 테크놀로지

Fastast는 Community Z Tools(CZT) 프로젝트에 기반한 Java 응용 프로그램입니다.이 도구는 다음 두 가지 모드 중 하나로 사용할 수 있습니다(Christia & Rodriguez Monetti 2009).

  • 분산 모드에서는 Fastest가 클라이언트 서버 애플리케이션으로 동작합니다.응용 프로그램은 클라이언트, 서버 또는 둘 다로 작동하는 여러 컴퓨터에 설치할 수 있습니다.사용자는 클라이언트로부터 추상적인 테스트 케이스를 찾으려고 하는 서버(테스트 서버라고 불린다)에 테스트 클래스를 송신하는 클라이언트를 개입시켜 애플리케이션에 액세스 합니다.이렇게 하면 가장 무거운 태스크가 가능한 한 많은 시스템에 분산됩니다.테스트 클래스로부터의 추상적인 테스트 케이스의 계산은 서로 완전히 독립적이기 때문에 이 아키텍처는 테스트 서버의 수에 비례하여 프로세스 전체를 고속화합니다.
  • 애플리케이션 모드에서는 Fastast의 각 인스턴스는 서로 완전히 독립적입니다.모든 태스크는 로컬 컴퓨터에서 계산됩니다.

새로운 테스트 방법 추가

TTF 프레젠테이션에서 알 수 있듯이 테스트 전술은 이 방법에 필수적입니다.이러한 툴은 엔지니어가 가장 뛰어난 테스트 케이스를 작성하기 위해 사용해야 하는 툴입니다.따라서 엔지니어가 사용할 수 있는 테스트 전술이 많을수록 좋습니다.

Fastest에서는 툴에서 제공하는 Tactic 인터페이스를 구현하여 자체 테스트 전략을 추가할 수 있습니다.이 인터페이스에는 테스트 전술을 설정 및 적용하는 방법이 있습니다.인터페이스의 정의는 다음과 같습니다.

패키지 client.syslogic.tree.syslogs;  수입품 java.disc.*; 수입품 net.sourceforge.czt.z.ast 를 지정합니다.사양; 수입품 common.z 입니다.TClass; 수입품 common.z 입니다.오퍼스킴;  /** * 테스트 방법을 추상화하는 인터페이스(테스트 트리 생성에 필요) 및 *는 새로운 테스트 클래스를 생성하기 위해 테스트 클래스에 적용할 수 있도록 합니다. */ 일반의 인터페이스 전술 {          /** * 지정된 테스트클래스에 이 방법을 적용하여 다음 값이 포함된 목록을 반환합니다. * 생성된 테스트 클래스입니다. * @param tClass * @return */     일반의 목록.< >TClass> applyTactic(TClass t클래스);          /** * 테스트 대상 시스템의 사양을 설정합니다. * @param opScheme */     일반의 무효 set 스펙(사양 사양);          /** * 테스트 대상 작업의 Z 스키마 상자를 가져옵니다. * @return */     일반의 사양 get 스펙();            /** * 테스트 대상 작업의 Z 스키마 상자를 설정합니다. * @param opScheme */     일반의 무효 set Original Op(오퍼스킴 opScheme);          /** * 테스트 대상 작업의 Z 스키마 상자를 가져옵니다. * @return */     일반의 오퍼스킴 get Original Op();          /** * 이 전술의 파라미터를 해석합니다. * @param str * @return */     일반의 부울 구문 분석(스트링 스트레이트);          /** * 이 객체에 연관된 TacticInfo 인스턴스를 설정합니다. * @param tacticInfo */     일반의 무효 setTacticInfo(전술 정보 전술 정보);          /** * 이 객체에 연관된 TacticInfo 인스턴스를 가져옵니다. * @return */     일반의 전술 정보 getTacticInfo();          /** * 이 전술에 대한 설명을 가져옵니다. * @이 전술의 설명을 포함한 문자열을 반환합니다. */         일반의 스트링 getDescription(설명)();          /** * 이 전술의 설명을 설정합니다. * @discription 설명 */     일반의 무효 set 설명(스트링 묘사); } 

「 」를 참조해 주세요.

메모들

레퍼런스

  • Cristiá, Maximiliano; Rodríguez Monetti, Pablo (2009). "Implementing and Applying the Stocks-Carrington Framework for Model-Based Testing". Formal Methods and Software Engineering, 11th International Conference on Formal Engineering Methods, ICFEM 2009. Rio de Janeiro, Brazil: Springer-Verlag.
  • 를 클릭합니다Stocks, Phil; Carrington, David (1996), "A framework for specification-based testing", IEEE Transactions on Software Engineering, 22 (11): 777–793, doi:10.1109/32.553698.
  • Information Technology — Z Formal Specification Notation — Syntax, Type System and Semantics (1 MB PDF) (ISO/IEC 13568:2002 ed.), 2002, pp. 196 pages {{citation}}: (도움말)의 외부 링크.
  • Cristiá, Maximiliano; Albertengo, Pablo; Rodríguez Monetti, Pablo (2010). "Pruning Testing Trees in the Test Template Framework by Detecting Mathematical Contradictions". 8th IEEE International Conference on Software Engineering and Formal Methods (SEFM), 2010. Pisa, Italy: IEEE.