This document describes the System Architecture and Tech Stack, including all involved components - proprietary ones, 3rd-Party and cloud services. Some of them are mandatory, some are optional. For the proprietary components, the technology stack is also described.
Architecture Overview
Botium Components
The proprietary components described here have been developed by Botium itself.
-
Botium User Interface: The Botium User Interface is a browser-based
application. It works on all state-of-the-art browsers, including Chrome, Safari,
Edge and Firefox.
Tech Stack Javascript (of course) React 16 / Redux Google Material-UI 3 GraphQL Client with Apollo GraphQL Client 2 -
Botium Server: The Botium Server is the central instance connecting the
Agents and the User Interface. It is a server-side application and supports
load-balancing over multiple instances as well as multi-tenancy.
Tech Stack Node.js v20 - perfect choice for micro-service development GraphQL API with Apollo GraphQL Server 2 Redis Message Queue and Job Scheduling -
Botium Agent: The Botium Agent(s) are the work-horses, which actually
run the test cases. Usually, there are several Botium Agents active for parallel
execution of test cases.
Tech Stack Node.js v20 - perfect choice for micro-service development Botium Core for Test Case Execution Redis Message Queue and Job Scheduling -
Botium Speech Processing (optional): For doing advanced voice testing with
Botium, this additional service connects Botium
to state-of-the-art voice technology:
- Speech-To-Text with Open Source products like Kaldi, or connected to Google or Amazon clouds
- Text-To-Speech with Open Source products like MartyTTs, picotts, or connected to Google or Amazon clouds
- Adding voice effects and layers to your audio recordings
Tech Stack Node.js v20 OpenAPI (HTTP/JSON) Kaldi, MaryTTS, PicoTTS SoX (for audio effects) -
Botium Coach Worker (optional): NLP analytics can best be done with state-of-the-art machine learning libraries available
for Python.
- Utterance similarity
- Keyword analytics
- Sentence embeddings
- and more ...
Tech Stack Python 3 OpenAPI (HTTP/JSON) TensorFlow 2.2 Huggingface Other ML-related libraries like SciPy, Pandas, NLTK, NumPy, Keras, ...
3rd-Party Components
In the Botium architecture, there are some state-of-the-art components involved which are provided by 3rd-parties, typically available as Open Source.
- CI/CD Pipeline (optional): Having a CI/CD Pipeline is a must nowadays. Botium integrates well with state-of-the-art products out there.
- GraphQL API Client (optional): Botium also has a GraphQL API to support advanced toolchain integration scenarios
- Zapier: With Botium’s Zapier integration, users can view the test results through any platform of their choice and use those results to trigger specific events; for example, a failed result could trigger a phone call to a designated team member etc.
- Load Balancer: Between the client browser and the Botium services there is a load balancer required that routes the client requests to the available backend services, detects and reacts to unavailable instances etc.
- EFS (Elastic File System): Botium file storage
- RDS (Relational Database Services): Botium data storage
- Redis: As a reliable communication and job processing queue between the Botium components, state-of-the-art Redis v5 or v6 is used.
- ZAP (Zed Attack Proxy) (optional): Botium uses the Zed Attack Proxy for checking Chatbot APIs for the OWASP Top 10 security threats.
Cloud Services (all optional)
Botium occasionally makes use of some cloud services.
- Google Translate: For translating test sets into other languages.
- OpenAI: GPT-3 and GPT-4 are used for paraphrasing and more to come.
- Browser/Device Cloud Providers: Required for End-2-End-Testing.
- Google Speech and Amazon Polly / Transcribe: Text-to-Speech and Speech-To-Text for voice testing.
- Azure Speech: Text-to-Speech and Speech-To-Text for voice testing.
- Twilio: For IVR Testing a Twilio subscription is required.