Test Design For Everyone

61
Test Design for Everyone Alan Page Microsoft

description

Slides on Test Design for STP Webinar

Transcript of Test Design For Everyone

Page 1: Test Design For Everyone

Test Design for Everyone

Alan PageMicrosoft

Page 2: Test Design For Everyone

Here, Test This!

Page 3: Test Design For Everyone

“Test Design” is what Testers Do

Page 4: Test Design For Everyone

What is test design?

Page 5: Test Design For Everyone

Simple:

Come up with some tests

Page 6: Test Design For Everyone

Better(?):

Come up with a well thought out and broad set of tests for the given context (based on

application, schedule, etc.)

Page 7: Test Design For Everyone

Another Take:

Create an optimal set of tests that finds the maximum amount of customer facing issues possible with a minimum of over-testing and

under-testing

Page 8: Test Design For Everyone

“Over Testing” and

“Under Testing”

Page 9: Test Design For Everyone

Application

Page 10: Test Design For Everyone

Application Testing Effort

Page 11: Test Design For Everyone

Application

(potential)

Over Testing

Under Testing

(stuff you forgot to

test

or didn’t know to test)

Testing Effort

Page 12: Test Design For Everyone
Page 13: Test Design For Everyone
Page 14: Test Design For Everyone
Page 15: Test Design For Everyone
Page 16: Test Design For Everyone
Page 17: Test Design For Everyone
Page 18: Test Design For Everyone

bool Validate(string sideName) try { sideVal = Convert.ToUInt16(inputVal); if (sideVal < 1) { MessageBox.Show(sidename + “must be greater than 0”, ...); return false; } } catch (OverflowException) { MessageBox.Show(sideName + "must be less than 65536", ...); return false; } catch (FormatException) { MessageBox.Show(sideName + "must be an integer value, ...); return false; }

}

Page 19: Test Design For Everyone

bool Validate(string sideName) try { sideVal = Convert.ToUInt16(inputVal); if (sideVal < 1) { MessageBox.Show(sidename + “must be greater than 0”, ...); return false; } } catch (OverflowException) { MessageBox.Show(sideName + "must be less than 65536", ...); return false; } catch (FormatException) { MessageBox.Show(sideName + "must be an integer value, ...); return false; }

}

In English

Three different types of errors:

1. Zero or less2. Bigger than 655363. Non-numbers

Any other input is testing the same thing

Page 20: Test Design For Everyone

Application

Reduce

Over Testing

(don’t test the same

thing multiple times)Reduce Under Testing

(miss less)

Testing Effort

Page 21: Test Design For Everyone

How do you become a better Test Designer?

Page 22: Test Design For Everyone

You need ideas!

Ideas you have used beforeNew ideas to tryIdeas suited for this productIdeas suited to your release schedule

…and you need to know what to look for

Page 23: Test Design For Everyone

Why Is it so Hard?

Page 24: Test Design For Everyone

You Don’t Know What You Don’t Know

Read Philip Armour’s The Five Orders of Ignorance

Page 25: Test Design For Everyone

All you can use is what you know

Hammers are useful…

Page 26: Test Design For Everyone

…but not everything is a nail

Page 27: Test Design For Everyone
Page 28: Test Design For Everyone

What you’ve already heard about test design

Page 29: Test Design For Everyone

http://www.satisfice.com/glossary.shtml

Page 30: Test Design For Everyone

The “what” has been covered

Page 31: Test Design For Everyone

Let’s focus on the “how”

Page 32: Test Design For Everyone

You need a Toolbox

Page 33: Test Design For Everyone

Bigger is Better

Page 34: Test Design For Everyone
Page 35: Test Design For Everyone

What kinds of tests do you write

Page 36: Test Design For Everyone

New Information

False Negative

False Positive

No Information

Page 37: Test Design For Everyone

Useful Tests?

Page 38: Test Design For Everyone

Useful Test Provide High Levels of “New Information”

Page 39: Test Design For Everyone

“Usefulness” depends on context

Page 40: Test Design For Everyone

Some general guidelines:

The first time you run a test it (almost) always provides new information

If you run the same test the same way again, it may or may not provide new information

Page 41: Test Design For Everyone

Some general guidelines (continued):

Varying your tests gives them a higher chance of providing new information (randomization, data driven tests, “smart monkeys”, model-based testing, etc. all help here)

Page 42: Test Design For Everyone

Examples / Practice

Page 43: Test Design For Everyone
Page 44: Test Design For Everyone

Test This:Add or Remove Contacts

Page 45: Test Design For Everyone

Mind Mapping

Page 46: Test Design For Everyone
Page 47: Test Design For Everyone

What about adding a contact with a blank name?

Page 48: Test Design For Everyone
Page 49: Test Design For Everyone
Page 50: Test Design For Everyone
Page 51: Test Design For Everyone

12

3 4

Page 52: Test Design For Everyone
Page 53: Test Design For Everyone

A/V and Web Conferencing Workload

Edge Servers

Externalfirewall

Internalfirewall

HTTPS:443

Reverse proxy

HTTPS:4443

SIP/MTLS:5061

SIP

/TL

S:5

06

1

A/V Edge - STUN/TCP:443, STUN/UDP:3478

A/V Edge – SRTP:443,3478,50,000-59,999

SR

TP

/UD

P:4

91

52

-65

53

5

Range of ports is configurable.

PS

OM

/TL

S:8

05

7

HT

TP

S:4

43

HTTPS:443 is used to download conferencing

content.

Traffic goes directly to Web Conferencing Service WITHOUT going through the pool’s hardware load balancer

Two inbound and two outbound unidirectional streams. Media codec varies on workload:- RTAudio for audio- RTVideo for video

Traffic goes directly to A/V Conferencing Service WITHOUT going through the pool’s hardware load balancer.

MRAS traffic.

SIP/MTLS:5062Web Conf Edge - PSOM/TLS:443

Access Edge - SIP/TLS:443

PSOM/MTLS:8057

STUN/TCP:443, STUN/UDP:3478

Directors

Monitoring

Server

SIP/MTLS

SIP/MTLS:5061

Port number to service traffic assignment:

5063 - A/V Conferencing Service

MSMQ

Codec varies per workload:- G.722 or Siren for audio- RTVideo for video

Enterprise

pool

Meeting content + metadata + compliance file share.

HTTPS traffic

SIP traffic: signaling

RTP/SRTP traffic: A/V Conferencing

PSOM traffic: Web Conferencing

If client connects on port 80, it gets redirected to port 443

Only traffic on ports 443, 4443 and 5061 must be load

balanced by HLB.

Page 54: Test Design For Everyone

How to get better at Test Design

Page 55: Test Design For Everyone

Practice, practice, practice

Practice testing – be curious

Collaborate

http://testing-challenges.org

Weekend Testing (http://weekendtesters.com)

Learn

How does your application work?

Find new testing ideas

Study critical thinking

Read…anything

Page 56: Test Design For Everyone

Make your tests useful…and notice when they’re not useful

Page 57: Test Design For Everyone

The Best Test Tool of All Time

Page 58: Test Design For Everyone

Your Brain (of course)

Page 59: Test Design For Everyone

Be A Great Test Designer

(and be a great tester too)

Page 60: Test Design For Everyone

http://angryweasel.com/bloghttp://twitter.com/alanpage

Page 61: Test Design For Everyone

Credits

• Opening slide pattern - some rights reserved by km6xo• “Scrap metal” – some rights reserved by

MAG (Mines Advisory Group)• Ideas - Some rights reserved by orkboi• Impossible triangle - some rights reserved by yui.kubo• Hammer – some rights reserved by Noel C. Hankamer• Nail - some rights reserved by crd!• Hammer / screw - some rights reserved by justinbaeder• Tomatoes - some rights reserved by lucianvenutian• Toolbox - some rights reserved by Austin ampersand Zak• Big Toolbox - some rights reserved by Fuschia Foot• Brain - Some rights reserved by biologycorner