Mutation Testing for Evaluating PHP Web Applications

Mutation Testing for Evaluating PHP Web Applications

Ahmad A. Saifan (Computer Information Systems Department, Faculty of IT, Yarmouk University, Irbid, Jordan) and Mahmoud Bani Ata (Yarmouk University, Iribid, Jordan)
Copyright: © 2019 |Pages: 26
DOI: 10.4018/IJSI.2019100102

Abstract

Web applications provide services to hundreds of billions of people over the world, so they should be tested, to insure their validity. In this article, we are investigating the ability of testing web application based on traditional mutation testing. To perform this test, we have defined 54 mutation operators, classified into six categories: SQL data retrieving, data manipulation; domain name and IP address look up; internet protocol and service information; HTTP; connection to server and to database. The test was applied to websites that are built using PHP programming for two reasons. The majority of websites nowadays are built using ASP.net or PHP and most of the testing efforts that have been applied on web applications were using the Java programming language. We have implemented a prototype tool called μWebPHP for automatically generating mutants for PHP web applications based on the identified mutation operators. We report preliminary results that show that mutation testing is feasible for web applications.
Article Preview
Top

Introduction

Web application is software that can be used through the web, which users can access using Hypertext Transfer Protocol (HTTP) requests, through user interfaces running on their computers. They are built using different programming languages that run, either in the client-side Hypertext Markup Language (HTML), or the server side. A web site is defined, as a set of web pages that are connected using links, where the web pages include information that is displayed in a single browser. Web pages can be static, which is the same for all users and stored as an HTML file by the server. Or, it can be dynamic, where its contents and structure are determined by user inputs, either as navigation requests, or data entered through prepared forms (Sampath et al., 2005; Mallery et al., 2005; Offutt & Untch, 2009).

Web applications are sophisticated, and have few resources for testing, which means there is a need for more efforts to perform effective testing, (Karsch, 2012). On the other hand, web applications provide diverse services to hundreds of thousands of people all over the world, this means there should be high quality standards and features and makes web testing essential.

To the best of our knowledge, little effort has been made so far in testing web application and according to (Amman & Offutt, 2008): ''these ideas have only appeared in the research literature, and have not made it to practical application''. (Elbaum et al., 2003) state that although there are many techniques and tools for validating web application, few of them address the problem of testing the functionality of web applications. Most research only considers actions prompted by the user, like submitting data in forms or selecting hyperlinks, but they were not interested in actions provided by the browser like usage of forward and backward (Di Lucca et al., 2002). Web applications have become vital components of global information systems, and it is important that they should be tested to ensure their functionality. There is a lack of techniques and methods for testing web application, and those which exist do not consider the dynamic nature of web applications as specified (Amman and Offutt, 2008; Di Lucca et al., 2002).

According to W3tech website (W3tech, 2018) the majority of websites nowadays are built using PHP or ASP.net codes (see Figure 1). The website (W3tech, 2018) provides information about the usage of various types of technologies on the web and claims that PHP is used by 82.5% of all websites which use server-side programming language, followed by ASP.net which is used by 17.6%. Popular sites which use PHP are Facebook.com, Baidu.com, Wikipedia.org, Qq.com, Twitter.com, Taobao.com, Sina.com.cn, Weibo.com, Wordpress.com, Tmall.com.

Figure 1.

Usage of server-side programming languages for websites

IJSI.2019100102.f01

The aim is to apply some effort in the field of testing web application and investigating the ability of testing web applications using the coverage criteria that are used to test traditional software.

Most of the testing efforts that have been applied to date on web applications have used Java programming language. Examples of this are the studies conducted by (Wu, 2004; Offutt & Wu, 2009; Praphamontripong & Offutt, 2010; Offutt & Alluri, 2012).

Complete Article List

Search this Journal:
Reset
Open Access Articles: Forthcoming
Volume 8: 4 Issues (2020): 1 Released, 3 Forthcoming
Volume 7: 4 Issues (2019)
Volume 6: 4 Issues (2018)
Volume 5: 4 Issues (2017)
Volume 4: 4 Issues (2016)
Volume 3: 4 Issues (2015)
Volume 2: 4 Issues (2014)
Volume 1: 4 Issues (2013)
View Complete Journal Contents Listing