This document discusses principles and practices for test automation. It covers topics like different levels of testing from unit to integration to UI, the importance of testing non-functional requirements, using a test pyramid approach with more unit and component tests than UI tests. It also discusses practices like continuous integration, test automation framework design considerations, sample framework architectures, and page object patterns. The overall goal is to provide guidance on building quality into software through effective test automation practices.
7. LEARNING
¨ Test each part thoroughly
¨ Unit
¨ Test ways of working together
¨ Component Integration
¨ Test how it all comes together
¨ Functional
This is how the parts becomes a Pen!
7
13. LEARNING CONTINUES …
¨ Test each part thoroughly
¨ Test ways of working together
¨ Test how it all comes together
¨ Test the Non Functionals
¨ Test the 3rd-party integration / interactions
¨ Understand Architecture – system & components
¨ Build Quality-in by Testing early
13
19. How to get quick
feedback from
Test Automation?
20. • “Succeeding with Agile” – Mike Cohn
• Martin Fowler – Test Pyramid
martinfowler.com/bliki/TestPyramid.html
THE TEST PYRAMID
21. TEST PYRAMID
Unit (xUnit / JavaScript)
Manual / Exploratory
Component
Integration
View
Web Service
UI
Cost
Impact
Time
Business-
facing
Tests
Technology-
facing
Tests
22. TEST PYRAMID … INCLUDES NFRS
Unit (xUnit / JavaScript)
Component
Integration
View
Web Service
UI
P
e
r
f
o
r
m
a
n
c
e
S
e
c
u
r
i
t
y
Accessibility
Manual / Exploratory
29. 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
31. 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
32. 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
37. Assertions & Validations
In Business Layer
Model
Test Data
Proper abstraction layers
Pages as
Dummy objects
Evolve
Programming
practices
OOPs
Design Patterns
Identify intent in
business terminology
Build Tools & Utilities
38. REFERENCES
Page Objects – Google
https://code.google.com/p/selenium/wiki/PageObjects
Page Objects – Martin Fowler
http://martinfowler.com/bliki/PageObject.html
Perils of Page-Object Pattern – Anand Bagmar
http://essenceoftesting.blogspot.in/2014/09/perils-of-page-object-pattern.html
Test Design Consideration
http://docs.seleniumhq.org/docs/06_test_design_considerations.jsp