Regression Testing-Based Requirement Prioritization of Mobile Applications

Regression Testing-Based Requirement Prioritization of Mobile Applications

Varun Gupta (Department of Computer Science & Engineering, Jawaharlal Nehru Govt. Engineering College, Sundernagar, Himachal Pradesh, India), D. S. Chauhan (Uttarakhand Technical University, Dehradun, Uttarakhand, India) and Kamlesh Dutta (Department of CSE, National Institute of Technology, Hamirpur, Himachal Pradesh, India)
DOI: 10.4018/jssoe.2012100102
OnDemand PDF Download:
$30.00
List Price: $37.50

Abstract

Mobile software application development process must be matured enough to handle the challenges (especially market related) associated with the development of high quality mobile software development. Ever increasing number of both mobile users and mobile applications had presented software engineers with the challenge of satisfying billions of users with high quality software applications to be delivered within deadline and budgets. Always there had been a lot of pressure to develop complex software categorized by thousands of requirements, under resource constrained environment. Requirement prioritization is one of the activities undertaken by software engineer to deliver partial software product to its customers such that most important requirements are implemented in the earliest releases. During next releases some changed and pending requirements are implemented, an activity that generates ripple effects. Such ripple effects need to be tested by executing modified source code against test cases of previous releases (regression testing). Regression testing is a very effortful activity that requires a software tester to select test cases that have high fault detection capability, execute the modified code against selected test cases and performing debugging. This regression testing activity can be lowered to the maximum extend by considering dependencies between requirements during the time of requirement prioritization. Thus requirement prioritization will be carried out not only against aspects like cost, time, risks, business values etc but against dependencies also. The aim is to implement almost all dependent highest priority requirements in current release so that implementation of new requirements is unlikely to have ripple effects. Changes in requirements might not be related to variable usage and definition and might not involve a change in functionality. In such cases there is no need to select already executed test cases of previous versions. Module dependencies can lead to test case selections of previous versions if changes of requirement lead to ripple effects. This paper aims to implement highest priority requirements such that regression testing is performed to minimum thereby improving development process of mobile applications. The proposed technique had been successfully evaluated on Android based notification software application that meets the specification of Aakash tablets.
Article Preview

1. Introduction

Mobile applications are penetrating very quickly in every domain like medicine, entertainment, banking, governance, learning, railways etc. Recently one of the leading newspaper (Times of India) has launched a mobile app for Nokia smart phones that offers its ocean of user with the updated news on mobile phones (http://www.gartner.com/newsroom/id/2209615). It was also reported that by the year 2015, the number of Smartphone users will account for 80% and window phones user to 20% of the total users. The tablet shipments will rise to 50% of number of laptops.

Mobile applications are growing in complexity with the increase in the number of mobile users. Growing complexity add to the worries of its developers since delivering such a high complexity software that satisfied mass market users within time and budgets under resource constrained environment is quite a big challenge. Since the software has to be delivered in ever changing environment, thus resulting in volatile requirements, thereby resulting in enhancing regression testing efforts. By analyzing the type of changes, a decision could be made regarding the neglection or minimization of original test suite that executes modified as well as affected parts of source code. Such a neglection or minimization reduces both testing effort as well as delivery time of the increment.

All these challenges enforce the requirement for software engineers to get equipped with necessary practice and knowledge about traditional software engineering methodologies, principles, best practices and tools. Due to an increase in number of mobile users, mobile devices with complex functionalities are expected to hit the market. This will enhances the burden of development of software under market constraints like low cost, high quality and timely delivery since mobile software application development process needs to be matured enough to handle such a scalability.

Development costs of mobile applications had been a one of the worrying factor these days. Stetler (2011) presented a rough range of development cost associated with mobile application. We relied on the survey and reports given by Patel (2010), Ahlund (2010), David (2010). Ahlund (2010) reported that on average, development cost of mobile applications is $6,453. Such a cost was computed after the survey of development costs of 96 mobile application projects. Patel (2010) reported that for small sized mobile applications, the development cost lies in the range of $3,000 to $8,000. David (2010) reported the development cist to $12,000 to $150,000 or more.

Complete Article List

Search this Journal:
Reset
Open Access Articles: Forthcoming
Volume 7: 4 Issues (2017): 3 Released, 1 Forthcoming
Volume 6: 4 Issues (2016)
Volume 5: 4 Issues (2015)
Volume 4: 4 Issues (2014)
Volume 3: 4 Issues (2012)
Volume 2: 4 Issues (2011)
Volume 1: 4 Issues (2010)
View Complete Journal Contents Listing