The document discusses Appium, test-driven development, and continuous integration for mobile testing. It provides an overview of Appium, describing its philosophy of allowing tests to be written in any language without modifying the app. It then covers why organizations choose Appium, the tools used for mobile testing including Appium, Selenium, and frameworks like Page Object Model. It also discusses test-driven development and how continuous integration can automate the build, test and deployment process.
why an Opensea Clone Script might be your perfect match.pdf
Appium Test Driven Development and Continuous Integration
1.
T10
Mobile
Testing
5/11/17
11:15
Appium,
Test-‐Driven
Development,
and
Continuous
Integration
Presented
by:
James
Koch
Quilmont
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/
2.
James
Koch
James
Koch,
CTFL,
is
a
solutions
architect
for
Quilmont,
an
advanced
automation
firm,
based
in
Myrtle
Beach,
South
Carolina.
Starting
as
a
software
test
engineer
with
SiriusXM
Satellite
Radio,
James
worked
on
everything
from
their
mobile
application
to
regression
testing
on
CE
and
OEM
devices.
That
ignited
his
passion
for
testing
software
and
QA.
He
applies
his
operations
background
to
software
development,
working
with
agile
and
DevOps
practices.
James
understands
the
philosophies
for
automating
testing
and
is
well
versed
in
the
most
popular
frameworks,
including
Appium.
He
is
an
ISTQB
certified
software
tester
and
an
active
member
of
the
ASTQB.
3. Appium, Test Driven Development,
and Continuous Integration
Presented By:
James Koch, CTFL
4. ■ Since 2006:
◻ Consulting services on automated tools & QA processes
◻ 15 years experience in SDLC & test automation architecture
■ Quilmont Solutions specializes in Automated Testing, Software & Mobile App Development, and
Learning Management. We strive to provide organizations with a comprehensive testing
practice by fully utilizing industry leading software testing tools for mobile, web and desktop
applications.
■ Quilmont Solutions strives to solve software development/mobile app challenges with software
products and services. We identify and develop solutions to maximize productivity and
efficiency for both commercial and government organizations. We don’t only find the right
solution, but will also provide implementation, documentation and training & development
support.
Quilmont Solutions
5. Introduction
■ James Koch, CTFL:
◻ IT Solutions Architect
◻ Writer for Tech Beacon and http://www.swtestacademy.com/
◻ International Software Test Qualification Board (ISTQB)
7. Appium’s Philosophy
■ You shouldn't have to recompile your app or modify it in any way in order to
automate it
◻ iOS: Apple's UIAutomation
◻ Google's UiAutomator
■ You shouldn't be locked into a specific language or framework to write and run
your tests
■ A mobile automation framework shouldn't reinvent the wheel when it comes to
automation APIs
■ A mobile automation framework should be open source
11. The Page Object Model
■ Two directories in POM:
◻ Pages
■ Base Page
◻ Abstract- Contains any methods
◻ Sets up Driver and Page Factory Object
■ Application Page
◻ Documents any and all methods and objects for that page
◻ Tests
■ Test Base
◻ Abstract- lays out framework and the execution steps
■ Application Page Tests
◻ Abides by Test Base’s rules and calls methods from the Application Page
we wish to test
12. Test Driven Development
■ Testing while developing
■ Create a feature- run test
■ Create new feature- test both
■ Create new feature- test all three!
13. Continuous Integration
■ Process by which all the developers local working code base will
be merged to share with a common repository several times
during the product development.
■ Bundles important SDLC steps into a single automated and
repeatable process:
◻ Configuration management
◻ Compilation and Software builds
◻ Testing
◻ Deployment
14. Continuous Integration
Automated process that analyzes the validity of the code checked in:
■ Compile: Generating the executable files by linking the code and compiling after
■ Unit Testing: Writing unit tests, executing them, checking code coverage and reporting the results
■ Regression and Build Acceptance Testing: After all application code is developed and all unit tests
are performing optimally, a regression suite should be executed to assure all components work in unison
■ Deploy: Build the code and install it into a test/production environment.
■ Integration testing: Executing functional and performance tests in a production environment.
■ Report: Establishing the status of build by posting results to a central location
15. Continuous Integration
■ GitHub
◻ Source code repository
◻ Application Code
◻ Test Code
■ Jenkins
◻ CI Server
◻ Build Process
◻ Testing Process
◻ Deployment Process
16. Jenkins CI Process
1. Check iOS or Android project into Jenkins from GitHub
2. Verify if any changes were made to the application code
3. Start the Selenium Grid Hub
4. Start Selenium Grid Nodes with separate Appium instances for each physical device
5. Open and run the TestNG tests associated with each project and execute those tests
6. Produce HTML and TestNG reports of that particular run