Sustainable agile testing

59
Sustainable Agile Testing Domenico Musto @mimmozzo domenico.musto@gmail .com

Transcript of Sustainable agile testing

Page 1: Sustainable agile testing

Sustainable Agile Testing

Domenico Musto

@mimmozzo [email protected]

Page 2: Sustainable agile testing

Who am I ?

.NET

Web REST

AgileAutomation Testing

C#Team leading

Distributed architecture

Page 3: Sustainable agile testing

.NET

Web REST

Agile

C#Team leading

Page 4: Sustainable agile testing

QA IS DEAD

Page 5: Sustainable agile testing

What is a QA ?

Page 6: Sustainable agile testing

Software Tester

Page 7: Sustainable agile testing

Software developer in test

Page 8: Sustainable agile testing

What is a QA ?

Page 9: Sustainable agile testing

What is a QA ?

QA = QUALITY ASSURANCE

Page 10: Sustainable agile testing

Quality assurance in software

Page 11: Sustainable agile testing

Software quality measure

Page 12: Sustainable agile testing

Software quality measure• Does what it is designed for

Page 13: Sustainable agile testing

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

Page 14: Sustainable agile testing

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

Page 15: Sustainable agile testing

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

Page 16: Sustainable agile testing

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

Functional requirement

Non functional requirement

Page 17: Sustainable agile testing

What is a QA ?• Architect of the testing strategy

Page 18: Sustainable agile testing

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

Page 19: Sustainable agile testing

Is QA dead ?

Page 20: Sustainable agile testing

QA IS ALIVE!

Page 21: Sustainable agile testing

QA bottleneck

Page 22: Sustainable agile testing

Architect

Page 23: Sustainable agile testing

Architect• Non functional requirement

Page 24: Sustainable agile testing

Architect• Non functional requirement• Architectural patterns

Page 25: Sustainable agile testing

Architect• Non functional requirement• Architectural patterns• Coding style

Page 26: Sustainable agile testing

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

Page 27: Sustainable agile testing

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

QA Architect• Testing

Page 28: Sustainable agile testing

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

QA Architect• Testing• The testing strategy/architecture

Page 29: Sustainable agile testing

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

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

Page 30: Sustainable agile testing

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

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

Page 31: Sustainable agile testing

The impact of an architect

Page 32: Sustainable agile testing

The impact of a QA architect

Page 33: Sustainable agile testing

This is a true story

Page 34: Sustainable agile testing

Process

Page 35: Sustainable agile testing

Elaboration

Page 36: Sustainable agile testing

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

Page 37: Sustainable agile testing

Kick off

Page 38: Sustainable agile testing

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

Page 39: Sustainable agile testing

Map acceptance tests to automated or manual tests

Page 40: Sustainable agile testing

Map acceptance tests to automated or manual tests

• Unit tests

Page 41: Sustainable agile testing

Map acceptance tests to automated or manual tests

• Unit tests• Integration tests

Page 42: Sustainable agile testing

Map acceptance tests to automated or manual tests

• Unit tests• Integration tests• End to end tests

Page 43: Sustainable agile testing

Map acceptance tests to automated or manual tests

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

Page 44: Sustainable agile testing

[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

Page 45: Sustainable agile testing

[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

Page 46: Sustainable agile testing

Once tests are defined anybody can test the story

Page 47: Sustainable agile testing

No more QA bottleneck

Page 48: Sustainable agile testing

Kick off

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

Page 49: Sustainable agile testing

Coding styles

Page 50: Sustainable agile testing

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

Page 51: Sustainable agile testing

The testing strategy belongs to the team

Page 52: Sustainable agile testing

Testing architecture

Page 53: Sustainable agile testing

Map acceptance tests to automated or manual tests

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

Page 54: Sustainable agile testing

Map acceptance tests to automated or manual tests

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

Page 55: Sustainable agile testing

API

SERVICE 1

DB

SERVICE 2

MODEL

API

SERVICE 1

DB

SERVICE 2

MODEL

Business capability X Business capability Y

MESSAGE BROKER

Page 56: Sustainable agile testing

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

Page 57: Sustainable agile testing

QA architect impact ?

Page 58: Sustainable agile testing

QA architect impact ?

FASTER TEAM!

Page 59: Sustainable agile testing

Thanks.

@mimmozzo [email protected]