SlideShare a Scribd company logo
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
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
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
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
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

What's hot

[webinar] Best of Breed: Successful Test Automation Practices from Innovative...
[webinar] Best of Breed: Successful Test Automation Practices from Innovative...[webinar] Best of Breed: Successful Test Automation Practices from Innovative...
[webinar] Best of Breed: Successful Test Automation Practices from Innovative...
Applitools
 
How to Leverage XCUITest for Continuous Testing
How to Leverage XCUITest for Continuous TestingHow to Leverage XCUITest for Continuous Testing
How to Leverage XCUITest for Continuous Testing
Perfecto by Perforce
 
Real Testing Scenario Strategy Practical TestOps Presentation
Real Testing Scenario Strategy Practical TestOps PresentationReal Testing Scenario Strategy Practical TestOps Presentation
Real Testing Scenario Strategy Practical TestOps Presentation
Adam Sandman
 
10 Benefits of Automated Testing
10 Benefits of Automated Testing10 Benefits of Automated Testing
10 Benefits of Automated Testing
TestObject - Mobile Testing
 
Testing Tools with AI
Testing Tools with AITesting Tools with AI
Testing Tools with AI
VodqaBLR
 
Bringing Quality Design Systems to Life with Storybook & Applitools
Bringing Quality Design Systems to Life with Storybook & ApplitoolsBringing Quality Design Systems to Life with Storybook & Applitools
Bringing Quality Design Systems to Life with Storybook & Applitools
Applitools
 
Tales from the Dark Side: Ori Bendet Selenium Conference India 2016
Tales from the Dark Side: Ori Bendet Selenium Conference India 2016Tales from the Dark Side: Ori Bendet Selenium Conference India 2016
Tales from the Dark Side: Ori Bendet Selenium Conference India 2016
Ori Bendet
 
Kristian Karl - Experiences of Test Automation at Spotify - EuroSTAR 2013
Kristian Karl - Experiences of Test Automation at Spotify - EuroSTAR 2013Kristian Karl - Experiences of Test Automation at Spotify - EuroSTAR 2013
Kristian Karl - Experiences of Test Automation at Spotify - EuroSTAR 2013
TEST Huddle
 
Testing for Logic App Solutions | Integration Monday
Testing for Logic App Solutions | Integration MondayTesting for Logic App Solutions | Integration Monday
Testing for Logic App Solutions | Integration Monday
BizTalk360
 
Top 5 Automation Challenges Webinar
Top 5 Automation Challenges WebinarTop 5 Automation Challenges Webinar
Top 5 Automation Challenges Webinar
Perfecto by Perforce
 
How to Measure Success in Continuous Testing by Fernando Vidal and Amir Rozen...
How to Measure Success in Continuous Testing by Fernando Vidal and Amir Rozen...How to Measure Success in Continuous Testing by Fernando Vidal and Amir Rozen...
How to Measure Success in Continuous Testing by Fernando Vidal and Amir Rozen...
Sauce Labs
 
Make the Shift from Manual to Automation with Open Source
Make the Shift from Manual to Automation with Open SourceMake the Shift from Manual to Automation with Open Source
Make the Shift from Manual to Automation with Open Source
Perfecto by Perforce
 
Android testing
Android testingAndroid testing
Android testing
Igor Filippov
 
Start Your Automation Journey With Rapise
Start Your Automation Journey With Rapise Start Your Automation Journey With Rapise
Start Your Automation Journey With Rapise
Inflectra
 
SauceCon 2017: Building a Continuous Delivery Pipeline with Testing in Mind
SauceCon 2017: Building a Continuous Delivery Pipeline with Testing in MindSauceCon 2017: Building a Continuous Delivery Pipeline with Testing in Mind
SauceCon 2017: Building a Continuous Delivery Pipeline with Testing in Mind
Sauce Labs
 
10 Emerging Test Frameworks for Cross Browser Testing
10 Emerging Test Frameworks for Cross Browser Testing10 Emerging Test Frameworks for Cross Browser Testing
10 Emerging Test Frameworks for Cross Browser Testing
Perfecto by Perforce
 
Building Resilient Automated UI Tests for Cloud Applications using Scripless ...
Building Resilient Automated UI Tests for Cloud Applications using Scripless ...Building Resilient Automated UI Tests for Cloud Applications using Scripless ...
Building Resilient Automated UI Tests for Cloud Applications using Scripless ...
Adam Sandman
 
The four generations of test automation
The four generations of test automationThe four generations of test automation
The four generations of test automation
renard_vardy
 
End-to-End Test Automation for Both Horizontal and Vertical Scale
End-to-End Test Automation for Both Horizontal and Vertical ScaleEnd-to-End Test Automation for Both Horizontal and Vertical Scale
End-to-End Test Automation for Both Horizontal and Vertical Scale
Erdem YILDIRIM
 
So we're going no-QA - how do we get the devs to do enough testing?
So we're going no-QA - how do we get the devs to do enough testing?So we're going no-QA - how do we get the devs to do enough testing?
So we're going no-QA - how do we get the devs to do enough testing?
Steve Wells
 

What's hot (20)

[webinar] Best of Breed: Successful Test Automation Practices from Innovative...
[webinar] Best of Breed: Successful Test Automation Practices from Innovative...[webinar] Best of Breed: Successful Test Automation Practices from Innovative...
[webinar] Best of Breed: Successful Test Automation Practices from Innovative...
 
How to Leverage XCUITest for Continuous Testing
How to Leverage XCUITest for Continuous TestingHow to Leverage XCUITest for Continuous Testing
How to Leverage XCUITest for Continuous Testing
 
Real Testing Scenario Strategy Practical TestOps Presentation
Real Testing Scenario Strategy Practical TestOps PresentationReal Testing Scenario Strategy Practical TestOps Presentation
Real Testing Scenario Strategy Practical TestOps Presentation
 
10 Benefits of Automated Testing
10 Benefits of Automated Testing10 Benefits of Automated Testing
10 Benefits of Automated Testing
 
Testing Tools with AI
Testing Tools with AITesting Tools with AI
Testing Tools with AI
 
Bringing Quality Design Systems to Life with Storybook & Applitools
Bringing Quality Design Systems to Life with Storybook & ApplitoolsBringing Quality Design Systems to Life with Storybook & Applitools
Bringing Quality Design Systems to Life with Storybook & Applitools
 
Tales from the Dark Side: Ori Bendet Selenium Conference India 2016
Tales from the Dark Side: Ori Bendet Selenium Conference India 2016Tales from the Dark Side: Ori Bendet Selenium Conference India 2016
Tales from the Dark Side: Ori Bendet Selenium Conference India 2016
 
Kristian Karl - Experiences of Test Automation at Spotify - EuroSTAR 2013
Kristian Karl - Experiences of Test Automation at Spotify - EuroSTAR 2013Kristian Karl - Experiences of Test Automation at Spotify - EuroSTAR 2013
Kristian Karl - Experiences of Test Automation at Spotify - EuroSTAR 2013
 
Testing for Logic App Solutions | Integration Monday
Testing for Logic App Solutions | Integration MondayTesting for Logic App Solutions | Integration Monday
Testing for Logic App Solutions | Integration Monday
 
Top 5 Automation Challenges Webinar
Top 5 Automation Challenges WebinarTop 5 Automation Challenges Webinar
Top 5 Automation Challenges Webinar
 
How to Measure Success in Continuous Testing by Fernando Vidal and Amir Rozen...
How to Measure Success in Continuous Testing by Fernando Vidal and Amir Rozen...How to Measure Success in Continuous Testing by Fernando Vidal and Amir Rozen...
How to Measure Success in Continuous Testing by Fernando Vidal and Amir Rozen...
 
Make the Shift from Manual to Automation with Open Source
Make the Shift from Manual to Automation with Open SourceMake the Shift from Manual to Automation with Open Source
Make the Shift from Manual to Automation with Open Source
 
Android testing
Android testingAndroid testing
Android testing
 
Start Your Automation Journey With Rapise
Start Your Automation Journey With Rapise Start Your Automation Journey With Rapise
Start Your Automation Journey With Rapise
 
SauceCon 2017: Building a Continuous Delivery Pipeline with Testing in Mind
SauceCon 2017: Building a Continuous Delivery Pipeline with Testing in MindSauceCon 2017: Building a Continuous Delivery Pipeline with Testing in Mind
SauceCon 2017: Building a Continuous Delivery Pipeline with Testing in Mind
 
10 Emerging Test Frameworks for Cross Browser Testing
10 Emerging Test Frameworks for Cross Browser Testing10 Emerging Test Frameworks for Cross Browser Testing
10 Emerging Test Frameworks for Cross Browser Testing
 
Building Resilient Automated UI Tests for Cloud Applications using Scripless ...
Building Resilient Automated UI Tests for Cloud Applications using Scripless ...Building Resilient Automated UI Tests for Cloud Applications using Scripless ...
Building Resilient Automated UI Tests for Cloud Applications using Scripless ...
 
The four generations of test automation
The four generations of test automationThe four generations of test automation
The four generations of test automation
 
End-to-End Test Automation for Both Horizontal and Vertical Scale
End-to-End Test Automation for Both Horizontal and Vertical ScaleEnd-to-End Test Automation for Both Horizontal and Vertical Scale
End-to-End Test Automation for Both Horizontal and Vertical Scale
 
So we're going no-QA - how do we get the devs to do enough testing?
So we're going no-QA - how do we get the devs to do enough testing?So we're going no-QA - how do we get the devs to do enough testing?
So we're going no-QA - how do we get the devs to do enough testing?
 

Viewers also liked

KeytorcTestTalks #11 - Duygu Onaral, Agile QA'in rolü
KeytorcTestTalks #11 - Duygu Onaral, Agile QA'in rolüKeytorcTestTalks #11 - Duygu Onaral, Agile QA'in rolü
KeytorcTestTalks #11 - Duygu Onaral, Agile QA'in rolü
Keytorc Software Testing Services
 
Testistanbul 2016 - Keynote: "Enterprise Challenges of Test Data" by Rex Black
Testistanbul 2016 - Keynote: "Enterprise Challenges of Test Data" by Rex BlackTestistanbul 2016 - Keynote: "Enterprise Challenges of Test Data" by Rex Black
Testistanbul 2016 - Keynote: "Enterprise Challenges of Test Data" by Rex Black
Turkish Testing Board
 
KeytorcTestTalks #11 - Serkan Akoğlanoğlu, Release Management vs Test Management
KeytorcTestTalks #11 - Serkan Akoğlanoğlu, Release Management vs Test ManagementKeytorcTestTalks #11 - Serkan Akoğlanoğlu, Release Management vs Test Management
KeytorcTestTalks #11 - Serkan Akoğlanoğlu, Release Management vs Test ManagementKeytorc Software Testing Services
 
ISTQB / ISEB Foundation Exam Practice
ISTQB / ISEB Foundation Exam PracticeISTQB / ISEB Foundation Exam Practice
ISTQB / ISEB Foundation Exam PracticeYogindernath Gupta
 
KeytorcTestTalks #11 - Onur Başkirt, Agile Test Management with Testrail
KeytorcTestTalks #11 - Onur Başkirt, Agile Test Management with Testrail KeytorcTestTalks #11 - Onur Başkirt, Agile Test Management with Testrail
KeytorcTestTalks #11 - Onur Başkirt, Agile Test Management with Testrail Keytorc Software Testing Services
 
EbruKazaskeroglu_CV2016_ENG.PDF
EbruKazaskeroglu_CV2016_ENG.PDFEbruKazaskeroglu_CV2016_ENG.PDF
EbruKazaskeroglu_CV2016_ENG.PDFEbru Kazaskeroglu
 
ISTQB / ISEB Foundation Exam Practice -1
ISTQB / ISEB Foundation Exam Practice -1ISTQB / ISEB Foundation Exam Practice -1
ISTQB / ISEB Foundation Exam Practice -1Yogindernath Gupta
 
Keytorc Proje Ekibi Zubizu Sunumu - Emirhan Şen
Keytorc Proje Ekibi Zubizu Sunumu - Emirhan ŞenKeytorc Proje Ekibi Zubizu Sunumu - Emirhan Şen
Keytorc Proje Ekibi Zubizu Sunumu - Emirhan Şen
Keytorc Software Testing Services
 
Istqb ctfl-series - Black Box Testing
Istqb ctfl-series - Black Box TestingIstqb ctfl-series - Black Box Testing
Istqb ctfl-series - Black Box Testing
Disha Srivastava
 
İyi Bir Test Uzmanı Olmak İçin...
İyi Bir Test Uzmanı Olmak İçin...İyi Bir Test Uzmanı Olmak İçin...
İyi Bir Test Uzmanı Olmak İçin...
Keytorc Software Testing Services
 
Testistanbul 2016 - Keynote: "Performance Testing of Big Data" by Roland Leusden
Testistanbul 2016 - Keynote: "Performance Testing of Big Data" by Roland LeusdenTestistanbul 2016 - Keynote: "Performance Testing of Big Data" by Roland Leusden
Testistanbul 2016 - Keynote: "Performance Testing of Big Data" by Roland Leusden
Turkish Testing Board
 
Keynote Systems - Mobile Solutions Overview Presentation
Keynote Systems - Mobile Solutions Overview PresentationKeynote Systems - Mobile Solutions Overview Presentation
Keynote Systems - Mobile Solutions Overview Presentationvprathap
 
ISTQB / ISEB Foundation Exam Practice - 2
ISTQB / ISEB Foundation Exam Practice - 2ISTQB / ISEB Foundation Exam Practice - 2
ISTQB / ISEB Foundation Exam Practice - 2Yogindernath Gupta
 
KeytorcTestTalks #11 - Berk Dülger, DevOps Tactical Adaption Theory
KeytorcTestTalks #11 - Berk Dülger, DevOps Tactical Adaption TheoryKeytorcTestTalks #11 - Berk Dülger, DevOps Tactical Adaption Theory
KeytorcTestTalks #11 - Berk Dülger, DevOps Tactical Adaption TheoryKeytorc Software Testing Services
 
Keytorc Proje Ekibi Zubizu Sunumu - Ozan İlhan
Keytorc Proje Ekibi Zubizu Sunumu - Ozan İlhanKeytorc Proje Ekibi Zubizu Sunumu - Ozan İlhan
Keytorc Proje Ekibi Zubizu Sunumu - Ozan İlhan
Keytorc Software Testing Services
 
Introduction to ISTQB & ISEB Certifications
Introduction to ISTQB & ISEB CertificationsIntroduction to ISTQB & ISEB Certifications
Introduction to ISTQB & ISEB Certifications
Yogindernath Gupta
 
ISTQB Foundation Level: Why, Why Not and How?
ISTQB Foundation Level: Why, Why Not and How?ISTQB Foundation Level: Why, Why Not and How?
ISTQB Foundation Level: Why, Why Not and How?
OdessaQA
 
Keytorc Proje Ekibi Zubizu Sunumu - Miray Doğan
Keytorc Proje Ekibi Zubizu Sunumu - Miray DoğanKeytorc Proje Ekibi Zubizu Sunumu - Miray Doğan
Keytorc Proje Ekibi Zubizu Sunumu - Miray Doğan
Keytorc Software Testing Services
 
ISTQB / ISEB Foundation Exam Practice - 6
ISTQB / ISEB Foundation Exam Practice - 6ISTQB / ISEB Foundation Exam Practice - 6
ISTQB / ISEB Foundation Exam Practice - 6
Yogindernath Gupta
 
Test Automation - Keytorc Approach
Test Automation - Keytorc Approach Test Automation - Keytorc Approach
Test Automation - Keytorc Approach
Keytorc Software Testing Services
 

Viewers also liked (20)

KeytorcTestTalks #11 - Duygu Onaral, Agile QA'in rolü
KeytorcTestTalks #11 - Duygu Onaral, Agile QA'in rolüKeytorcTestTalks #11 - Duygu Onaral, Agile QA'in rolü
KeytorcTestTalks #11 - Duygu Onaral, Agile QA'in rolü
 
Testistanbul 2016 - Keynote: "Enterprise Challenges of Test Data" by Rex Black
Testistanbul 2016 - Keynote: "Enterprise Challenges of Test Data" by Rex BlackTestistanbul 2016 - Keynote: "Enterprise Challenges of Test Data" by Rex Black
Testistanbul 2016 - Keynote: "Enterprise Challenges of Test Data" by Rex Black
 
KeytorcTestTalks #11 - Serkan Akoğlanoğlu, Release Management vs Test Management
KeytorcTestTalks #11 - Serkan Akoğlanoğlu, Release Management vs Test ManagementKeytorcTestTalks #11 - Serkan Akoğlanoğlu, Release Management vs Test Management
KeytorcTestTalks #11 - Serkan Akoğlanoğlu, Release Management vs Test Management
 
ISTQB / ISEB Foundation Exam Practice
ISTQB / ISEB Foundation Exam PracticeISTQB / ISEB Foundation Exam Practice
ISTQB / ISEB Foundation Exam Practice
 
KeytorcTestTalks #11 - Onur Başkirt, Agile Test Management with Testrail
KeytorcTestTalks #11 - Onur Başkirt, Agile Test Management with Testrail KeytorcTestTalks #11 - Onur Başkirt, Agile Test Management with Testrail
KeytorcTestTalks #11 - Onur Başkirt, Agile Test Management with Testrail
 
EbruKazaskeroglu_CV2016_ENG.PDF
EbruKazaskeroglu_CV2016_ENG.PDFEbruKazaskeroglu_CV2016_ENG.PDF
EbruKazaskeroglu_CV2016_ENG.PDF
 
ISTQB / ISEB Foundation Exam Practice -1
ISTQB / ISEB Foundation Exam Practice -1ISTQB / ISEB Foundation Exam Practice -1
ISTQB / ISEB Foundation Exam Practice -1
 
Keytorc Proje Ekibi Zubizu Sunumu - Emirhan Şen
Keytorc Proje Ekibi Zubizu Sunumu - Emirhan ŞenKeytorc Proje Ekibi Zubizu Sunumu - Emirhan Şen
Keytorc Proje Ekibi Zubizu Sunumu - Emirhan Şen
 
Istqb ctfl-series - Black Box Testing
Istqb ctfl-series - Black Box TestingIstqb ctfl-series - Black Box Testing
Istqb ctfl-series - Black Box Testing
 
İyi Bir Test Uzmanı Olmak İçin...
İyi Bir Test Uzmanı Olmak İçin...İyi Bir Test Uzmanı Olmak İçin...
İyi Bir Test Uzmanı Olmak İçin...
 
Testistanbul 2016 - Keynote: "Performance Testing of Big Data" by Roland Leusden
Testistanbul 2016 - Keynote: "Performance Testing of Big Data" by Roland LeusdenTestistanbul 2016 - Keynote: "Performance Testing of Big Data" by Roland Leusden
Testistanbul 2016 - Keynote: "Performance Testing of Big Data" by Roland Leusden
 
Keynote Systems - Mobile Solutions Overview Presentation
Keynote Systems - Mobile Solutions Overview PresentationKeynote Systems - Mobile Solutions Overview Presentation
Keynote Systems - Mobile Solutions Overview Presentation
 
ISTQB / ISEB Foundation Exam Practice - 2
ISTQB / ISEB Foundation Exam Practice - 2ISTQB / ISEB Foundation Exam Practice - 2
ISTQB / ISEB Foundation Exam Practice - 2
 
KeytorcTestTalks #11 - Berk Dülger, DevOps Tactical Adaption Theory
KeytorcTestTalks #11 - Berk Dülger, DevOps Tactical Adaption TheoryKeytorcTestTalks #11 - Berk Dülger, DevOps Tactical Adaption Theory
KeytorcTestTalks #11 - Berk Dülger, DevOps Tactical Adaption Theory
 
Keytorc Proje Ekibi Zubizu Sunumu - Ozan İlhan
Keytorc Proje Ekibi Zubizu Sunumu - Ozan İlhanKeytorc Proje Ekibi Zubizu Sunumu - Ozan İlhan
Keytorc Proje Ekibi Zubizu Sunumu - Ozan İlhan
 
Introduction to ISTQB & ISEB Certifications
Introduction to ISTQB & ISEB CertificationsIntroduction to ISTQB & ISEB Certifications
Introduction to ISTQB & ISEB Certifications
 
ISTQB Foundation Level: Why, Why Not and How?
ISTQB Foundation Level: Why, Why Not and How?ISTQB Foundation Level: Why, Why Not and How?
ISTQB Foundation Level: Why, Why Not and How?
 
Keytorc Proje Ekibi Zubizu Sunumu - Miray Doğan
Keytorc Proje Ekibi Zubizu Sunumu - Miray DoğanKeytorc Proje Ekibi Zubizu Sunumu - Miray Doğan
Keytorc Proje Ekibi Zubizu Sunumu - Miray Doğan
 
ISTQB / ISEB Foundation Exam Practice - 6
ISTQB / ISEB Foundation Exam Practice - 6ISTQB / ISEB Foundation Exam Practice - 6
ISTQB / ISEB Foundation Exam Practice - 6
 
Test Automation - Keytorc Approach
Test Automation - Keytorc Approach Test Automation - Keytorc Approach
Test Automation - Keytorc Approach
 

Similar to Testistanbul 2016 - Keynote: "The Story of Appium" by Dan Cuellar

Starting an Open Source Project: 0-100k Users - China Mobile Summit 2015 - EN
Starting an Open Source Project: 0-100k Users - China Mobile Summit 2015 - ENStarting an Open Source Project: 0-100k Users - China Mobile Summit 2015 - EN
Starting an Open Source Project: 0-100k Users - China Mobile Summit 2015 - EN
Dan Cuellar
 
Live Panel: Appium Core Committers Answer Your Questions
Live Panel: Appium Core Committers Answer Your Questions		Live Panel: Appium Core Committers Answer Your Questions
Live Panel: Appium Core Committers Answer Your Questions
Sauce Labs
 
Selenium Camp 2016
Selenium Camp 2016Selenium Camp 2016
Selenium Camp 2016
Dan Cuellar
 
14 Habits of Great SQL Developers
14 Habits of Great SQL Developers14 Habits of Great SQL Developers
14 Habits of Great SQL Developers
Ike Ellis
 
Open Source Building Career and Competency
Open Source Building Career and CompetencyOpen Source Building Career and Competency
Open Source Building Career and Competency
Krishna-Kumar
 
Intro to open source - 101 presentation
Intro to open source - 101 presentationIntro to open source - 101 presentation
Intro to open source - 101 presentation
Javier Perez
 
Guide to open source
Guide to open source Guide to open source
Guide to open source
Javier Perez
 
SlideShare culture
SlideShare cultureSlideShare culture
SlideShare culture
Sylvain Kalache
 
LCA14: LCA14-110: FLOSS Training
LCA14: LCA14-110: FLOSS TrainingLCA14: LCA14-110: FLOSS Training
LCA14: LCA14-110: FLOSS Training
Linaro
 
It's XP Stupid (2019)
It's XP Stupid (2019)It's XP Stupid (2019)
It's XP Stupid (2019)
Mike Harris
 
Mix-IT - Des Produits avec des Equipes Distribuées
Mix-IT - Des Produits avec des Equipes DistribuéesMix-IT - Des Produits avec des Equipes Distribuées
Mix-IT - Des Produits avec des Equipes Distribuées
Alexis Monville
 
CodeIgniter for Startups, cicon2010
CodeIgniter for Startups, cicon2010CodeIgniter for Startups, cicon2010
CodeIgniter for Startups, cicon2010
Joel Gascoigne
 
How we build project for Open Source
How we build project for Open SourceHow we build project for Open Source
How we build project for Open Source
Alexander Zayats
 
Ct summer 2013
Ct summer 2013Ct summer 2013
Ct summer 2013cwatkins92
 
Oscon 2016: open source lessons from the todo group
Oscon 2016: open source lessons from the todo groupOscon 2016: open source lessons from the todo group
Oscon 2016: open source lessons from the todo group
Ben VanEvery
 
The Open Source Way - @JBCNConf Closing Keynote 2016
The Open Source Way - @JBCNConf Closing Keynote 2016The Open Source Way - @JBCNConf Closing Keynote 2016
The Open Source Way - @JBCNConf Closing Keynote 2016
Mauricio (Salaboy) Salatino
 
What every successful open source project needs
What every successful open source project needsWhat every successful open source project needs
What every successful open source project needs
Steven Francia
 
JustSharing: Lessons in Android development from Beamly
JustSharing: Lessons in Android development from BeamlyJustSharing: Lessons in Android development from Beamly
JustSharing: Lessons in Android development from Beamly
JG Hackers - JustGiving Software team
 
14 Habits of Great SQL Developers
14 Habits of Great SQL Developers14 Habits of Great SQL Developers
14 Habits of Great SQL Developers
Ike Ellis
 
Open Source Lessons from the TODO Group
Open Source Lessons from the TODO GroupOpen Source Lessons from the TODO Group
Open Source Lessons from the TODO Group
Chris Aniszczyk
 

Similar to Testistanbul 2016 - Keynote: "The Story of Appium" by Dan Cuellar (20)

Starting an Open Source Project: 0-100k Users - China Mobile Summit 2015 - EN
Starting an Open Source Project: 0-100k Users - China Mobile Summit 2015 - ENStarting an Open Source Project: 0-100k Users - China Mobile Summit 2015 - EN
Starting an Open Source Project: 0-100k Users - China Mobile Summit 2015 - EN
 
Live Panel: Appium Core Committers Answer Your Questions
Live Panel: Appium Core Committers Answer Your Questions		Live Panel: Appium Core Committers Answer Your Questions
Live Panel: Appium Core Committers Answer Your Questions
 
Selenium Camp 2016
Selenium Camp 2016Selenium Camp 2016
Selenium Camp 2016
 
14 Habits of Great SQL Developers
14 Habits of Great SQL Developers14 Habits of Great SQL Developers
14 Habits of Great SQL Developers
 
Open Source Building Career and Competency
Open Source Building Career and CompetencyOpen Source Building Career and Competency
Open Source Building Career and Competency
 
Intro to open source - 101 presentation
Intro to open source - 101 presentationIntro to open source - 101 presentation
Intro to open source - 101 presentation
 
Guide to open source
Guide to open source Guide to open source
Guide to open source
 
SlideShare culture
SlideShare cultureSlideShare culture
SlideShare culture
 
LCA14: LCA14-110: FLOSS Training
LCA14: LCA14-110: FLOSS TrainingLCA14: LCA14-110: FLOSS Training
LCA14: LCA14-110: FLOSS Training
 
It's XP Stupid (2019)
It's XP Stupid (2019)It's XP Stupid (2019)
It's XP Stupid (2019)
 
Mix-IT - Des Produits avec des Equipes Distribuées
Mix-IT - Des Produits avec des Equipes DistribuéesMix-IT - Des Produits avec des Equipes Distribuées
Mix-IT - Des Produits avec des Equipes Distribuées
 
CodeIgniter for Startups, cicon2010
CodeIgniter for Startups, cicon2010CodeIgniter for Startups, cicon2010
CodeIgniter for Startups, cicon2010
 
How we build project for Open Source
How we build project for Open SourceHow we build project for Open Source
How we build project for Open Source
 
Ct summer 2013
Ct summer 2013Ct summer 2013
Ct summer 2013
 
Oscon 2016: open source lessons from the todo group
Oscon 2016: open source lessons from the todo groupOscon 2016: open source lessons from the todo group
Oscon 2016: open source lessons from the todo group
 
The Open Source Way - @JBCNConf Closing Keynote 2016
The Open Source Way - @JBCNConf Closing Keynote 2016The Open Source Way - @JBCNConf Closing Keynote 2016
The Open Source Way - @JBCNConf Closing Keynote 2016
 
What every successful open source project needs
What every successful open source project needsWhat every successful open source project needs
What every successful open source project needs
 
JustSharing: Lessons in Android development from Beamly
JustSharing: Lessons in Android development from BeamlyJustSharing: Lessons in Android development from Beamly
JustSharing: Lessons in Android development from Beamly
 
14 Habits of Great SQL Developers
14 Habits of Great SQL Developers14 Habits of Great SQL Developers
14 Habits of Great SQL Developers
 
Open Source Lessons from the TODO Group
Open Source Lessons from the TODO GroupOpen Source Lessons from the TODO Group
Open Source Lessons from the TODO Group
 

Recently uploaded

Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 

Recently uploaded (20)

Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 

Testistanbul 2016 - Keynote: "The Story of Appium" by Dan Cuellar

  • 1. STARTING AN OPEN SOURCE PROJECT: 0 TO 100,000 USERS AN EX-MICROSOFTEE ACCIDENTALLY CREATES A WILDLY POPULAR OPEN SOURCE PROJECT
  • 2. 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
  • 3.
  • 4.
  • 5. THE MOST TERRIFYING 5 WORDS IN TESTING
  • 6. THIS ALL SOUNDS FAMILIAR
  • 8. 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
  • 9. 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
  • 10. HOW DOES IT WORK? UIAutomation / UIAutomator Appium Server Test Script JSON-Wire Protocol Request JSON-Wire Protocol Response HTTP
  • 11. @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
  • 12. @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
  • 13. 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
  • 15. 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
  • 16. TIME TO SPREAD THE WORD
  • 17. 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
  • 18. 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
  • 19. 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
  • 20. 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
  • 21.
  • 22. 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
  • 23. 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
  • 24.
  • 25. 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
  • 26. 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
  • 27. 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
  • 28. 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
  • 29.
  • 30.
  • 31. 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
  • 36. 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
  • 37. MORE INFO • Website: http://www.appium.io • Slack: appium.slack.com • Forum: discuss.appium.io • GitHub: http://www.github.com/appium/appium