

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Test Workbench용 테스트 세트 생성
<a name="test-sets"></a>

테스트 세트를 만들어 봇의 성능을 평가할 수 있습니다. CSV 파일 형식의 테스트 세트를 업로드하거나 [대화 로그](https://docs.aws.amazon.com/lexv2/latest/dg/conversation-logs.html)에서 테스트 세트를 생성하여 테스트 세트를 생성합니다. 테스트 세트는 오디오 또는 텍스트 입력을 포함할 수 있습니다.

![\[Test Workbench로 테스트 세트를 만드세요.\]](http://docs.aws.amazon.com/ko_kr/lexv2/latest/dg/images/testworkbench/test-workbench-create.png)


테스트 세트에서 검증 오류가 발생하는 경우 테스트 세트를 제거하고 다른 테스트 세트 데이터 목록으로 바꾸거나 스프레드시트 편집 프로그램을 사용하여 CSV 파일의 데이터를 편집하세요.

**테스트 세트를 생성하려면:**

1. AWS Management Console에 로그인하여 [https://console.aws.amazon.com/lex/](https://console.aws.amazon.com/lex/)에서 Amazon Lex 콘솔을 엽니다.

1. 왼쪽 패널에서 **Test Workbench**를 선택합니다.

1. Test Workbench의 옵션에서 **테스트 세트**를 선택합니다.

1. 콘솔에서 **테스트 세트 생성** 버튼을 선택합니다.

1. **세부 정보**에서 테스트 세트 이름과 선택적 설명을 입력합니다.

1. **베이스라인 테스트 세트 생성**을 선택합니다.

1. **대화 로그에서 생성**을 선택합니다.

1. 드롭다운 메뉴에서 **봇 이름**, **봇 별칭**, **언어**를 선택합니다.

1. 대화 로그에서 기준 테스트를 생성하는 경우 필요에 따라 **시간 범위** 및 **IAM 역할**을 선택합니다. Amazon Lex V2에 사용되는 기본 권한으로 역할을 생성하거나 기존 역할을 사용할 수 있습니다.

1. 생성 중인 테스트 세트에 사용할 **오디오** 또는 **텍스트** 모드를 선택합니다. 참고: Test Workbench는 최대 5만 개의 텍스트 파일과 최대 5시간 분량의 오디오를 가져올 수 있습니다.

1. 테스트 결과를 저장할 Amazon S3 위치를 선택하고 출력 스크립트를 암호화하기 위한 선택적 KMS 키를 추가합니다.

1. **생성**을 선택합니다.

**기존 테스트 세트를 CSV 파일 형식으로 업로드하거나 테스트 세트를 업데이트하려면:**

1. 왼쪽 패널에서 **Test Workbench**를 선택합니다.

1. Test Workbench의 옵션에서 **테스트 세트**를 선택합니다.

1. 콘솔에서 **이 테스트 세트에 파일 업로드**를 선택합니다.

1. **Amazon Amazon S3 버킷에서 업로드** 또는 **컴퓨터에서 업로드**를 선택합니다. 참고: 템플릿으로 만든 CSV 파일을 업로드할 수 있습니다. **CSV 템플릿**을 클릭하여 템플릿이 포함된 zip 파일을 다운로드합니다.

1. **기본 Amazon Lex 권한으로 역할 생성** 또는 **역할 ARN에 기존 역할 사용**을 선택합니다.

1. 생성 중인 테스트 세트에 사용할 **오디오** 또는 **텍스트** 모드를 선택합니다. 참고: Test Workbench는 최대 5만 개의 텍스트 파일과 최대 5시간 분량의 오디오를 가져올 수 있습니다.

1. 테스트 결과를 저장할 Amazon S3 위치를 선택하고 출력 스크립트를 암호화하기 위한 선택적 KMS 키를 추가합니다.

1. **생성**을 선택합니다.

작업이 성공하면 테스트 세트를 테스트할 준비가 되었다는 확인 메시지가 나타나고 상태는 **테스트 준비 완료**로 표시됩니다.

# 성공적인 테스트 세트를 만들기 위한 팁
<a name="tips-create-test-set"></a>
+ 콘솔에서 Test Workbench의 IAM 역할을 만들거나 IAM 역할을 단계별로 구성할 수 있습니다. 자세한 내용은 [Test Workbench용 IAM 역할 생성](https://docs.aws.amazon.com/lexv2/latest/dg/create-iam-test-set.html)을 참조하세요.
+ 테스트를 실행하기 전에 **불일치 검증** 버튼을 사용하여 테스트 세트와 봇 정의에 불일치가 있는지 검증하세요. 테스트 세트에 사용된 의도 및 슬롯 이름 지정 규칙이 봇과 일치하면 테스트를 진행하세요. 예외가 식별되면 테스트 세트를 수정하고 테스트 세트를 업데이트한 다음 **불일치 검증**을 선택합니다. 불일치가 발견되지 않을 때까지 이 순서를 다시 반복한 다음 테스트를 실행하세요.
+ Test Workbench는 **예상 출력 슬롯** 열에서 다양한 슬롯 값 형식을 사용하여 테스트할 수 있습니다. 모든 기본 제공 슬롯의 경우 사용자 입력에 제공된 값(예: 날짜 = 내일)을 선택하거나 절대 해결 값(예: 날짜 = 2023-03-21)을 제공할 수 있습니다. 기본 제공 기본 제공 슬롯 및 절대값에 대한 자세한 내용은 [기본 제공 슬롯](https://docs.aws.amazon.com/lexv2/latest/dg/howitworks-builtins-slots.html)을 참조하세요.
+  **예상 출력 슬롯** 열의 일관성과 가독성을 높이려면 등호 앞뒤에 공백을 두고 'SlotName = SlotValue' 규칙(예: AppointmentType = cleaning)을 따르세요.
+ 봇에 복합 슬롯이 포함된 경우 **예상 출력 슬롯**에서 슬롯 이름의 하위 슬롯을 마침표로 구분하여 정의합니다 (예: “Car.Color”). 다른 구문과 문장 부호는 사용할 수 없습니다.
+ 봇에 다중 값 슬롯이 포함된 경우 **예상 출력 슬롯**에 여러 슬롯 값을 쉼표로 구분하여 입력합니다("FlowerType = roses, lilies"). 다른 구문과 문장 부호는 사용할 수 없습니다.
+ 테스트 세트가 유효한 대화 로그에서 생성되었는지 확인하세요.
+ Slot:slot 값은 CSV 형식의 의도 열 뒤에 있는 동일한 열에 표시됩니다.
+ 사용자 턴의 DTMF 입력은 예상 트랜스크립션으로 해석되며 Amazon S3 위치를 나열하지 않습니다.

# Test Workbench를 사용하여 테스트 세트 내에 테스트 케이스 생성
<a name="create-test-case"></a>

Test Workbench 결과는 봇 정의와 해당 테스트 세트에 따라 달라집니다. 봇 정의의 정보가 포함된 테스트 세트를 생성하여 개선이 필요한 영역을 정확히 찾아낼 수 있습니다. 현재 봇 설계와 고객 대화에 대한 지식을 고려하여 봇이 올바르게 해석하기 어려울 것으로 의심되는(또는 알고 있는) 예시를 포함하는 테스트 데이터 세트를 만드세요.

 정기적으로 프로덕션 봇에서 배운 내용을 바탕으로 의도를 검토하세요. 봇의 샘플 발화 및 슬롯 값을 계속 추가하고 조정하세요. 런타임 힌트와 같은 사용 가능한 옵션을 사용하여 슬롯 해상도를 개선하는 것이 좋습니다. 봇의 설계 및 개발은 지속적인 주기의 반복적인 프로세스입니다.

 테스트 세트를 최적화하기 위한 몇 가지 다른 팁은 다음과 같습니다.
+ 테스트 세트에서 자주 사용되는 의도와 슬롯이 있는 가장 일반적인 사용 사례를 선택하세요.
+ 고객이 의도와 슬롯을 언급할 수 있는 다양한 방법을 살펴보세요. 여기에는 최소 길이에서 확장된 길이까지 다양한 문장, 질문 및 명령 형식의 사용자 입력이 포함될 수 있습니다.
+ 슬롯 수가 다양한 사용자 입력을 포함하세요.
+ 일반적으로 사용되는 동의어 또는 봇에서 지원하는 사용자 지정 슬롯 값의 약어(예: “root canal”, “canal” 또는 “RC”)를 포함하세요.
+ 기본 제공 슬롯 값의 변형(예: “tomorrow”, “asap” 또는 "the next day")을 포함하세요.
+ 잘못 해석될 수 있는 사용자 입력(예: “ink”, “ankle” 또는 "anchor")을 수집하여 음성 양식에 대한 봇의 견고성을 검사하세요.

# Test Workbench용 CSV 파일에서 테스트 세트 생성
<a name="create-test-set-from-CSV"></a>

Amazon Lex V2 콘솔에 제공된 CSV 파일 템플릿에서 CSV 스프레드시트 편집기를 사용하여 값을 직접 입력하여 테스트 세트를 생성할 수 있습니다. 테스트 세트는 단일 사용자 발화 및 다음 열에 기록된 여러 차례의 대화로 구성된 CSV(쉼표로 구분된 값) 파일입니다.
+ **행 번호** – 이 열은 테스트할 총 채워진 행 수를 추적하는 증분 카운터입니다.
+ **대화 번호** – 이 열은 대화의 턴 수를 추적합니다. 단일 입력의 경우 이 열을 비워 두고 “-” 또는 “N/A”로 채울 수 있습니다. 대화의 경우, 대화 내의 각 턴에 동일한 대화 번호가 할당됩니다.
+ **소스** – 이 열은 “사용자” 또는 “에이전트”로 설정되어 있습니다. 단일 입력의 경우 항상 “사용자”로 설정됩니다.
+ **입력** – 이 열에는 사용자 발언 또는 봇 프롬프트가 포함됩니다.
+ **예상 출력 의도** – 이 열은 입력에서 충족된 의도를 캡처합니다.
+ **의도 예상 출력 슬롯 1** – 이 열은 사용자 입력에서 도출된 첫 번째 슬롯을 캡처합니다. 테스트 세트에는 사용자 입력의 각 슬롯에 대한 예상 출력 슬롯 X라는 열이 포함되어야 합니다.

단일 입력이 포함된 테스트 세트의 예:


| 행 번호 | 대화 번호 | 소스 | Input | 예상 출력 의도 | 예상 출력 슬롯 1 | 예상 출력 슬롯 2 | 
| --- | --- | --- | --- | --- | --- | --- | 
|  1  |    | User | 내일 청소 약속을 잡으세요 | MakeAppointment | AppointmentType = 청소 | 날짜 = 내일 | 
|  2  |  N/A  | User | 4월 15일에 청소 예약을 하세요 | MakeAppointment | AppointmentType = 청소 | 날짜 = 4/15/23 | 
|  3  |  해당 사항 없음  | User | 12월 1일에 예약하세요 | MakeAppointment | 날짜 = 12월 1일 |  | 
|  4  |  해당 사항 없음  | User | 청소를 예약하세요 | MakeAppointment | AppointmentType = 청소 |  | 
|  1  |    | User | 예약 도와주실 수 있나요? | MakeAppointment |  |  | 

대화가 포함된 테스트 세트의 예


| 행 번호 | 대화 번호 | 소스 | Input | 예상 출력 의도 | 예상 출력 슬롯 1 | 예상 출력 슬롯 2 | 예상 출력 슬롯 3 | 
| --- | --- | --- | --- | --- | --- | --- | --- | 
|  1  |  1  | User | 예약하세요 | MakeAppointment |  |  |  | 
|  2  |  1  | 에이전트 | 어떤 유형의 약속을 예약하고 싶으신가요? | MakeAppointment |  |  |  | 
|  3  |  1  | User | 청소 | MakeAppointment | AppointmentType = 청소 |  |  | 
|  4  |  1  | 에이전트 | 언제 약속을 잡아야 하나요? | MakeAppointment |  |  |  | 
|  5  |  1  | User | tomorrow | MakeAppointment |  | 날짜 = 내일 |  | 
|  6  |  2  | User | 오늘 치근관 진료 예약을 하세요 | MakeAppointment | AppointmentType = 치근관 | 날짜 = 오늘 |  | 
|  7  |  2  | 에이전트 | 몇 시에 약속을 잡아야 하나요? | MakeAppointment |  |  |  | 
|  8  |  2  | User | 오전 11시 | MakeAppointment |  |  | 시간 = 오전 11시 | 

# Test Workbench의 IAM 역할 생성
<a name="create-iam-test-set"></a>

**Test Workbench의 IAM 역할을 생성하는 방법**

1. [IAM 사용자 생성](https://docs.aws.amazon.com/lexv2/latest/dg/gs-account.html#gs-account-user)의 단계에 따라 Test Workbench 콘솔에 액세스하는 데 사용할 수 있는 IAM 사용자를 생성합니다.

1. **역할 생성** 버튼을 선택합니다.  
![\[IAM 콘솔의 역할 화면.\]](http://docs.aws.amazon.com/ko_kr/lexv2/latest/dg/images/testworkbench/testworkbench-iam1.png)

1. **사용자 지정 신뢰 정책** 옵션을 선택합니다.  
![\[신뢰할 수 있는 엔터티 선택\]](http://docs.aws.amazon.com/ko_kr/lexv2/latest/dg/images/testworkbench/testworkbench-iam2.png)

1. 아래에 신뢰 정책을 입력하고 **다음**을 클릭합니다.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "sid4",
         "Effect": "Allow",
         "Principal": {
           "Service": "lexv2.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

1. **정책 생성** 버튼을 선택합니다.

1. 브라우저에 새 탭이 열리면 아래 정책을 입력하고 **다음: 태그** 버튼을 클릭할 수 있습니다.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "s3:*"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "logs:FilterLogEvents"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "lex:*"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1. 정책 이름 (예: 'LexTestWorkbenchPolicy') 을 입력한 다음 **정책 생성**을 클릭합니다.

1. 브라우저의 이전 탭으로 돌아가서 아래와 같이 **새로 고침** 버튼을 클릭하여 정책 목록을 새로 고칩니다.  
![\[화면을 새로 고침하여 새 정책을 확인하세요.\]](http://docs.aws.amazon.com/ko_kr/lexv2/latest/dg/images/testworkbench/testworkbench-iam3.png)

1. 6단계에서 사용한 정책 이름을 입력하여 정책 목록에서 검색하고 정책을 선택합니다.

1. **다음** 버튼을 선택합니다.

1. 역할 이름을 입력한 다음 **역할 생성** 버튼을 클릭합니다.

1. Test Workbench용 Amazon Lex V2 콘솔에 메시지가 표시되면 새 IAM 역할을 선택합니다.

# Test Workbench의 IAM 역할 생성 - 고급 기능
<a name="create-iam-test-set-features"></a>

**테스트 워크벤치 IAM 역할에 대한 권한 설정**

이 섹션에서는 Test Workbench 권한에 대한 최소 권한 액세스 제어를 구현하기 위한 몇 가지 예제 AWS Identity and Access Management(IAM) 자격 증명 기반 정책을 보여줍니다.

1. **S3에서 오디오 파일을 읽기 위한 Test Workbench 정책** - 이 정책을 통해 Test Workbench는 테스트 세트에 사용되는 오디오 파일을 읽을 수 있습니다. 테스트 세트에 있는 오디오 파일의 Amazon S3 위치를 가리키도록 *S3BucketName* 및 *S3Path*를 업데이트하려면 아래 정책을 적절히 수정해야 합니다.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "TestWorkbenchS3AudioFilesReadOnly",
         "Effect": "Allow",
         "Action": [
           "s3:GetObject",
           "s3:GetObjectVersion"
         ],
         "Resource": [
           "arn:aws:s3:::S3BucketName/S3Path/*"
         ]
       }
     ]
   }
   ```

------

1. **Test Workbench가 테스트 세트 및 결과를 읽고 Amazon S3 버킷에 쓰는 정책** - 이 정책을 통해 Test Workbench는 테스트 세트 입력 및 결과를 저장할 수 있습니다. 테스트 세트 데이터가 저장될 Amazon S3 버킷으로 *S3BucketName*을 업데이트하려면 아래 정책을 수정해야 합니다. Test Workbench는 이러한 데이터를 Lex Service 인프라가 아닌 Amazon S3 버킷에만 저장합니다. 따라서 Test Workbench가 제대로 작동하려면 Amazon S3 버킷에 액세스해야 합니다.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "TestSetDataUploadWithEncryptionOnly",
         "Effect": "Allow",
         "Action": [
           "s3:PutObject"
         ],
         "Resource": [
           "arn:aws:s3:::S3BucketName/*/lex_testworkbench/test_set/*",
           "arn:aws:s3:::S3BucketName/*/lex_testworkbench/test_execution/*",
           "arn:aws:s3:::S3BucketName/*/lex_testworkbench/test_set_discrepancy_report/*"
         ],
         "Condition": {
           "StringEquals": {
             "s3:x-amz-server-side-encryption": "aws:kms"
           }
         }
       },
       {
         "Sid": "TestSetDataGetObject",
         "Effect": "Allow",
         "Action": [
           "s3:GetObject",
           "s3:GetObjectVersion"
         ],
         "Resource": [
           "arn:aws:s3:::S3BucketName/*/lex_testworkbench/test_set/*",
           "arn:aws:s3:::S3BucketName/*/lex_testworkbench/test_execution/*",
           "arn:aws:s3:::S3BucketName/*/lex_testworkbench/test_set_discrepancy_report/*"
         ]
       },
       {
         "Sid": "TestSetListS3Objects",
         "Effect": "Allow",
         "Action": [
           "s3:ListBucket"
         ],
         "Resource": [
           "arn:aws:s3:::S3BucketName"
         ]
       }
     ]
   }
   ```

------

1. **CloudWatch Logs를 읽기 위한 Test Workbench 정책** - 이 정책을 통해 Test Workbench는 Amazon CloudWatch Logs에 저장된 Lex 대화 텍스트 로그에서 테스트 세트를 생성할 수 있습니다. *Region*, *AwsAccountId*, *LogGroupName*을 업데이트하려면 아래 정책을 수정해야 합니다.

1. **Lex 런타임을 직접 호출하기 위한 Test Workbench 정책** - 이 정책을 통해 Test Workbench는 Lex 봇에 대해 테스트 세트를 실행할 수 있습니다. *Region*, *AwsAccountId*, *BotId*를 업데이트하려면 아래 정책을 수정해야 합니다. Test Workbench는 Lex 환경의 모든 봇을 테스트할 수 있으므로 리소스를 'arn:aws:lex:*Region*:*AwsAccountId*:bot-alias/\$1'로 교체하여 계정의 모든 Amazon Lex V2 봇에 대한 Test Workbench 액세스를 허용할 수 있습니다.

1. **(선택 사항) Test Workbench가 테스트 세트 데이터를 암호화하고 해독하는 정책** - Test Workbench가 고객 관리형 KMS 키를 사용하여 Amazon S3 버킷에 테스트 세트 입력 및 결과를 저장하도록 구성된 경우 Test Workbench에는 KMS 키에 대한 암호화 및 해독 권한이 모두 필요합니다. 아래 정책을 수정하여 *Region*, *AwsAccountId* 및 *KmsKeyId*를 업데이트해야 합니다. 여기서 *KmsKeyId*는 고객 관리형 KMS 키의 ID입니다.

1. **(선택 사항) 오디오 파일 복호화를 위한 Test Workbench 정책** - 오디오 파일이 고객 관리형 KMS 키를 사용하여 S3 버킷에 저장되는 경우 Test Workbench는 KMS 키에 대한 복호화 권한이 필요합니다. 아래 정책을 수정하여 *Region*, *AwsAccountId* 및 *KmsKeyId*를 업데이트해야 합니다. 여기서 *KmsKeyId*는 오디오 파일을 암호화하는 데 사용되는 고객 관리형 KMS 키의 ID입니다.