Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Jumpstarting your Test Automation
Alexa, iOS, Android, Web, Oh my
Elise Carmichael & Corey Pyle| April 19, 2017
Quality Jam 2017: Elise Carmichael and Corey Pyle "Jumpstarting Your Test Automation"
Who are we?
Elise Carmichael
- Director of Software Engineering @ Mobiquity
Corey Pyle
- Software Developer & Lead QA Engineer @ Mobiquity
INSERT PHOTO ON TOP
We create compelling digital
moments for you and your
customers, focused on
innovation, driven by data,
across all channels.
Mobiquity
Quality Jam 2017: Elise Carmichael and Corey Pyle "Jumpstarting Your Test Automation"
Quality Jam 2017: Elise Carmichael and Corey Pyle "Jumpstarting Your Test Automation"
Quality Jam 2017: Elise Carmichael and Corey Pyle "Jumpstarting Your Test Automation"
Why are you here?
Who this session is for:
- You’re converting your existing manual tests into automated tests
- You want to see a wide variety of platforms that can be automated!
What are we showing you?
- A demo of automation scripts on multiple
- A walkthrough of our open source library that uploads test results to
qTest using the API
Agenda
- Review what tests you will automate
- Demo how you can write XCUITests for iOS using our library to
automate your existing regression suite
- Demo with Amazon Alexa and show how these tests can be
automated and updated in qTest automatically
- Walk through of the library to show the qTest API
What to Automate?
How do you decide what to automate?
- High Risk
- What makes something high risk?
- Lots of content/permutations to test
- Tests that need to repeated frequently
- Other?
iOS & XCUITest
INSERT PHOTO ON TOP
Existing Tests
Already have a regression
Suite
Ready to automate some
of it; but have test
cases/results show up as if
you ran a manual test
XCUITest
- Write your iOS tests with names
to match what the test case is
called in qTest
- Formats the output into
something qTestManager can
parse (standard junit/xunit)
- https://github.com/supermarin/x
cpretty
- Provide Test Cycle or Test Suite
location so test executions can
be updated.
- If a test appears more than
once, EACH test will be
considered executed
Write Tests Execute with xcpretty Configure/ Run
qTestManager
Demo demo demo
Demo!
HODOR
Amazon Alexa!
Alexa Basics and Challenges
User Speech -> Alexa -> Your Function -> Alexa
Challenges
• It’s new, no real native automated test solution
• Testing large amounts of utterances
Automation Options for Amazon Alexa
• Local Unit Tests
• Local Functional Tests
• Deployed Functional Tests
• Amazon Dev Console Automation
Console Automation with Pigwidgeon
• What is it?
• And	internal	tool	at	Mobiquity	used	for	simplifying	the	dev	console	
testing	platform
• How do you use it?
• Install,	configure,	write	tests,	run!
Quality Jam 2017: Elise Carmichael and Corey Pyle "Jumpstarting Your Test Automation"
Sample Test File
qTestManager Code
Live Code Walk-through
Node Package: https://www.npmjs.com/package/qtestmanager-node
Code: https://github.com/cpyle0819/qtestmanager-node
iOS Code: https://github.com/Mobiquity/QualityJamDemo
Questions?
Thank you!
XCUITest Setup Instructions
install ruby gem xcpretty to convert iOS test output to xunit test results
(https://github.com/supermarin/xcpretty)
• install	ruby/gems (follow	instructions	online)
• `gem	install	xcpretty`
Install Node/npm & qTestManager (https://www.npmjs.com/package/qtestmanager-node)
• Install	node.js &	npm (follow	instructions	online)
• Create	node	project
• npm init &	name	it	whatever	you’d	like
• Install	qTestManager &	save	to	your	package.json
• npm install	--save	qtestmanager-node
• Get	your	access	token	with	the	auth script	as	exampled	in	the	npm doc
• Create	your	uploader	file	as	exampled
• Add	regex	to	match	how	you	want	to	name	your	testcases in	xcode
• Add	line:
• uploader.testNameRegex =	D+(d+);
• Update	API	call	function	to	have	catch:
Execute the xctests using the ruby gem:
• xcodebuild -project	QualityJamDemo.xcodeproj -scheme	AutomatedUITests -sdk iphonesimulator -destination	'platform=iOS	
Simulator,name=iPhone	7,OS=10.2'	test	|	xcpretty --report	junit
• Result	goes	to	workspace/build/reports.junit.xml
Upload the tests to qtest with the node uploader you created
• node	uploader.js (or	whatever	you	called	your	node	file	that	uses	qtestmanager)

More Related Content

Quality Jam 2017: Elise Carmichael and Corey Pyle "Jumpstarting Your Test Automation"

  • 1. Jumpstarting your Test Automation Alexa, iOS, Android, Web, Oh my Elise Carmichael & Corey Pyle| April 19, 2017
  • 3. Who are we? Elise Carmichael - Director of Software Engineering @ Mobiquity Corey Pyle - Software Developer & Lead QA Engineer @ Mobiquity
  • 4. INSERT PHOTO ON TOP We create compelling digital moments for you and your customers, focused on innovation, driven by data, across all channels. Mobiquity
  • 8. Why are you here? Who this session is for: - You’re converting your existing manual tests into automated tests - You want to see a wide variety of platforms that can be automated! What are we showing you? - A demo of automation scripts on multiple - A walkthrough of our open source library that uploads test results to qTest using the API
  • 9. Agenda - Review what tests you will automate - Demo how you can write XCUITests for iOS using our library to automate your existing regression suite - Demo with Amazon Alexa and show how these tests can be automated and updated in qTest automatically - Walk through of the library to show the qTest API
  • 11. How do you decide what to automate? - High Risk - What makes something high risk? - Lots of content/permutations to test - Tests that need to repeated frequently - Other?
  • 13. INSERT PHOTO ON TOP Existing Tests Already have a regression Suite Ready to automate some of it; but have test cases/results show up as if you ran a manual test
  • 14. XCUITest - Write your iOS tests with names to match what the test case is called in qTest - Formats the output into something qTestManager can parse (standard junit/xunit) - https://github.com/supermarin/x cpretty - Provide Test Cycle or Test Suite location so test executions can be updated. - If a test appears more than once, EACH test will be considered executed Write Tests Execute with xcpretty Configure/ Run qTestManager
  • 17. Alexa Basics and Challenges User Speech -> Alexa -> Your Function -> Alexa Challenges • It’s new, no real native automated test solution • Testing large amounts of utterances
  • 18. Automation Options for Amazon Alexa • Local Unit Tests • Local Functional Tests • Deployed Functional Tests • Amazon Dev Console Automation
  • 19. Console Automation with Pigwidgeon • What is it? • And internal tool at Mobiquity used for simplifying the dev console testing platform • How do you use it? • Install, configure, write tests, run!
  • 23. Live Code Walk-through Node Package: https://www.npmjs.com/package/qtestmanager-node Code: https://github.com/cpyle0819/qtestmanager-node iOS Code: https://github.com/Mobiquity/QualityJamDemo
  • 26. XCUITest Setup Instructions install ruby gem xcpretty to convert iOS test output to xunit test results (https://github.com/supermarin/xcpretty) • install ruby/gems (follow instructions online) • `gem install xcpretty` Install Node/npm & qTestManager (https://www.npmjs.com/package/qtestmanager-node) • Install node.js & npm (follow instructions online) • Create node project • npm init & name it whatever you’d like • Install qTestManager & save to your package.json • npm install --save qtestmanager-node • Get your access token with the auth script as exampled in the npm doc • Create your uploader file as exampled • Add regex to match how you want to name your testcases in xcode • Add line: • uploader.testNameRegex = D+(d+); • Update API call function to have catch: Execute the xctests using the ruby gem: • xcodebuild -project QualityJamDemo.xcodeproj -scheme AutomatedUITests -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 7,OS=10.2' test | xcpretty --report junit • Result goes to workspace/build/reports.junit.xml Upload the tests to qtest with the node uploader you created • node uploader.js (or whatever you called your node file that uses qtestmanager)