PLATFORM INDEPENDENT MOBILE DEVELOPMENT WITH JQUERY MOBILE AND APACHE CORDOVA (PHONEGAP) – GTMC3

Course Description

Participants in this three day class will learn how to build applications using jQuery Mobile and Apache Cordova that run on a variety of mobile platforms including iOS, Android and Windows Mobile. Discussion and labs will focus on the jQuery Mobile library and Apache Cordova.

^^

Duration

3 days

^^

Target Audience

Testers, test engineers, development managers, test managers and project managers who will be designing, managing, and performing the testing of mobile applications.

^^

Course Prerequisites

Some knowledge of HTML and JavaScript.

^^

Suggested Follow on Courses

There are a number of options of suitable follow-on courses, depending on your business needs. Please contact us for further details.

^^

Course Content

1. Testing Fundamentals Part I

Let’s walk through a scenario to understand what is involved

Basic Tests

Basic differences between Mobile and desktop or Web Applications

Thin Client

Network bandwidth

Device Resources

Navigation Differences

Performance Matrices

The common tests you should perform on this build

The next cycle of functional testing if the previous tests worked

Wait for responses from the development group

Some best practices

A program cannot be completely tested

The goal

The development team

Development Process

The Rational Unified Process

Inception Phase

Testing during this phase

Elaboration Phase

Example of a Use Case Diagram

Construction Phase

Software Development Life Cycle with the RUP

Testing during coding

Testing after integration

Performance Testing

Regression Test

A typical sequence

Typical FVT and SVT tests

2. Testing Fundamentals Part II

What is a bug?

Common types of bugs

Sample bug report – Simple

Sample bug report – complex

Best practices in bug reporting

Characteristics of a good problem report

Typical states that a bug goes through

The goals

Best Practices

Best practices

Best Practices

Sample bug state chart

3. Mobile Testing Overview

Native App Architecture

Mobile Web Sites Architecture

Unit Testing Applications

Function Testing Applications

Testing disk storage

Testing Network Access

Testing Location Based Services

Testing Telephony Services

4. Test Plan and Test Case Design

The requirements of a system

Document one – Use Case Document

UC01 Add a new appointment

UC01 Add a new appointment

UC01 Add a new appointment

UC01 Add a new appointment

Document 2 – Supplementary specifications

Knowing the testing priority

The Severity Scale

The priority scale

The likelihood scale

Priority of Coverage

An example

The test plan

The sections of the IEEE test plan template

The sections of the IEEE test plan template – continued

The sections of the IEEE test plan template – continued

The sections of the IEEE test plan template – continued

The sections of the IEEE test plan template – continued

Typical test team activities

The four types of tests

Beware of test escapes

Test Coverage Models

Test Coverage Models contd.

Test Coverage Models contd.

5. Testing Mobile Applications Part I

UI testing

Common problems with error messages

Common UI Errors

Functional Testing

New Items to consider for mobile

Gesture

Orientation

Accessories

Motion

Light

Location

Connectivity

Types of testing

Testing Data Storage

Testing application preferences.

Testing file storage.

Testing storage on SD card.

Testing for SQL database storage.

Testing for version upgrade and SQL schema change.

Help Testing

6. Testing Mobile Applications Part II

Things to test

Configuration Testing

Configurations to test

What to test?

Configuration variations

Miscellaneous Topics

Types of test run on high priority configurations

Types of test run on lower priority configurations

Performance Testing

For what type of user

For what task

Response time

CPU usage

Memory usage

7. Testing Mobile Web

Mostly similar to regular Web Applications

Unique test cases

Content missing in the mobile version

Embedded content not supported

Assuming there is a back button

Performance Testing

Load

Throughput

Throughput Curve

Saturation

The Significance of Throughput

Response Time

Response Time Curve

Response time at system saturation

Response time past the buckle point

Think Time

Performance Acceptance Criteria

Security Testing

Input Data Validation

Data Ownership Validation

SQL Injection Problem

Malicious File Execution Problem

Insecure Authentication Mechanism

Failure to Restrict URL Access Problem

Cross Site Scripting (XSS) Problem

Cross Site Request Forgery (CSRF) Problem

Buffer Overflow

8. Testing Common Mobile Security Threats

SANS Mobile Top 10

Insecure Data Storage

Weak Server Side Controls

Insufficient Transport Layer Protection

Client Side Injection

Poor Authorization and Authentication

Improper Session Handling

Security Decisions Via Untrusted Inputs

Side Channel Data Leakage

Broken Cryptography

Sensitive Information Disclosure

9. Test Reporting

Weekly Reports

Weekly Reports – continued

Testing cycle complete report

Test Tracking Spreadsheet

Tracking test coverage spreadsheet

Opened/closed chart

10. Mobile Application Testing Tools

Providers that host cloud-base phone banks for testing

Unit Testing using JUnit Framework

AVD emulator for Android

Witebox for iPhone

Testing Network Access

Emulator

Charles Proxy

MonkeyTalk

iPhoney

Mobile Web Testing

HP loadrunner and Winrunner

Summary 1. The Mobile Landscape

Device Proliferation

Mobile Web Applications

Native Applications

Hybrid Applications

2. The Stack

HTML 5

CSS

JavaScript

jQuery Mobile

Apache Cordova

3. The jQuery Mobile Toolkit

Anatomy of a Page

A Simple Application

4. Apache Cordova (PhoneGap)

The Cordova Model

Packaging a Cordova Application

Cordova APIs

App Stores

5. Navigation

Links

Transitions

The Back Button

6. Dialogs

Linking

Close Behavior

7. UI Components

Toolbars

Headers/Footers

Navigation Bars

8. jQuery Fundamentals

The jQuery Function

Wrapper chaining

Selectors

.live()

Document Events

9. Events

Page Events

Gestures

Orientation Events

Virtual Clicks

10. DOM Manipulation

Selectors

Psuedo-selectors

Appending and Removing Elements

Best Practices

11. Buttons

Inline Buttons

Grouping

Icon only Buttons

12. Lists and Grids

Visual Separators

Interactive Rows

Images

Grids

13. JSON

JavaScript Object Literals

Converting to JSON

Converting from JSON

14. Web SQL

Implementations

Creating a database

Storing Data

Queries

15. Forms

AJAX

Non-AJAX forms

Form elements

Mobile Widgets

16. Themes

Theme Roller

Editing Themes

Custom Transitions

17. Plugins

Building a Plugin

Tablet Plugins

18. Geolocation

The GPS

Sources of Location Data

Mapping Location

19. Device Information

Device Information API

Contacts

20. The File API

Reading a file

Writing a File

Directory Navigation

21. The Camera

Accessing the Camera

Displaying Images

22. The Accelerometer

What is an accelerometer

Accelerometer API

Shake event tracking

^^

See more Mobile Computing courses