Skip to main content

Botium Architecture

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

Figure 1. Botium Architecture

Botium Components

The proprietary components described here have been developed by Botium itself.
  1. 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
  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
  3. 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
  4. 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)
  5. 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.

  1. CI/CD Pipeline (optional): Having a CI/CD Pipeline is a must nowadays. Botium integrates well with state-of-the-art products out there.
  2. GraphQL API Client (optional): Botium also has a GraphQL API to support advanced toolchain integration scenarios
  3. 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.
  4. 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.
  5. EFS (Elastic File System): Botium file storage
  6. RDS (Relational Database Services): Botium data storage
  7. Redis: As a reliable communication and job processing queue between the Botium components, state-of-the-art Redis v5 or v6 is used.
  8. 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.

  1. Google Translate: For translating test sets into other languages.
  2. OpenAI: GPT-3 and GPT-4 are used for paraphrasing and more to come.
  3. Browser/Device Cloud Providers: Required for End-2-End-Testing.
  4. Google Speech and Amazon Polly / Transcribe: Text-to-Speech and Speech-To-Text for voice testing.
  5. Azure Speech: Text-to-Speech and Speech-To-Text for voice testing.
  6. Twilio: For IVR Testing a Twilio subscription is required.

Was this article helpful?

0 out of 0 found this helpful