Banking chatbot conversation isolation testing checks that each conversation can access only the customer data, dialogue history and system context authorised for that session. It verifies that messages, retrieved documents, cached state and actions from one customer or conversation cannot influence another. Tests cover separate users, concurrent chats and session changes, including cases where identifiers are reused or supplied incorrectly.
What conversation isolation covers
A banking chatbot may keep state in several places: the browser or mobile app, an application session store, a model's conversation context, a retrieval system, or connected banking services. Isolation testing checks the boundaries between these components. A correctly isolated chat must use the authenticated customer's permitted account context and its own relevant conversation history.
Tests should check both data exposure and unintended influence. For example, a second customer must not receive another customer's balance or recent transactions. Their answer should also remain unaffected by the first customer's conversation, even if it contains unusual instructions or sensitive information.
The test scope depends on the design. It can include parallel conversations under different customer identities, two chats for the same customer, logout and login as another customer, reconnecting after a timeout, and requests that attempt to substitute a different session identifier. Where the chatbot uses retrieval-augmented generation (RAG), test that retrieved content is filtered by the authenticated user's permissions before it reaches the model.
How to test isolation
Use synthetic customer records and controlled test accounts. Give each account distinguishable data, such as a unique test payee or transaction reference, so a leak can be identified without using real customer information. Confirm which session identifier and customer identity the system is expected to trust, and ensure the test environment uses representative session, memory and retrieval components.
Run paired conversations and vary their timing. Send requests alternately and concurrently to expose shared-state defects, then repeat after logout, session expiry and reauthentication. Include negative cases that change a client-supplied conversation ID or attempt to continue a previous chat under a different authenticated identity. Check the visible response and, where available, server-side traces, retrieval results and tool-call arguments. Avoid placing full account data or authentication secrets in test reports.
A useful test case is:
- Sign in as synthetic customer A and ask the chatbot for the latest transaction. Record a unique transaction reference returned from A's test data.
- Start a separate session as synthetic customer B and ask the same question while A's conversation remains active.
- Verify that B receives only B's authorised data and that A's reference does not appear in B's response, retrieved context or banking-service request.
- Attempt to resume A's conversation using B's authenticated session. Verify that the system rejects the request or creates a new, correctly scoped conversation.
A pass requires the expected access decision and absence of cross-session data in all observable outputs. A generic refusal in the chat does not prove isolation if an unauthorised record was already retrieved or passed to a model or tool.
Common failure modes and limits
Shared cache keys that omit the customer or conversation scope can return another session's data. Memory stores may attach history to a reusable identifier, while retries or asynchronous requests can associate a response with the wrong chat. Stale browser state, logout flows that leave server-side sessions active, and retrieval filters applied after documents reach the model can also create exposure.
Conversation isolation is related to access control, but it tests a specific property: separation of state and data across chats. Authentication and authorisation checks remain necessary, and session-timeout testing checks when a session becomes invalid. Isolation tests should complement those checks and should be repeated after changes to prompts, memory handling, retrieval, session management or connected banking services.
Chatbot responses can vary, so use unique synthetic markers and inspect the data path as well as generated text. A response that omits a marker by chance is weak evidence if the marker was present in the model context. When internal traces are unavailable, test through the supported interface and service boundaries, and record that limitation in the test evidence.
Frequently asked questions
Does encryption prove that chatbot conversations are isolated?
No. Encryption protects data in transit or at rest, while isolation depends on correct identity checks, session scoping, retrieval filters and state handling. A system can encrypt stored conversations and still return one customer's data in another customer's chat.
Should isolation be tested when the same customer opens two chats?
Yes. Test whether separate chats for one customer keep their histories and pending actions appropriately separated. If the product intentionally shares some customer context across chats, verify that the shared data is authorised and that conversation-specific state remains scoped correctly.
How should teams handle variable chatbot wording in isolation tests?
Assert stable security properties rather than exact prose. Check identity and session ownership, authorised service calls, retrieved record identifiers and the absence of unique synthetic markers from other customers. Use human review for ambiguous generated responses.
