Sustainable agile testing

Post on 15-Apr-2017

376 views 0 download

Transcript of Sustainable agile testing

Sustainable Agile Testing

Domenico Musto

@mimmozzo domenico.musto@gmail.com

Who am I ?

.NET

Web REST

AgileAutomation Testing

C#Team leading

Distributed architecture

.NET

Web REST

Agile

C#Team leading

QA IS DEAD

What is a QA ?

Software Tester

Software developer in test

What is a QA ?

What is a QA ?

QA = QUALITY ASSURANCE

Quality assurance in software

Software quality measure

Software quality measure• Does what it is designed for

Software quality measure• Does what it is designed for• No unexpected behaviour

Software quality measure• Does what it is designed for• No unexpected behaviour• Performance

Software quality measure• Does what it is designed for• No unexpected behaviour• Performance• Secure

Software quality measure• Does what it is designed for• No unexpected behaviour• Performance• Secure

Functional requirement

Non functional requirement

What is a QA ?• Architect of the testing strategy

What is a QA ?• Coding architect of the testing strategy

Is QA dead ?

QA IS ALIVE!

QA bottleneck

Architect

Architect• Non functional requirement

Architect• Non functional requirement• Architectural patterns

Architect• Non functional requirement• Architectural patterns• Coding style

Architect• Non functional requirement• Architectural patterns• Coding style• Process

Architect• Non functional requirement• Architectural patterns• Coding style• Process

QA Architect• Testing

Architect• Non functional requirement• Architectural patterns• Coding style• Process

QA Architect• Testing• The testing strategy/architecture

Architect• Non functional requirement• Architectural patterns• Coding style• Process

QA Architect• Testing• The testing strategy/architecture• Testing coding style

Architect• Non functional requirement• Architectural patterns• Coding style• Process

QA Architect• Testing• The testing strategy/architecture• Testing coding style• Development and testing process

The impact of an architect

The impact of a QA architect

This is a true story

Process

Elaboration

Acceptance criteria• Ensures the team knows when they are done• Ensures the team does not forget important edge cases and considerations• Produced through collaboration of the developers, testers and product owners (3 amigos)• Created prior to development, during planning phase• Expressed at a high level (conceptual, not detailed)• Expressed in whatever form works best for the team…keep it minimal• Considers edge cases and failure scenarios• Keep it concise (minimum documentation needed by team…may be more for one team,

less for another)

by Shirly Ronen-Harel

Kick off

Acceptance tests

• Defines behaviour of the system• Ensures the feature works as expected• Code implemented by developers and testers• Test definition can include product owners or customers • Test implementation occurs during development (ideally in a test-first

manner)• Tests are usually implemented in code, but if testing manually (hopefully

only rarely), the “implementation” can be a list of steps/expectations

by Shirly Ronen-Harel

Map acceptance tests to automated or manual tests

Map acceptance tests to automated or manual tests

• Unit tests

Map acceptance tests to automated or manual tests

• Unit tests• Integration tests

Map acceptance tests to automated or manual tests

• Unit tests• Integration tests• End to end tests

Map acceptance tests to automated or manual tests

• Unit tests• Integration tests• End to end tests• UI tests

[MANUAL]When the package deployer run with the help argumentThen the help is shownAnd it contains the new arguments required (appname and user api token)

[UT]When the package deployer is run with an invalid user api tokenThen it fails with an exit code of 4And the error is logged

[MANUAL]When the package deployer run with the help argumentThen the help is shownAnd it contains the new arguments required (appname and user api token)

[UT = When_the_package_deployer_is_run_with_an_invalid_api_token]When the package deployer is run with an invalid user api tokenThen it fails with an exit code of 4And the error is logged

Once tests are defined anybody can test the story

No more QA bottleneck

Kick off

• Average duration 10 mins• Initially devs don’t like it• Value to be seen in 1 month

Coding styles

• QA and DEV pairing• Collaborative design and code• QA knows the internal components

The testing strategy belongs to the team

Testing architecture

Map acceptance tests to automated or manual tests

• Unit tests• Integration tests• End to end tests• UI tests

Map acceptance tests to automated or manual tests

• Unit tests• Integration tests• End to end tests• UI tests• Boundary tests

API

SERVICE 1

DB

SERVICE 2

MODEL

API

SERVICE 1

DB

SERVICE 2

MODEL

Business capability X Business capability Y

MESSAGE BROKER

API

SERVICE 1

DB

SERVICE 2

MODEL

API

SERVICE 1

DB

SERVICE 2

MODEL

Business capability X Business capability Y

MESSAGE BROKER

BOUNDARY TESTS

BOUNDARY TESTS

QA architect impact ?

QA architect impact ?

FASTER TEAM!

Thanks.

@mimmozzo domenico.musto@gmail.com