Sustainable agile testing
Transcript of Sustainable agile testing
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 [email protected]