Delivering high quality applications in an agile world is becoming more complex and challenging because of the changes the web and mobile are undergoing. Web testing continues to get much more difficult due to: increasing use of open technologies (HTML, JavaScript, and CSS) and web components in apps; lengthening the approval processes for plugins; and Chrome, Mozilla, and Edge browsers blocking specific APIs. On the mobile front, Apple, Google, and Microsoft are making it easier for developers to build cross-platform apps, resulting in more to test in less time. With releases such as Windows 10, the lines between desktop and mobile continue to blur. Nikhil Kaul presents an overview of recent technological trends and discusses why they necessitate an alteration in existing agile testing practices. He shares how the transition to technologies like React and React Native is causing the worlds of mobile and web testing to collide. Nikhil shows how, by employing reusability practices and following a modular test design, testers can better prepare for these developments.
Testing in an Agile World: The Current State and Future Possibilities
1.
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
-‐
info@techwell.com
-‐
http://www.starwest.techwell.com/
3. 9/21/16
1
Testing in an Agile World:
The Current State and Future
Possibilities
2
Quick Intro
Nikhil Kaul
4. 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
5. 9/21/16
3
5
Multiple benefits come with moving to Agile
Analyze
Design
Code
Test
Reduces the batch size
Increases throughput
Increases speed
Conclusion
Analyze
Design
Code
Test
Itera@on 1 Itera@on 2
Conclusion
Analyze
Design
Code
Test
6
The transformation can be challenging
Write a user
story
Get Acceptance
tests
Expand upon
tests
What /How to
code
Automate tests
TDD
Demo
Product Owner Tester
Tester +Dev Just Dev
Exploratory
People, Process, & Tools
6. 9/21/16
4
7
Industry trends necessitate Agile
Source: ITU, a16z
8
It’s a multi-platform, multi-OS world
— MicrosoD buys Xamarin
— MicrosoD open sources .NET
— Windows 10
• Universal Windows Apps
• Write once & deploy it across plaPorms
— Apple making SwiD open source
7. 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
8. 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. 9/21/16
7
13
Testing in an Agile world involves deciding
Test ReductionTest DesignWhere to start
14
Testing in an Agile world involves deciding
Test ReductionTest DesignWhere to start
10. 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 ReductionTest DesignWhere to start
11. 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
12. 9/21/16
10
19
Reuse those API tests across SDLC
• API func@onal test
• API load test
• GUI func@onal test
• API security test
• 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
13. 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
14. 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 StringsLocating the control
Abstracting the set text action for the control
Using the abstracted set text action
15. 9/21/16
13
25
Testing in an Agile world involves deciding
Test ReductionTest DesignWhere 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
16. 9/21/16
14
27
Takeaways
1
The role QA is becoming more important
2
Start small and build a modular test design
4
Reuse tests across software development lifecycle
3
API testing is key: Don’t forget about the GUI
Thank You!