데이터 기반 테스트

데이터 기반 테스트는 테스트의 입력 및 출력 값이 코드와 구분되는 테스트 방법론입니다. 이 형식주의는 일반적으로 테스트 코드를 좀 더 일반적으로 만드는 데 약간의 투자를 하면 관련된 데이터를 식별하기만 하면 많은 수의 테스트 사례를 작성할 수 있음을 의미합니다.

데이터 기반 테스트는 동작을 정의하는 입력 값 집합을 사용하는 테스트 영역에 적합합니다. 예를 들어 API를 테스트할 때 입력 및 출력 매개 변수를 데이터 원본으로 정의할 수 있으며 테스트 코드가 데이터를 사용하고 API를 호출하고 결과의 유효성을 검사합니다.

TAEF의 데이터 기반 테스트 지원

TAEF는 데이터 기반 테스트를 작성하기 위한 다양한 옵션을 제공합니다. 테스트 시나리오에 가장 적합한 옵션을 선택할 수 있도록 이러한 옵션을 이해해 보겠습니다.

테이블 기반 데이터 기반 테스트 솔루션을 사용하면 데이터 매개 변수 변형을 세분화하고 매개 변수 형식을 정의할 수 있습니다. 이 경우 DataSource는 XML 파일에 정의된 테이블입니다. 매개 변수 형식(int, unsigned int, size_t, bool, double, DWORD, __int64 등 및 동종 배열 변형)을 지정하거나 형식을 WEX::Common::String(네이티브) 또는 문자열(관리형)으로 기본값으로 지정할 수 있습니다. 테이블의 각 행은 매개 변수 값의 변형 집합입니다. 테스트 메서드는 테이블의 모든 행에 대해 다시 호출됩니다. 다음은 테이블 기반 데이터 기반 테스트를 위한 XML DataSource의 코드 조각입니다.

1  <?xml version="1.0"?>
2   <Data>
3     <Table Id ="Table1">
4          <ParameterTypes>
5                  <ParameterType Name="Size">Int32</ParameterType>
6                  <ParameterType Name="Color">String</ParameterType>
7          </ParameterTypes>
8          <Row>
9                 <Parameter Name="Size">12</Parameter>
10                 <Parameter Name="Color">Blue</Parameter>
11         </Row>
12         <Row>
13                 <Parameter Name="Size">4</Parameter>
14                 <Parameter Name="Color">White</Parameter>
15         </Row>
16         <Row>
17                 <Parameter Name="Size">9</Parameter>
18                 <Parameter Name="Color">Black</Parameter>
19         </Row>
20    </Table>
21  </Data>

자세히 알아보려면 테이블 기반 데이터 기반 테스트입니다.

경량 데이터 기반 테스트 지원은 테이블 기반 데이터 기반 테스트 솔루션에서 제공하는 전체 충실도를 제공하지 않습니다. 명확히 하기 위해: 경량 데이터 기반 테스트는 테이블 기반 데이터 기반 테스트 솔루션에서 지원하는 다양한 형식에 대해 데이터 매개 변수를 WEX::Common::String(네이티브) 또는 String(관리형)으로 제한합니다. 그러나 테스트 메서드를 데이터 기반로 만들기 위해 저비용 및 빠른 데이터 변형(예: 하나 또는 두 개의 매개 변수)을 찾고 DataSource가 문제가 되지 않는 것처럼 보이는 XML 파일을 추가하는 경우 경량 데이터 기반 테스트는 정확히 원하는 것일 수 있습니다. 이 예제의 좋은 예는 API에 대한 단위 테스트를 작성하는 개발자가 OpenThemeData(...)라고 말하고 "Button", "Listbox" 및 "ScrollBar"에 대해 API를 확인하려고 하는 것입니다. 이를 위해 XML DataSource 파일을 만들기에는 오버로드가 너무 많을 수 있지만, 경량 데이터 기반 테스트 지원을 사용하면 소스 코드 자체에서 효율적으로 수행할 수 있습니다. 둘 이상의 매개 변수를 지정하면 TAEF는 장면 뒤에 있는 매개 변수의 n-way 결합 확장을 생성하고 각 조합에 대해 테스트 메서드가 호출됩니다. 자세히 알아보려면 경량 데이터 기반 테스트입니다.

경량 데이터 기반 테스트가 제공하는 n-way 결합 확장은 테스트 시나리오가 더 복잡해짐에 따라 비용이 많이 들고 감소하는 수익을 제공할 수 있습니다. 이러한 복잡한 테스트 시나리오에서는 PICT 기반 데이터 기반 테스트 솔루션에서 제공하는 PICT(Pairwise Independent Combinatorial Testing)가 원하는 것일 수 있습니다. PICT는 매개 변수에 대한 포괄적인 검사를 얻기 위해 압축된 매개 변수 결과 집합을 생성하여 많은 값을 제공합니다. PICT 및 PICT 기반 데이터 기반 테스트 솔루션에서 이 솔루션을 사용하는 방법에 대해 자세히 알아보려면 링크를 확인하세요.

WMI 기반 데이터 기반 테스트 지원을 사용하여 테스트에 사전 조건을 추가하고 테스트 머신에서 사용할 수 있는 리소스에 따라 정보(데이터)를 가져올 수도 있습니다. 예를 들어 컴퓨터가 도메인에 가입되어 있고 테스트를 실행할 때 도메인 이름 정보도 필요한 경우에만 테스트를 실행하려는 경우입니다. 이 경우 DataSource는 WQL 쿼리입니다. 테스트 시나리오에서 WMI 기반 데이터 기반 테스트를 활용하는 방법에 대해 자세히 알아봅니다.

위에 나열된 모든 옵션을 염두에 두고 위의 옵션 조합이 적합해 보일 수 있는 디자인을 생각해 볼 수도 있습니다. 예를 들어 WMI 쿼리를 사용하여 테스트 컴퓨터에 연결된 모든 프린터에 대한 정보를 가져올 수 있지만 테이블 기반 데이터 기반 테스트 구문을 사용하여 미리 정의할 수 있는 다른 매개 변수 집합이 있을 수 있습니다. 테스트의 데이터를 두 개의 개별 테이블에서 제공하려는 경우 여러 DataSource 사양이 유용할 수 있으므로 각 테이블을 다른 테스트에서 다시 사용할 수 있습니다. 테스트에 대해 여러 DataSource를 지정하는 방법 및 이 작업을 수행하는 동안 적용되는 제약 조건에 대한 세부 정보를 읽어 보세요. 여러 DataSources 지정

이 섹션의 내용