Clustering of Web Application and Testing of Asynchronous Communication

Clustering of Web Application and Testing of Asynchronous Communication

Sonali Pradhan (SOA University, Bhubaneswar, India), Mitrabinda Ray (Siksha O Anusandhan Deemed to be University, Bhubaneswa, India) and Srikanta Patnaik (Siksha ‘O' Anusandhan University, Bhubaneswa, India)
Copyright: © 2019 |Pages: 27
DOI: 10.4018/IJACI.2019070103


In model-based testing, testing is done using Input Output Transition System (IOTS) or Finite State Machine (FSM). In synchronous testing, it is easy to know the proper sequence of input output of the system under testing, whereas, in asynchronous communication, it is tough to trace the sequences of inputs and outputs. A web application is an example of asynchronous processing, in which input/output queue management is a common issue for testing in asynchronous JavaScript and XML user interfaces. This article discusses asynchronous testing of web application by taking a Gmail account as a case study. In this article, the web application is partitioned into clusters by determining logical web pages that implement logical functions. The clusters of page objects are represented using finite state machines. From the FSMs, test scenarios are generated. The size of the test cases covering longer paths is decreased by making clusters of states. The authors conduct a queue analysis using a test architecture to investigate the behavior of the system under testing. Finally, the test cases are generated using the Selenium tool.
Article Preview


Testing has an important part of the software development process. However, the manual process of testing is extremely costly and error-prone. This leads to Model Based Testing (MBT), where the behavior of the System Under Test (SUT) is tested based on the functional aspect of the model. (Barnett, Grieskamp et al., 2003; Farchi, Hartman & Pinter, 2002; Holt, Briand & Torkar, 2014; Utting, Pretschner & Legeard, 2012). These MBT models are state-based. With the help of MBT tools, these models are either translated to Finite State Machine (FSM) or in the Input Output Transition System (IOTS). In synchronous communication, a single input output system is maintained. Synchronous testing is done using FSM models, and FSM (Holt, Briand & Torkar 2014; Utting, Pretschner & Legeard, 2012, Pradhan, Ray & Patnaik, 2019) has a finite number of states with transition between them. FSM can handle single input & output queues. However, IOTS handles multiple input and output queues. IOTS models are commonly used when next input can arrive even before current outputs are produced. IOTS usually models concurrent input/output behavior with transition systems. Like FSM, an IOTS (Hierons, 2012; Aho & Dahbura, 1991; Lynch & Tuttle, 1988) is also defined as a simple type of state machine with states and transitions between them. A single input represents FSM and single output queue whereas, multiple input and multiple outputs represent IOTS. FSM represents each single input output queue. Some examples of IOTS models are shown in Figure 3 & 4.

In the asynchronous process, the number of input and output messages are not in a sequential manner. Due to delay in output, the receiver receives more than one input messages. So, observed sequence of input and output may not be the trace of the system under test. It is difficult for the tester to know which output is for which input and it is very tedious to generate test cases synchronously. So, multiple IOTSs are maintained in asynchronous communication, which makes tedious and time-consuming to test. In synchronous processing, the observed sequence is the correct sequence of input and output of the system under test which is not the same in the case of asynchronous testing. The asynchronous channels also work with message passing system to communicate with the system under test. A widespread example is taken as a web service. Due to delay in the asynchronous channel, the system sometimes affects the testing, which is also cannot be observed by the tester. In the asynchronous channel, the capacity of the buffer is non-zero, messages may wait in the buffer before the receiver retrieves them. In asynchronous testing, two types of channels are tested- (i) First-in-First-out (FIFO) and (ii) non-FIFO channels through IOTS. In FIFO, it is a pair of <send, receive> messages. When there are two input messages are send the FIFO property violated. To introduce a model of the communications channel, the asynchronous nature of communications is taken into account to generate test cases. In the asynchronous channel, the tester observes that the output is delayed from the SUT and the input supplied by the tester is received later by the SUT (Hierons, 2012; Aho & Dahbura, 1991). Thus, a trace in which the sequence of inputs and outputs observed by the tester might not be the correct sequence of a trace of the SUT. Taking an example, where the trace has the sequences IJACI.2019070103.m01, by sending input IJACI.2019070103.m02 twice and then observes the output IJACI.2019070103.m03, it is quite possible that output !o was produced by the SUT before any input was received and another possibility may be the output is the response of the first input.

Complete Article List

Search this Journal:
Open Access Articles: Forthcoming
Volume 11: 4 Issues (2020): 1 Released, 3 Forthcoming
Volume 10: 4 Issues (2019)
Volume 9: 4 Issues (2018)
Volume 8: 4 Issues (2017)
Volume 7: 2 Issues (2016)
Volume 6: 2 Issues (2014)
Volume 5: 4 Issues (2013)
Volume 4: 4 Issues (2012)
Volume 3: 4 Issues (2011)
Volume 2: 4 Issues (2010)
Volume 1: 4 Issues (2009)
View Complete Journal Contents Listing