<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Akash Thakur</title>
    <description>The latest articles on DEV Community by Akash Thakur (@akash_thakur_fa955f9856ae).</description>
    <link>https://dev.to/akash_thakur_fa955f9856ae</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4107593%2Fef1e9594-0967-4adc-81d9-275ebf2ed45c.jpg</url>
      <title>DEV Community: Akash Thakur</title>
      <link>https://dev.to/akash_thakur_fa955f9856ae</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/akash_thakur_fa955f9856ae"/>
    <language>en</language>
    <item>
      <title>What Happens When Users Don't Behave as Expected?</title>
      <dc:creator>Akash Thakur</dc:creator>
      <pubDate>Fri, 09 Oct 2026 07:08:37 +0000</pubDate>
      <link>https://dev.to/akash_thakur_fa955f9856ae/what-happens-when-users-dont-behave-as-expected-36l0</link>
      <guid>https://dev.to/akash_thakur_fa955f9856ae/what-happens-when-users-dont-behave-as-expected-36l0</guid>
      <description>&lt;p&gt;In the previous article, we looked at why functional testing alone is not enough for AI applications.&lt;br&gt;
Traditional testing usually starts with a simple assumption: developers know how users are expected to interact with the application, so they can build test cases around those scenarios.&lt;br&gt;
AI applications make that assumption harder to maintain.&lt;br&gt;
Users can interact with an AI system in ways that developers never explicitly planned for. They can ask unexpected questions, change context, combine instructions, or simply explore what the system is capable of doing.&lt;br&gt;
The application may still respond.&lt;br&gt;
And that response can reveal behavior that was never covered by the original test cases.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Users Don't Always Follow the Test Cases&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
When developing an application, engineers typically define expected use cases.&lt;br&gt;
For an AI assistant, this might include tasks such as answering questions, summarizing information, generating content, or helping users complete a workflow.&lt;br&gt;
Testing these scenarios is important.&lt;br&gt;
However, real users are not limited to predefined test cases.&lt;br&gt;
A user might:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rephrase a request in an unexpected way.&lt;/li&gt;
&lt;li&gt;Ask multiple unrelated questions in the same conversation.&lt;/li&gt;
&lt;li&gt;Provide incomplete or ambiguous instructions.&lt;/li&gt;
&lt;li&gt;Change their request based on the previous response.&lt;/li&gt;
&lt;li&gt;Try to influence how the AI interprets an instruction.&lt;/li&gt;
&lt;li&gt;Continue interacting with the system after receiving an unexpected response.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These interactions may still be technically valid inputs.&lt;br&gt;
The application may accept them, the API may return a successful response, and there may be no software error.&lt;br&gt;
Yet the AI's behavior can still be different from what the development team intended.&lt;br&gt;
This is one of the fundamental differences between testing traditional application logic and testing AI behavior.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Unexpected Input Doesn't Always Mean an Error&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
In conventional software, unexpected input often produces a predictable outcome.&lt;br&gt;
The application may reject the input, return a validation message, or follow a predefined error-handling path.&lt;br&gt;
AI systems are different because they are designed to interpret natural language.&lt;br&gt;
A request that was never included in the original test plan can still be understood and answered.&lt;br&gt;
Consider an internal AI assistant designed to answer questions about company policies.&lt;br&gt;
A functional test might verify that the assistant correctly answers:&lt;br&gt;
"What is the company's leave policy?"&lt;br&gt;
But users could interact with the same assistant in many other ways.&lt;br&gt;
They might ask the question indirectly, combine it with another request, provide misleading context, or repeatedly modify their instructions.&lt;br&gt;
The system may continue generating responses even though those interactions were never explicitly tested.&lt;br&gt;
This means a successful API response does not necessarily mean the AI behaved correctly.&lt;br&gt;
From an engineering perspective, the important question becomes:&lt;br&gt;
Did the AI produce an acceptable response under conditions that were not explicitly defined during development?&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;The Behavior Is Part of the System&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
One of the challenges with AI applications is that the model's behavior becomes part of the application's overall behavior.&lt;br&gt;
The application code may remain unchanged while the resulting AI response changes because of differences in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;User input&lt;/li&gt;
&lt;li&gt;Conversation context&lt;/li&gt;
&lt;li&gt;Prompt instructions&lt;/li&gt;
&lt;li&gt;Retrieved information&lt;/li&gt;
&lt;li&gt;Model configuration&lt;/li&gt;
&lt;li&gt;Model versions&lt;/li&gt;
&lt;li&gt;Other surrounding application components&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This makes AI testing more than a matter of checking individual functions.&lt;br&gt;
Engineers also need to understand how the system behaves when those conditions change.&lt;br&gt;
For example, an AI assistant may perform correctly during a controlled test with a predefined prompt.&lt;br&gt;
But changing the wording, adding additional context, or continuing the conversation can produce a different response.&lt;br&gt;
The challenge is not necessarily that the system is broken.&lt;br&gt;
The challenge is that its behavioral boundaries may not be fully understood.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Why Unexpected Behavior Is Difficult to Test&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
Testing a small number of expected scenarios manually is relatively straightforward.&lt;br&gt;
Testing every possible way a user could interact with an AI system is not.&lt;br&gt;
Natural language creates an enormous number of possible inputs.&lt;br&gt;
Two requests can communicate the same intention using completely different wording. A single conversation can also evolve based on previous responses, creating additional combinations that are difficult to predict in advance.&lt;br&gt;
This makes exhaustive testing impractical.&lt;br&gt;
It also creates another engineering problem: how do we decide which unexpected behaviors are important enough to test?&lt;br&gt;
Teams need a systematic way to challenge AI applications rather than simply trying random prompts and hoping to discover problems.&lt;br&gt;
The testing process needs to consider different types of user behavior, evaluate the resulting responses, and determine whether the observed behavior is acceptable.&lt;br&gt;
That shift—from testing only predefined scenarios to deliberately exploring unexpected behavior—is an important step toward more robust AI testing.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;From Expected Behavior to Adversarial Thinking&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
Unexpected user behavior does not always mean malicious intent.&lt;br&gt;
Sometimes users simply ask questions differently from how developers expected.&lt;br&gt;
But AI systems can also be deliberately challenged.&lt;br&gt;
A person may intentionally try to push an AI application beyond its intended behavior and observe how the system responds.&lt;br&gt;
This introduces an important concept in AI security testing: adversarial thinking.&lt;br&gt;
Instead of asking only:&lt;br&gt;
"Does the application work as designed?"&lt;br&gt;
Engineers can also ask:&lt;br&gt;
"What happens if someone deliberately tries to make it behave differently?"&lt;br&gt;
This mindset changes the way AI applications are tested.&lt;br&gt;
The objective is not simply to find software bugs. It is to understand the limits of the AI system and identify behaviors that may require additional controls, safeguards, or improvements.&lt;br&gt;
And as AI applications become larger and more widely deployed, doing this manually becomes increasingly difficult.&lt;br&gt;
That leads to the next engineering challenge:&lt;br&gt;
How can teams test a growing number of AI interactions systematically and at scale?&lt;br&gt;
That is where the need for structured and repeatable AI security testing becomes more apparent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;AI applications operate in an environment where users have enormous freedom in how they communicate with the system.&lt;br&gt;
Developers can define expected workflows, but they cannot realistically predict every possible interaction.&lt;br&gt;
An unexpected input may not cause an application error. Instead, the AI may respond in a way that exposes behavior the development team never considered.&lt;br&gt;
For this reason, trustworthy AI requires engineers to think beyond predefined test cases.&lt;br&gt;
Testing needs to explore not only whether the application works, but also how it behaves when users interact with it in unexpected or challenging ways.&lt;br&gt;
This shift in thinking is an important foundation for AI Red Teaming.&lt;br&gt;
In the next article, we'll look at the engineering challenge of testing AI behavior at scale—and why manual testing becomes increasingly difficult as AI applications grow.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;About This Series&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
Building Trustworthy AI: An Engineer's Journey into AI Red Teaming is a technical series by Nyuway exploring the engineering challenges behind testing, evaluating, and securing AI applications.&lt;br&gt;
The series starts with the fundamentals of AI testing and gradually moves toward adversarial testing, AI Red Teaming, scalable security testing, findings, continuous evaluation, and practical implementation.&lt;/p&gt;

&lt;p&gt;Learn more about Nyuway: &lt;a href="https://nyuway.ai/" rel="noopener noreferrer"&gt;https://nyuway.ai/&lt;/a&gt;&lt;br&gt;
Explore ARTP: &lt;a href="https://nyuway.ai/artp" rel="noopener noreferrer"&gt;https://nyuway.ai/artp&lt;/a&gt;&lt;br&gt;
Book a demo: &lt;a href="https://nyuway.ai/contact-us" rel="noopener noreferrer"&gt;https://nyuway.ai/contact-us&lt;/a&gt;&lt;br&gt;
Contact: &lt;a href="mailto:contact@nyuway.ai"&gt;contact@nyuway.ai&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;AI Red Teaming • AI Security • LLM Security • Generative AI • Software Testing • Nyuway • ARTP&lt;/p&gt;

</description>
      <category>ai</category>
      <category>softwaredevelopment</category>
      <category>testing</category>
    </item>
    <item>
      <title>Why AI Applications Need More Than Functional Testing</title>
      <dc:creator>Akash Thakur</dc:creator>
      <pubDate>Wed, 16 Sep 2026 08:53:29 +0000</pubDate>
      <link>https://dev.to/akash_thakur_fa955f9856ae/why-ai-applications-need-more-than-functional-testing-2ng9</link>
      <guid>https://dev.to/akash_thakur_fa955f9856ae/why-ai-applications-need-more-than-functional-testing-2ng9</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdnhz9v273j1z44qyds88.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdnhz9v273j1z44qyds88.png" alt=" " width="799" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Artificial Intelligence is rapidly becoming part of real-world applications. Developers are using Large Language Models (LLMs) for customer support, internal assistants, knowledge systems, automation, and many other workflows.&lt;br&gt;
But AI applications introduce a challenge that traditional software testing doesn't completely solve:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;An AI application can pass functional tests and still behave unexpectedly.&lt;br&gt;
That makes testing AI more than just checking whether the application works.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Functional Testing Isn't Enough&lt;/strong&gt;&lt;br&gt;
Traditional software applications generally have well-defined inputs, processing logic, and expected outputs. Developers can create test cases around those expectations and verify whether the application produces the correct result.&lt;br&gt;
For example, if an application is designed to calculate an invoice total, a test can provide a known set of values and verify the expected total.&lt;br&gt;
AI applications are different.&lt;br&gt;
An AI-powered application may involve a user input being processed by application logic and then passed to an LLM, which generates the final response. The response can be influenced by the user's input, conversation context, system instructions, retrieved information, and the behavior of the underlying model.&lt;br&gt;
Because of this, the same application can produce different responses when the input or context changes.&lt;br&gt;
A functional test might confirm that an AI assistant can successfully summarize a document and return a reasonable summary.&lt;br&gt;
However, that test alone doesn't tell us how the assistant will behave when the user provides an unexpected or deliberately challenging input.&lt;br&gt;
This creates a gap between testing whether the application works and understanding how the AI behaves.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Happy Path Problem&lt;/strong&gt;&lt;br&gt;
Most application tests are designed around expected user behavior.&lt;br&gt;
Developers define what the user should do, what the application should return, and whether the workflow completes successfully.&lt;br&gt;
But real users don't always follow the happy path.&lt;br&gt;
They may:&lt;br&gt;
Ask unexpected questions.&lt;br&gt;
Provide unusual or ambiguous instructions.&lt;br&gt;
Combine multiple requests into a single interaction.&lt;br&gt;
Provide information that the application wasn't specifically designed to handle.&lt;br&gt;
Try to push the system beyond its intended behavior.&lt;br&gt;
For traditional applications, unexpected input may result in an error, validation failure, or rejected request.&lt;br&gt;
For AI applications, the system may still generate a response.&lt;br&gt;
And that response may not always be what the developer expected.&lt;br&gt;
This creates an important testing question:&lt;br&gt;
What happens when the input is valid from the application's perspective, but intentionally designed to challenge the AI?&lt;br&gt;
Functional testing alone cannot provide a complete answer to that question.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Testing AI Behavior&lt;/strong&gt;&lt;br&gt;
This doesn't mean functional testing should be replaced.&lt;br&gt;
Functional testing remains essential for validating APIs, application logic, integrations, authentication, data processing, and expected workflows.&lt;br&gt;
AI applications simply require additional testing dimensions.&lt;br&gt;
Developers need to think beyond whether a feature produces the expected output and consider how the AI behaves across different inputs, contexts, and interaction patterns.&lt;br&gt;
This is particularly important because AI behavior is not always deterministic in the same way as traditional application logic.&lt;br&gt;
A small change in the prompt, conversation context, retrieved information, model version, or application configuration can affect the resulting response.&lt;br&gt;
As a result, testing an AI application is not only about verifying individual features. It is also about understanding the boundaries and behavior of the AI system itself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why This Matters to Developers&lt;/strong&gt;&lt;br&gt;
When an AI application is small and experimental, manually testing a few interactions may be enough to identify obvious problems.&lt;br&gt;
As the application grows, that approach becomes increasingly difficult to maintain.&lt;br&gt;
More users introduce more types of inputs.&lt;br&gt;
More integrations introduce more possible contexts.&lt;br&gt;
More models and model updates can introduce behavioral changes.&lt;br&gt;
And more business-critical use cases increase the impact of unexpected AI behavior.&lt;br&gt;
For developers and engineering teams, this creates a practical challenge:&lt;br&gt;
How can AI behavior be tested systematically instead of relying only on manual experimentation?&lt;br&gt;
This is where a different approach to testing begins to become important—one that intentionally considers unexpected and challenging user behavior rather than focusing only on predefined test cases.&lt;br&gt;
That approach leads into the broader discipline of AI Red Teaming, which we will explore in the next stages of this series.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
AI has changed how modern applications behave, and testing practices need to evolve with it.&lt;br&gt;
Functional testing can tell us whether an application performs its intended functions, but it doesn't necessarily tell us how the AI will behave when users provide unexpected inputs or interact with the system in ways developers did not anticipate.&lt;br&gt;
For trustworthy AI, testing needs to move beyond the happy path.&lt;br&gt;
The goal is not to replace traditional software testing, but to extend it so that teams can better understand, evaluate, and improve AI behavior.&lt;br&gt;
Understanding this testing gap is the first step toward building AI applications that are more secure, reliable, and resilient.&lt;br&gt;
In the next article, we'll explore what happens when users don't behave as expected—and why unexpected user behavior creates a unique testing challenge for AI applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;About This Series&lt;/strong&gt;&lt;br&gt;
Building Trustworthy AI: An Engineer's Journey into AI Red Teaming is a technical series by Nyuway exploring the engineering challenges behind testing, evaluating, and securing AI applications.&lt;br&gt;
The series starts with the fundamentals of AI testing and gradually moves toward adversarial testing, AI Red Teaming, scalable security testing, findings, continuous evaluation, and practical implementation.&lt;/p&gt;

&lt;p&gt;Learn more about Nyuway: &lt;a href="https://nyuway.ai/" rel="noopener noreferrer"&gt;https://nyuway.ai/&lt;/a&gt;&lt;br&gt;
Explore ARTP: &lt;a href="https://nyuway.ai/artp" rel="noopener noreferrer"&gt;https://nyuway.ai/artp&lt;/a&gt;&lt;br&gt;
Book a demo: &lt;a href="https://nyuway.ai/contact-us" rel="noopener noreferrer"&gt;https://nyuway.ai/contact-us&lt;/a&gt;&lt;br&gt;
Contact: &lt;a href="mailto:contact@nyuway.ai"&gt;contact@nyuway.ai&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;AI Red Teaming • AI Security • LLM Security • Generative AI • Software Testing • Nyuway • ARTP&lt;/p&gt;

</description>
      <category>security</category>
      <category>genai</category>
      <category>redteaming</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
