Using Android as a reference, this book teaches 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 the mobile apps could be devised. This foundation is composed of analytical models, experimental test-beds and software solutions.
Analytical models proposed in 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. 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 the mobile apps.
About the Author: Tejinder S. Randhawa has worked in the high-tech industry for over 25 years. He is currently leading the research and development of a secure and reliable unified communications and monitoring platform for health care. The platform supports plug-and-play of wireless sensors and dash-boarding of vitals on mobile and embedded platforms; and can also be deployed in environments where no fixed communications infrastructure exists by utilizing WiFi Mesh. Prior to this, he worked with Dyaptive Systems (now JDS Uniphase) on the analysis of Testing Requirements for CDMA2000 cellular data applications and development of data traffic generators for testing such networks. Before joining Dyaptive Systems, he worked with CRC (Communication Research Center), Ottawa on the security aspects of mobile ad hoc networks.
Tejinder has a PhD in Engineering Science from the Simon Fraser University where he also held appointments as an Adjunct Professor for several years between 2002 and 2017. He has been a faculty member at BCIT since 1995. He has developed and taught graduate and senior undergraduate level courses in wireless network protocols, data network protocols, software engineering, wireless and mobile applications, database systems, client-server computing and distributed systems.
His R&D activities have covered technical areas of Health Monitoring, Health Information Systems, sensor systems/networks, Wireless Networks, Internet Protocols, Voice Over IP, Multimedia Communication, Network Security, Mobile Applications, Software Engineering and operations research.