testing in an agile world: the current state and future possibilities
TRANSCRIPT
W4 Agile Testing 10/5/16 11:30
Testing in an Agile World: The Current State and Future Possibilities
Presented by:
Nikhil Kaul
SmartBear Software
Brought to you by:
350 Corporate Way, Suite 400, Orange Park, FL 32073 888-‐-‐-‐268-‐-‐-‐8770 ·∙·∙ 904-‐-‐-‐278-‐-‐-‐0524 -‐ [email protected] -‐ http://www.starwest.techwell.com/
Nikhil Kaul Nikhil Kaul is product manager, testing products at SmartBear Software, the leader in software quality tools for the connected world. Nikhil was previously at Digit̩, an application lifecycle management solutions provider, where he gained insight into the software development and testing market. Nikhil is very involved in discussions taking place in development and testing communities. His most recent thoughts can be found in Forbes and CIO.com. In his free time, Nikhil enjoys running, hiking, and reading. Follow him on Twitter @kaulnikhil.
9/21/16
1
Testing in an Agile World: The Current State and Future
Possibilities
2
Quick Intro
Nikhil Kaul
9/21/16
2
3
SmartBear’s technology stack
4
On our plate today 1
Role of QA in an Agile team
3
Practices that can help facilitate the transformation
2
Industry trends affecting that role
9/21/16
3
5
Multiple benefits come with moving to Agile
Analyze
Design
Code
Test
Reducesthebatchsize
Increasesthroughput
IncreasesspeedConclusion
Analyze
Design
Code
Test
Itera@on1 Itera@on2
Conclusion
Analyze
Design
Code
Test
6
The transformation can be challenging
Writeauserstory
GetAcceptancetests
Expandupontests
What/Howtocode
Automatetests
TDD
Demo
ProductOwner Tester
Tester +Dev Just Dev
Exploratory
People, Process, & Tools
9/21/16
4
7
Industry trends necessitate Agile
Source: ITU, a16z
8
It’s a multi-platform, multi-OS world
—MicrosoDbuysXamarin
—MicrosoDopensources.NET
—Windows10
• UniversalWindowsApps
• Writeonce&deployitacrossplaPorms
—ApplemakingSwiDopensource
9/21/16
5
9
Web continues to get more sophisticated
Approval for plugins
Closing APIs exposing
local machines
Technology giving an
access
Responsive UI
Web Components CSS implementation varies
10
Web and mobile worlds colliding
‒ Cordova
‒ PhoneGap
‒ Open web tech
Mobile
‒ HTML
‒ JavaScript
‒ CSS
Web
React, React Native, Combined JSX, getUserMedia , Geolocation
9/21/16
6
11
Browsers & app stores are becoming locked
Approval time for plugins and apps increasing
Closing APIs exposing
local machines
Technology giving an
access
12
More to test in less time makes reusability imp
Cross platform apps
Changes in web & mobile
High quality
Reusability critical
9/21/16
7
13
Testing in an Agile world involves deciding
Test Reduction
Test Design
Where to start
14
Testing in an Agile world involves deciding
Test Reduction
Test Design
Where to start
9/21/16
8
15
Start small for quick wins
1 Latest
3
Beta
2 Previous
Browser
App
80%
16
Testing in an Agile world involves deciding
Test Reduction
Test Design
Where to start
9/21/16
9
17
Test pyramid strategy can come in handy
Service
Unit
UI
18
Creating API tests helps prevent false defects
Web
Mobile
Tablet
1
2
3
4
9/21/16
10
19
Reuse those API tests across SDLC
• APIfunc@onaltest
• APIloadtest
• GUIfunc@onaltest
• APIsecuritytest
• Monitoring
Time reduced by 80%
20
The feedback from UI tests is more exhaustive
Browser: Chrome
End-to-end testing
x x x x
HTML5, Angular JS Network Service/API/Database
9/21/16
11
21
Maintaining UI tests can be a pain
Text
Duplication
Maintainability
Magic Strings
22
Use page object model for maintainability
Home Page of Amazon
Result Search Page
Product Details Page
Confirmation Page
9/21/16
12
23
Involve abstraction in the model
Page Object Class 1
Test
Page Object Class 2
Abstract control identification
Test steps
Abstract control identification
Abstract control actions
Abstract control actions
24
The brittle code now looks like
Magic Strings Locating the control
Abstracting the set text action for the control
Using the abstracted set text action
9/21/16
13
25
Testing in an Agile world involves deciding
Test Reduction
Test Design
Where to start
26
Use PairWise testing to cut down tests
I(0,1)
B (0,1)
U(0,1)
App
B I U
1 1
1 0
0 1
0 0
B I U
1 0
0 0
1 1
0 1
B I U
1 1
1 0
0 1
0 0
B I U
1 1 1
1 0 0
0 1 0
0 0 1
1
2
3
Final Set