16
Testing Ajax, Mobile Apps the Agile Way March 4, 2014 Frank Cohen, [email protected], (408) 364-5508

Testing Ajax, Mobile Apps the Agile Way

Embed Size (px)

DESCRIPTION

Testers are under big new pressure to use Agile software methods, Ajax environments, and Mobile environments. In this session, Frank Cohen of Appvance will show how Best Buy and PepsiCo cope with the changes: How they select test tools, test management tools, and create operational test data. See how this all fits together in an Agile environment using Continuous Integration, Source Repository, Test Scripting, and Agile Test Management for Agile Stories. Frank will show practical examples - to the code level - to deal with desktop browsers, iOS and Android native apps, WebKit and Mobile Web browsers.

Citation preview

Page 1: Testing Ajax, Mobile Apps the Agile Way

Testing Ajax, Mobile Apps the Agile Way

March 4, 2014 Frank Cohen, [email protected], (408) 364-5508

Page 2: Testing Ajax, Mobile Apps the Agile Way

PepsiCo Needs Deep Reach To Consumers

•High User Experience Web App Campaigns

• Do Us A Flavor, Every2Minutes using Ajax, Web, Flash/Flex,

•Broad Reach Mobile App Campaigns

• iOS/iPhone, iPad, Android, Tablets Native Apps

•Time-On-Page Using Publishing Platforms

• Tumblr, WordPress, Google+, Facebook, Twitter

•Partners Via ERP, Workflow, Integration Platforms

• Oracle, TIBCO, IBM, Microsoft, Software AG, Redhat BPM, EMS, MQ

Page 3: Testing Ajax, Mobile Apps the Agile Way

Testers Are Under Big New Pressure

•Agile Software Methods

•Ajax Environments

•Mixed Mobile Environments

“The Business Managers Tell Us They Need 1000 VUs in 10 Mins”

“The Devs used JMeter”

“The App Runs on WebKit Browsers and Android Native”

Page 4: Testing Ajax, Mobile Apps the Agile Way

How Does It All Fit Together

•Agile Environment featuring Agile Stories

• Story < UseCase < Test < Schedule < Deploy < Build

• Continuous Integration, Source Repository, Test Scripting, Deploy Manager, and Agile Test Management

• CloudBees, Travis CI+Deploy, JMeter, Rally, Appvance

•Select Test Tools, Test Management Tools, And Create Operational Test Data

Page 5: Testing Ajax, Mobile Apps the Agile Way

Test Runtime Architecture

Appvance Performance Cloud

Virtualized Environment

Shared ServicesEnvironment

AppvanceController

Map Story to TestsDeploy to Cloud

Log Results

Test Repository

Clear

Continuous Integration

JenkinsDevelopers

Business,DevOps

Test Management

Clear

Instance 2

Instance 1

BrowserChrome, IE

App Under Test

DPL RepositoryOracle

Scalability Index

Dashboard

Results RepositoryOracle

DriverSOAP, REST

Test InjectorScript Runner, Monitor, DPL

Test InjectorScript Runner, Monitor, DPL

Service Under Test

App Under Test

Service Under Test

BrowserChrome, IE

DriverSOAP, REST

Aric New User SLA WarningAverage perf: 32 Seconds

Page 6: Testing Ajax, Mobile Apps the Agile Way

Modern Deployment Requires Modern Testing

•Desktop browsers, iOS and Android native apps, WebKit and Mobile Web browsers

•End-To-End means HTTP Protocol level testing

•Beginning-To-End means Driving The Entire App

•Combination Testing Surfaces Root Case To Bottlenecks

Page 7: Testing Ajax, Mobile Apps the Agile Way

The Hybrid Model

•End-To-End Component Testing at API/Protocol Level

•Beginning-to-End App Integration Testing

•Scalability Testing of End-User Experience

•Data Driven Tests from live operational data sources

•Functional Tests Repurposed To Performance Tests

•Validate Digital Agency Tests (normally not LoadRunner)

Page 8: Testing Ajax, Mobile Apps the Agile Way

Typical Solution Combines Process and Teams

•LoadRunner Best Practices for Ajax, Mobile

• Tool and license for LoadRunner team to do its own testing

• Train testers and business managers on Test Methodology

•Consulting Practice, Integration Expertise

• Build upon the tools

•Identify Requirements for Digital Agencies, Product Teams

• 10-15 best practices required by digital agencies for app development

• Server Configuration Requirements Document

• SLA Requirements Definition for Publishing PAAS Providers

Page 9: Testing Ajax, Mobile Apps the Agile Way

Missing Integration Expertise

•App Integration Bridges Digital Agencies

Agency Architecture

Diagram

Host Implements

Frank: “Where’s the Node.js load balancer?”

Host: “Oh, We missed that.”

Page 10: Testing Ajax, Mobile Apps the Agile Way

Digital Agencies Making Same Mistakes

•Frank asks: “Why is the deployed app not accepting 13 digit cap codes?” Agency: “We missed that.”

•Frank asks: “Why is network limiting throughput to PHP requests to Node.js?” Host: “The F5 load balancer does that by design. We’ll remove it.”

•Frank asks: “Does the delivered app have testing APIs?” Agency: “We will write some.”

Page 11: Testing Ajax, Mobile Apps the Agile Way

Mistakes Happen At App Integration Time

•Frank asks: “How could more than 1 person log-in per second using Gigya?” Gigya: “Oh, we didn’t think of that.”

•Frank asks: “Why isn’t the Log In service scalable above 100 log-ins per second?” Agency: “You’re running it on Windows, all our experience is on Linux.” Host: “We don’t know.”

•Frank asks: “Why is Apache set to only use 25 worker threads, when the app needs hundreds?”

Page 12: Testing Ajax, Mobile Apps the Agile Way

Example Architecture - Integrated App

Distributed Edge Cache

Browser

App Web 1Apache, PHP, Zend

MySQL MasterUtility

Apache, PHPEmail Services

NodeJSBid History

NodeJSView Counts

Load Balancer Load Balancer

MySQL Read

MySQL Read

Load Balancer

Page 13: Testing Ajax, Mobile Apps the Agile Way

App Integration

App Integration Test Readiness Requirements

App code from Agency

Installation at Host

Voting Service (SAAS)

Configured

Preference Center

Configured

Database Created and Populated

Apache, PHP, Zend, .NET,

Java optimized

Last Minute Changes from the Business

Number of Server

Machines Identified and

Provided

Page 14: Testing Ajax, Mobile Apps the Agile Way

Best Practices for LoadRunner on Ajax, Mobile

•Beginning-to-End App Integration Testing

• Run Ajax App In Real Browsers: Ie, Firefox, Chrome, Safari, Webkit, Mobile Web. Tests 100% Of The End-User Experience.

• LoadRunner TruClient does not work reliably with Ajax apps, does not test on Chrome, Safari, WebKit, and older IE, Firefox

• LoadRunner works great for end-to-end and protocol level tests. For example, making HTTP/JSON requests to a Node.js server through a load balancer

•Combine Beginning-To-End and LoadRunner for test of app’s integration at app and protocol tiers

Page 15: Testing Ajax, Mobile Apps the Agile Way

Models That May Work

•Product and License - Augment What You Already Have, Teach and Train your team

•Services, Experts in Load Runner and other products, need outsource, short staff

•We know your product, we know your tools, we know our tools, we know what reduces app performance

•Maestro Service between agencies

•App Integration and Performance Test Services

Page 16: Testing Ajax, Mobile Apps the Agile Way

Appvance

•When You Build Modern Apps And Wonder “How Risky Is That App Launch Going To Be?”

•Call Us At (855) 254-1164 Or Email Us [email protected] We Will Show You