23.03.2013 Views

Agile Performance Testing - Testing Experience

Agile Performance Testing - Testing Experience

Agile Performance Testing - Testing Experience

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Mobile <strong>Testing</strong> - A Toolkit for Advanced <strong>Testing</strong> -<br />

The Techie, The Simple and The Obvious<br />

The field of mobile1 testing poses unique challenges to the advanced<br />

software tester given its diversity and fast change pace.<br />

It is a world of many devices, ever changing operating systems,<br />

APIs, software components and screen resolutions as well as evolving<br />

customer demands, device designs and mobile network carriers.<br />

These characteristics of the Mobile software world aggravate<br />

the regular challenges faced by software testers. <strong>Testing</strong> has to<br />

be performed in a small window of time - between the tight and<br />

much abused deadlines of the coders and the short planned time<br />

to market of the marketing department. In order to cope with the<br />

high levels of uncertainty and to perform our work with high certainty<br />

(covering the important things) and deliver reproducible<br />

results, we must establish a stable testing platform with which<br />

to navigate through the stormy waters of new mobile platforms,<br />

application releases and tight schedules<br />

While testing world-leading mobile applications in our work<br />

places, our teams have developed over the years (since 2000)<br />

various techniques which allow us to cope with short release<br />

timelines, while only minimally compromising the continuous<br />

quality improvement for which the our products are known. It is<br />

important to remember that ‚testing technology‘ isn‘t just about<br />

the hardware/software technology used, but also about the techniques<br />

of the testing, i.e. the methodology and the way things are<br />

done.<br />

In this article we aim to present a range of useful techniques<br />

(though not a comprehensive one) we have gathered over the years<br />

in our SQA teams. We hope to offer a simple toolkit that will<br />

provide a jumpstart to making the life of mobile testers easier<br />

and help focus on the important things - the “bugs’ hideouts” -<br />

which lay behind the platforms’ built-in impediments.<br />

The Techie - Pure technique tools<br />

Simulating real-world scenarios by means of configurable data<br />

manipulation.<br />

The communication protocols connecting clients with servers are<br />

routed to a proxy mediator in order to simulate various server responses<br />

to the mobile device.<br />

A growing portion of mobile applications aims to provide information<br />

to customers. Two kinds of information are usually provided:<br />

static information hard-coded into the client or online<br />

1 Phones, PDAs and Smartphones<br />

by Dario Uriel Estrin & Bernard Shai Lelchuk<br />

© iStockphoto.com/shironosov<br />

updated information. 2The backend systems provide updated information<br />

upon request. This information changes as a function<br />

of various parameters – reality-related and user- related. Testers<br />

can set the user-related parameters, check the reality- related<br />

ones, and see whether the resulting information/application<br />

behavior is correct. However, such methodology impedes them<br />

from testing all possible results as reality is reality, i.e. chaotic and<br />

unpredictable. For instance, testing an instant messaging mobile<br />

client will require testing interactions with other users, server responses,<br />

network problems, etc. The best way we came up with to<br />

cover the system-centric scenarios was ‘controlling the world’, i.e.<br />

simulating server responses according to real- world input/triggers/responses.<br />

Simulating a server’s response for a given request<br />

(response which is for itself a function of responses provided by<br />

another system) allows us to isolate the mobile client behavior<br />

from real- world input and to focus on inter-system testing.<br />

In our case the response to the mobile application was sent via a<br />

comma- delimited data stream from one of the servers. The testing<br />

team learned how the stream looks like and behaves. Later,<br />

we built a testing server environment which generates responses<br />

according to variables set by the tester (this could be done by manually<br />

manipulating a text file with values or getting an HTML<br />

page to pick values from and which creates the file for the tester).<br />

This resulted in a valid comma-delimited response that was fed<br />

to the mobile client to be tested. This allowed us full control of<br />

the data that in its turn triggered the various logical paths of the<br />

application. Being able to easily simulate any possible scenario<br />

helped discovering flaws in the system, which may not have been<br />

discovered, if we had to count on the uncontrolled real-world<br />

data that is the input to the servers and application.<br />

Technically, we routed the device to a ‘server’ that was getting the<br />

status from our testing environment:<br />

1. We configured the device for data connections via a PC machine<br />

or used a device simulator on a PC machine. 3 This allowed<br />

us to control the routing path of data networking.<br />

2. We manipulated the address of the servers which the client<br />

was looking for and routed it to the testing environment<br />

described above. This was done in the Windows ‚hosts‘ file<br />

(usually located in the ‚C:\WINDOWS\system32\drivers\etc‘<br />

2 Static information on client or server consists of two types of<br />

data. One which is totally static and never changes (e.g. the number<br />

of players in a soccer team), and the other which is rarely updated by<br />

an external source (e.g. the number of teams in the soccer league).<br />

3 In which case the connections are obviously routed via the PC<br />

too.<br />

10 The Magazine for Professional Testers www.testingexperience.com

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!