TECHNOLOGY INFRASTRUCTURE
AND SYSTEM IMPLEMENTATION
Topic - 8
Software Testing-Specialized Testing for Mobility
UNIVERSITAS BINA NUSANTARA
SUBJECT MATTER EXPERT
Dr. Dina Fitria Murad, S.Kom., M.Kom
LEARNING OUTCOMES
LO 3
Analysis of network infrastructure, networking and
documentation
OUTLINE
User Experience Testing
Issue.
Web Application Testing.
USER EXPERIENCE TESTING
ISSUE
GESTURE TESTING
Touch screens are ubiquitous on mobile devices,
and, as a consequence, developers have added
multitouch gestures (e.g., swiping, zooming,
scrolling, selection) as a means of augmenting the
user interaction possibilities without losing screen
real estate.
Figure 21.1 shows several commonly found
gestures on mobile apps. Unfortunately, gesture-
intensive interfaces present a number of review
and testing challenges. Paper prototypes,
sometimes developed as part of the design,
cannot be used to adequately review the
adequacy or efficacy of gestures.
When testing is initiated, it’s difficult to use
automated tools to test touch or gesture interface
actions. The location of screen objects is affected
by screen size and resolution, as well as previous
user actions, making accurate gesture testing
difficult
And even as testing is conducted, gestures are
hard to log accurately for replay. Instead, testers
need to create test framework programs that
make calls to functions that simulate gesture
GESTURE TESTING
Accessibility testing for visually impaired users is challenging because
gesture interfaces typically do not provide either tactile or auditory
feedback.
Usability and accessibility testing for gestures become very important
for ubiquitous devices like smartphones. It may be important to test the
operation of the device when gesture operations are not available.
Ideally, user stories or use cases are written in sufficient detail to allow
their use as the basis for test scripts. It is important to recruit
representative users and include all targeted devices to take screen
differences into account when testing gestures with a Mobile App
Finally, testers should ensure that the gestures conform to the
standards and contexts set for the mobile device or platform
VIRTUAL KEYBOARD INPUT
Because a virtual keyboard may obscure part of the display screen when activated, it
is important to test the Mobile App to ensure that important screen information is not
hidden from the user while typing. If the screen information must be hidden, it is
important to test the ability of the Mobile App to allow page flipping by the user
without losing typed information [Sch09].
Virtual keyboards are typically smaller than personal computer keyboards, and
therefore, it is difficult to type with 10 fingers. Because the keys themselves are
smaller and harder to hit and provide no tactile feedback, the Mobile App must be
tested to ensure that it allows easy error correction and can manage mistyped words
without crashing.
Predictive technologies (i.e., autocompletion of partially typed words) are often
used with virtual keyboards to help expedite user input. It is important to test the
correctness of the word completions for the natural language chosen by the user if
the mobile app is designed for a global market. It is also important to test the
usability of any mechanism that allows the user to override a suggested completion.
Virtual keyboard testing is often conducted in the usability laboratory, but some
should be conducted in the wild. If virtual keyboard tests uncover significant
problems, the only alternative may be to ensure that the Mobile App can accept input
from devices other than a virtual keyboard (e.g., a physical keyboard or voice input).
VOICE INPUT AND RECOGNITION
Voice input has become an increasingly common method for providing input and commands in
hands-busy, eyes-busy situations. Voice input may take several forms with different levels of
programming complexity required to process each.
Voicemail input occurs when a message is simply recorded for playback later. Discrete word
recognition can be used to allow users to verbally select items from a menu with a small number
of choices. Continuous speech recognition translates dictated speech into meaningful text
strings. Each type of voice input has its own testing challenges.
According to Shneiderman [Shn09], all forms of voice input and processing are hindered by
interference from noisy environments. Using voice commands to control a device impresses a
greater cognitive load on the user, as compared to pointing to a screen object or pressing a key.
The user must think of the correct word or words to get the Mobile App to perform the desired
action. However, the breadth and accuracy of speech recognition systems are evolving rapidly,
and it is likely that voice recognition will become the dominant form of communication in many
Mobile Apps
Testing the quality and reliability of voice input and recognition should take environmental
conditions and individual voice variation into account. Errors will be made by users of the Mobile
App and by the portions of the system processing the input. The Mobile App should be tested to
ensure that bad input does not crash the Mobile App or the device.
Large numbers of users and environments should be involved to be sure the Mobile App is
working with an acceptable error rate. It is important to log errors to help developers improve the
ability of the Mobile App to process speech input
WEB APPLICATION TESTING
WEB APPLICATION TESTING
The content model for the WebApp is reviewed to uncover errors.
Many Web testing practices The interface model is reviewed to ensure that all use cases can be
are also appropriate for accommodated
testing thin-client Mobile The design model for the WebApp is reviewed to uncover navigation
Apps and interactive errors.
The user interface is tested to uncover errors in presentation and/or
simulations. navigation mechanics.
The strategy for WebApp
testing adopts the basic Each functional component is unit tested.
principles for all software Navigation throughout the architecture is tested.
testing and applies a The Web App is implemented in a variety of different environmental
strategy and tactics that are configurations and is tested for compatibility with each
used for object-oriented configuration.
systems. Security tests are conducted in an attempt to exploit vulnerabilities
The following steps in the WebApp or within its environment
summarize the approach: Performance tests are conducted.
The WebApp is tested by a controlled and monitored population of
end users. The results of their interaction with the system are
evaluated for errors
WEB TESTING STRATEGIES
Testing is the process of
exercising software with the
intent of finding (and ultimately
correcting) errors.
In fact, because Web-based
systems and applications reside
on a network and interoperate
with many different operating
systems, browsers (or other
personal communication
devices), hardware platforms,
communications protocols, and
“backroom” applications, the
search for errors represents a
significant challenge.
Figure 21.2 juxtaposes the
mobility testing process with the
design pyramid for Web Apps.
CONTENT TESTING
to uncover semantic
errors (i.e., errors in the
accuracy or
Errors in WebApp completeness of
content can be as trivial information) in any
as minor typographical content object
presented as navigation
mistakes or as to uncover syntactic occurs;
significant as incorrect errors (e.g., typos, to find errors in the
grammar mistakes) in organization or structure
information, improper text-based documents, of content that is
organization, or violation graphical presented to the end
of intellectual property representations, and user
other media;
laws. Content testing
attempts to uncover
these and many other Content
problems before the testing has
user encounters them. three
important
objectives:
INTERFACE TESTING
Interface testing
exercises interaction uncover errors related
to specific interface
mechanisms and mechanisms (e.g.,
errors in the proper
validates aesthetic The execution of a menu
aspects of the user overall link or the way data are
entered in a form)
interface. strategy
With the exception of
for
WebApp-oriented interface uncover errors in the
specifics, the interface way the interface
testing is implements the
strategy noted here is semantics of
to navigation, WebApp
applicable to all types functionality, or content
of client-server display
software.
NAVIGATION TESTING
A user travels through a WebApp in much the same way as a visitor walks through a store or
museum. There are many pathways to take, stops to make, things to learn and look at,
activities to initiate, and decisions to make.
This navigation process is predictable in the sense that every visitor has a set of objectives
when he arrives. At the same time, the navigation process can be unpredictable because the
visitor, influenced by something she sees or learns, may choose a path or initiate an action
that is not typical for the original objective.
The job of navigation testing is
to ensure that the mechanisms that allow the WebApp user to travel through the WebApp
are all functional
to validate that each NSU can be achieved by the appropriate user category.
The first phase of navigation testing actually begins during interface testing. Navigation
mechanisms (links and anchors of all types, redirects, bookmarks, frames and frame sets, site
maps, and the accuracy of internal search facilities) are tested to ensure that each performs
its intended function.
Some of the tests noted can be performed by automated tools (e.g., link checking), while
others are designed and executed manually. The intent throughout is to ensure that errors in
navigation mechanics are found before the WebApp goes online.
SECURITY TESTING Mobile security is a
complex subject that must
be fully understood before
Any computer-based effective
system that manages Security testing attempts security testing can be
sensitive information or to verify that protection accomplished.
causes actions that can mechanisms built into a MobileApps and the client-
improperly harm (or system will, in fact, side and server-side
benefit) individuals is a protect it from improper environments in which
target for improper or penetration. Given they are housed represent
illegal penetration. enough time and an attractive target for
Penetration spans a broad resources, thorough external hackers,
range of activities: security testing will disgruntled employees,
hackers who attempt to ultimately penetrate a dishonest competitors,
penetrate systems for system. The role of the and anyone else who
sport, disgruntled system designer is to wishes to
employees who attempt make penetration cost steal sensitive
to penetrate for revenge, more than the value of information, maliciously
and dishonest individuals the information that will modify content, degrade
who attempt to penetrate be obtained. performance, disable
for illicit personal gain. functionality, or
SECURITY TESTING
Security tests are designed to probe vulnerabilities of the client-side
environment, the network communications that occur as data are passed
from client to server and back again, and the server-side environment. Each
of these domains can be attacked, and it is the job of the security tester to
uncover weaknesses that can be exploited by those with the intent to do so.
To protect against these (and many other) vulnerabilities, firewalls,
authentication, encryption, and authorization techniques can be used. Security
tests should be designed to probe each of these security technologies in an
effort to uncover security holes.
The actual design of security tests requires in-depth knowledge of the inner
workings of each security element and a comprehensive understanding of a
full range of networking technologies. If the Mobile App or WebApp is business
critical, maintains sensitive data, or is a likely target of hackers, it’s a good
idea to outsource security testing to a vendor who specializes in it
PERFORMANCE TESTING
For real-time and embedded systems, • Performance testing is designed to test the run-
software that provides required time performance of software within the context of
functionality but does not conform to an integrated system. Performance testing occurs
performance requirements is throughout all steps in the testing process
unacceptable. However, it is not until • Performance testing occurs throughout all steps in
all system elements are fully the testing process.
integrated that the true performance
of a system can be ascertained
Performance testing is used to
uncover performance problems that • The intent is twofold:
can result from a lack of server-side • to understand how the system responds as
resources, inappropriate network
loading (i.e., number of users, number of
bandwidth, inadequate database
transactions, or overall data volume)
capabilities, faulty or weak operating
• to collect metrics that will lead to design
system capabilities, poorly designed
WebApp functionality, and other modifications to improve performance.
hardware or software issues that can
lead to degraded client-server
performance.
TECHNOLOGY DRIVERS OF INFRASTRUCTURE EVOLUTION
Stress testing for
running several mobile apps on the same device,
mobile apps
attempts to find
errors that will
occur under
infecting system software with viruses or malware,
extreme operating
conditions.
In addition, it
provides a
attempting to take over a device and use it to spread spam,
mechanism for
determining
whether the Mobile
App will degrade forcing the mobile app to process inordinately large numbers of
gracefully without transactions,
compromising
security.
Among the many storing inordinately large quantities of data on the device. As these
conditions are encountered, the MobileApp is checked to ensure
actions that might that resource-intensive services (e.g., streaming media) are
handled properly.
create extreme
conditions are:
TESTING DOCUMENTATION AND HELP FACILITIES
The term usability testing conjures up images of large numbers of test cases
prepared to exercise computer programs and the data that they manipulate. But
errors in help facilities or online program documentation can be as devastating to
the acceptance of the program as errors in data or source code.
Nothing is more frustrating than following a user guide or help facility exactly and
getting results or behaviors that do not coincide with those predicted by the
documentation. It is for this reason that documentation testing should be an
important part of every software test plan.
Documentation testing can be approached in two phases. The first phase, technical
review, examines the document for editorial clarity. The second phase, the live test,
uses the documentation in conjunction with the actual program.
Surprisingly, a live test for documentation can be approached using techniques that
are analogous to many of the black-box testing methods discussed earlier. Graph-
based testing can be used to describe the use of the program; equivalence
partitioning and boundary value analysis can be used to define various classes of
input and associated interactions.
MBT can be used to ensure that documented behavior and actual behavior coincide.
Program usage is then tracked through the documentation.
REFERENCES
THESE SLIDES HAVE BEEN ADAPTED FROM:
PRESSMAN, ROGER. S. (2014). SOFTWARE ENGINEERING: A PRACTITIONER'S APPROACH. 8TH EDITION. MCGRAW-HILL, CHAPTER 21
UNIVERSITAS BINA NUSANTARA
THANK YOU
SOFTWARE TESTING—SPECIALIZED TESTING FOR MOBILITY
UNIVERSITAS BINA NUSANTARA
July 2023