test automation pyramid

21
Test Automation Pyramid T. Alexander Lystad, Chief QA Architect, VESD

Upload: t-alexander-lystad

Post on 16-Apr-2017

433 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Test Automation Pyramid

Test Automation PyramidT. Alexander Lystad, Chief QA Architect, VESD

Page 2: Test Automation Pyramid

Test AutomationWhy?

Allows you to test more with less effortAllows you to deploy/release more quickly and more frequentlyHigher quality software

How?As a natural part of the development processA story is not done until appropriate automated tests are passing

Page 3: Test Automation Pyramid

Test Automation PyramidShows different technical levels on which

you can have automated testsA modelGoing up

Scope increasesExecution time increasesEffort increases

Guideline for relative distribution of your testing effort

Page 4: Test Automation Pyramid

Unit TestsTesting smallest possible parts of the system

in isolationUse of test doubles to replace dependencies

Dummies, stubs, spies, fakes, mocksSmallest scope

Easier to locate and understand errorsBest performance

Execute early and oftenWon’t catch all defects

Page 5: Test Automation Pyramid

Component Integration Tests●Testing that multiple components work together●Test doubles are not used for the integration(s)

you want to test●Varying scope●Good performance●Won’t catch all defects

Page 6: Test Automation Pyramid

API TestsTesting that your APIs behave as expected

RESTSOAP...

Big scopeInvolves many components

Decent performanceWon’t catch all defects

Page 7: Test Automation Pyramid

UI TestsEnd-to-end testingMaximum scope

Can catch many problemsWorst performance

Don't use UI for setup and teardownParallelize

Can be brittle, flaky and a lot of work to maintainTest critical user workflows

Won’t catch all defects

Page 8: Test Automation Pyramid

Exploratory TestingManual testingNot regression testingExperience + creativityUsed to learn about the system, discover defects and

to improve automated testingCan be based on a mission/test charter or persona

Test for accurate and helpful error messages when registering an expense incorrectly

Test for unexpected results when configuring company details in two different tabs

Impatient manager new to the system

Page 9: Test Automation Pyramid

Where is…?●Acceptance testing●BDD●Smoke testing●Security testing●Performance testing●System testing●System integration testing●…

Page 10: Test Automation Pyramid

What should I aim for?Depends, discuss in your teamAs an example, Google suggests

70% unit tests20% integration tests10% end-to-end tests

Page 11: Test Automation Pyramid

Tools

Selenium WebDriver (VAFT)JAutomate, Sikuli

SoapUI, RestSharp

JIRA Capture

Unit Test Frameworks

BDD Frameworks

Page 12: Test Automation Pyramid

Hour-glassIce cream cone

Anti-patterns

Page 13: Test Automation Pyramid

Other Test Automation Pyramids

Page 14: Test Automation Pyramid

Testing Week TaskConfluence: Test Automation Pyramid - Testing Week 2015How does your team's test automation effort fit into the Test Automation Pyramid,

how does your pyramid look today, and how can it improve going forward?

Page 15: Test Automation Pyramid

Example workflowIdea → Production

Page 16: Test Automation Pyramid

Example workflowDesign process

Acceptance criteria drafted

Page 17: Test Automation Pyramid

Example workflowRefinement process

3 amigos: PO/BA + dev + QA/tester

Acceptance criteria finalizedAcceptance tests finalized

Risks and mitigationWhat should be tested, on

which level

Page 18: Test Automation Pyramid

Example workflowImplementation

Developers have a clear picture of what is expected

Decided automated tests are implemented as part of story development

Page 19: Test Automation Pyramid

Example workflow: Test executionBalance between quick feedback

and discovering problems earlyDuring implementationAfter implementationAt the beginning of your delivery

pipeline (CI server)After deployments

Internal TestUser AcceptanceProduction

Exploratory testing

Page 20: Test Automation Pyramid

SummaryThe test automation pyramid is a useful thinking tool and discussion referenceMake conscious decisions about what to test on which level, and also where you

run which testsTry to distribute your tests optimally

High qualityHigh velocityMedium effort

Discuss with your teamDo the Testing Week task

Page 21: Test Automation Pyramid

Questions or comments?