Academy & Industry Research Collaboration Center (AIRCC)

Volume 12, Number 14, August 2022

Development of Communicating Stream X-Machine Tool for Modeling and Generating Test Cases for Automated Teller Machine


Bashir Adewale Sanusi1, Emmanuel Ogunshile1, Mehmet Aydin1, Stephen Olatunde Olabiyisi2 and Mayowa Oyedepo Oyediran3, 1University of the West of England, United Kingdom, 2Ladoke Akintola University of Technology, Nigeria, 3Ajayi Crowther University, Nigeria


The improvement of this paper takes advantage of the existing formal method called Stream XMachine by optimizing the theory and applying it to practice in a large-scale system. This optimized formal approach called Communicating Stream X-Machine (CSXM) applied in software testing based on its formal specifications to a distributed system as it points out its advantages and limits of the use of the existing formal methods to this level. However, despite the tremendous works that has been done in the software testing research area, the origin of bugs or defects in a software is still cost and takes more time to detect. Therefore, this paper has proven that the current state of art challenge is due to that lack of a formal specification of what exactly a software system is supposed to do. In this paper, CSXM principles was used for the development of Automated Teller Machine (ATM) given formal specification which outputs conforms with the implementation. Moreso, the computational strength of Remote Method Invocation (RMI) network interface in Java programming was used to provide communication between the stand-alone systems i.e., the client (ATM) and server (Bank) in the context of this paper. The results of this paper have been proven and helps software developers and researchers takes early action on bugs or defects discovered by software testing.


Formal Method, Software Testing, Stream X-machine, Communicating Stream X-Machine, Software Testing, Distributed System, Formal Specification, Defects, Automated Teller Machine, Remote Method Invocation, Java Programming Language.