자동화 시스템 개요

유닛 테스팅, 피처 테스팅, 콘텐츠 스트레스 테스팅에 사용되는 자동화 시스템 개요입니다.

Choose your operating system:

Windows

macOS

Linux

자동화 시스템은 Functional Testing Framework (펑셔널 테스팅 프레임워크) 기반으로 만들어졌으며, 하나 이상의 자동화 테스트를 수행하는 식으로 이루어지는 게임플레이 레벨 테스트를 위해 디자인된 것입니다. 작성되는 대부분의 테스트는 펑셔널 테스트, 로우 레벨 코어 또는 에디터 테스트로, 자동화 프레임워크 시스템을 사용하여 작성해야 합니다. 이렇게 작성된 테스트는 용도와 기능에 따라 다음과 같은 카테고리에 속할 수 있습니다:

테스트 유형

설명

Unit

유닛 - API 레벨 검증 테스트입니다. 예제는 TimespanTest.cpp 또는 DateTimeTest.cpp 파일을 참고하세요.

Feature

피처 - 시스템 레벨 검증 테스트로, 예를 들면 PIE, 게임내 통계 시스템, 해상도 변경이 작동하는지 확인하는 것입니다. 예제는 EditorAutomationTests.cpp 또는 EngineAutomationTests.cpp 를 확인하세요.

Smoke

스모크 - 구현자가 예상하는 속도가 나는지 테스트해 보는 것입니다. 에디터, 게임, 커맨드렛이 시작될 때마다 실행시킬 수 있도록 빠를 것으로 기대됩니다. UI 에서 기본으로 선택되기도 합니다.

모든 스모크 테스트는 1 초 내 끝날 것으로 기대됩니다. 유닛 테스트 또는 빠른 피처 테스트만 스모크 테스트로 마킹하세요.

Content Stress

콘텐츠 스트레스 - 특정 시스템의 크래시를 피하기 위해 하는 보다 철저한 테스트로, 모든 맵을 로드한다던가 모든 블루프린트를 로드하고 컴파일한다던가 하는 것입니다. 자세한 예제는 EditorAutomationTests.cpp 또는 EngineAutomationTests.cpp 파일을 참고하세요.

Screenshot Comparison

스크린샷 비교 - QA 테스팅에서 빠른 스크린샷 비교를 통해 다른 버전 또는 빌드 사이 발생할 수 있는 렌더링 이슈를 알아낼 수 있도록 해줍니다.

플러그인으로 이동된 자동화 테스트

오랜 동안, 자동화 테스트는 엔진과 에디터 곳곳에 흩어져 있어 타이틀을 출시할 때도 포함되고는 했습니다. 이러한 부분이 이제 별도의 플러그인으로 이동되어 개별적으로 활성화시킬 수 있게 되었습니다. 이러한 테스트가 플러그인에 위치하게 되어, 컴파일할 때 패키지 빌드에 포함시킬지를 선택할 수 있게 되었다는 뜻이기도 합니다. 플러그인에는 더이상 엔진 콘텐츠 폴더에 유지할 필요가 없도록 콘텐츠도 저장할 수 있습니다.

이러한 변경사항으로 인해, 테스트 유형을 만들 때 어디에 저장할지를 기술해야 합니다. 테스트 유형과 같이 저장할 플러그인 유형은 아래 표를 참고하세요:

테스트 유형

저장할 플러그인

Unit

유닛 - 계속해서 코드와 같은 모듈에 저장할 수 있습니다.

Project Agnostic Runtime Tests

프로젝트 무관 런타임 테스트 - RuntimeTests Plugin

Project Agnostic Editor Tests

프로젝트 무관 에디터 테스트 - EditorTests Plugin

Functional Tests

펑셔널 테스트 - EngineTest Game 폴더

아직 엔진에 남아있어 플러그인으로 이동될 수 있는 테스트가 몇 가지 있습니다. 서서히 이동됨에 따라 플러그인 브라우저 Testing 아래에서 찾을 수 있을 것입니다.

자동화 테스트 플러그인 활성화

사용할 수 있는 여러가지 다양한 테스트용 플러그인 활성화를 위해서는, 파일 메뉴에서 > Plugins (플러그인) 메뉴를 통해 플러그인 브라우저 창을 엽니다.

EnablePlugins.png

왼쪽 패널에서 Testing 카테고리를 선택하고 사용하고자 하는 테스트 플러그인을 활성화합니다.

이미지를 클릭하면 원본을 확인합니다.

이렇게 선택하고나면 에디터 재시작을 묻습니다. 지금 재시작 을 클릭합니다.

RestartTheEditor.png

테스트 디자인 지침

게임 또는 프로젝트를 테스트할 때, 에픽의 자동화 테스트 기준으로 삼는 몇 가지 일반적인 지침은 다음과 같습니다:

  • 게임 또는 에디터 상태를 가정하지 않습니다. 테스트는 순서 없이 또는 여러 머신에 걸쳐 병렬 실행될 수 있습니다.

  • 디스크의 파일은 찾은 상태 그대로 놔둡니다. 테스트에서 파일을 생성한 경우, 그 테스트가 완료되면 삭제합니다. (앞으로 이러한 유형의 생성 파일을 자동 삭제하도록 하는 옵션이 추가될 수 있습니다).

  • 테스트는 지난 번 실행된 이후 나쁜 상태에 있었다 가정합니다. 테스트 시작 전 생성 파일을 삭제하는 습관을 들이는 것이 좋습니다.

자동화 테스트 실행

  1. 프로젝트를 엽니다.

  2. 테스트에 사용할 수 있는 플러그인을 활성화시키고 에디터를 재시작합니다.

  3. 에디터에서 > Test Automation (테스트 자동화)를 선택합니다.

    이미지를 클릭하면 원본을 확인합니다.

    이 메뉴 옵션이 보이도록 하기 위해서는, 최소 하나의 자동화 테스트 플러그인을 활성화시켜야 합니다.

  4. 세션 프론트엔드의 자동화 탭에서 Test Name 열 아래 다음과 같이 활성화합니다:

    이미지를 클릭하면 원본을 확인합니다.

    • Editor

    • Project

    • System

  5. 자동화 탭 툴바에서, Start Tests (테스트 시작) 버튼을 클릭합니다.

    이미지를 클릭하면 원본을 확인합니다.

    테스트가 완료되면, Test Name 창의 진행상황을 따라가면 됩니다.

    이미지를 클릭하면 원본을 확인합니다.

요점

Automation System (자동화 테스트)는 안전성 향상을 위해 Unreal Message Bus (언리얼 메시지 버스)를 사용하여 유닛 테스팅, 피처 테스팅, 콘텐츠 스트레스 테스팅을 할 수 있는 기능을 제공합니다.

언리얼 엔진 문서의 미래를 함께 만들어주세요! 더 나은 서비스를 제공할 수 있도록 문서 사용에 대한 피드백을 주세요.
설문조사에 참여해 주세요
건너뛰기