INDIUM SOFTWARE
An Independent Software Testing Firm
MOBILE API TEST APPROACH
“Business Assurance through Quality Assurance”
© 2014 Indium Software
ENHANCING SOFTWARE QUALITY
Define API
2
 API stands for
 An API is a software-to-
software interface, not a user
interface.
 With APIs, applications talk to
each other without any user
knowledge or intervention.
 Implemented by writing
function calls in the program.
 API s has libraries from the
Providers.
© 2014 Indium Software
ENHANCING SOFTWARE QUALITY
How It Works ?
3
 Google Maps has one of the most popular
APIs on the internet and provides a good
example of their power.
 Face book allows developers through an API
to create ‘apps’ that have become one of the
main sources of entertainment on Face
book.
APPLICATION
BAPIAPPLICATION
A
Request
data
Retrieve data
© 2014 Indium Software
ENHANCING SOFTWARE QUALITY
Mobile API
4
 A mobile application will
talk to its backend APIs via
standard protocols.
 Principles- HTTP and REST
with Data Format- XML and
JSON respectively
 APIs may either be your own
or from any number of 3rd
parties
 which can be integrated by
calling them directly from
your application, or indirectly
via your API backend
© 2014 Indium Software
ENHANCING SOFTWARE QUALITY
Architecture
5
Cloud Server
DB
Application
Log
Web Application
Third Party SDK Android/IOS SDK
Application Development
© 2014 Indium Software
ENHANCING SOFTWARE QUALITY
Test Environment Setup
6
Mobile Apps
Web Apps
Cloud Server
© 2014 Indium Software
ENHANCING SOFTWARE QUALITY
Process Flow in Our Practices
7
API
OS to be
tested
1. ADT
2. Android Simulator SDK
3. Android Real Device
1. Xcode
2. Iphone Simulator
3. Iphone 5 Real Device
Testing Carried out
Boundary
Analysis
Functionality Exceptional Return value
based on input
condition
Does not return
anything
Test Log
If OS = ‘Android’ If OS = ‘IOS'
© 2014 Indium Software
ENHANCING SOFTWARE QUALITY
Challenges
8
Challenge 1: No
proper documents
were provided
Solution :
Based on the KT
session, gathered
the information to
work on the
application
Challenge 2:
Timelines
Solution:
Individually shared
the platform
Challenge 3: New
feature Guidelines
were not provided
Solution:
Get the knowledge
of new features
from the
developers through
skype
Challenge 4:
Verifying and
validating the
output in different
system is little
difficult for testers.
Solution: In-depth
understanding of
functional behavior
and sharing among
the team to have
deeper understand
of same
functionality on
different system.
Challenge5:
Exception
handling function
needs to utilized
and used properly.
Solution:Based of
Documentation,
various exception s
has been handled
with its own
exception handling
methods.
© 2014 Indium Software
ENHANCING SOFTWARE QUALITY
Types of Testing
9
Return the expected responses for
both expected and unexpected input.
Functionality works as expected
even with multiple concurrent clients
APIs aren’t vulnerable to common
attacks
Functional
Testing
Performance
Testing
Security
Testing
© 2014 Indium Software
ENHANCING SOFTWARE QUALITY
System Requirements
10
General
• Server - Cloud server
• Integrated Third party application - Face book, Twitter applications
• Development language - Android, Objective-c,HTML5
IOS
• Operating System :Mac OS X 10.8.4
• Developer Tools - Xcode 4.6.3, Iphone Simulator, Iphone 5(ios-
6.1.4) Real Device.
Android
• Operating System: Windows XP, 7 and 8.
• Developer Tools - Eclipse - ADT (v22.0.1), Android Simulator SDK
(15 or higher), Android Real Device (15 or higher).
© 2014 Indium Software
ENHANCING SOFTWARE QUALITY
In Our Practice
11
 Understand the exact business requirement and priorities it.
 Requirement traceability Matrix is created to provide Input Parameters .
 The Low Level and High Level test cases are documented.
 The Testing Process is carried out once the test case is signed off by Client.
© 2014 Indium Software
ENHANCING SOFTWARE QUALITY
Input Provided
12
• Acts as both a unique identifier and
a secret token for authentication
• unique to each userAPI Key
• Interact with the Google Cloud
Storage API
• Each project can be identified by
their unique project ID
Project ID
public class GlobalVariables {
public static String apiKey =
"ZGoweEpuVTlOVEl5T1RkbE5URmxOR0l3TXpSa09UWmhOakF3WW1JMEptRTljM0J5YVc
1ME9HbHZjMkZ3Y0NZ";
public static String projectId = "720196781908";
}
© 2014 Indium Software
ENHANCING SOFTWARE QUALITY
Android Manifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.netmera.androidpushdemo"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<!-- Used to connect Netmera Services -->
<uses-permission android:name="android.permission.INTERNET" />
<application
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
</application>
</manifest>
13
© 2014 Indium Software
ENHANCING SOFTWARE QUALITY
IOS XCODE
14
© 2014 Indium Software
ENHANCING SOFTWARE QUALITY
Pass ScreenShot
15
© 2014 Indium Software
ENHANCING SOFTWARE QUALITY
Failure ScreenShot
16
© 2014 Indium Software
ENHANCING SOFTWARE QUALITY
Key Take Away
17
© 2014 Indium Software
ENHANCING SOFTWARE QUALITY
18
Thank You
USA:
americas.sales@indiumsoft.com
EMEA & APAC:
apac.sales@indiumsoft.com
emea.sales@indiumsoft.com
INDIA:
sales@indiumsoft.com
Sunnyvale
Suite 210, 1250 Oakmead Parkway
Sunnyvale, CA – 94085.
Phone: +1(408) 501-8844
Fax: +1(408) 501-8808
Atlanta
Crown Office Suites
1870 The Exchange, Suite 100
Atlanta, GA 30339
Phone: +1 (678) 608-0809, +1(770) 989-7302
New Delhi
F-1/5 Okhla Industrial Area Phase-I,
New Delhi – 110 020.
Phone: +91-11-6613 0400
Bengaluru
SRS Plaza, No. 246, 2nd & 3rd Floor
13th Cross, Indira Nagar 2nd Stage
Bengaluru – 560 038.
Phone: +91-80-4914 7777
Chennai
VDS House
41, 2nd Floor, Cathedral Road
Chennai – 600 086.
Phone: +91-44-2811 6330
Fax: +91-44-4210 4033

Mobile api test approach

  • 1.
    INDIUM SOFTWARE An IndependentSoftware Testing Firm MOBILE API TEST APPROACH “Business Assurance through Quality Assurance”
  • 2.
    © 2014 IndiumSoftware ENHANCING SOFTWARE QUALITY Define API 2  API stands for  An API is a software-to- software interface, not a user interface.  With APIs, applications talk to each other without any user knowledge or intervention.  Implemented by writing function calls in the program.  API s has libraries from the Providers.
  • 3.
    © 2014 IndiumSoftware ENHANCING SOFTWARE QUALITY How It Works ? 3  Google Maps has one of the most popular APIs on the internet and provides a good example of their power.  Face book allows developers through an API to create ‘apps’ that have become one of the main sources of entertainment on Face book. APPLICATION BAPIAPPLICATION A Request data Retrieve data
  • 4.
    © 2014 IndiumSoftware ENHANCING SOFTWARE QUALITY Mobile API 4  A mobile application will talk to its backend APIs via standard protocols.  Principles- HTTP and REST with Data Format- XML and JSON respectively  APIs may either be your own or from any number of 3rd parties  which can be integrated by calling them directly from your application, or indirectly via your API backend
  • 5.
    © 2014 IndiumSoftware ENHANCING SOFTWARE QUALITY Architecture 5 Cloud Server DB Application Log Web Application Third Party SDK Android/IOS SDK Application Development
  • 6.
    © 2014 IndiumSoftware ENHANCING SOFTWARE QUALITY Test Environment Setup 6 Mobile Apps Web Apps Cloud Server
  • 7.
    © 2014 IndiumSoftware ENHANCING SOFTWARE QUALITY Process Flow in Our Practices 7 API OS to be tested 1. ADT 2. Android Simulator SDK 3. Android Real Device 1. Xcode 2. Iphone Simulator 3. Iphone 5 Real Device Testing Carried out Boundary Analysis Functionality Exceptional Return value based on input condition Does not return anything Test Log If OS = ‘Android’ If OS = ‘IOS'
  • 8.
    © 2014 IndiumSoftware ENHANCING SOFTWARE QUALITY Challenges 8 Challenge 1: No proper documents were provided Solution : Based on the KT session, gathered the information to work on the application Challenge 2: Timelines Solution: Individually shared the platform Challenge 3: New feature Guidelines were not provided Solution: Get the knowledge of new features from the developers through skype Challenge 4: Verifying and validating the output in different system is little difficult for testers. Solution: In-depth understanding of functional behavior and sharing among the team to have deeper understand of same functionality on different system. Challenge5: Exception handling function needs to utilized and used properly. Solution:Based of Documentation, various exception s has been handled with its own exception handling methods.
  • 9.
    © 2014 IndiumSoftware ENHANCING SOFTWARE QUALITY Types of Testing 9 Return the expected responses for both expected and unexpected input. Functionality works as expected even with multiple concurrent clients APIs aren’t vulnerable to common attacks Functional Testing Performance Testing Security Testing
  • 10.
    © 2014 IndiumSoftware ENHANCING SOFTWARE QUALITY System Requirements 10 General • Server - Cloud server • Integrated Third party application - Face book, Twitter applications • Development language - Android, Objective-c,HTML5 IOS • Operating System :Mac OS X 10.8.4 • Developer Tools - Xcode 4.6.3, Iphone Simulator, Iphone 5(ios- 6.1.4) Real Device. Android • Operating System: Windows XP, 7 and 8. • Developer Tools - Eclipse - ADT (v22.0.1), Android Simulator SDK (15 or higher), Android Real Device (15 or higher).
  • 11.
    © 2014 IndiumSoftware ENHANCING SOFTWARE QUALITY In Our Practice 11  Understand the exact business requirement and priorities it.  Requirement traceability Matrix is created to provide Input Parameters .  The Low Level and High Level test cases are documented.  The Testing Process is carried out once the test case is signed off by Client.
  • 12.
    © 2014 IndiumSoftware ENHANCING SOFTWARE QUALITY Input Provided 12 • Acts as both a unique identifier and a secret token for authentication • unique to each userAPI Key • Interact with the Google Cloud Storage API • Each project can be identified by their unique project ID Project ID public class GlobalVariables { public static String apiKey = "ZGoweEpuVTlOVEl5T1RkbE5URmxOR0l3TXpSa09UWmhOakF3WW1JMEptRTljM0J5YVc 1ME9HbHZjMkZ3Y0NZ"; public static String projectId = "720196781908"; }
  • 13.
    © 2014 IndiumSoftware ENHANCING SOFTWARE QUALITY Android Manifest.xml <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.netmera.androidpushdemo" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15" /> <!-- Used to connect Netmera Services --> <uses-permission android:name="android.permission.INTERNET" /> <application <activity android:name=".MainActivity" android:label="@string/app_name" > </application> </manifest> 13
  • 14.
    © 2014 IndiumSoftware ENHANCING SOFTWARE QUALITY IOS XCODE 14
  • 15.
    © 2014 IndiumSoftware ENHANCING SOFTWARE QUALITY Pass ScreenShot 15
  • 16.
    © 2014 IndiumSoftware ENHANCING SOFTWARE QUALITY Failure ScreenShot 16
  • 17.
    © 2014 IndiumSoftware ENHANCING SOFTWARE QUALITY Key Take Away 17
  • 18.
    © 2014 IndiumSoftware ENHANCING SOFTWARE QUALITY 18 Thank You USA: americas.sales@indiumsoft.com EMEA & APAC: apac.sales@indiumsoft.com emea.sales@indiumsoft.com INDIA: sales@indiumsoft.com Sunnyvale Suite 210, 1250 Oakmead Parkway Sunnyvale, CA – 94085. Phone: +1(408) 501-8844 Fax: +1(408) 501-8808 Atlanta Crown Office Suites 1870 The Exchange, Suite 100 Atlanta, GA 30339 Phone: +1 (678) 608-0809, +1(770) 989-7302 New Delhi F-1/5 Okhla Industrial Area Phase-I, New Delhi – 110 020. Phone: +91-11-6613 0400 Bengaluru SRS Plaza, No. 246, 2nd & 3rd Floor 13th Cross, Indira Nagar 2nd Stage Bengaluru – 560 038. Phone: +91-80-4914 7777 Chennai VDS House 41, 2nd Floor, Cathedral Road Chennai – 600 086. Phone: +91-44-2811 6330 Fax: +91-44-4210 4033