Architecture & integration
Below is a representation of the whole system.
Architecture
Swittest is a robust testing service exposed via a RESTful API. At its core, the Swittest Engine manages the entire lifecycle of a test, including vector orchestration, transaction triggering, and automated results analysis.
Data & connectivity
- Storage: Test vectors are persisted in a dedicated S3 bucket.
- System Under Test (SUT): The target environment consists of a Point of Interaction (POI) terminal and an optional Card Emulation Probe (utilized when hardware virtualization is not feasible).
- Communication: Both the POI and the probe establish persistent connections to the Swittest Socket Server via TCP/IP, utilizing the proprietary Swittest protocol.
User Interfaces
Switstack offers two distinct interfaces to interact with the service, both providing feature parity:
- CLI Tool: A Python-based interface optimized for developers and power users seeking automation and speed.
- Web Frontend: A graphical interface designed for users who prefer visual interaction and dashboarding.
Note
The CLI tool and the web frontend offer the same features.
Integration
Swittest is designed for seamless integration into existing workflows:
Moka Ecosystem
If your environment uses Moka, Switstack provides a turnkey solution with all necessary packages and applications pre-configured for immediate deployment.
Custom Integration
For non-Moka environments, integration is straightforward:
- Develop a lightweight test application in your language of choice.
- Establish a connection to the Swittest Socket Server.
- Implement the methods defined in the Swittest protocol methods.
Flow
A typical testing flow would look as follows:
Data management
This is probably the hardest part. After the test application received the test data (which includes the EMV configuration and the transaction data) it needs to convert Swittest data model into the targetted EMV L2's data model and call the right EMV L2 SDK's APIs to configure it and run the transaction.
Feel free to contact us should you need assistance with it.