The Importance of Testing in the Early Stages of Smart Contract Development Life Cycle

  • N. Sánchez-Gómez University of Seville, Escuela Técnica Superior de Ingeniería Informática. Web Engineering and Early Testing (IWT2) Group. Avenida Reina Mercedes s/n. 41012 Sevilla, Spain
  • L. Morales-Trujillo University of Seville, Escuela Técnica Superior de Ingeniería Informática. Web Engineering and Early Testing (IWT2) Group. Avenida Reina Mercedes s/n. 41012 Sevilla, Spain
  • J. J. Gutiérrez University of Seville, Escuela Técnica Superior de Ingeniería Informática. Web Engineering and Early Testing (IWT2) Group. Avenida Reina Mercedes s/n. 41012 Sevilla, Spain
  • J. Torres-Valderrama University of Seville, Escuela Técnica Superior de Ingeniería Informática. Web Engineering and Early Testing (IWT2) Group. Avenida Reina Mercedes s/n. 41012 Sevilla, Spain
Keywords: Blockchain, Smart contract, Model-based software development, Early testing

Abstract

The use of smart contract augurs a world without intermediaries because the code and the agreements contained therein exist across a distributed, decentralized blockchain network. In software engineering, this collaboration is usually represented by using business process models and smart contracts can be used to implement business collaborations in general and inter-organizational business processes. The validation of this contract and the assurance of its quality are critical for its right application. Early testing in smart contract definition is the fact of this paper. The paper discusses the possibility to use transformation protocols to obtain derived artefacts like test case definitions and smart contract code scaffolds. Generation of derived artefacts significantly reduces the number of defects before deploying the smart contract code in the blockchain network. Transformations protocols are created using model-based software development and modelling techniques. This approach allows to simplify and improve the management and execution of collaborative business processes. This would allow, in addition, the application of systematic mechanisms to evaluate and validate the smart contract and, particularly, the application of early testing techniques which would help to reduce the number of defects and, ultimately, the cost of the final review.

Downloads

Download data is not yet available.

Author Biographies

N. Sánchez-Gómez, University of Seville, Escuela Técnica Superior de Ingeniería Informática. Web Engineering and Early Testing (IWT2) Group. Avenida Reina Mercedes s/n. 41012 Sevilla, Spain

N. Sánchez-Gómez has developed a large part of its professional career in the technology and process consultancy sector, both in the private and public sectors. Throughout more than thirty years of professional experience, he has gone from implementing ICT solutions to supervising work teams, managing clients and leading ICT projects. He is currently a member of the Web Engineering and Early Testing Research Group. In recent years, he has been coordinating different projects of the research group, including the Project Management Office of the Ministry of Culture (Andalusian Regional Government).

He currently has a broad knowledge of the functions and processes that make up the activity environment of the sectors in which he has participated and has completed his studies in Computer Engineering, with the Degree in Computer Engineering and the University Master in Engineering and Software Technology, both at the University of Seville, with the knowledge and skills of people management, ICT project management, customer management and practical application of computer engineering methodologies and techniques, in addition to obtaining the Prince2® Foundation Certified, the ISTQB® Certified Tester, Foundation Level and the PMP® Certified.

Previously, from 2001 to 2009, he developed his professional activity as Manager of the company everis Spain, being responsible for different accounts in both the public and private sectors. From 1990 to 2001, he worked for the company Coritel (Accenture group), where he also carried out management and project management activities. Further information about her research activities and her list of publications can be found at https://investigacion.us.es/sisius/sis_showpub.php?idpers=20733

L. Morales-Trujillo, University of Seville, Escuela Técnica Superior de Ingeniería Informática. Web Engineering and Early Testing (IWT2) Group. Avenida Reina Mercedes s/n. 41012 Sevilla, Spain

L. Morales-Trujillo Graduated in Health Engineering since 2016 and Master in Software Engineering and Technology since 2018; both by the University of Seville (US).Since 2016 linked to the Web Engineering and Early Testing (IWT2) research group, belonging to the department. Languages and Computer Systems of the Higher Technical School of Computer Engineering of the US. Currently, enrolled in the doctorate program in Computer Engineering at the US, with a line of research according to my academic training: Ensuring the traceability of elements in a context of systems of systems. In addition, linked to the US within the Recruitment Plan for Young Research Personnel and R&D Support Technicians, Framework of the National Youth Guarantee System of the 2014–2020 Youth Employment Operational Program. Being part of a research group has allowed me to get to know different R&D lines, attend conferences, participate in R&D contracts in collaboration with companies, practice as a visiting professor, as well as continue my academic studies.

The lines of research in which I have worked are: Optimized and Flexible Management of Business Processes, Early Testing and Hybrid Simulation Models in Software Production, Guided Solutions to Systematize Early Quality Assurance of Software and Guided Mechanisms in Stages Early for Software Improvement. I have practiced (2019) as a guest professor in the subject “Modeling and Analysis of Requirements in Information Systems” of the Bachelor’s Degree in Computer Engineering in Computer Technologies, teaching requirements validation activities in the context of developing an information system to support the clinical services management. I have done a 6-month pre-doctoral stay at the Universidad a Distancia de Madrid, in the course 18/19. Further information about her research activities and her list of publications can be found at https://www.investigacion.us.es/sisius/sis_showpub.php?idpers=25277

J. J. Gutiérrez, University of Seville, Escuela Técnica Superior de Ingeniería Informática. Web Engineering and Early Testing (IWT2) Group. Avenida Reina Mercedes s/n. 41012 Sevilla, Spain

J. J. Gutiérrez was awarded his PhD in Computer Science by the University of Seville, Spain, in 2011. Since 2004 he has been a professor in the Department of Computer Languages and Systems at the University of Seville and since 2006 he has been a collaborating professor.

He is currently a member of the Web Engineering and Early Testing Research Group. Among his most notable research results, it is worth mentioning his transfer to the business world. With the development of the concept of early testing and its integration with the NDT methodology also developed within the research group, he has managed to develop a set of methodological solutions for the development and quality assurance that has been widely used in the Andalusian and national business network or even by international companies. This can be measured not only in the transfer projects, but also in the number of publications with companies and in the tools registered. Further information about her research activities and her list of publications can be found at https://investigacion.us.es/sisius/sis_showpub.php?idpers=11730

J. Torres-Valderrama, University of Seville, Escuela Técnica Superior de Ingeniería Informática. Web Engineering and Early Testing (IWT2) Group. Avenida Reina Mercedes s/n. 41012 Sevilla, Spain

J. Torres-Valderrama received his MSc and the Phd in Computer Systems in 1997. He has been working in the Department of Computer Languages and Systems at the Seville’s University since 1991, where he is currently a senior lecturer. Her main research interests are related to requirements engineering, web-based systems development, user interfaces, usability and Early Software Testing. In these areas, she has directed several PhD theses and published numerous papers in journals and congresses. He has managed and participated in a high number of projects related to her areas of research.

He has been dean of School of Computer Engineering at Seville’s University from 2006 to 2014 and he is currently manager of the Foundation for Research and Development of Information Technology in Andalusia since 2016. Further information about her research activities and her list of publications can be found at https://investigacion.us.es/sisius/sis_showpub.php?idpers=3278

References

Achour, C.B. (1998). Writing and Correcting Textual Smart Contract for System Design. Natural Language and Information Systems Workshop. Vienna, Austria.

Beizer, B. (1990). Software Testing Techniques. Van Nostrand Reinhold Company Limited.

Binder, R. V. (2000). Testing Object-Oriented Systems. Addison-Wesley. USA.

Boehm B. (1981). Software Engineering Economics. Prentice Hall, Englewood Cliffs, NJ.

Buterin, V. (2014). Ethereum: A next-generation Smart Contract and decentralized application platform. https://github.com/ethereum/wiki/wiki/White-Pape.

Choudhury, O. Rudolph, N., Sylla, I., Fairoza, N. (2018). Auto-Generation of Smart Contracts from Domain-Specific Ontologies and Semantic Rules. 10.1109/Cybermatics_2018.2018.00183.

Clack, C.D., Bakshi, V.A., Braine, L. (2016). Smart Contract Templates: essential requirements and design options. https://arxiv.org/pdf/1612.04496.pdf

Cockburn, A. (2000). Writing Effective Use Cases. Addison-Wesley 1st edition. USA.

Conrad, M., Fey, I., Sadeghipour, S. (2005). Systematic Model-Based Testing of Embedded Automotive Software. Electronic Notes in Theoretical Computer Smart Contract (Book).

Cutilla, C. R., García-García, J. A., Gutiérrez, J. J., Domínguez-Mayo, P., Cuaresma, M. J. E., Rodríguez-Catalán, L., & Mayo, F. J. D. (2012). Model-driven Test Engineering. A Practical Analysis in the AQUA-WS Project. In ICSOFT (pp. 111-119).

Dimitrijević, S., Jovanovic, J., Devedžić, V. (2015). A comparative study of software tools for user story management. Information and Software Technology, 57 (1), 352–368. https://doi.org/10.1016/j.infsof.2014.05.012

Liss, F. (2018). Blockchain and the EU ETS: An architecture and a prototype of a decentralized emission trading system based on smart contracts. https://doi.org/10.13140/RG.2.2.15751.65448

Enríquez, J. G., Domínguez-Mayo, F. J., Escalona, M. J., García, J. A., Lee, V., & Goto, M. (2015). Entity Identity Reconciliation based Big Data Federation-A MDE approach.

Escalona, M.J., Gutiérrez J.J., Villadiego. D., León. A., Torres A.H. (2006). Practical Experiences in Web Engineering. 15th International Conference on Information Systems Development. Budapest (Hungary).

Escalona, M. J., Urbieta, M., Rossi, G., Garcia-Garcia, J. A., & Luna, E. R. (2013). Detecting Web requirements conflicts and inconsistencies under a model-based perspective. Journal of Systems and Software, 86(12), 3024–3038.

Fielding, R. T., Taylor R.N. (2000). Architectural styles and the design of network-based software architectures. Doctoral Dissertation. Architectural styles and the design of network-based software architectures. University of California, Irvine © 2000. ISBN:0-599-87118-0

Fielding, R. T., Taylor R.N. (2002). Principled Design of the Modern Web Architecture. ACM Transactions on Internet Technology, Vol. 2,

Forward, A., Lethbridge, T. (2008). Problems and opportunities for model-centric versus code-centric software development: A survey of software professionals. International Workshop on Models in Software Engineering

García-García, J. A., Escalona, M. J., Ravel, E., Rossi, G., & Urbieta, M. (2012). NDT-merge: a future tool for conciliating software requirements in MDE environments. In Proceedings of the 14th International Conference on Information Integration and Web-based Applications & Services (pp. 177–186). ACM.

García-García, J. A., Enríquez, J. G., García-Borgoñón, L., Arévalo, C., & Morillo, E. (2017). An MDE-based framework to improve the process management: the EMPOWER project. In 2017 IEEE 15th International Conference on Industrial Informatics (INDIN) (pp. 553–558). IEEE.

García-García, J.A., Ortega, M.A., García-Borgoñón, L., Escalona, M.J. (2012). NDT-Suite: a model-based suite for the application of NDT. In International Conference on Web Engineering. Springer, Berlin, Heidelberg.

Chainlink (2019). Interoperability and Connectivity: Unlocking Smart Contracts 3.0. https://blog.chain.link/interoperability-and-connectivity-unlocking-smart-contracts-3-0-2

Pham, V.C. (2018). Model-Based Software Engineering: Methodologies for Model – Code Synchronization in Reactive System Development. Embedded Systems. Université Paris – Saclay.

Graham, D., Van Veenendaal, E., Evans, I., Black, R. (2015). Foundations of Software Testing: ISTQB Certification Cengage Learning Emea; Revised edition.

Grigg, I. (2004). The Ricardian Contract. In Proceedings of the First IEEE International Workshop on Electronic Contracting. http://iang.org/papers/ricardian_contract.html.

Grigg, I. (2015). The Sum of All Chains – Let’s Converge! Presentation for Coinscrum and Proof of Work. http://financialcryptography.com/mt/archives/001556.html.

Hackius, N.; Petersen, M. (2017). Blockchain in Logistics and Supply Chain: Trick or Treat? In Proceedings of the Hamburg International Conference of Logistics (HICL), Hamburg, Germany.

Kitchenham B., Brereton P. (2013). A systematic review of systematic review process research in software engineering. Information & Software Technology.

Kundu, D., Samanta, D., Mall, R. (2013). Automatic code generation from unified modelling language sequence diagrams. Software, IET. 7. 12-28. 10.1049/iet-sen.2011.0080.

Lu, Q, Weber, I, Staples, M. (2018). Why Model-Driven Engineering Fits the Needs for Blockchain Application Development. IEEE Blockchain Technical Briefs, September 2018

Marchesi, M., Marchesi, L., Tonelli, R. (2018). An Agile Software Engineering Method to Design Blockchain Applications. Software Engineering Conference Russia (SECR 2018). Moscow (Russia).

Nakamoto, S. (2009). Bitcoin: A Peer-to-Peer Electronic Cash System.

Nofer, M., Gomber, P., Hinz, O., Schiereck, D. (2017). Blockchain. Business & Information Systems Engineering. June 2017, Volume 59, Issue 3, pp. 183-187.

OMG. (2017). An OMG ®Unified Modeling Language ®Publication OMG ®Unified Modeling Language ®(OMG UML ®) OMG Document Number: Date. (December), 796. https://www.omg.org/spec/UML/20161101/PrimitiveTypes.xmi

Omohundro, S. (2014). Cryptocurrencies, Smart Contracts, and artificial intelligence. Published in AI Matters.

PivotPoint TechnologyTM. (2019). Digital Engineering Solutions? for Wicked Problems (https://Pivotpt.com)

Pretschner, A., Prenninger, W., Wagner, S., Kuhnel, C., Baumgartner, M., Sostawa, B., Z ĺolch, R., Stauner, T. (2005). One evaluation of model-based testing and its automation. ICSE’05.

Rayskiy, A. (2017). Why Should Testing Start Early in Software Project Development? https://xbsoftware.com/blog/why-should-testing-start-early-software-project-development/

Sandoval, K. (2018). The Role of APIs In Blockchain. https://nordicapis.com/the-role-of-apis-in-Blockchain/. Bloc Nordic APIs.

Satoh, A., Ban, S., Harayama, Y., Yamamoto, K. (2019). Designing fulfilling test cases with test aspect model. Proceedings - 2019 IEEE 12th International Conference on Software Testing, Verification and Validation Workshops, ICSTW2019, 153-158. https://doi.org/10.1109/ICSTW2019.00044

Seebacher, S., Maleshkova, M. (2018). Model-driven Approach for the Description of Blockchain Business Networks. Proceedings of the 51st Hawaii International Conference on System Smart Contract.

Sillitti, A., Succi, G. (2005). Requirements Engineering for Agile Methods. In: Aurum A., Wohlin C. (eds) Engineering and Managing Software Requirements. Springer, Berlin, Heidelberg. DOI: https://doi.org/10.1007/3-540-28244-0_14

Sillitti, A., Ceschi, M., Russo, B., Succi, G. (2005) Managing Uncertainty in Requirements: A Survey in Documentation-driven and Agile Companies, in: 11th IEEE International Software Metrics Symposium (METRICS ’05). DOI: 10.1109/METRICS.2005.29

Staples, M., Chen, S., Falamaki, S., Ponomarev, A., Rimba, P. Tran, A. B., Weber, I. Xu, X., Zhu, L. (2017). Risks and opportunities for systems using Blockchain and Smart Contracts. Technical Report. Data61 (CSIRO), Sydney.

Sultan, K., Ruhi, U., Lakhani, R. (2018). Conceptualizing Blockchains: Characteristics & Applications. 11th IADIS International Conference Information Systems.

Uzun, B., Tekinerdogan, B. (2018). Model-driven architecture-based testing: A systematic literature review. Information and Software Technology, 102 (May), 30–48. https://doi.org/10.1016/j.infsof.2018.05.004

The Modex Team (2019). The life cycle of Smart Contract development https://blog.modex.tech/the-life-cycle-of-smart-contract-development-58b04f65de09

Tran, A.B., Lu, Q., Weber, I. (2018). Lorikeet: A model-driven engineering tool for Blockchain-based business process execution and asset management. In: BPM Demos. CEUR-WS.

Walport, M. (2016). Distributed Ledger Technology: Beyond Blockchain. A report by the UK Government Chief Smart Scientific Adviser. https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/492972/gs-16-1-distributed-ledger-technology.pdf

Wiegers, K. E. (2001). Inspecting Requirements. StickyMinds.com Weekly Column.

Szabo, N. (1997). Formalizing and Securing Relationships on Public Networks. First Monday, 2, No. 9. http://firstmonday.org/ojs/index.php/fm/article/view/548/469

Schön E-M., Winter, D., Escalona, M.J., Thomaschewski, J. (2017). Key Challenges in Agile Requirements Engineering. 18th International Conference on Agile Software Development (XP2017), At Cologne.

Bialy, M., Pantelic, V., Jaskolka, J., Schaap, A., Patcas, L., Lawford, M. Wassyng, A. (2017). Software Engineering for Model-Based Development by Domain Experts. Handbook of System Safety and Security. https://doi.org/10.1016/B978-0-12-803773-7.00003-6

Marchesi, M., Marchesi, L., Tonelli, R. (2018). An Agile Software Engineering Method to Design Blockchain Applications. Software Engineering Conference Russia (SECR 2018). Moscow, Russia.

Uddin, A.; Anand, A. (2019). Importance of Software Testing in the Process of Software Development. IJSRD – International Journal for Scientific Research & Development. Vol. 6, Issue 12, 201.

Published
2020-06-03
Section
SPECIAL ISSUE: Advanced Practices in Web Engineering 2020