This document discusses test automation in agile projects. It begins with an overview of agile principles like the agile manifesto. It then discusses agile testing principles and practices like continuous integration and continuous delivery. The bulk of the document focuses on test automation, including why it's important, different types of test automation frameworks, and design considerations like the test automation pyramid. It provides tips for test automation including design patterns, abstraction layers, and evolving the framework over time.
17. Building Quality In
Involving Everyone
Fast Feedback
Tests Are An Asset
Faster Delivery Into Production
Clear View Of Testing
Business Optimize Value
TESTING PRINCIPLES
19. CONTINUOUS INTEGRATION (CI)
”… is a software development practice where members of a team
integrate their work frequently, usually each person integrates at
least daily - leading to multiple integrations per day. Each
integration is verified by an automated build (including test)
to detect integration errors as quickly as possible…."
- Martin Fowler, ThoughtWorks Chief Scientist
Ø http://www.thoughtworks.com/continuous-integration
22. CONTINUOUS DELIVERY (CD)
… is the natural extension of Continuous Integration: an approach in
which teams ensure that every change to the system is
releasable, and that we can release any version at the push of a
button. Continuous Delivery aims to make releases boring, so
we can deliver frequently and get fast feedback on what users
care about.
- Martin Fowler, ThoughtWorks Chief Scientist
Ø http://www.thoughtworks.com/continuous-delivery
31. How to get quick
feedback from
Test Automation?
32. • “Succeeding with Agile” – Mike Cohn
• Martin Fowler – Test Pyramid
martinfowler.com/bliki/TestPyramid.html
THE TEST PYRAMID
33. IDEAL TEST AUTOMATION PYRAMID
Unit
Manual / Exploratory
Integration
JavaScript
View
Web Service
UI
Cost
Impact
Time
Business-
facing
Tests
Technology-
facing
Tests
40. TEST AUTOMATION FRAMEWORK DESIGN CRITERIA
Maintainable
Scalable
Browser / Device support
Support features of
Product-under-test
Easy to Use
Different
Environments
Parallel Execution
Tool support
Reports & Metrics
Support the types
of testing required
Operating System &
Database support
Run locally & remotely
Language / tool
restrictions
41. PRINCIPLES FOR TEST AUTOMATION FRAMEWORK
Design Patterns
Abstraction Layers
Headless executing
Evolve
Code Quality
Take Screenshots
Refactor
Tools & Utilities
Extensible
Run via CI
Logging
Video Recording
Test Data