Automated Test Approach for Web Based Software

Full text

(1)

International Journal of Emerging Technology and Advanced Engineering

Website: www.ijetae.com (ISSN 2250-2459, Volume 2, Issue 3, March 2012)

238

Automated Test Approach for Web Based Software

Indrajit Pan

1

, Subhamita Mukherjee

2

1Dept. of Information Technology, RCCIIT, Kolkata – 700 015, W.B., India

2Dept. of Information Technology, Techno India, Salt Lake, Kolkata – 700 091, W.B., India

1indrajit.pan@gmail.com

2subhamita.mukherjee@gmail.com

Abstract – Modern society is getting themselves more and more familiar with web enabled services. Its efficiency requires different mission critical pre deployments challenges. Thus we require extensive testing of such software applications. However the method of testing for web based applications are dissimilar from traditional software testing methods. This is due to the versatile use of diverse technologies in the web application. Literature doesn’t suggest any modest modular testing technique for these mission critical applications. The main challenges for web based application testing lies within the strategy to find out a proper technique for identification of different static and dynamic module contained within an web application.

In our paper we propose a simple automated testing technique for these applications. This proposed model identifies different static and dynamic components or modules of any specific web application. Then all those logical and functional modules are tested individually through control path flow based testing.

Keywords – Client – Server Model, Dynamic Identification, Web Application Testing

I.

I

NTRODUCTION

In recent times, wide utilization and easy availability of Internet has produced remarkable growth in demand for web based applications. Different spheres are emerging with fantastic application developments those may cater the needs of our fast growing life. It involves e-marketing and e-shopping, e-banking, e-education and different business related issues. Finger tip operations and business are really becoming the part of our fastest growing life. These kind of practices are not only confined in urban areas but also they are getting familiar in rural zones. These systems are nevertheless a type of web based software. These online software applications have mainly two ends as of the other web applications. One is server end and another part is executed at client’s end.

The server side involves logical part and a huge database or knowledgebase to store the information. So easily this could be thought of as a distributed system with a Client- Server or multi-tier architecture including a few basic requirements. Thus there is a need for wide number of users support and the heterogeneous and concurrent access for them. Now such critical web based application requires special attention towards its effective execution. The efficient execution strategies require pre deployment testing of the application.

Testing a web based application is a real challenge. Web application testing technique is different in concept from normal software testing techniques [1]. Though the testing objectives for web based applications are similar with traditional testing goals still in most of the cases approaches are different. This is because of the convolutions and oddities of web application. Indeed they have to be adapted to the specific operational environments. Another web application critical feature to be specifically tested is its security and ability to be protected from intruders. In general a web application is developed using diverse technologies involved in development of singular modules.

This may require generation of different test suites for dissimilar modules. As of now, we can hardly find any such testing models which will be well suited to test all of the modules developed upon diverse technologies. A list of around two hundred commercial and complementary testing tools for web application is listed in [2], but mostly they are specific for load testing or security testing or they check for HTML validations. But for functional testing their capabilities are limited. So we feel there is a need to generate certain techniques which will be equipped to identify different logical modules. Following to this identification they will be able to drive the separate testing for those individual modules. This generic test model will be able to test both functional and non functional requirements of the web applications.

(2)

International Journal of Emerging Technology and Advanced Engineering

Website: www.ijetae.com (ISSN 2250-2459, Volume 2, Issue 3, March 2012)

239

II.

P

REVIOUS

W

ORK

A

ND

I

MPLEMENTATION

C

HALLENGES

The basic objective of e-software testing comprises of execution of the application using combination of inputs and state to reveal failures. Here failure means the error in the system due to which it cannot perform a designated task within the stipulated time [3]. Errors are classified as fault in application or anomalies in running environment. Since the running environment mainly affects the performance, stability or compatibility while the application is responsible for the functional requirements. Web application testing will have to be considered from two distinct perspectives. The first perspective will verify the conformance of the application with all non functional requirements. The second perspective will consider the problem of testing functional requirements. These two perspectives are complementary but not mutually exclusive [4].

The non functional requirements include performance, stability, scalability, compatibility, usability, security and accessibility. So the designs of testing strategies are important for verification of all non functional requirements.

The functional requirement testing involves uncovering of the errors of the application. These errors might cause due to the faults in implementation logic. Mainly these types of checks reveal the error in the run time [5].

Now prior to the discussion on different features and aspects of web applications, we need to get ourselves familiar with web application representation models. In general software testing models are needed to represent the essential concepts and relationships about the items to test [5]. Such models will be helpful to select the test strategies for a specific kind of software. Web application models are represented by different methodologies. Mainly the web applications feature the flavors of traditional software along with the additional technology required to host the application over the web or internet. In literature there are different conventional models like Relationship Management Data Model, Object Oriented Hypermedia etc. [6], [7]. These models are tied with Navigational models and Interface Models to offer the services.

Apart from these, there are models like Structural Model, Hypertext Model, Presentation Model and Personalization Model for specifying different characteristics of Web services.

Now if we look through the Meta model of web application [8], we will visualize it as a collection of web pages. These web pages are mainly server pages and client pages. Server pages are deployed in web server 7 client pages are displayed in user terminal to interface clients’ interactions with server page.

Owing to these models and modern technologies, we can experience a number of new features observed within web based application. It often has an evolutionary lifecycle and is rapidly updated. They often use a diversity of information representation formats and execution platforms. There components can be developed using various techniques and written in different languages. They often operate in open and dynamic environments. As serviced based computing techniques maturing they tend to be increasingly involved in collaboration with other information systems. More over it is common that they store and process a huge amount of information that demands a network of computer systems to process and store. Finally the web based systems usually have a large number of users with diverse user types. Because of these properties web based applications are complex and difficult to develop and maintain. Although there is much established work in the validation and verification of traditional software but they are inadequate for web application. In web application executable codes are embedded with data like textual, graphical and audio visual. One example is Java applet program. Thus we require a software testing tool that will perform both static and dynamic testing. As well as diverse data patterns and different distributed execution platforms demands a flexible testing environment. So that it can be easily expanded up to any limit and as well as the test results can integrated easily to generate a overall summary. Also the system quality can be judged through this.

III.

T

EST

S

TRATEGY

C

ATEGORIZATION

The testing of web application is a complex assignment.

Hence we try to categorize diverse aspects of web software under different basic module. Hence a specific module is a collection of some non functional or functional requirements.

Now if we deep dive in to the system architecture, we can visualize the system as in Figure 1.

Fig. 1: High level Module Description

(3)

International Journal of Emerging Technology and Advanced Engineering

Website: www.ijetae.com (ISSN 2250-2459, Volume 2, Issue 3, March 2012)

240

In this high level view we can see three different modules namely Client Tier, Business Tier and Database Tier. Our dynamic testing modules categorically work on these three different aspects of a web application. The test controller is separated among these three modules and then starts on working in a distributed manner. The broad level description of primary classification of web contents (and or codes) is described below:

Step 1: A master test Controller retrieves all the pages of a web site.

Step 2: Master controller initiates code content crawling on all these retrieved pages.

Step 3: Pages are classified in three tiers namely Business, Database and Client.

Step 4: The master controller passes on the control to sub controllers for specific and in detail testing.

Step 5: Sub controller generates event specific test cases and executes them on specific tiers and finally the test data is shared with testing outcomes of other controllers.

IV. P

ROPOSED

D

YNAMIC

T

EST

C

ONTROLLER In the previous section we have seen that an web application is categorized in three different modules. We also assign three different sub controllers to individually look after these modules or components. However the task of these controllers is facsimiled in a distributed environment. The sub controller specific to three different modules are generated by master controller. Here the master controller generates three different virtual thin clients first to look after three different modules. Here all three thin clients individually generate some subsidiary thin clients. These are specific for each pro-functions of a specific tier.

These function specific thin clients are executed only when that specific function is triggered. The execution of a pro-function will terminate in either of two states namely, Success (S) or Failed (F). This status signal is sent to penultimate thin client and the same is also communicated to Master component. The master component in return communicates the status to other thin clients. These thin clients are the test controllers for our system.

Once the master controller communicates a Failed (F) status to client modules then that will generate TRAP to all linked modules.

Here we use different message passing protocols to communicate between master controller and client controllers. The major signals we have used here are:

a. test() – Check status of other controllers, whether they are in active or inactive mode

b. stat_response() – Any controller revert back the status in response of test()

c. estab_port() – Request for Establish connection between any two controller on a specific Port No.

d. conn_set() – Connection is established on the specified port.

e. send_sig() – Test status is communicated to Master controller.

f. broadcast_stat() – Test status is broadcasted among all related client controllers.

The above mentioned signals are extensively used between different sub controllers and with the master controller to communicate the test results in between. The message communication has been elaborated in figure 2.

Fig, 2: Message Passing between Different Test Controllers

(4)

International Journal of Emerging Technology and Advanced Engineering

Website: www.ijetae.com (ISSN 2250-2459, Volume 2, Issue 3, March 2012)

241 V. E

XTENDED

O

PERATIONAL

D

ESCRIPTION

This proposed dynamic test controller start working from a root within home directory of an web application. A simplest form of web structure has been depicted in figure 3.

Fig. 3: Simple Web Structure

In figure 3 we can visualize that a root of web application may be connected with different static and dynamic kind of web pages, where a dynamic web page may be associated within a frame. This frame may accept different kind of varying input from the end users and depending on those inputs this frame will result in conditional navigation as of the structure shown in figure 4.

Fig. 4: Detailed Navigational Structure

Owing to this fundamental detailing of web structure, our detailed message passing method (as shown in Figure 2) starts working from the root page or home page. It assumes the home page or login page as the master controller and then tries to find out different sub controller or navigating links (static or dynamic) associated with the master controller as of figure 5.

Fig. 5: Establishment of Different Controlling Nodes

This detection mechanism relates the key pages as a node and their associated link as an edge. Finally it establishes a graph like structure for the whole web application. This is called the master graph for our system as shown in figure 6. This master graph contains certain key nodes. These key nodes may contain some detailed logical constructs. These logical constructs may further be explored using some control path flow identification and testing mechanism. Here to test these

Fig. 6: Master Graph Formation

Control paths we may employ standard software testing methods. An ideal case of sub component detection for existing node of master graph has been shown in figure 7.

(5)

International Journal of Emerging Technology and Advanced Engineering

Website: www.ijetae.com (ISSN 2250-2459, Volume 2, Issue 3, March 2012)

242

Fig. 7: Node Decomposition

VI. C

ONCLUSION

This paper presents a dynamic module identifier for testing of web application. A prototype of the system architecture along with the communicating signals has been described here. This multiple test controller based architecture is perfectly suitable for testing of web applications. The dynamic nature of the controller constantly monitors the changes within the web applications and tests its implications on the overall services of the web portal. Sometimes the changes in the tiers may require new test cases and test strategies. The dynamic master controller is well adaptive to those changes. It can quickly generate a new type of thin client or sub controller to adapt the change. The versatile nature of web application requires dynamic test suites and strategies.

Different sub controllers can manage different types of information and code patterns. The concept is powerful and extendible. The controllers can be distributed among different tiers to reduce the message traffic. Although the master controller performs the major operations related to testing, the module/ unit testing overheads are mostly reduced due to the incorporation of sub controllers in pro functions.

References

[1] E. Hiett and R. Mee, “Going Faster: Testing the Web Application”, IEEE Software 19 (2), pp. 60 -65, 2002

[2] R. Hower, “Web Site Test Tools and Site Management Tools”,

Software QA Testing Resource Center.

<http://www.softwareqatest.com/ qatweb1.html>, 2005

[3] IEEE Std. 610.12-1990, “Glossary of Software Engineering Terminology in Software Engineering Standard Collection, 1990”.

IEEE CS Press Los Alamitos California, 1990

[4] H. Q. Nguyen, “Testing Applications on the Web: Test Planning for Internet-Based Systems”, John Willey & Sons, Inc., 2000

[5] R. V. Binder, “Testing Object Oriented Systems Models, Patterns and Tools”, Addison – Wesley, Boston, MA, USA, 1999

[6] T. Isakowitz, A. Kamis and M. Koufaris, “Extending the capabilities of RMM: Russian Dolls and Hypertext”, Proceedings of 30th Hawaii International Conference on System Science, Maui, III (6), pp. 177 – 186, 1997

[7] J. Gomez, C. Canchero and O. Pastor, “Conceptual Modeling of Device Independent Web Applications”, IEEE Multimedia, 8 (2), pp.

26 – 39, 2001

[8] G. A. Di Lucca, A. R. Fasolino, P. Tramontana, “Reverse Engineering Web Applications: the WARE Approach”, Journal of Software Maintenance and Evolution: Research and Practice, John Willey and Sons Ltd., pp. 71 – 101, 2004

Figure

Updating...

References

Updating...

Related subjects :