Distributed Testing System for Web Service Based on Crowdsourcing
Hindawi
Complexity
Volume 2018, Article ID 2170585, 15 pages
https://doi.org/10.1155/2018/2170585
Research Article
Distributed Testing System for Web Service
Based on Crowdsourcing
Xiaolong Liu ,1,2 Yun-Ju Hsieh,3 Riqing Chen ,1,2 and Shyan-Ming Yuan
3
1
College of Computer and Information Sciences, Fujian Agriculture and Forestry University, Fuzhou 350002, China
Digital Fujian Institute of the Big Data for Agriculture and Forestry, Fujian Agriculture and Forestry University,
Fuzhou, Fujian 350002, China
3
Department of Computer Science, National Chiao Tung University, Hsinchu 300, Taiwan
2
Correspondence should be addressed to Shyan-Ming Yuan;
Received 29 June 2018; Revised 6 September 2018; Accepted 16 September 2018; Published 8 November 2018
Guest Editor: Zhihan Lv
Copyright © 2018 Xiaolong Liu et al. This is an open access article distributed under the Creative Commons Attribution License,
which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.
To appropriately realize the performance of a web service, it is essential to give it a comprehensive testing. Although an elastic test
could be guaranteed in traditional cloud testing systems, the geographical test that supports real user behavior simulation remains a
problem. In this paper, we propose a testing system based on a crowdsourcing model to carry out the distributed test on a target web
server automatically. The proposed crowdsourcing-based testing system (CTS) provides a reliable testing model to simulate real user
web browsing behaviors with the help of web browsers scattered all around the world. In order to make the entire test process the
same as the real situation, two test modes are proposed to simulate real user activity. By evaluating every single resource of web
service automatically, a tester can not only find out internal problems but also understand the performance of the web service. In
addition, the complete geographical test is available with the performance measurements coming from different regions in the
world. Several experiments are performed to validate the functionality and usability of CTS. It demonstrates that CTS is a
complete and reliable web service testing system, which provides unique functions and satisfies different requirements.
1. Introduction
Technological developments for broadband networks, distributed systems, and applications have led to tremendous
changes in service-oriented society. With the advancement
of web technology, service-oriented applications have become
an indispensable part of our daily life. RESTful service, which
uses HTTP as its underlying protocol, is considered to be the
most common and important form of web application nowadays [1]. By using a readable URL, people are capable of
accessing all kinds of resources on the Internet, such as web
pages, pictures, video files, and diversified information assets.
As for the system that provided web service, it is unavoidable
to handle thousands of user requests from all over the world.
If the design of the web server is not perfect, it will cause low
performance and then affect user experience. Therefore, for
the staging of the service lifecycle, every system should be
tested properly before being implemented as a service. The
testing procedure should verify whether the performance of
the system is sufficiently good to satisfy users in terms of
capability and availability.
Web service testing is a kind of software testing which
carries out a series of tests on a web server such as a regression test, performance test, and load test [2–4] under specific
conditions. With the help of web service testing, the tester
can be aware of weak points of the web service and improve
the defect. Currently, web service testing can be divided into
two forms, i.e., single-node testing and cloud testing [5]. For
single-node testing, the test is generated and executed on the
local terminal or within the local area network environment.
Generally, a bunch of threads will be created and used to conduct test tasks like real users. However, most web services
need to deal with a great number of requests, and the
restricted number of threads would make it difficult to simulate such a large-scale testing. As for cloud testing, also
known as testing-as-a-service (TaaS), this testing takes
advantage of cloud computing technology. The testing service will be installed in a virtual machine and deployed on
2
Complexity
each data center located around the world. However, cloud
testing has some problems on the geographical test since the
limited number of worldwide data centers is not enough to
build the environment that is the same as the real situation of
global users.
Crowdsourcing [6, 7] is recently a novel distributed
problem-solving and production model, which has emerged
in recent years as the information technology of the new
generation. It is a process of obtaining ideas by seeking a
large number of people, volunteers, or part-time workers,
to contribute all kinds of abilities, aimed at achieving a better
result than the traditional manner. In general, we can take
crowdsourcing as a virtual labor market [8], taking advantage of advanced Internet technologies to outsource work
to individuals. Since workers are a large group of individuals
from all over the world, it makes possible to keep a flexible
scale and produce diverse results. Therefore, based on the
concept of crowdsourcing, this paper tries to design and
implement a new kind of testing scenario that can not only
go deep into the core structure of a web server to discover
potential bottleneck but also perform reliable testing with
real global user behaviors.
In this paper, a novel automatic crowdsourcing-based
testing system named CTS is proposed. With the power of
a crowd-joining model, we utilize the computing nodes provided by the worldwide end users to conduct a series of tests,
such as performance testing, availability testing, and geographical testing. In CTS, a web browser is the interface that
is taken as the test node responsible for interacting between
the testing server side and the target web server. By the use
of this model, testers can save their time on building a testing environment and cutting down the workload on a host
machine. Our design has therefore focused on efficiency,
reliability, cost minimization, and ease of use. The main
contributions of our proposed automatic testing system are
the following:
(1) Real User Behavior Simulation Ability. Generally, the
traditional testing tools and services focus on generating workloads to test the web server with their
own testing infrastructure. Although it can simulate
user requests by using concurrent threads, this kind
of simulation is not good enough to act like the way
that a real user behaves in web browsing. In the proposed system, we design a reliable testing model to
simulate real user web browsing behaviors with the
help of web browsers scatter (...truncated)