Abstract

Continuous delivery has gained increased popularity in industry as a development approach to develop, test, and deploy enhancements to software components in short development cycles. In order for continuous delivery to be effectively adopted, the services that a component depends upon must be readily available to software engineers in order to systematically apply quality assurance techniques. However, this may not always be possible as (i) these requisite services may have limited access and (ii) defects that are introduced in a component under development may cause ripple effects in real deployment environments. Service virtualisation (SV) has been introduced as an approach to address these challenges, but existing approaches to SV still fall short of delivering the required accuracy and/or ease-of-use to virtualise services for adoption in continuous delivery. In this work, we propose a novel machine learning based approach to predict numeric fields in virtualised responses, extending existing research that has provided a way to produce values for categorical fields. The SV approach introduced here uses machine learning techniques to derive values of numeric fields that are based on a variable number of pertinent historic messages. Our empirical evaluation demonstrates that the Cognitive SV approach can produce responses with the appropriate fields and accurately predict values of numeric fields across three data sets, some of them based on stateful protocols.

Highlights

  • Enterprise software systems are increasingly structured as a number of distributed components, called services, which communicate with one another

  • This paper presents a novel software virtualisation solution, called Cognitive Service Virtualisation (CSV), which is capable of projecting numeric values in response to service requests

  • CSV, which is a novel approach for accurately generating the values of numeric fields in response messages, has been proposed

Read more

Summary

Introduction

Enterprise software systems are increasingly structured as a number of distributed components, called services, which communicate with one another. This approach is language-specific, and any modification in the systems leads to a change in the code Another solution uses virtual machines or hardware virtualisation tools, such as VMWare and VirtualBox [7], to host multiple server-side systems that communicate with a component under development. Some shortcomings of service emulation are addressed in SV by (i) recording the interactions between a component under development and its requisite services (e.g., using tools, such as Wireshark [12]), from a number of test scenarios and (ii) generating executable models of the requisite services by applying data mining techniques [6,11,13,14]. This paper presents a novel software virtualisation solution, called Cognitive Service Virtualisation (CSV), which is capable of projecting numeric values in response to service requests This project employs a new methodical approach for the first time in this field.

Related Work
Problem Definition
Motivating Scenario
Csv Structure
Offline Mode
Pre-Processing
Clustering
Generating RTs
Finding Constant and Symmetric Fields in Each RT
Tagging Each RT Field as Numeric or Non-Numeric
Numeric Module
Cluster Centroid Selection
Request Decomposition and Evidence Collection
Mapping
5.1.10. Building Models
5.1.11. Model and Filter Selection
Playback Mode
Data Set Descriptions
Banking Data Set
Calculator Data Set
Ldap Data Set
Evaluation
Method
Threats To Validity
Conclusions and Future Work
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call