A preliminary study on using acceptance tests for representing business requirements of smart contracts

In this work, we address the following question: "Which acceptance testing techniques are being used for representing business requirements of smart contracts?" To answer this question we performed a systematic mapping to determine whether acceptance tests for smart contracts and blockchain are being utilized to represent requirements and which acceptance testing techniques are being applied. This systematic mapping shows that, in fact, acceptance testing techniques are still not commonly used to represent the business requirements of smart contracts. We only found two studies using acceptance testing techniques with smart contracts. Moreover, only one of them uses an acceptance testing technique, the BDD (Behavior-Driven Development) notation, to represent the business requirements. In order to confirm that it is possible to represent business requirements of smart contracts, we developed an example that uses the BDD notation to represent requirements of a smart contract deployed in the Hyperledger blockchain. Preliminary results show that it is possible to use acceptance tests to represent business requirements.

[1]  Thomas Mejtoft,et al.  Reclaiming Control over Personal Data with Blockchain Technology: An Exploratory Study , 2019, Bled eConference.

[2]  Kai Petersen,et al.  Systematic Mapping Studies in Software Engineering , 2008, EASE.

[3]  Douglas Hiura Longo,et al.  Poster: A Systematic Literature Review to Support the Selection of User Acceptance Testing Techniques , 2018, 2018 IEEE/ACM 40th International Conference on Software Engineering: Companion (ICSE-Companion).

[4]  Marco Torchiano,et al.  Using acceptance tests as a support for clarifying requirements: A series of experiments , 2009, Inf. Softw. Technol..

[5]  Ayush Jain,et al.  Enabling Enterprise Blockchain AppDev Teams , 2017, 2017 23RD Annual International Conference in Advanced Computing and Communications (ADCOM).

[6]  Peter Marwedel Specifications and Modeling , 2011 .

[7]  Geir Kjetil Hanssen,et al.  Automated Acceptance Testing Using Fit , 2009, 2009 42nd Hawaii International Conference on System Sciences.

[8]  Hans A. Hansson,et al.  A Survey on Testing for Cyber Physical System , 2015, ICTSS.

[9]  Andrea Pinna,et al.  Blockchain-Oriented Software Engineering: Challenges and New Directions , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering Companion (ICSE-C).

[10]  Julio Cesar Sampaio do Prado Leite,et al.  C&L: Generating model based test cases from natural language requirements descriptions , 2014, 2014 IEEE 1st International Workshop on Requirements Engineering and Testing (RET).

[11]  Walter Fuertes,et al.  Real-time flight simulator construction with a network for training pilots using mechatronics and cyber-physical system approaches , 2017, 2017 IEEE International Conference on Power, Control, Signals and Instrumentation Engineering (ICPCSI).

[12]  Rostislav Yavorskiy,et al.  Poster: ClearTH Test Automation Framework: A Running Example of a DLT-Based Post-Trade System , 2019, 2019 12th IEEE Conference on Software Testing, Validation and Verification (ICST).

[13]  Axel Vallin Secure delivery system using blockchain technology , 2018 .

[14]  Michele Marchesi,et al.  An Agile Software Engineering Method to Design Blockchain Applications , 2018, CEE-SECR '18.

[15]  Holger Schlingloff,et al.  Specification and Verification of Collaborative Transport Robots , 2018, 2018 4th International Workshop on Emerging Ideas and Trends in the Engineering of Cyber-Physical Systems (EITEC).

[16]  Pearl Brereton,et al.  Performing systematic literature reviews in software engineering , 2006, ICSE.

[17]  Marco Torchiano,et al.  "Talking tests": a Preliminary Experimental Study on Fit User Acceptance Tests , 2007, First International Symposium on Empirical Software Engineering and Measurement (ESEM 2007).

[18]  Grigori Melnik,et al.  The practice of specifying requirements using executable acceptance tests in computer science courses , 2005, OOPSLA '05.

[19]  Carlos Angel Iglesias,et al.  Beast methodology: An agile testing methodology for multi-agent systems based on behaviour driven development , 2013, Information Systems Frontiers.

[20]  Fabrice Bouquet,et al.  A SysML Formal Framework to Combine Discrete and Continuous Simulation for Testing , 2015, ICFEM.

[21]  Holger Schlingloff,et al.  Cyber-Physical Systems Engineering , 2014, SETSS.

[22]  Xiaofeng Wang,et al.  A Study of the Characteristics of Behaviour Driven Development , 2011, 2011 37th EUROMICRO Conference on Software Engineering and Advanced Applications.

[23]  Mathias Landhäußer,et al.  Connecting User Stories and code for test development , 2012, 2012 Third International Workshop on Recommendation Systems for Software Engineering (RSSE).

[24]  Andrea Pinna,et al.  Initial Coin Offerings and Agile Practices , 2018, Future Internet.

[25]  Ieee Std,et al.  IEEE Standard for Software Verification and Validation , 2008 .

[26]  Joachim Denil,et al.  Testing IoT systems using a hybrid simulation based testing approach , 2018, Computing.

[27]  Jochen Hiller,et al.  Multi-material Acceptance Testing for CT-Based Coordinate Measurement Systems , 2019, Lecture Notes in Mechanical Engineering.

[28]  Grigori Melnik,et al.  Tests and Requirements, Requirements and Tests: A Möbius Strip , 2008, IEEE Software.

[29]  Nick Szabo,et al.  Formalizing and Securing Relationships on Public Networks , 1997, First Monday.

[30]  Mike Hill,et al.  Creating a living specification using FIT documents , 2005, Agile Development Conference (ADC'05).

[31]  Mike Chiasson,et al.  Executable acceptance tests for communicating business requirements: customer perspective , 2006, AGILE 2006 (AGILE'06).

[32]  Patricia Vilain,et al.  Automated Acceptance Tests as Software Requirements: An Experiment to Compare the Applicability of Fit Tables and Gherkin Language , 2018, XP.

[33]  Dietmar P. F. Möller,et al.  Systems and Software Engineering , 2016 .

[34]  Miroslaw Staron,et al.  Requirements Engineering for Automotive Embedded Systems , 2019, Automotive Systems and Software Engineering.

[35]  Michele Marchesi Why blockchain is important for software developers, and why software engineering is important for blockchain software (Keynote) , 2018, IWBOSE@SANER.

[36]  Debajani Mohanty Installation, Development, Deployment, Unit, and Functional Testing , 2019 .

[37]  Andrea Pinna,et al.  Ensure Traceability in European Food Supply Chain by Using a Blockchain System , 2019, 2019 IEEE/ACM 2nd International Workshop on Emerging Trends in Software Engineering for Blockchain (WETSEB).

[38]  Bastian Pokorni,et al.  Production Assessment 4.0 – Methods for the Development and Evaluation of Industry 4.0 Use Cases , 2018 .

[39]  Mehrdad Sabetzadeh,et al.  Test case prioritization for acceptance testing of cyber physical systems: a multi-objective search-based approach , 2018, ISSTA.

[40]  Adriano M. S. Lima,et al.  An In Vivo Experimental Assessment of BTrans: An Agile Business Transformation Methodology , 2019, 16th International Conference on Information Technology-New Generations (ITNG 2019).

[41]  Debajani Mohanty Testing Strategy for Ethereum Dapps , 2018 .

[42]  Xin Zhou,et al.  Review on Testing of Cyber Physical Systems: Methods and Testbeds , 2018, IEEE Access.

[43]  Vassilis Koutkias,et al.  Comprehensive user requirements engineering methodology for secure and interoperable health data exchange , 2018, BMC Medical Informatics and Decision Making.

[44]  Dragos Truscan,et al.  MegaM@Rt2 Project: Mega-Modelling at Runtime - Intermediate Results and Research Challenges , 2019, TOOLS.

[45]  Kai Petersen,et al.  Guidelines for conducting systematic mapping studies in software engineering: An update , 2015, Inf. Softw. Technol..

[46]  Infosys Validation Solutions Assuring success in blockchain implementations by engineering quality in validation , 2017 .

[47]  Rahul Rao,et al.  Smart Contracts Using Blockly: Representing a Purchase Agreement Using a Graphical Programming Language , 2018, 2018 Crypto Valley Conference on Blockchain Technology (CVCBT).

[48]  Priyanka Chawla,et al.  Testing Perspectives of Fog-Based IoT Applications , 2019, Fog and Edge Computing.

[49]  Ricardo Jardim-Goncalves,et al.  A semantic wiki approach to enable behaviour driven requirements management , 2017 .

[50]  Chi Wu-Lee,et al.  Toward A Service Platform for Developing Smart Contracts on Blockchain in BDD and TDD Styles , 2017, 2017 IEEE 10th Conference on Service-Oriented Computing and Applications (SOCA).