<?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: Harini Mukesh</title>
    <description>The latest articles on DEV Community by Harini Mukesh (@harini_mukesh_).</description>
    <link>https://dev.to/harini_mukesh_</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%2F3952572%2Fc87efa66-2f66-4fab-8963-c73cea71b4a1.jpeg</url>
      <title>DEV Community: Harini Mukesh</title>
      <link>https://dev.to/harini_mukesh_</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/harini_mukesh_"/>
    <language>en</language>
    <item>
      <title>The FinTech Exception: Why Your Green Test Suites Are Still Missing Mobile Login Crashes</title>
      <dc:creator>Harini Mukesh</dc:creator>
      <pubDate>Thu, 04 Jun 2026 05:30:00 +0000</pubDate>
      <link>https://dev.to/qapilot/the-fintech-exception-why-your-green-test-suites-are-still-missing-mobile-login-crashes-3a3e</link>
      <guid>https://dev.to/qapilot/the-fintech-exception-why-your-green-test-suites-are-still-missing-mobile-login-crashes-3a3e</guid>
      <description>&lt;p&gt;You are sitting at your desk late on a Tuesday night.&lt;/p&gt;

&lt;p&gt;Your automated test suite is completely green. Every single end-to-end script passed on the CI/CD server, and according to your dashboard, the code is flawless.&lt;/p&gt;

&lt;p&gt;Yet, you are still surrounded by Android and iOS devices scattered across your desk. You are manually unlocking them, opening your app, typing verification codes, validating masked customer data, checking authentication workflows, and repeatedly running through the same critical user journeys.&lt;/p&gt;

&lt;p&gt;Your eyes are heavy, the clock is ticking past midnight, and you are asking yourself a fundamental question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If our automation is so advanced, why am I still doing this by hand?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is the silent reality inside many mobile engineering teams building high-security applications.&lt;/p&gt;

&lt;p&gt;It is what we call the &lt;strong&gt;FinTech Exception&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Teams build sophisticated automation pipelines for their core product experiences. Account creation works. Transactions work. Dashboard validations work. API integrations work.&lt;/p&gt;

&lt;p&gt;But the moment applications introduce biometric authentication, face recognition, multi-factor authentication, OTP verification, personally identifiable information (PII), data masking requirements, compliance controls, or operating system managed workflows, things start becoming significantly more complicated.&lt;/p&gt;

&lt;p&gt;Traditional automation frameworks such as &lt;a href="https://appium.io/" rel="noopener noreferrer"&gt;Appium&lt;/a&gt; remain powerful tools and continue to serve countless engineering teams successfully.&lt;/p&gt;

&lt;p&gt;The challenge is not that these workflows are impossible to automate.&lt;/p&gt;

&lt;p&gt;The challenge is everything required to automate them reliably.&lt;/p&gt;

&lt;p&gt;Authentication workflows often depend on device farms, custom integrations, environment-specific configurations, security exceptions, test credentials, external authentication providers, operating system behavior, and a growing collection of supporting infrastructure.&lt;/p&gt;

&lt;p&gt;A fingerprint validation may depend on one setup.&lt;/p&gt;

&lt;p&gt;Face recognition may require another.&lt;/p&gt;

&lt;p&gt;Masked customer data may require specialized handling.&lt;/p&gt;

&lt;p&gt;OTP validation often introduces additional dependencies.&lt;/p&gt;

&lt;p&gt;PII-sensitive workflows frequently need separate controls to remain compliant.&lt;/p&gt;

&lt;p&gt;Each individual solution may work.&lt;/p&gt;

&lt;p&gt;The problem is that engineering teams slowly accumulate dozens of these solutions over time.&lt;/p&gt;

&lt;p&gt;What begins as a simple automation framework gradually evolves into a complex ecosystem of scripts, integrations, exceptions, mocks, device configurations, and maintenance overhead.&lt;/p&gt;

&lt;p&gt;The result is familiar to almost every mobile QA team.&lt;/p&gt;

&lt;p&gt;The dashboard stays green.&lt;/p&gt;

&lt;p&gt;Confidence does not.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Real-World Friction Point
&lt;/h2&gt;

&lt;p&gt;Eventually, the gap between test environments and production reality catches up.&lt;/p&gt;

&lt;p&gt;The mobile ecosystem has seen multiple examples over the years where authentication, login, onboarding, and session-related issues slipped into production despite extensive testing efforts.&lt;/p&gt;

&lt;p&gt;One example was the widely reported login and stability issues experienced by users of the digital credit card platform OneCard following an application update.&lt;/p&gt;

&lt;p&gt;While the exact root cause was never publicly disclosed, incidents like these highlight an important reality of modern mobile engineering:&lt;/p&gt;

&lt;p&gt;Some of the most critical failures occur at the intersection of application logic, authentication systems, operating system behavior, device fragmentation, and real-world user conditions.&lt;/p&gt;

&lt;p&gt;These are rarely simple defects.&lt;/p&gt;

&lt;p&gt;They are often the result of complex interactions across multiple systems.&lt;/p&gt;

&lt;p&gt;Authentication flows alone can involve:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Session management&lt;/li&gt;
&lt;li&gt;Device-specific behavior&lt;/li&gt;
&lt;li&gt;Security libraries&lt;/li&gt;
&lt;li&gt;Biometric providers&lt;/li&gt;
&lt;li&gt;Operating system updates&lt;/li&gt;
&lt;li&gt;Network dependencies&lt;/li&gt;
&lt;li&gt;Identity providers&lt;/li&gt;
&lt;li&gt;Compliance controls&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every additional layer increases the number of possible failure points.&lt;/p&gt;

&lt;p&gt;This is what makes mobile quality fundamentally different from web quality.&lt;/p&gt;

&lt;p&gt;In a web application, a broken login experience can often be patched and deployed within minutes.&lt;/p&gt;

&lt;p&gt;Mobile software operates on a completely different timeline.&lt;/p&gt;

&lt;p&gt;A production issue typically requires:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A code fix&lt;/li&gt;
&lt;li&gt;A new build&lt;/li&gt;
&lt;li&gt;Store submission&lt;/li&gt;
&lt;li&gt;Platform review&lt;/li&gt;
&lt;li&gt;User adoption&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Even after approval, users still need to install the update.&lt;/p&gt;

&lt;p&gt;If the issue impacts onboarding, authentication, or application launch, many users may never return.&lt;/p&gt;

&lt;p&gt;For financial applications, the stakes become even higher.&lt;/p&gt;

&lt;p&gt;A bug in a social platform might prevent someone from viewing content.&lt;/p&gt;

&lt;p&gt;A bug in a banking application can prevent customers from accessing their money.&lt;/p&gt;




&lt;h2&gt;
  
  
  Redefining How We Approach Mobile Quality
&lt;/h2&gt;

&lt;p&gt;The natural reaction to this complexity is to add more automation.&lt;/p&gt;

&lt;p&gt;More scripts.&lt;/p&gt;

&lt;p&gt;More integrations.&lt;/p&gt;

&lt;p&gt;More mocks.&lt;/p&gt;

&lt;p&gt;More device configurations.&lt;/p&gt;

&lt;p&gt;More validation layers.&lt;/p&gt;

&lt;p&gt;Yet many teams discover that complexity grows faster than coverage.&lt;/p&gt;

&lt;p&gt;The challenge is no longer executing tests.&lt;/p&gt;

&lt;p&gt;The challenge is understanding application behavior at scale.&lt;/p&gt;

&lt;p&gt;This is where a different approach begins to emerge.&lt;/p&gt;

&lt;p&gt;Instead of treating mobile quality as a collection of scripts and test cases, modern platforms are increasingly introducing intelligence layers that sit above traditional automation infrastructure.&lt;/p&gt;

&lt;p&gt;This is the philosophy behind &lt;a href="https://qapilot.io/" rel="noopener noreferrer"&gt;QApilot&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;QApilot does not attempt to replace the underlying ecosystem of device farms, testing infrastructure, CI/CD pipelines, authentication services, and execution environments that engineering teams already use.&lt;/p&gt;

&lt;p&gt;Instead, it acts as an autonomous intelligence layer that helps orchestrate, understand, and validate application behavior more effectively.&lt;/p&gt;

&lt;p&gt;Rather than relying exclusively on predefined scripts, selectors, and manually designed test paths, QApilot evaluates production-ready application binaries and continuously builds a dynamic understanding of how the application behaves.&lt;/p&gt;

&lt;p&gt;The platform maps screens, user journeys, navigation paths, application states, and user intent into a living knowledge graph.&lt;/p&gt;

&lt;p&gt;This creates a fundamentally different testing experience.&lt;/p&gt;

&lt;p&gt;A traditional test script follows instructions.&lt;/p&gt;

&lt;p&gt;An autonomous testing system understands context.&lt;/p&gt;

&lt;p&gt;A crawler explores screens.&lt;/p&gt;

&lt;p&gt;An intelligent crawler understands relationships between screens.&lt;/p&gt;

&lt;p&gt;A test case validates an expected path.&lt;/p&gt;

&lt;p&gt;An autonomous system continuously discovers new paths.&lt;/p&gt;

&lt;p&gt;Instead of asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Did this specific script pass?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Teams can begin asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"What does the application actually do?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That shift becomes increasingly valuable as applications grow in complexity.&lt;/p&gt;

&lt;p&gt;Authentication systems evolve.&lt;/p&gt;

&lt;p&gt;User journeys expand.&lt;/p&gt;

&lt;p&gt;New compliance requirements emerge.&lt;/p&gt;

&lt;p&gt;Security workflows become more sophisticated.&lt;/p&gt;

&lt;p&gt;The cost of maintaining manually curated automation suites continues to increase.&lt;/p&gt;

&lt;p&gt;An intelligence-driven approach helps absorb that complexity.&lt;/p&gt;

&lt;p&gt;Instead of constantly updating brittle scripts whenever interfaces evolve, teams gain a system that understands the application itself and adapts alongside it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Beyond Automation Execution
&lt;/h2&gt;

&lt;p&gt;This is ultimately where many conversations around mobile quality are heading.&lt;/p&gt;

&lt;p&gt;The industry has spent years focusing on how to execute tests.&lt;/p&gt;

&lt;p&gt;The next evolution is understanding how to reason about applications.&lt;/p&gt;

&lt;p&gt;Execution engines are important.&lt;/p&gt;

&lt;p&gt;Device farms are important.&lt;/p&gt;

&lt;p&gt;Authentication integrations are important.&lt;/p&gt;

&lt;p&gt;Biometric testing support is important.&lt;/p&gt;

&lt;p&gt;But those components alone do not create confidence.&lt;/p&gt;

&lt;p&gt;Confidence comes from understanding application behavior across thousands of possible states and interactions.&lt;/p&gt;

&lt;p&gt;That is the layer QApilot is designed to provide.&lt;/p&gt;

&lt;p&gt;And the results are already becoming visible.&lt;/p&gt;

&lt;p&gt;One of the largest digital banking organizations in the Middle East leveraged QApilot to significantly accelerate automation coverage while reducing maintenance overhead across critical mobile workflows.&lt;/p&gt;

&lt;p&gt;The value was not simply running more tests.&lt;/p&gt;

&lt;p&gt;The value was achieving broader validation with less operational effort.&lt;/p&gt;

&lt;p&gt;As mobile applications continue becoming more security-conscious, compliance-driven, and operationally complex, this distinction becomes increasingly important.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Ultimate Takeaway
&lt;/h2&gt;

&lt;p&gt;The FinTech Exception exists because modern mobile applications are no longer simple collections of screens and workflows.&lt;/p&gt;

&lt;p&gt;They are interconnected systems involving authentication providers, biometric services, compliance controls, security layers, device-specific behavior, and constantly evolving operating systems.&lt;/p&gt;

&lt;p&gt;The challenge is not whether these workflows can be automated.&lt;/p&gt;

&lt;p&gt;They can.&lt;/p&gt;

&lt;p&gt;The challenge is maintaining confidence as complexity continues to grow.&lt;/p&gt;

&lt;p&gt;Traditional automation solves execution.&lt;/p&gt;

&lt;p&gt;The next generation of mobile quality platforms is focused on understanding.&lt;/p&gt;

&lt;p&gt;That is the shift autonomous testing introduces.&lt;/p&gt;

&lt;p&gt;And for engineering teams building the next generation of financial applications, it may be one of the most important shifts in software quality today.&lt;/p&gt;

</description>
      <category>testing</category>
      <category>mobile</category>
      <category>automation</category>
      <category>fintech</category>
    </item>
    <item>
      <title>Security Reports That Ship With Your Release: The QA Checklist Teams Ignore</title>
      <dc:creator>Harini Mukesh</dc:creator>
      <pubDate>Thu, 28 May 2026 10:30:00 +0000</pubDate>
      <link>https://dev.to/qapilot/security-reports-that-ship-with-your-release-the-qa-checklist-teams-ignore-4ga7</link>
      <guid>https://dev.to/qapilot/security-reports-that-ship-with-your-release-the-qa-checklist-teams-ignore-4ga7</guid>
      <description>&lt;p&gt;There's a ritual that happens before almost every mobile app release. The QA team runs through their checklist. Test cases pass. Regression looks clean. The PM gives the thumbs up. The build ships.&lt;/p&gt;

&lt;p&gt;And somewhere in that process, nobody checked if the app was running with a debug certificate. Nobody looked at whether microphone access was being requested for a feature that doesn't need it. Nobody noticed that three broadcast receivers were left open to any other app on the device.&lt;/p&gt;

&lt;p&gt;Not because the team was careless. Because that's just not what the QA checklist looked like.&lt;/p&gt;

&lt;p&gt;I've been thinking about this gap a lot lately, and I want to walk through what a security-aware QA process actually looks like for mobile apps, why most teams skip it, and what changes when security issues land right next to your functional test results.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Security Stays Off the QA Radar
&lt;/h2&gt;

&lt;p&gt;The honest answer is that security testing has always lived in a different lane. You finish QA, hand off to a security team (if you have one), they run a scan separately, findings come back in a spreadsheet, and by that point the release is already being pressured. Anything non-critical gets deferred to "next sprint."&lt;/p&gt;

&lt;p&gt;The problem isn't intent. It's tooling and process. When security issues live in a separate tool, with a separate workflow, most QA engineers never see them. And if you don't see them, you can't include them in your release sign-off.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Static Analysis Actually Checks (And Why QA Should Care)
&lt;/h2&gt;

&lt;p&gt;When you run a static analysis scan on a mobile APK, you're not running the app. You're reading the package itself. Think of it like auditing a building's blueprints before anyone moves in. You're looking at what permissions were declared, how components are wired together, what's baked into the binary.&lt;/p&gt;

&lt;p&gt;Here's what the main categories of issues actually mean in plain terms:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Permissions&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The app declares what device features it wants access to. Some of these are fine, internet access, vibration. Some are dangerous, fine GPS location, record audio, read contacts. The question isn't just "does the app need these" but "does it need all of these, and are they justified?" An app requesting microphone, fine location, and boot-on-start permissions together is worth looking at twice. &lt;a href="https://owasp.org/www-project-mobile-top-10/" rel="noopener noreferrer"&gt;OWASP's Mobile Top 10&lt;/a&gt; lists over-privileged apps as one of the most common and exploitable issues in mobile security.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Manifest misconfigurations&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The manifest is a config file every Android app ships with. It declares what the app is allowed to do, what components it has, how it talks to the OS. Issues here include cleartext traffic being allowed, the app supporting dangerously old Android versions, and components being accidentally left open to other apps. None of this is code, it's all configuration, but it can cause real damage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Certificate issues&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every app has to be digitally signed before it can be distributed. During development you use a debug certificate, which is loose and meant for testing. Before production you're supposed to swap it for a proper production certificate. A debug certificate in a production build is a high severity issue, and it's exactly the kind of thing that slips through when nobody is looking.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hardcoded secrets&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;API keys, tokens, and credentials sometimes end up baked directly into the app binary during development. Static analysis surfaces these. They shouldn't ship.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tracker detection&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Third-party SDKs bundled into the app, analytics, advertising, crash reporting, are catalogued. This matters for privacy compliance and gives you a clear picture of what data is being collected and where it's going.&lt;/p&gt;




&lt;h2&gt;
  
  
  A Real Example Worth Paying Attention To
&lt;/h2&gt;

&lt;p&gt;This one happened earlier this year, and it's a good illustration of why the hardcoded secrets check isn't just housekeeping.&lt;/p&gt;

&lt;p&gt;In April 2026, security researchers at CloudSEK scanned the top 10,000 Android apps and found &lt;a href="https://www.cloudsek.com/blog/hardcoded-google-api-keys-in-top-android-apps-now-expose-gemini-ai" rel="noopener noreferrer"&gt;32 Google API keys hardcoded across 22 popular applications&lt;/a&gt; with a combined install base of over 500 million users. Apps like OYO, Google Pay for Business, and ELSA Speak were in that list.&lt;/p&gt;

&lt;p&gt;Here's where it gets interesting. These API keys were not embedded by mistake. Developers followed Google's own documentation, which had long classified that key format as safe for client-side use. But when Google enabled Gemini on these projects, every existing API key on the project silently inherited access to the AI endpoints. Keys that were harmless became live credentials to one of the most powerful AI systems in the world, overnight, without any code change on the developer's side.&lt;/p&gt;

&lt;p&gt;Researchers confirmed actual data exposure in at least one case, accessing user-uploaded audio files through an exposed key. And the billing damage from similar exposures? One solo developer lost $15,400 in a single night. A team in Japan was hit for roughly $128,000.&lt;/p&gt;

&lt;p&gt;The thing that stays with me about this is that a static analysis scan would have flagged these keys. Not because the scan knew Gemini was going to become a problem, but because hardcoded keys are a known issue regardless of what they currently access. The checklist item existed. The check just wasn't happening consistently.&lt;/p&gt;




&lt;h2&gt;
  
  
  Here's How QApilot Handles This
&lt;/h2&gt;

&lt;p&gt;This is where I want to show rather than tell. &lt;a href="https://qapilot.io/security-reports" rel="noopener noreferrer"&gt;QApilot&lt;/a&gt; generates a security report alongside every test run automatically. No separate tool, no handoff, no extra setup beyond flipping one toggle when you upload your app.&lt;/p&gt;

&lt;p&gt;This &lt;a href="https://youtu.be/i5aFf7oPi4M" rel="noopener noreferrer"&gt;video&lt;/a&gt; walks through what that actually looks like in practice, from enabling the toggle to reading the issues across Manifest Analysis, Certificate Analysis, and Code Analysis.&lt;/p&gt;

&lt;p&gt;What I find useful about this is the Recommendation column. It doesn't just tell you something is wrong. It tells you exactly what to change and where. That's a different experience from receiving a spreadsheet of issues after code freeze, when nobody wants to reopen anything.&lt;/p&gt;

&lt;p&gt;And when the report lives next to your functional test results, it stops being something you defer. A HIGH severity issue sitting next to two failed test cases gets treated the same way a failed test case does. It becomes part of the release conversation, not an afterthought.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Bigger Point
&lt;/h2&gt;

&lt;p&gt;I'm not saying every QA engineer needs to become a security expert. That's not realistic and it's not the point.&lt;/p&gt;

&lt;p&gt;The point is that there's a category of issues that are consistently skipped before release, not because they're hard to find but because nobody set up the workflow to look for them. A debug certificate, an over-privileged permission, a misconfigured manifest component, these are not subtle vulnerabilities. They show up immediately in any static scan. They just don't show up in the QA checklist.&lt;/p&gt;

&lt;p&gt;The CloudSEK example is a good reminder that the cost of skipping this check doesn't always look like a traditional breach. Sometimes it's a billing spike that hits overnight. Sometimes it's user data sitting in an accessible cache that nobody knew was exposed. The common thread is that the risk was well understood, and the check still wasn't part of the release process.&lt;/p&gt;

&lt;p&gt;Adding security to your release process doesn't have to mean a major overhaul. It can start with one toggle and one more report in your test run. That alone catches the obvious stuff before it ships.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Have you ran a static analysis scan on your mobile app before? Curious what you found, or what surprised you. Drop it in the comments.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>android</category>
      <category>ios</category>
      <category>testing</category>
    </item>
  </channel>
</rss>
