How it works
flow ──► grammar ──► evolve ──► suite ──► run on Connect ──► resultsDiteko reads an Amazon Connect flow (from your instance, a Connect export, or cxblueprint) as a graph of blocks. Each block has a role, which decides how a test call moves through it:
- Caller input (a menu, or “enter your account number”): the caller’s next key press decides the branch. A test can also stay silent (a timeout) or press a key the menu does not offer.
- Environment (hours of operation, an attribute check, a Lambda’s answer): the state of the
world decides. A test states it up front as a
GIVENfact, and Diteko stages it on Connect with an attribute or a mock. - Pass-through (prompts and setters): the call moves on.
- Terminal (disconnect, transfer to a queue or an agent, transfer to another flow): the call ends.
Grammar
Section titled “Grammar”A grammar lists, in BNF, every sequence of actions a caller can take through the flow, plus the environment choices that open each branch. Diteko generates it from the flow; you can edit it as BNF or as JSON, which are two views of the same thing. A run with no grammar attached uses the generated one.
Evolve
Section titled “Evolve”Grammatical Evolution breeds test calls. Each candidate is a string of numbers that the grammar turns into a call; a simulator walks that call through the flow and scores it on the fitness objectives. The best breed, for as many generations as the run asks for. Every distinct call found along the way is kept, not only the final generation’s.
The run copies the flow and grammar it started with, so editing either later does not change what its tests mean.
From everything a run found, you keep the top tests, ordered either by fitness or by the most new coverage each adds. Each test reads as a call:
GIVEN: hours=openSAY: Welcome to Example Bank. Press 1 for cards, 2 for loans.PRESS: 1SAY: Please enter your card number.PRESS: 4111111111111111END: Transfer to queueRun and results
Section titled “Run and results”A suite runs on Connect’s own native testing, which simulates a call against the deployed flow. See verdicts for what each outcome means.