remotefx protocol test suitedownload.microsoft.com/download/c/6/0/c60e2bd0-8a7c... · ms-rdpei...

27
Christine Huang ( 陳淑英) , Principal Test Manager Feng Han ( 韓楓) , Protocol Test Suite Developer RemoteFX Protocol Test Suite

Upload: others

Post on 04-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: RemoteFX Protocol Test Suitedownload.microsoft.com/download/C/6/0/C60E2BD0-8A7C... · MS-RDPEI (Win8) • Touch input • Touch control. System Under Test (SUT) RDP Client TCP/UDP

Christine Huang (陳淑英), Principal Test Manager

Feng Han (韓楓), Protocol Test Suite Developer

RemoteFX Protocol Test Suite

Page 2: RemoteFX Protocol Test Suitedownload.microsoft.com/download/C/6/0/C60E2BD0-8A7C... · MS-RDPEI (Win8) • Touch input • Touch control. System Under Test (SUT) RDP Client TCP/UDP

• Protocol Test Suite – Why ,What, How

• RemoteFX Test Suite Introduction

• How to use RemoteFX Test Suite

Page 3: RemoteFX Protocol Test Suitedownload.microsoft.com/download/C/6/0/C60E2BD0-8A7C... · MS-RDPEI (Win8) • Touch input • Touch control. System Under Test (SUT) RDP Client TCP/UDP

Let this video tell you…

Page 4: RemoteFX Protocol Test Suitedownload.microsoft.com/download/C/6/0/C60E2BD0-8A7C... · MS-RDPEI (Win8) • Touch input • Touch control. System Under Test (SUT) RDP Client TCP/UDP

Goals:

• Ensure quality of MS protocol documentation(Open Specification)

o Accuracy and usability

• Help to Identify your implementation issues

o Make debugging easier

Message sequence

Encrypted messages logging

o Handle negative test cases

• Source code in test suite can be your reference in dev phase

Page 5: RemoteFX Protocol Test Suitedownload.microsoft.com/download/C/6/0/C60E2BD0-8A7C... · MS-RDPEI (Win8) • Touch input • Touch control. System Under Test (SUT) RDP Client TCP/UDP

Open

Specification

Windows Client

(desktop , slate etc)Windows Server

Partner Client (thin

client, slate, phone)

Protocol

Test Suite

2. Develop protocol test suite

(synthetic server) according to Open

Specification

3. Run against Windows to verify

Open Specification

4. Run against partner’s Client

Implementation to help identify &

debug issues

Client/Server Side Partner Implementation

Message Over the Wire

Synthetic Server

1. Open Specification defines

messages, sequence, behavior

4

5

5. Interop between partner’s Client

and Windows Server

1

2 3

Page 6: RemoteFX Protocol Test Suitedownload.microsoft.com/download/C/6/0/C60E2BD0-8A7C... · MS-RDPEI (Win8) • Touch input • Touch control. System Under Test (SUT) RDP Client TCP/UDP

New Protocol Test Suites Features

• Protocol Test Manager

• Protocol-based SUT Control Adapter

• Super Log Viewer

New Protocols/Features Coverage

Page 7: RemoteFX Protocol Test Suitedownload.microsoft.com/download/C/6/0/C60E2BD0-8A7C... · MS-RDPEI (Win8) • Touch input • Touch control. System Under Test (SUT) RDP Client TCP/UDP

• Protocol Test Suite – Why ,What, How

• RemoteFX Test Suite Introduction

• How to use RemoteFX Test Suite

Page 8: RemoteFX Protocol Test Suitedownload.microsoft.com/download/C/6/0/C60E2BD0-8A7C... · MS-RDPEI (Win8) • Touch input • Touch control. System Under Test (SUT) RDP Client TCP/UDP

• The test target is RDP Client

• The test suite is Synthetic RDP Server

• Aligned with Windows 8.1 document

• More than 200 test cases, including positive and negative

• Test Code (C#) can be your reference, such as codecs

Page 9: RemoteFX Protocol Test Suitedownload.microsoft.com/download/C/6/0/C60E2BD0-8A7C... · MS-RDPEI (Win8) • Touch input • Touch control. System Under Test (SUT) RDP Client TCP/UDP
Page 10: RemoteFX Protocol Test Suitedownload.microsoft.com/download/C/6/0/C60E2BD0-8A7C... · MS-RDPEI (Win8) • Touch input • Touch control. System Under Test (SUT) RDP Client TCP/UDP

• Test most of features in covered protocols

• Highlighted tested features since Windows 8

MS-RDPBCGR• Network Auto-Detection (Win8)

• Connection heath monitoring

(Win8.1)

MS-RDPEDISP (Win8.1)• Change display configuration

Multiple transportsMS-RDPEUDP (Win8)• Reliable/Lossy connection

• Retransmit

• Congestion control

MS-RDPEMT (Win8)• Build secure channel

• Network Auto-Detection

• Exchange DVC data

MS-RDPEGFX (Win8)• Surface & Cache

• RemoteFX codec

• Progressive codec

• Clear codec

• RDP8.0 compression

MS-RDPEI (Win8)• Touch input

• Touch control

Page 11: RemoteFX Protocol Test Suitedownload.microsoft.com/download/C/6/0/C60E2BD0-8A7C... · MS-RDPEI (Win8) • Touch input • Touch control. System Under Test (SUT) RDP Client TCP/UDP

System Under Test

(SUT)

RDP Client

TCP/UDP

RDP Synthetic Server

(Test Suite)

TCP/UDP

SUT Control

AdapterTest Cases

Page 12: RemoteFX Protocol Test Suitedownload.microsoft.com/download/C/6/0/C60E2BD0-8A7C... · MS-RDPEI (Win8) • Touch input • Touch control. System Under Test (SUT) RDP Client TCP/UDP

Protocol Specification:

If RDP server sends message A to RDP client, RDP client should respond with message B.

If A is invalid, client should return error message C.

Test Case 1:

1. Establish RDP connection;

2. Server.Send(msgA);

3. Expect client respond msgB, and

• Assert (msgB.Field1 == valid1)

• Assert (msgB.Field2 == valid2)

• …

• Assert (msgB.FieldN == validN)

Test Case 2:

1. Establish RDP connection;

2. Server.Send(Invalid msgA);

3. Expect client respond msgC, and

• Assert (msgC.Satus == ERROR)

Page 13: RemoteFX Protocol Test Suitedownload.microsoft.com/download/C/6/0/C60E2BD0-8A7C... · MS-RDPEI (Win8) • Touch input • Touch control. System Under Test (SUT) RDP Client TCP/UDP

System Under Test

Test Suite Host

Subnet Mask 255.255.0.0

IP Address 172.16.18.1

Name RDP-Client

Subnet Mask 255.255.0.0

IP Address 172.16.18.2

Name RDP-TestServer

Machine role Software/service

System Under Test (SUT) RDP Client from Microsoft or Partners

Test Suite Host Microsoft® Visual Studio® 2012 Ultimate

Protocol Test Framework

RemoteFX Interop Test Suite

Common Deployment Steps:

• Install RDP client on SUT

• Install Test Suite on Test Suite Host

• Configure Test Suite

Page 14: RemoteFX Protocol Test Suitedownload.microsoft.com/download/C/6/0/C60E2BD0-8A7C... · MS-RDPEI (Win8) • Touch input • Touch control. System Under Test (SUT) RDP Client TCP/UDP

• Protocol Test Suite – Why ,What, How

• RemoteFX Test Suite Introduction

• How to use RemoteFX Test Suite

Page 15: RemoteFX Protocol Test Suitedownload.microsoft.com/download/C/6/0/C60E2BD0-8A7C... · MS-RDPEI (Win8) • Touch input • Touch control. System Under Test (SUT) RDP Client TCP/UDP

• Purpose:• The interface defines methods for changing or

querying SUT states dynamically at runtime.

• Types: Protocol-based

PowerShell script

Interactive

Page 16: RemoteFX Protocol Test Suitedownload.microsoft.com/download/C/6/0/C60E2BD0-8A7C... · MS-RDPEI (Win8) • Touch input • Touch control. System Under Test (SUT) RDP Client TCP/UDP

Test Suite Host System Under TestSUT Remote Control

Protocol

Test SuiteRDP

Client

SUT

control

adapter

Transport for RDP protocols

Agent

• Self-defined a simple protocol to transfer control commands and result.

• User needs to implement a simple program as an Agent to control SUT (System Under Test)

SUT Control Request Message

SUT Control Response Message

Operate

Page 17: RemoteFX Protocol Test Suitedownload.microsoft.com/download/C/6/0/C60E2BD0-8A7C... · MS-RDPEI (Win8) • Touch input • Touch control. System Under Test (SUT) RDP Client TCP/UDP

• Build automatic test environment on any system

• User doesn’t need to do any work on test suite

• User need to develop an Agent program on SUT The Agent program can be powerful and flexible

The workload of development is low

The protocol we defined is very simple

The Agent program is on SUT, same environment as your RDP client product

Page 18: RemoteFX Protocol Test Suitedownload.microsoft.com/download/C/6/0/C60E2BD0-8A7C... · MS-RDPEI (Win8) • Touch input • Touch control. System Under Test (SUT) RDP Client TCP/UDP

• Maps interface methods to PowerShell scripts.

• The implementation will run the corresponding script file when one of the adapter's methods is called.

Interface Script files

Page 19: RemoteFX Protocol Test Suitedownload.microsoft.com/download/C/6/0/C60E2BD0-8A7C... · MS-RDPEI (Win8) • Touch input • Touch control. System Under Test (SUT) RDP Client TCP/UDP

When a method is called:

• Control the SUT manually

• Is used when other automatic control method is not supported

A dialog is popped up

User controls SUT manually

User clicks the “Continue” button

Page 20: RemoteFX Protocol Test Suitedownload.microsoft.com/download/C/6/0/C60E2BD0-8A7C... · MS-RDPEI (Win8) • Touch input • Touch control. System Under Test (SUT) RDP Client TCP/UDP
Page 21: RemoteFX Protocol Test Suitedownload.microsoft.com/download/C/6/0/C60E2BD0-8A7C... · MS-RDPEI (Win8) • Touch input • Touch control. System Under Test (SUT) RDP Client TCP/UDP

• Protocol Test Manager (PTM) is a unified UI for protocol test suites.

• Besides running test cases, PTM also includes: Test suite introduction

Auto-Detect Supported features

Automatic configure test suite

Classify and filter test cases

View test result

Page 22: RemoteFX Protocol Test Suitedownload.microsoft.com/download/C/6/0/C60E2BD0-8A7C... · MS-RDPEI (Win8) • Touch input • Touch control. System Under Test (SUT) RDP Client TCP/UDP

Will show you more details in Demo Session

Page 23: RemoteFX Protocol Test Suitedownload.microsoft.com/download/C/6/0/C60E2BD0-8A7C... · MS-RDPEI (Win8) • Touch input • Touch control. System Under Test (SUT) RDP Client TCP/UDP
Page 24: RemoteFX Protocol Test Suitedownload.microsoft.com/download/C/6/0/C60E2BD0-8A7C... · MS-RDPEI (Win8) • Touch input • Touch control. System Under Test (SUT) RDP Client TCP/UDP

• To investigate test case failure, you always need run-time information like:• Test case log - From log file

• Network traffic - Captured by MessageAnalyzer/Netmon

• Encrypted or compressed message – From Visual Studio

• Using MessageAnalyzer to combine all these information• See all valuable information from one window.

Network Traffic

Test Log

Encrypted MessageMMA

Page 25: RemoteFX Protocol Test Suitedownload.microsoft.com/download/C/6/0/C60E2BD0-8A7C... · MS-RDPEI (Win8) • Touch input • Touch control. System Under Test (SUT) RDP Client TCP/UDP

Will show you more details in Demo Session

Page 26: RemoteFX Protocol Test Suitedownload.microsoft.com/download/C/6/0/C60E2BD0-8A7C... · MS-RDPEI (Win8) • Touch input • Touch control. System Under Test (SUT) RDP Client TCP/UDP

26

Q & A

Page 27: RemoteFX Protocol Test Suitedownload.microsoft.com/download/C/6/0/C60E2BD0-8A7C... · MS-RDPEI (Win8) • Touch input • Touch control. System Under Test (SUT) RDP Client TCP/UDP