55

CIRCUIT 2015 - Free Beer and Testing

  • Upload
    circuit

  • View
    48

  • Download
    0

Embed Size (px)

Citation preview

Free beer* and testing

*Free beer not included

Why Test?

We test to either...

verify what is expected...

We test to either...

verify what is expected...

We test to either...

or to learn something completely new

<insert cliche stock photo here>

verification...

...asserting actual response against expected outcome

requirements and specifications...

...what we normally think of as Testing

https://msdn.microsoft.com

Unit Tests

Functional Tests

Acceptance Tests

Performance Tests SLAs

...exploratory testing

...learning something completely new

structured exploratory testing

answering a specific

“What does the system do under

these conditions?”

“What is the user’s experience when

making a transaction with a gift card?”

“How many transactions can it

handle?”

ad hoc testing

What is Testing?

system under test

Testing is observation or inspection of the system under test in different, controlled conditions

system under test

only one change at a time

system under test

Quantitative (Measurable)

system under test

Qualitative (Descriptive)

system under test

Testing is the Feed

Testing is the Feed back into the next iteration...

...the bringing of the “outside” into the system

Testing is the cornerstone of...

DRUMMER WANTED https://www.facebook.com/TheEmpiricalMethod

XP test driven development test driven development

XP test driven development

start with what it should do

XP test driven development

start with what it should do

XP test driven development

unit through integration

BDD acceptance test driven development

executing requirements

full stack

When to Test?

As early as possible

like when the requirements are being specified

write once, test once

did something change?

did something change?

analyze impact of change to system

well structured code (SOLID) eliminates dependency between conditions and minimizes tests

use impact and conditional analysis to

determine the structure of your

code

the cost of development

AUTOMATION

How to test?

testing is a craft...

analyze relevant conditions and their dependencies

analyze

design minimum number of test scripts to exercise all conditions and dependencies

design

execute

Equivalence Class Partitioning

Boundary

value

analysis

GIVEN WHEN THEN

defined behavior

GIVEN WHEN THEN

well written tests are more important than

well written code because with them the system is defined and

can always be recreated

...or refactored

the system is defined by its tests, NOT its implementing software

the end.