Using Android as a reference, this book teaches the development of
mobile apps designed to be responsive, trustworthy and robust, and
optimized for maintainability. As the share of mission-critical mobile
apps continues to increase in the ever-expanding mobile app ecosystem,
it has become imperative that processes and procedures to assure their
reliance are developed and included in the software life cycle at
opportune times. Memory, CPU, battery life and screen size limitations
of smartphones coupled with volatility associated with mobile
environments underlines that the quality assurance strategies that
proved to be successful for desktop applications may no longer be
effective in mobile apps. To that effect, this book lays a foundation
upon which quality assurance processes and procedures for mobile apps
could be devised. This foundation is composed of analytical models,
experimental test-beds and software solutions.
Analytical models proposed in the literature to predict software quality
are studied and adapted for mobile apps. The efficacy of these
analytical models in prejudging the operations of mobile apps under
design and development is evaluated. A comprehensive test suite is
presented that empirically assesses a mobile app's compliance to its
quality expectations. Test procedures to measure quality attributes such
as maintainability, usability, performance, scalability, reliability,
availability and security, are detailed. Utilization of test tools
provided in Android Studio as well as third-party vendors in
constructing the corresponding test-beds is highlighted. An in-depth
exploration of utilities, services and frameworks available on Android
is conducted, and the results of their parametrization observed through
experimentation to construct quality assurance solutions are presented.
Experimental development of some example mobile apps is conducted to
gauge adoption of process models and determine favorable opportunities
for integrating the quality assurance processes and procedures in the
mobile app life cycle. The role of automation in testing, integration,
deployment and configuration management is demonstrated to offset cost
overheads of integrating quality assurance process in the life cycle of
mobile apps.