자동화된 UI 테스트는 고품질 애플리케이션 제공에 필수적입니다. Coded UI Test(CUIT)는 Visual Studio에 통합된 강력한 도구로, 개발자와 QA 엔지니어가 원활하게 협업하여 데스크톱 및 웹 애플리케이션에 대한 유지보수 가능한 테스트를 생성할 수 있게 합니다.
Coded UI Test란?
Coded UI Test (CUIT)는 사용자 인터페이스를 통해 애플리케이션을 구동하며 모든 UI 컨트롤이 예상대로 동작하는지 검증합니다. 수동 테스트 단계를 반복 가능한 스크립트로 변환하여 빌드 간 일관된 테스트 커버리지를 보장합니다.
UI Test Architecture
Coded UI Test 주요 기능
Windows 및 웹 애플리케이션 전체 기능 UI 테스트
VB.NET 또는 C# 자동 코드 생성
ALM 스토리 추적과 깊은 통합
지속적 통합 파이프라인에서 빌드, 배포, 테스트
로컬, 원격, 데이터 기반 테스트 실행
커스텀 테스트 로직을 위한 확장 가능한 아키텍처
복원력 있는 재생을 위한 의도 인식 녹화
지원 기술
CUIT는 광범위한 UI 타입을 지원합니다:
Windows 데스크톱 애플리케이션 (WinForms, WPF)
웹 서비스 (SOAP, ASPX 등)
Windows Phone 애플리케이션
WPF (Windows Presentation Foundation)
웹 애플리케이션 (HTML, Silverlight, HTML5)
자동화에 Coded UI를 선택하는 이유?
개발자와 테스터를 위한 통합 언어와 도구셋
웹과 데스크톱 모두 지원하는 광범위한 플랫폼 지원
고급 요소 식별 및 동기화
재생 엔진의 대기 유틸리티: WaitForControlExist, WaitForReadyLevel
테스트 에이전트 통한 원격 실행
정교한 테스트 설계를 위한 계층형 프레임워크 지원
log4net.dll 내장 로깅으로 상세 진단
객체 속성 기반 자동화를 위한 기술적 프로그래밍
네이티브 AJAX 컨트롤 지원
Coded UI 테스트 생성
세 가지 주요 접근 방식:
기존 수동 테스트 녹화 변환
처음부터 새 테스트 생성
코드에 테스트 로직 직접 작성
CUIT 프로젝트 일반적인 파일 구조
파일
내용
편집 가능
UIMap.Designer.cs
UI 맵 자동 생성 코드
아니오
UIMap.cs
UI 맵 커스텀 수정
예
CodedUITest1.cs
테스트 클래스, 메서드, 단언
예
UIMap.uitest
UI 맵 XML 표현
아니오
예를 들어 UIMap.Designer.cs에는 생성된 UIMap 클래스가 있고, UIMap.cs에는 추가하는 커스텀 로직이 있습니다. 디자이너 파일을 직접 수정하는 것은 변경 사항이 덮어씌워질 수 있어 권장하지 않습니다.
Coded UI 테스트 실행
CUIT는 두 가지 주요 실행 경로 지원:
테스트 시나리오 녹화 및 재생
테스트 로직 직접 코딩
일반적 단계:
Coded UI 테스트 프로젝트 생성
새 Coded UI 테스트 파일 추가
원하는 사용자 행동 녹화
UI 값 검증 (예: 텍스트 상자)
생성된 테스트 코드 검토
필요한 추가 행동과 단언 추가
테스트 세부사항 미세 조정
테스트 실행 및 결과 분석
모범 사례
테스트 생성을 위해 Test Builder 선호
UIMap.Designer.cs 직접 편집 피하기
테스트를 녹화된 메서드 시퀀스로 구성
각 메서드를 단일 페이지 또는 대화상자에 집중
명확성을 위해 설명적인 메서드 이름 사용
가능하면 녹화된 메서드를 10개 미만 행동으로 제한
Test Builder가 단언 자동 생성하도록 허용
UI 변경 시 영향을 받는 섹션 재녹화
직접 코딩 시 디자이너 제공 클래스에 의존하여 신뢰성 확보
CUIT vs Selenium vs QTP 비교
주요 차이점:
Selenium은 웹 브라우저에 집중하며 WPF나 네이티브 Windows 애플리케이션 미지원
Coded UI는 Windows Store 및 Phone 애플리케이션을 독자적으로 지원
TestComplete는 Windows 앱 테스트 가능하지만 플러그인 필요
Coded UI Test vs Selenium vs QTP 비교
핵심 요약
Coded UI는 애플리케이션을 UI를 통해 구동하여 엔드투엔드 기능 테스트에 이상적
웹 서비스부터 Windows Phone 앱까지 광범위한 기술 지원
단일 언어로 개발자와 테스터 간 협업 촉진
주요 프로젝트 파일: UIMap.Designer.cs, UIMap.cs, CodedUITest1.cs, UIMap.uitest