Toward A Service Platform for Developing Smart Contracts on Blockchain in BDD and TDD Styles

In recent years, Blockchain technology has been highly valued, and the related applications have begun to be developed in large numbers. A smart contract is a software component encompass business logics and transactions that run on a blockchain. Thus, verifying whether the contract logics fully reflect the business requirements are one of the most important software engineering issues in blockchain application development. Currently, developing smart contracts is still a challenging task even for experienced programmers due to the lacking of an integrated tool for developing and testing. In response to this challenge, this paper presents a service platform that supports BDD-style (Behavior-Driven Development) smart contract development, testing, and deployment for the Ethereum-based blockchains. This platform focuses on providing and resolving the cross-cutting concerns across the life-cycle of smart contract development. The feasibility of this platform is shown by demonstrating how an application scenario, namely, loyalty points exchange, can be implemented using the proposed platform. Our experiences indicate that the burdens of developers when developing smart contracts can be effectively reduced and thus increases the quality of contracts.

[1]  Frances Paulisch,et al.  How “Specification by Example” and Test-Driven Development Help to Avoid Technial Debt , 2016, 2016 IEEE 8th International Workshop on Managing Technical Debt (MTD).

[2]  Matt Wynne,et al.  The Cucumber Book: Behaviour-Driven Development for Testers and Developers , 2012 .

[3]  Melanie Swan,et al.  Blockchain: Blueprint for a New Economy , 2015 .

[4]  Mazedur Rahman,et al.  A Reusable Automated Acceptance Testing Architecture for Microservices in Behavior-Driven Development , 2015, 2015 IEEE Symposium on Service-Oriented System Engineering.

[5]  Kent L. Beck,et al.  Test-driven Development - by example , 2002, The Addison-Wesley signature series.

[6]  Daniel Davis Wood,et al.  ETHEREUM: A SECURE DECENTRALISED GENERALISED TRANSACTION LEDGER , 2014 .

[7]  Michael Hüttermann Specification by Example , 2012 .

[8]  Sandeep Sivanandan,et al.  Agile development cycle: Approach to design an effective Model Based Testing with Behaviour driven automation framework , 2014, 20th Annual International Conference on Advanced Computing and Communications (ADCOM).

[9]  Doreen Meier,et al.  Agile Testing A Practical Guide For Testers And Agile Teams , 2016 .

[10]  Chris Dannen,et al.  Introducing Ethereum and Solidity: Foundations of Cryptocurrency and Blockchain Programming for Beginners , 2017 .

[11]  Christian Cachin,et al.  Architecture of the Hyperledger Blockchain Fabric , 2016 .

[12]  Michael Devetsikiotis,et al.  Blockchains and Smart Contracts for the Internet of Things , 2016, IEEE Access.

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