About
96
Publications
5,516
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
985
Citations
Introduction
Skills and Expertise
Additional affiliations
July 2014 - present
Publications
Publications (96)
In recent years, deep neural networks have been applied in machine translation systems, resulting in the so-called neural machine translation (NMT) models that can improve translation quality significantly. However, due to the brittleness of deep neural network, machine translation systems could return erroneous translations that lead to misunderst...
Metamorphic testing (MT) is a simple yet effective technique to alleviate the oracle problem in software testing. The underlying idea of MT is to test a software system by checking whether metamorphic relations (MRs) hold among multiple test inputs (including source and follow-up inputs) and the actual output of their executions. Since MRs and sour...
Metamorphic testing has become one mainstream technique to address the notorious oracle problem in software testing, thanks to its great successes in revealing real-life bugs in a wide variety of software systems. Metamorphic relations, the core component of metamorphic testing, have continuously attracted research interests from both academia and...
Microservice architecture (MSA) has been widely adopted to develop various large-scale distributed systems. Microservice-based systems (MBSs) comprise a number of independently deployed microservices fulfilling the specific functionalities. Unique characteristics of microservices, such as independent and parallel development, rapid iteration, and d...
Metamorphic testing has become one mainstream technique to address the notorious oracle problem in software testing, thanks to its great successes in revealing real-life bugs in a wide variety of software systems. Metamorphic relations, the core component of metamorphic testing, have continuously attracted research interests from both academia and...
Large-scale distributed systems are becoming key engines of the IT industry due to their scalability and extensibility. A distributed system often involves numerous complex interactions among components, suffering anomalies such as data inconsistencies between components and unanticipated delays in response times. Existing anomaly detection techniq...
Distributed systems have been widely used in many safety‐critical areas. Any abnormalities (e.g., service interruption or service quality degradation) could lead to application crashes or decrease user satisfaction. These things may cause serious economic losses. Among the various quality assurance approaches for distributed systems, log‐based anom...
Background. Software testing is a critical activity for ensuring the quality and reliability of software systems. To evaluate the effectiveness of different test suites, researchers have developed a variety of metrics. Problem. However, comparing these metrics is challenging due to the lack of a standardized evaluation framework including comprehen...
Metamorphic testing (MT) is an effective technique to alleviate the test oracle problem. The principle of MT is to detect failures by checking whether some necessary properties, commonly known as metamorphic relations (MRs), of software under test (SUT) hold among multiple executions of source and follow‐up test cases. Since both the generation of...
Concurrent programs are normally composed of multiple concurrent threads sharing memory space. These threads are often interleaved, which may lead to some non-determinism in execution results, even for the same program input. This poses huge challenges to the testing of concurrent programs, especially on the test result verification, that is, the p...
Web services have been widely used to develop complex distributed software systems in the context of Service Oriented Architecture (SOA). As a standard for describing Web services, the Web Service Description Language (WSDL) provides a universal mechanism to describe the service’s functionalities for the service consumers. However, the current WSDL...
In light of high-performance computer processing, massive datasets, and mighty algorithms, we are rapidly entering an age where the advanced deep learning (DL) capabilities are integrated into the contemporary software systems to fulfill critical tasks. Like “traditional” software, DL systems are not immune to faults, some of which may even cause c...
Over the past decade, metamorphic testing has gained rapidly increasing attention from both academia and industry, particularly thanks to its high efficacy on revealing real-life software faults in a wide variety of application domains. On the basis of a set of metamorphic relations among multiple software inputs and their expected outputs, metamor...
Comparing test suite effectiveness metrics has always been a research hotspot. However, prior studies have different conclusions or even contradict each other for comparing different test suite effectiveness metrics. The problem we found most troubling to our community is that researchers tend to oversimplify the description of the ground truth the...
Metamorphic testing is well known for its ability to alleviate the oracle problem in software testing. The main idea of metamorphic testing is to test a software system by checking whether each identified metamorphic relation (MR) holds among several executions. In this regard, identifying MRs is an essential task in metamorphic testing. In view of...
Metamorphic testing is a technique that makes use of some necessary properties of the software under test, termed as metamorphic relations, to construct new test cases, namely follow-up test cases, based on some existing test cases, namely source test cases. Due to the ability of verifying testing results without the need of test oracles, it has be...
Mutation testing is basically a fault-based software testing technique, which has been proposed to measure the fault detection effectiveness of a test suite using programs with simulated faults (namely mutants). However, mutation testing is time consuming and computationally expensive because of the normal use of a large amount of mutants. Thus, re...
An Internet of Things (IoT) system is often an integration of a large number of hardware and software modules, which are expected to be easily replaced or reconfigured in order to cater for quickly-changing environments and requirements. With the popularity of microservices, people have attempted to introduce the microservice architecture to IoT sy...
In recent years, Service Oriented Architecture (SOA) has been increasingly adopted to develop distributed applications in the context of the Internet. To develop reliable SOA-based applications, an important issue is how to ensure the quality of web services. In this paper, we propose a dynamic random testing (DRT) technique for web services, which...
The publish/subscribe paradigm provides a loosely-coupled and scalable communication model for large-scale IoT service systems, such as supervisory control and data acquisition (SCADA). Data confidentiality and service privacy are two crucial security issues for the publish/subscribe model deployed in different domains. Existing access control sche...
Service-Oriented Architectures are a popular development paradigm to enable distributed applications constructed from independent web services. When coordinated, web services are an infrastructure to fulfill dynamic and vertical integration of business. They may face frequent changes of both requirements and execution environments. Static and prede...
Service-oriented architecture (SOA) has become an application development paradigm widely recognized both in academia and in industry. Although SOA-based applications may vertically implement business processes through the composition of loosely coupled services, they have to face frequent changes, such as unavailability of service (due to the unco...
Mutation testing is a fault-based software testing technique, which is widely used to evaluate the adequacy of a given test suite or the fault detection effectiveness of a given software testing technique. Although mutation testing has a strong fault detection capability, the high computation cost incurred by a huge number of mutants prevents mutat...
In the current Web Service Description Language (WSDL), only the interface information of a web service is provided without any indication on its behavior logic. Naturally, it is difficult for the service user and developer to achieve a shared understanding of the service behavior through such a description. A particular challenge is how to make ex...
In the context of cloud computing, software is delivered as a service to the customer through the Internet, and such a software delivery mode is called SaaS (software as a service). Unlike the traditional software delivery mode, SaaS software is usually running on the server side, which provides services to multiple tenants at the same time. As a r...
Random testing and partition testing are two major families of software testing techniques. They have been compared both theoretically and empirically in numerous studies for decades, and it has been acknowledged that they have their own advantages and disadvantages and that their innate characteristics are fairly complementary to each other. In th...
Service-Oriented Architecture (SOA) enables the coordination of multiple loosely coupled services. This allows users to choose any service provided by the SOA without knowing implementation details, thus making coding easier and more flexible. Web services are basic units of SOA. However, the functionality of a single Web service is limited, and us...
When modelling secure business processes, business analysts firstly specify security constraints and compliance properties that design-time processes should satisfy. Thus, it is a critical task to check whether the process model under security constraints complies with prospective security compliance properties. For some special tasks within a proc...
Nowadays, applications are increasingly deployed as Web services in the globally distributed cloud computing environment. Multiple services are normally composed to fulfill complex functionalities. Business Process Execution Language for Web Services (WS-BPEL) is an XML-based service composition language that is used to define a complex business pr...
When figuring out the expected output for each test case is difficult, metamorphic testing can be applied to alleviate such situations. An involved key challenge is to derive metamorphic relations for the program under test. This paper proposes a datamutation directed metamorphic relation acquisition methodology called μMT. Experimental results on...
软件测试通过运行测试用例, 观察被测软件的输出结果是否符合预期结果来发现潜藏的故障。 然而, 判定测试输出是否正确往往会成为软件测试面临的一个挑战(称为测试预期问题)。 蜕变测试通过建立被测软件输入变量域和输出结果域的关系(称为蜕变关系), 以蜕变关系判定测试执行的正确性。 蜕变测试不仅具有良好的故障检测能力, 也是一种测试用例选择方法。 本文侧重报告蜕变测试作为一种测试用例选择策略的几个成功案例。
Context: Mutation testing, which systematically generates a set of mutants by seeding various faults into the base program under test, is a popular technique for evaluating the effectiveness of a testing method. However, it normally requires the execution of a large amount of mutants and thus incurs a high cost. Objective: A common way to decrease...
The use of web services has been growing significantly, with increasingly large numbers of applications being implemented through the web. A difficulty associated with this development is the quality assurance of these services, specifically the challenges encountered when testing the applications - amongst other things, testers may not have access...
Nowadays, Service Oriented Architecture (SOA) has become one mainstream paradigm for developing distributed applications. As the basic unit in SOA, Web services can be composed to construct complex applications. The quality of Web services and their compositions is critical to the success of SOA applications. Testing, as a major quality assurance t...
The concept of software as a service has been increasingly adopted to develop distributed applications. Ensuring the reliability of loosely coupled compositions is a challenging task because of the open, dynamic, and independent nature of composable services; this is especially true when the execution of a service-based process relies on independen...
Unified Modeling Language (UML) activity diagrams are widely used to model concurrent interaction among multiple objects. In this paper, we propose a transformation-based approach to generating scenario-oriented test cases for applications modeled by UML activity diagrams. Using a set of transformation rules, the proposed approach first transforms...
Service-Oriented Architecture (SOA) has evolved as a mainstream development paradigm for distributed systems in recent years. To embrace quickly changing requirements, service compositions are expected to be adaptive. However, BPEL, a widely recognized standard service composition language, is limited in support for adaptability within service comp...
Service compositions have become a powerful development paradigm to create distributed applications out of autonomous Web services. Since such applications are often deployed and executed in open and dynamic environments, variability management is a crucial enabling technique. To address the adaptation issue of service compositions, we proposed VxB...
In recent years, a variety of encryption algorithms were proposed to enhance the security of software and systems. Validating whether encryption algorithms are correctly implemented is a challenging issue. Software testing delivers an effective and practical solution, but it also faces the oracle problem (that is, under many practical situations, i...
A great amount of fault-based testing strategies have been proposed to generate test cases for detecting certain types of
faults in Boolean specifications. However, most of the previous studies on these strategies were focused on the Boolean expressions
in the disjunctive normal form (DNF), even the irredundant DNF (IDNF)—little work has been condu...
Mutation analysis is widely employed to evaluate the effectiveness of various software testing techniques. Existing mutation analysis techniques commonly insert faults into original programs uniformly, while actual faults tend to be clustered, which has been observed in empirical studies. This mismatch may result in the inappropriate simulation of...
Context
Business Process Execution Language (BPEL) is a widely recognized executable service composition language, which is significantly different from typical programming languages in both syntax and semantics, and especially shorter in program scale. How to effectively locate faults in BPEL programs is an open and challenging problem.
Objective...
Business Process Execution Language (BPEL) is a widely recognized executable service composition language. Since BPEL integrates services of desired functionality to compose business processes, it is significantly different from typical programming languages. How to effectively locate the integration-level faults in BPEL programs is an open issue....
Applications are increasingly constructed by orchestrating Web services. Ensuring the reliability of such loosely coupled service compositions is a challenging task. In this paper, we propose an automatic scenario-oriented testing approach for service compositions specified by Business Process Execution Language (BPEL). In our approach, an abstract...
Random testing is a widely practiced black-box testing technique. Recently, adaptive random testing has been proposed to improve the random testing, and simulation results show that the improvements depend on the characteristic of failure-causing regions of program under test. This paper presents the concept of test constraints and employs them to...
Mutation analysis is widely employed to evaluate the effectiveness of various software testing techniques. In most situations, mutation operators are uniformly applied to the original programs, while the faults tend to be clustered in practice. This may result in the inappropriate simulation of faults, and thus cannot deliver the reliable evaluatio...
In recent years, Service Oriented Architecture (SOA) has been increasingly adopted to develop applications in the context of Internet. To develop reliable SOA-based applications, an important issue is how to ensure the quality of Web services. In this paper, we propose a dynamic random testing (DRT) technique for Web services which is an improvemen...
Service Oriented Architecture SOA has become a major application development paradigm. As a basic unit of SOA applications, Web services significantly affect the quality of the applications constructed from them. In the context of SOA, the specification and implementation of Web services are completely separated. The lack of source code and the res...
The popularity of open-source software is increasing around the world, especially in the field of higher education. Various commercial as well as open-source learning management systems are available today which are being used in educational institutions. These tools have introduced a new concept of teaching methodology which has huge benefits over...
Service Oriented Architecture (SOA) has become a major application development paradigm. As a basic unit of SOA applications, Web services significantly affect the quality of the applications constructed from them. Since the development and consumption of Web services are completely separated under SOA environment, the consumers are normally provid...
Service-Oriented Computing (SOC) is becoming the mainstream development paradigm of applications over the Internet, taking advantage of remote independent functionalities. The cornerstone of SOC's success lies in the potential advantage of composing services on the fly. When the control over the communication and the elements of the information sys...
In regression testing, an important problem is how to select a smaller size of test set for execution. We present a novel constraint-oriented test suite reduction method for conservative regression testing by which we mean that all bugs discovered must be revealed by the reduced test suite. A test constraint for a bug is Boolean formulas defined ov...
Software architecture is one of key factors to the success of modern large-scale software-intensive systems development. Among the existing architectural models, some important aspects are ignored while should be addressed. To overcome this, we propose a multi-view architectural model, which is an extension to the "4+1" view architectural model pro...
Nowadays applications are increasingly developed based on remote Web services and service composition has become a powerful novel development paradigm. Due to the fact that such applications in the context of Internet are deployed and executed in an open and dynamic environment, adaptability is one of the crucial requirements for developing such ap...
Web service-based systems are built orchestrating loosely coupled, standardized, and internetworked programs. If on the one hand, Web services address the interoperability issues of modern information systems, on the other hand, they enable the development of software systems on the basis of reuse, greatly limiting the necessity for reimplementatio...
Fault based testing aims at detecting hypothesized faults based on specifications or program source. There are some fault
based techniques for testing Boolean expressions which are commonly used to model conditions in specifications as well as
logical decisions in program source. The MUMCUT strategy has been proposed to generate test cases from Boo...
Web services provide a way to facilitate the business integration over the Internet. Flexibility is an important and desirable property of Web service-based systems due to dynamic business environments. The flexibility can be provided or addressed by incorporating variability into a system. In this study, we investigate how variability can be incor...
UML activity diagrams (UADs) are widely employed to model the behavior of software systems under development. To test the implemented systems, the UAD specification is a reasonable basis. Generating a complete suite of test scenarios is a challenging task in particular when the systems under development are large and complex enough. In this paper,...
When a user requests the execution of a process in a service environment, often she desires transactional behavior in executing. However, current standards for Web services execution do not offer support for transactions. We overcome this shortcoming by presenting an extension proposal for integrating transaction management into the BPEL framework....
The Business Process Execution Language (BPEL) is a widely recognized executable language supporting the specification of
process-oriented service compositions. However, the language is limited in addressing variable requirements in the description
of business processes. We propose to construct variable and maintainable Web services compositions wi...
Testing concurrent applications is difficult yet important. UML activity diagrams are widely used to model concurrent interactions among multiple objects. We present a transformation-based approach to generating scenario-oriented test cases for testing concurrent applications modeled by UML activity diagrams. The approach first transforms a UML act...
Random Testing (RT) is a fundamental technique of software testing. Adaptive Random Testing (ART) has recently been developed as an enhancement of RT that has better fault detection effectiveness. Several methods (algorithms) have been developed to implement ART. In most ART algorithms, however, the above enhancement diminishes when the dimensional...
Adaptive random testing (ART) is an enhanced version of random testing (RT). It has been observed that the compactness of failure regions is one of the factors that affect the performance of ART. However, this relationship has only been verified with rectangular failure regions. This paper further investigates the relationship between the compactne...
Boolean expressions are widely used to model decisions or conditions of a specification or source program. The MUMCUT, which is designed to detect seven common faults where Boolean expressions under test are assumed to be in Irredundant Disjunctive Normal Form (IDNF), is an efficient fault-based test case selection strategy in terms of the fault-de...
It is a desirable capability for some types of software-intensive systems to be able to modify components or architecture at the run-time. In this paper, we investigate how to enable the run-time modification of components in a system originally developed without catering for this feature at its design phase. In our proposed approach, components ar...
Currently, more and more software systems are developed based on the component technologies, such as JavaBeans. It is significant to recover software architecture from the implementation for the purpose of software maintenance and evolution. In this paper, a general framework for architecture recovery of component-based applications is proposed, id...
Boolean expressions are extensively used in software specifications. It is important to generate a small-sized test set for Boolean expressions without sacrificing the fault-detection capability. MUMCUT is an efficient test case generation strategy for Boolean expressions in Irreducible Disjointed Normal Form (IDNF). In the real world, however, Boo...
Software Architecture can help people to better understand the gross structure and, with powerful analysis techniques, to evaluate the properties of a software system. To accommodate the dynamic changes and facilitate interop- eration of tools, an architectural description of the distributed system should be extensible and interchangeable. In this...
An important issue of real-time software development is to analyze and predict the execution time of real-time software. A kind of visual prediction and analysis framework of the execution time of real-time software based on program flowchart is proposed in the paper. The key issues of implementing the framework are discussed in detail, including c...
Software architecture (SA) is emerging as one of the primary research areas in software engineering recently and one of the key technologies to the development of large-scale software-intensive system and software product line system. The history and the major direction of SA are summarized, and the concept of SA is brought up based on analyzing an...
In order to design and generate test cases of workflows, test outline model is defined. The three-tier process to transform an activity diagram into its test outline model and then into its test case model, as well as the test coverage criteria, is introduced, including a set of basic rules, by which unstructured flows is eliminated to modularize t...
Visualization of information is an important approach of understanding the structure of software. The complex calls between modules of structural software hinder from analysis and understanding of software structure. A wove algorithm called generalized tensility balance algorithm, which is characterized by link dimension of modules, that is total o...
A software test tool based on source code is an important tool to
aid software quality assurance, and under those environments where the
test technology and test requirements continuously vary, the software
test tool itself should be endowed with extensibility, easy reusability
and interoperability. In this paper, the necessity of research on an
in...
Network
Cited