STARTING	AN
OPEN	SOURCE	PROJECT:
0	TO	100,000	USERS
AN	EX-MICROSOFTEE	ACCIDENTALLY	CREATES
A	WILDLY	POPULAR	OPEN	SOURCE	PROJECT
ABOUT	THE	SPEAKER
Dan	Cuellar
β€’ Creator	of	Appium
β€’ Head	of	Software	Testing	at	FOODit
β€’ Previously	at	Shazam,	Zoosk,	and	Microsoft
β€’ BS	in	Computer	Science	from	Carnegie	Mellon
Dan Cuellar
Dan Cuellar
THE	MOST	TERRIFYING	5	WORDS	IN	TESTING
THIS	ALL	SOUNDS	FAMILIAR
EVERYTHING	IS	NOT	AWESOME
WHAT	IS	APPIUM
β€’ An	implementation	of	the	Selenium	JSON-wire	protocol	that	
controls	native	and	hybrid	iOS	and	Android	application
β€’ The	most	popular	open	source	mobile	functional	testing	
framework
APPIUM PHILOSOPHY
β€’ Use	standardized	and	sanctioned	APIs	and	techniques
β€’ Code	in	the	language	of	your	choice
β€’ Java,	C#,	Python,	Ruby,	Objective-C,	node.js,	PHP,	and	more
β€’ Do	not	modify	the	application	under	test
β€’ Keep	it	free	and	open	source
HOW	DOES	IT	WORK? UIAutomation /	
UIAutomator
Appium
Server
Test	Script
JSON-Wire	Protocol	Request
JSON-Wire	Protocol	Response
HTTP
@Before
public	void	setUp()	throws	Exception	{
//	set	up	appium
File	app	=	new	File("/path/to/your/TestApp.app");
DesiredCapabilities capabilities	=	new	DesiredCapabilities();
capabilities.setCapability("platformVersion",	”9.1");
capabilities.setCapability("deviceName",	"iPhone	6");
capabilities.setCapability("app",	app.getAbsolutePath());
driver	=	new	IOSDriver<WebElement>(new	URL("http://127.0.0.1:4723/wd/hub"),	capabilities);
}
THE	CODE	– IOS	SETUP
@Before
public	void	setUp()	throws	Exception	{
//	set	up	appium
File	app	=	new	File(”/path/to/my/test-app.apk");
DesiredCapabilities capabilities	=	new	DesiredCapabilities();
capabilities.setCapability("deviceName","Android	Emulator");
capabilities.setCapability("automationName",”Android");
capabilities.setCapability("app",	app.getAbsolutePath());
capabilities.setCapability("appPackage",	”com.yourcompany.testapp");
capabilities.setCapability("appActivity",	".HomeScreenActivity");
driver	=	new	AndroidDriver<WebElement>(new	URL("http://127.0.0.1:4723/wd/hub"),	
capabilities);
}
THE	CODE	– ANDROID	SETUP
WebElement el	=	driver.findElement(By.className("UIAButton"));
WebElement el	=	driver.findElement(By.xpath("//UIATextField[1]"));
WebElement el	=	driver.findElement(MobileBy.AccessibilityId("Done"));
THE	CODE	– FINDING	ELEMENTS
el.click();
el.sendKeys("Hello	World");
driver.swipe(sliderLocation.getX(),	sliderLocation.getY(),	
sliderLocation.getX()-100,	sliderLocation.getY(),	1000);
THE	CODE	– ACTIONS
Each	webview in	your	app	is	a	context.	Change	context	and	automate	as	
you	would	a	webpage	using	regular	selenium	syntax.
driver.context(contextName);
WebElement el	=	driver.findElement(By.cssSelector(".awesome"));
el.click();
AUTOMATING	WEB-VIEWS
TIME	TO	SPREAD	THE	WORD
GETTING	THE	WORD	OUT
β€’ Answered	almost	every	forum	question	for	the	1st year	of	the	project
β€’ Answered	most	StackOverflow questions
β€’ Spoke	at	any	conference	that	would	have	us
β€’ Stated	our	mission	and	philosophy
β€’ Talked	to	companies	that	were	interested
β€’ Utilized	Twitter	and	social	media
LOSING	CONTROL	IS	A	GOOD	SIGN
β€’ One	day	a	website	and	twitter	account	showed	up
β€’ Android	support	was	added
β€’ The	code	was	ported	to	another	language
β€’ I	lost	commit	privileges	on	the	repo	(briefly)
β€’ My	conference	proposal	was	rejected	because,
unbeknownst	to	me,	two	other	people	had	already
submitted Appium talks	at	the	same	conference
SCALABILITY
β€’ Eventually,	you	won’t	be	able	to	answer	every	question
β€’ Other	people	will	have	learned	from	reading	the	forums	and	the	
community	can	answer
β€’ You	won’t	be	able	to	test	or	scrutinize	every	commit
β€’ Unit	tests	are	your	friend
β€’ You	won’t	know	the	what’s	on	anymore
β€’ Draft	good	release	note
β€’ Keep	detailed	commit	messages
STARTING	AN	OPEN	SOURCE	PROJECT
THE	WRONG	WAY
β€’ Use	proprietary	technologies
β€’ Share	the	code	via	email
β€’ Provide	no	documentation
β€’ Do	not	post	slides
β€’ Respond	to	issues	via	private	
communication
THE	RIGHT	WAY
β€’ Use	open	technologies
β€’ Post	code	on	GitHub
β€’ Write	documentation
β€’ Use	Slideshare &	YouTube
β€’ Post	responses	on	forums
Dan Cuellar
CONFLICT
β€’ Agreeing	to	a	philosophy	and/or	mission	beforehand	is	helpful
β€’ There	is	no	rigid	chain	of	command	to	resolve	disputes
β€’ Conflict	is	best	kept	out	in	the	open
β€’ This	leads	to	debate	which	results	in	better	decisions
β€’ Transparent	decision	making	leads	to	better	end-user	understanding
β€’ Sometimes	whoever	writes	the	code	make	the	decision
β€’ People	may	have	opinions	but	aren’t	willing	to	code	the	solution
WHEN	PEACE	IS	NOT	AN	OPTION
β€’ Losing	contributors	is	bad,	but	not	the	end	of	the	world
β€’ Unless	they	leave	the	open	source	community,	their	work	is	still	shared	with	
everyone
β€’ Multiple	projects	doing	the	same	thing	isn’t	necessarily	a	bad	thing
β€’ Choice	and	competition	brings	about	innovation
β€’ Having	options	is	good	for	end-users
In	the	end,	the	most	awesome	thing	will	win
Dan Cuellar
BY	THE	NUMBERS
In	the	last	3	years
β€’ Over	3,000	Stars,	2,000	Forks	on	GitHub
β€’ Over	150	Contributors	and	5,000	commits
β€’ Over	150,000	downloads	of	Appium 1.0
β€’ Over	3,000	issues	closed
WHAT’S	NEW	IN	APPIUM 1.5?
β€’ Complete	rewrite	of	the	entire	codebase
β€’ Continuous	Integration	and	Unit	Tests
β€’ Command	line	arguments	are	mostly	capabilities	now
β€’ Code	of	Conduct	and	Governance
WHY	REWRITE?
β€’ 3	years	of	patches	and	organic	growth
β€’ Many	complaints	about	instability
β€’ Code	was	not	modular	enough
β€’ Old	and	confusing	ES5	code
β€’ Callback	Hell
β€’ Poorly	Tested
WHAT’S	COMING	NEXT
β€’ Windows	Phone	and	Windows	10	application	support
β€’ New	GUIs
β€’ Multiple	New	iOS	Backends
β€’ Android	backend	rewrite	using	UIAutomator 2
β€’ Better	docs	and	onboarding	material
β€’ Appium Foundation
Dan Cuellar
Dan Cuellar
WHY	DOES	APPIUM SUCCEED?
β€’ From	Day	1,	There	Was	a	Clear	Philosophy	and	Vision
β€’ We	try	to	be	as	inclusive	as	possible	to	foster	an	active	community
β€’ We	support	many	languages	and	platforms	as
β€’ Our	tool	is	based	on	an	existing	tool	people	are	already	familiar	with
β€’ We	put	a	whole	lot	of	work	into	it
β€’ We	speak	at	any	and	every	conference	that	will	have	us
β€’ We	contribute	a	lot	of	our	unpaid	time	into	the	product
INCLUSIVENESS
INCLUSIVENESS
INCLUSIVENESS
INCLUSIVENESS
PERSONAL	TAKEAWAY
β€œLife	can	be	much	broader	once	you	discover	one	simple	fact:	
Everything	around	you	that	you	call	life	was	made	up	by	people	that	
were	no	smarter	than	you	and	you	can	change	it,	you	can	influence	it,	
you	can	build	your	own	things	that	other	people	can	use.
Once	you	learn	that,	you'll	never	be	the	same	again.”
-Steve	Jobs
MORE	INFO
β€’ Website:	http://www.appium.io
β€’ Slack:	appium.slack.com
β€’ Forum:	discuss.appium.io
β€’ GitHub:	http://www.github.com/appium/appium

More Related Content

PDF
[Webinar] Test First, Fail Fast - Simplifying the Tester's Transition to DevOps
PDF
OWASP DefectDojo - Open Source Security Sanity
PPTX
Continuous Testing 2016
PDF
Making Continuous Security a Reality with OWASP’s AppSec Pipeline - Matt Tesa...
PPTX
Automate you Appium test like a pro!
PPTX
AppSec++ Take the best of Agile, DevOps and CI/CD into your AppSec Program
PPTX
Leandro Melendez - Switching Performance Left & Right
PDF
Serverless Delivery
[Webinar] Test First, Fail Fast - Simplifying the Tester's Transition to DevOps
OWASP DefectDojo - Open Source Security Sanity
Continuous Testing 2016
Making Continuous Security a Reality with OWASP’s AppSec Pipeline - Matt Tesa...
Automate you Appium test like a pro!
AppSec++ Take the best of Agile, DevOps and CI/CD into your AppSec Program
Leandro Melendez - Switching Performance Left & Right
Serverless Delivery

What's hot (20)

PDF
Taking the Best of Agile, DevOps and CI/CD into security
PPTX
DOES SFO 2016 - Scott Willson - Top 10 Ways to Fail at DevOps
PDF
AppSec Pipelines and Event based Security
PDF
NodeJS security - still unsafe at most speeds - v1.0
PDF
Merging Security with DevOps - An AppSec Perspective
PDF
Continuous Security: Using Automation to Expand Security's Reach
PPT
Continuous Load Testing with CloudTest and Jenkins
Β 
PPTX
Top10 Characteristics of Awesome Apps
PDF
Building a Secure DevOps Pipeline - for your AppSec Program
PDF
Spinnaker Microsrvices
PPTX
IaC? VSTS to the rescue! Abbreviations explained
PPTX
Whitebox Testing for Blackbox Testers: Simplifying API Testing
PPTX
Continous integration and delivery for single page applications
PDF
The Key to DevOps? Testing Early in the Pipeline
PDF
Achieving Continuous Delivery with Puppet
PDF
Peeling the Onion: Making Sense of the Layers of API Security
PPTX
Automated Testing – Web, Mobile, Desktop - Challenges and Successes
PDF
DevOps - A Gentle Introduction
PDF
Continuous Delivery Testing @HiQ
PPTX
Using JMeter in CloudTest for Continuous Testing
Taking the Best of Agile, DevOps and CI/CD into security
DOES SFO 2016 - Scott Willson - Top 10 Ways to Fail at DevOps
AppSec Pipelines and Event based Security
NodeJS security - still unsafe at most speeds - v1.0
Merging Security with DevOps - An AppSec Perspective
Continuous Security: Using Automation to Expand Security's Reach
Continuous Load Testing with CloudTest and Jenkins
Β 
Top10 Characteristics of Awesome Apps
Building a Secure DevOps Pipeline - for your AppSec Program
Spinnaker Microsrvices
IaC? VSTS to the rescue! Abbreviations explained
Whitebox Testing for Blackbox Testers: Simplifying API Testing
Continous integration and delivery for single page applications
The Key to DevOps? Testing Early in the Pipeline
Achieving Continuous Delivery with Puppet
Peeling the Onion: Making Sense of the Layers of API Security
Automated Testing – Web, Mobile, Desktop - Challenges and Successes
DevOps - A Gentle Introduction
Continuous Delivery Testing @HiQ
Using JMeter in CloudTest for Continuous Testing
Ad

Viewers also liked (11)

PDF
Karim Fanadka
PDF
Kristian Karl
PDF
Илья ΠšΡƒΠ΄ΠΈΠ½ΠΎΠ²
PDF
Orta Therox
PDF
Π‘Π΅Ρ€Π³Π΅ΠΉ Π‘Π΅Π»ΠΎΠ²
PPTX
Антон Π’ΡƒΡ€Π΅Ρ†ΠΊΠΈΠΉ
PDF
ПавСл ΠœΠΎΡ‡Π°Π»ΠΊΠΈΠ½
PDF
Π’Π°Π΄ΠΈΠΌ МакССв
PPTX
Автоматизация тСстирования WEB API
Β 
PDF
Антон Π“Π°Π»ΠΈΡ†Ρ‹Π½
PDF
АндрСй Π‘Π²Π΅Ρ‚Π»ΠΎΠ²
Karim Fanadka
Kristian Karl
Илья ΠšΡƒΠ΄ΠΈΠ½ΠΎΠ²
Orta Therox
Π‘Π΅Ρ€Π³Π΅ΠΉ Π‘Π΅Π»ΠΎΠ²
Антон Π’ΡƒΡ€Π΅Ρ†ΠΊΠΈΠΉ
ПавСл ΠœΠΎΡ‡Π°Π»ΠΊΠΈΠ½
Π’Π°Π΄ΠΈΠΌ МакССв
Автоматизация тСстирования WEB API
Β 
Антон Π“Π°Π»ΠΈΡ†Ρ‹Π½
АндрСй Π‘Π²Π΅Ρ‚Π»ΠΎΠ²
Ad

Similar to Dan Cuellar (20)

PPTX
Testistanbul 2016 - Keynote: "The Story of Appium" by Dan Cuellar
PDF
10 things you didnt know about appium + whats new in appium 1.5
PPTX
Appium Presentation
PPTX
appiumpresent-211128171811.pptx projet de presentation
PPTX
Selenium Camp 2016
PPTX
Appium.pptx
PPTX
Appium overview (Selenium Israel #2, Feb. 2014)
PPTX
Automation With Appium
PPTX
Appium ppt
PDF
Appium Automation Testing Tutorial PDF: Learn Mobile Testing in 7 Days
PPTX
Automation Testing With Appium
PPTX
Appium Overview - by Daniel Puterman
PPTX
WhatIsAppium.pptx
PDF
Starting an Open Source Project: 0-100k Users - China Mobile Summit 2015 - EN
PDF
A Step-by-Step Guide to Test Automation with Appium.pdf
PPTX
Automation using Appium
PDF
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
PDF
Appium Testing Guide For Mobile App Testing
PPTX
Mobile Automation with Appium
PDF
How to Test Android and iOS Mobile Apps with Appium.pdf
Testistanbul 2016 - Keynote: "The Story of Appium" by Dan Cuellar
10 things you didnt know about appium + whats new in appium 1.5
Appium Presentation
appiumpresent-211128171811.pptx projet de presentation
Selenium Camp 2016
Appium.pptx
Appium overview (Selenium Israel #2, Feb. 2014)
Automation With Appium
Appium ppt
Appium Automation Testing Tutorial PDF: Learn Mobile Testing in 7 Days
Automation Testing With Appium
Appium Overview - by Daniel Puterman
WhatIsAppium.pptx
Starting an Open Source Project: 0-100k Users - China Mobile Summit 2015 - EN
A Step-by-Step Guide to Test Automation with Appium.pdf
Automation using Appium
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
Appium Testing Guide For Mobile App Testing
Mobile Automation with Appium
How to Test Android and iOS Mobile Apps with Appium.pdf

More from CodeFest (20)

PDF
Alexander Graebe
PDF
Никита ΠŸΡ€ΠΎΠΊΠΎΠΏΠΎΠ²
PPTX
ДСнис Π‘Π°Ρ‚Π°Π»ΠΎΠ²
PDF
Π•Π»Π΅Π½Π° Π“Π°Π»ΡŒΡ†ΠΈΠ½Π°
PDF
АлСксандр Калашников
PDF
Π˜Ρ€ΠΈΠ½Π° Иванова
PDF
Marko Berković
PDF
ДСнис ΠšΠΎΡ€Ρ‚ΡƒΠ½ΠΎΠ²
PDF
АлСксандр Π—ΠΈΠΌΠΈΠ½
PDF
Π‘Π΅Ρ€Π³Π΅ΠΉ ΠšΡ€Π°ΠΏΠΈΠ²Π΅Π½ΡΠΊΠΈΠΉ
PDF
Π‘Π΅Ρ€Π³Π΅ΠΉ Π˜Π³Π½Π°Ρ‚ΠΎΠ²
PDF
Николай ΠšΡ€Π°ΠΏΠΈΠ²Π½Ρ‹ΠΉ
PDF
Alexander Graebe
PDF
Π’Π°Π΄ΠΈΠΌ Π‘ΠΌΠΈΡ€Π½ΠΎΠ²
PDF
ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚ΠΈΠ½ Осипов
PDF
Raffaele Rialdi
PDF
Максим ΠŸΡƒΠ³Π°Ρ‡Π΅Π²
PDF
Rene Groeschke
PDF
Иван Π‘ΠΎΠ½Π΄Π°Ρ€Π΅Π½ΠΊΠΎ
PDF
Mete Atamel
Alexander Graebe
Никита ΠŸΡ€ΠΎΠΊΠΎΠΏΠΎΠ²
ДСнис Π‘Π°Ρ‚Π°Π»ΠΎΠ²
Π•Π»Π΅Π½Π° Π“Π°Π»ΡŒΡ†ΠΈΠ½Π°
АлСксандр Калашников
Π˜Ρ€ΠΈΠ½Π° Иванова
Marko Berković
ДСнис ΠšΠΎΡ€Ρ‚ΡƒΠ½ΠΎΠ²
АлСксандр Π—ΠΈΠΌΠΈΠ½
Π‘Π΅Ρ€Π³Π΅ΠΉ ΠšΡ€Π°ΠΏΠΈΠ²Π΅Π½ΡΠΊΠΈΠΉ
Π‘Π΅Ρ€Π³Π΅ΠΉ Π˜Π³Π½Π°Ρ‚ΠΎΠ²
Николай ΠšΡ€Π°ΠΏΠΈΠ²Π½Ρ‹ΠΉ
Alexander Graebe
Π’Π°Π΄ΠΈΠΌ Π‘ΠΌΠΈΡ€Π½ΠΎΠ²
ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚ΠΈΠ½ Осипов
Raffaele Rialdi
Максим ΠŸΡƒΠ³Π°Ρ‡Π΅Π²
Rene Groeschke
Иван Π‘ΠΎΠ½Π΄Π°Ρ€Π΅Π½ΠΊΠΎ
Mete Atamel

Recently uploaded (20)

PDF
Sun and Bloombase Spitfire StoreSafe End-to-end Storage Security Solution
PDF
Guide to Food Delivery App Development.pdf
PDF
Microsoft Office 365 Crack Download Free
PDF
E-Commerce Website Development Companyin india
PPTX
R-Studio Crack Free Download 2025 Latest
PPTX
Human-Computer Interaction for Lecture 2
PDF
Cloud Native Aachen Meetup - Aug 21, 2025
PPTX
Computer Software - Technology and Livelihood Education
PPTX
Lecture 5 Software Requirement Engineering
PDF
Introduction to Ragic - #1 No Code Tool For Digitalizing Your Business Proces...
Β 
PPTX
Python is a high-level, interpreted programming language
PDF
MiniTool Power Data Recovery 12.6 Crack + Portable (Latest Version 2025)
PPTX
Download Adobe Photoshop Crack 2025 Free
PDF
Internet Download Manager IDM Crack powerful download accelerator New Version...
PDF
What Makes a Great Data Visualization Consulting Service.pdf
PDF
AI-Powered Fuzz Testing: The Future of QA
PPTX
4Seller: The All-in-One Multi-Channel E-Commerce Management Platform for Glob...
DOCX
Modern SharePoint Intranet Templates That Boost Employee Engagement in 2025.docx
PPTX
Viber For Windows 25.7.1 Crack + Serial Keygen
PPTX
Matchmaking for JVMs: How to Pick the Perfect GC Partner
Sun and Bloombase Spitfire StoreSafe End-to-end Storage Security Solution
Guide to Food Delivery App Development.pdf
Microsoft Office 365 Crack Download Free
E-Commerce Website Development Companyin india
R-Studio Crack Free Download 2025 Latest
Human-Computer Interaction for Lecture 2
Cloud Native Aachen Meetup - Aug 21, 2025
Computer Software - Technology and Livelihood Education
Lecture 5 Software Requirement Engineering
Introduction to Ragic - #1 No Code Tool For Digitalizing Your Business Proces...
Β 
Python is a high-level, interpreted programming language
MiniTool Power Data Recovery 12.6 Crack + Portable (Latest Version 2025)
Download Adobe Photoshop Crack 2025 Free
Internet Download Manager IDM Crack powerful download accelerator New Version...
What Makes a Great Data Visualization Consulting Service.pdf
AI-Powered Fuzz Testing: The Future of QA
4Seller: The All-in-One Multi-Channel E-Commerce Management Platform for Glob...
Modern SharePoint Intranet Templates That Boost Employee Engagement in 2025.docx
Viber For Windows 25.7.1 Crack + Serial Keygen
Matchmaking for JVMs: How to Pick the Perfect GC Partner

Dan Cuellar