전략과 골격은 사소하게, 어떤 종류의 테스트를 생성하고자하는지, 어떤 종류의 커버리지를 찾고 있는지, 그리고 사용중인 언어 / 환경에 달려 있습니다.
C 또는 Java와 같은 언어의 경우 클래스 서명을 읽고 표준 코너 사례에 대한 테스트를 자동으로 생성하는 테스트 생성기를 작성하는 것이 매우 간단합니다 (0, 2 개의 임의 값, MAX_INT, MIN_INT를 정수 인수로 전달, 널 입력 가능 널을 널로 전달 함). 등). 그런 다음 생성 된 테스트를 실행하고 각 테스트에 대한 결과를 기록한 다음 수동으로 필터링하여 관련이없는 테스트를 제거하고 통과 한 테스트에 대해 허용 가능한 결과를 승인하고 (그러면 자동으로 통과 할 수 있음) 실패한 테스트로 표시 할 수 있습니다. .
클래스에 태그 / 코멘트 / 리팩토링을 사용하여이 기능을 보강하여 생성기에 추가 힌트를 제공 할 수 있습니다. 메소드 호출로 발생 가능한 모든 예외를 나열하거나 정수 인수에 대해 유효한 정수 범위를 줄이는 태그가있을 수 있습니다. 테스트를 직접 작성해야하는 속기라고 생각하십시오.
다음은 살펴볼 구성 요소입니다.
- 소스 코드 / 함수 서명 / 수동 주석을 자동으로 구문 분석하고 표준 테스트 사례를 생성하거나 입력이 완료되기를 기다리는 테스트 사례에 대한 개요 / 서명을 자동으로 분석하는 구성 요소입니다.
- 자동화 된 테스트 빌더에 대한 힌트를 나타내는 모든 수준의 세분성 (메소드 / 클래스 / 서명 / 루프 루프 등)으로 이동할 수있는 태그 / 주석 / 코멘트의 언어가 지속적으로 성장 / 변경됩니다. 이상적으로는 프레임 워크 또는 덩어리를 다시 코딩하지 않고도이 언어로 재생할 수 있어야합니다
- 새로운 / 이전 테스트를 식별하고 각 테스트에 대해 "허용 가능한"답변에 대해 기록 / 테스트 할 수있는 기능을 갖춘 자동화 된 테스트 러너. 이상적으로이 러너는 테스트 실행 데이터베이스, 수락 / 거부 된 결과 및 각 테스트에 대해 현재 허용 가능한 결과를 구축합니다.
- 클래스 이름 및 이름-> 값의 맵이 주어지면 클래스를 모방하는 객체를 생성하여 함수 호출, 접근 자, 공개 데이터 슬롯 등에 대한 사용자 정의 가능한 데이터를 반환 할 수있는 자동화 된 "개체 가짜"
다양한 언어와 플랫폼을 위해이 기능을 이미 포함하고있는 많은 테스트 프레임 워크가 있습니다. 이 작업을 직접 시작하고 유기적으로 사내에서 이런 종류의 프레임 워크를 성장시키는 것은 상당히 쉬운 일이지만, 기존 작업을 복제 할 수있는 끝없는 장기 프로젝트이기도합니다. 먼저 사용할 수있는 것을 살펴본 다음 다이빙 할 가치가 있는지 결정하는 것이 좋습니다.