<?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: Maric Run Test</title>
    <description>The latest articles on DEV Community by Maric Run Test (@tester_learn_testing).</description>
    <link>https://dev.to/tester_learn_testing</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2653816%2F0624a2e4-fe59-4f17-9870-1f2108fd46be.png</url>
      <title>DEV Community: Maric Run Test</title>
      <link>https://dev.to/tester_learn_testing</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tester_learn_testing"/>
    <language>en</language>
    <item>
      <title>DevOps vs Testing: Same Goal, Different Roads</title>
      <dc:creator>Maric Run Test</dc:creator>
      <pubDate>Sun, 24 Aug 2025 05:20:35 +0000</pubDate>
      <link>https://dev.to/tester_learn_testing/devops-vs-testing-same-goal-different-roads-537l</link>
      <guid>https://dev.to/tester_learn_testing/devops-vs-testing-same-goal-different-roads-537l</guid>
      <description>&lt;p&gt;When people first step into the software world, it’s easy to confuse &lt;strong&gt;DevOps&lt;/strong&gt; and &lt;strong&gt;Testing (QA)&lt;/strong&gt;. Both roles care about ensuring software runs smoothly, both are involved in deployment and release cycles, and both deal with “quality.” But in reality, they serve &lt;strong&gt;different purposes&lt;/strong&gt; and complement each other in the software delivery pipeline.&lt;/p&gt;

&lt;p&gt;Let’s break it down.&lt;/p&gt;

&lt;p&gt;🔹&lt;strong&gt;DevOps&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;DevOps = Development + Operations&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Main tasks of DevOps:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CI/CD&lt;/strong&gt; (Continuous Integration / Continuous Deployment): ensure code from dev to production is fast, safe, and error-free.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automation:&lt;/strong&gt; write scripts to automatically build, test, and deploy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Monitoring &amp;amp; Logging:&lt;/strong&gt; monitor the system (CPU, memory, uptime, logs, alerts).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Infrastructure as Code:&lt;/strong&gt; use Docker, Kubernetes, Terraform to manage servers and environments.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 In short: DevOps makes sure &lt;strong&gt;the system runs and scales reliably.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🔹 &lt;strong&gt;Testing / QA&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Tester = ensure software quality&lt;/strong&gt; before release.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Main tasks of Testing:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Design test cases, test plans.&lt;/li&gt;
&lt;li&gt;Execute tests (manual/automation).&lt;/li&gt;
&lt;li&gt;Identify bugs, log bugs, track bug fixes.&lt;/li&gt;
&lt;li&gt;Ensure the &lt;strong&gt;system meets requirements&lt;/strong&gt; and has &lt;strong&gt;no functional errors&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔹 &lt;strong&gt;Where They Meet&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DevOps will &lt;strong&gt;create a CI/CD pipeline&lt;/strong&gt; with an &lt;strong&gt;automation test&lt;/strong&gt; run step written by QA.&lt;/li&gt;
&lt;li&gt;DevOps monitors the system, but if &lt;strong&gt;logic/business&lt;/strong&gt; errors are detected, QA testers will verify and report.&lt;/li&gt;
&lt;li&gt;QA cares whether &lt;strong&gt;users can use it&lt;/strong&gt;, DevOps cares whether &lt;strong&gt;the system runs smoothly.&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔹 &lt;strong&gt;Why Understanding Both Matters&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;For QA: Knowing DevOps basics helps you integrate your tests into CI/CD pipelines and collaborate better with engineers.&lt;/li&gt;
&lt;li&gt;For DevOps: Understanding QA helps you design pipelines that catch bugs earlier.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The modern software world is &lt;strong&gt;collaborative&lt;/strong&gt;. QA and DevOps don’t replace each other—they work hand in hand.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Takeaway&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;DevOps = System reliability, automation, deployment.&lt;/strong&gt;
-** QA/Testing = Product quality, correctness, user experience.**&lt;/li&gt;
&lt;li&gt;Together, they ensure software is both &lt;strong&gt;stable&lt;/strong&gt; and &lt;strong&gt;valuable.&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So the next time you hear “DevOps checks deployments” or “QA ensures no bugs,” remember—they’re two sides of the same coin: &lt;strong&gt;delivering quality software.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>testing</category>
      <category>beginners</category>
      <category>devops</category>
    </item>
    <item>
      <title>Test Case Is Not a Form — It’s a Thought Process</title>
      <dc:creator>Maric Run Test</dc:creator>
      <pubDate>Sun, 03 Aug 2025 14:22:27 +0000</pubDate>
      <link>https://dev.to/tester_learn_testing/test-case-is-not-a-form-its-a-thought-process-1700</link>
      <guid>https://dev.to/tester_learn_testing/test-case-is-not-a-form-its-a-thought-process-1700</guid>
      <description>&lt;p&gt;&lt;strong&gt;❓ Have you ever written a test case that nobody else could understand?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Maybe a dev asked, “What exactly are you testing here?”&lt;br&gt;
Or another QA messaged you: “How do I run this case again?”&lt;/p&gt;

&lt;p&gt;That usually means the test case lacks clarity — &lt;strong&gt;not in format, but in thinking.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A professional test case isn’t just a checklist. It’s how you show your QA logic.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;🎯 A great test case answers 5 key questions:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. What am I testing?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What's the specific feature or behavior under test?&lt;/li&gt;
&lt;li&gt;Does the title make that obvious?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;📌 The test case title should describe exactly what’s being verified.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;✔️ Transfer money between two internal accounts (valid input)&lt;br&gt;
❌ Check transfer function&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;2. What do I need before I start?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Logged in? Proper role? Required test data?&lt;/li&gt;
&lt;li&gt;Any setup needed?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;📌 Preconditions make your case reproducible.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. What are the test steps?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Logical, numbered steps&lt;/li&gt;
&lt;li&gt;No skipped or combined actions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;📌 Steps are your script — make them easy to follow.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. What should happen?&lt;/strong&gt; &lt;em&gt;(Expected Result)&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What’s the correct outcome after each step?&lt;/li&gt;
&lt;li&gt;Does it match the requirement?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;📌 Clear expectations = clear pass/fail decision.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. What happens if something goes wrong?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Have you tested invalid input, unexpected actions, or edge cases?&lt;/li&gt;
&lt;li&gt;Is the system handling it properly?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;📌 Good testers don’t just test what works — they test what breaks.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✅ Summary Table&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;#&lt;/th&gt;
&lt;th&gt;Question&lt;/th&gt;
&lt;th&gt;Why it matters&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;What am I testing?&lt;/td&gt;
&lt;td&gt;Defines the goal&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;What do I need before I start?&lt;/td&gt;
&lt;td&gt;Ensures repeatability&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;What are the test steps?&lt;/td&gt;
&lt;td&gt;Makes execution clear&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;What should happen?&lt;/td&gt;
&lt;td&gt;Validates the result&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;What if something goes wrong?&lt;/td&gt;
&lt;td&gt;Checks system resilience&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;🧠 Final Thought: It's About Thinking, Not Filling a Template&lt;/strong&gt;&lt;br&gt;
Yes, every tester knows the test case structure:&lt;br&gt;
&lt;code&gt;Title, Precondition, Steps, Expected, Actual.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;But if you only fill the form, and don’t think through the why,&lt;br&gt;
then your test case might pass review — but fail in real use.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;✍️ A real QA doesn’t just write a test case.&lt;br&gt;
They design a thought process others can follow, trust, and learn from.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;🧪 Example: Applying the Thought Process to a Real Test Case&lt;/strong&gt;&lt;br&gt;
Let’s say you’re testing the &lt;strong&gt;“Transfer Money”&lt;/strong&gt; feature between user accounts.&lt;/p&gt;

&lt;p&gt;✅ Instead of writing this (too vague):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Title: Test transfer
Steps: 
1. Go to transfer screen  
2. Enter amount  
3. Submit  
Expected: Transfer successful
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;⛔ This tells us nothing. What are you testing exactly? What amount? Logged in as who? What if the input is invalid?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🧠 Now apply the 5-question mindset:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Content&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Test Case ID&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;TC-001&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Title&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Transfer money between two internal accounts (valid input)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Precondition&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;User is logged in as "Standard User"&lt;br&gt;Both accounts are active&lt;br&gt;Account A has balance ≥ 100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Test Steps&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;1. Navigate to "Transfer" screen&lt;br&gt;2. Select Account A as source, Account B as target&lt;br&gt;3. Enter amount = 100&lt;br&gt;4. Click “Submit”&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Expected Result&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Success message is displayed: “Transfer completed”&lt;br&gt;Account A balance reduced by 100&lt;br&gt;Account B balance increased by 100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Negative Case Reminder&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Covered in TC-002: Input negative amount&lt;br&gt;Covered in TC-003: Target account locked&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Linked Requirement&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;USER-STORY-TRANSFER-01&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Assumptions&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;No network errors during transaction&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;🔍 Why this works:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ "What am I testing?" → Clearly defined in title&lt;/li&gt;
&lt;li&gt;✅ "What do I need?" → All preconditions listed&lt;/li&gt;
&lt;li&gt;✅ "What are the steps?" → Step-by-step, actionable&lt;/li&gt;
&lt;li&gt;✅ "What should happen?" → Detailed and measurable expected outcome&lt;/li&gt;
&lt;li&gt;✅ "What if something goes wrong?" → Negative cases listed separately, traceable&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;🧠 A test case like this is not just executable — it’s &lt;strong&gt;transferable&lt;/strong&gt;.&lt;br&gt;
Anyone on the team can run it, review it, or use it to debug without chasing you down.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>testing</category>
      <category>testcase</category>
      <category>beginners</category>
      <category>design</category>
    </item>
    <item>
      <title>No Docs? No Figma? No Worries – QA Can Still Test</title>
      <dc:creator>Maric Run Test</dc:creator>
      <pubDate>Mon, 28 Jul 2025 09:24:04 +0000</pubDate>
      <link>https://dev.to/tester_learn_testing/no-docs-no-figma-no-worries-qa-can-still-test-1inj</link>
      <guid>https://dev.to/tester_learn_testing/no-docs-no-figma-no-worries-qa-can-still-test-1inj</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Type:&lt;/strong&gt; Real-world QA Scenario&lt;br&gt;
&lt;strong&gt;Severity:&lt;/strong&gt; High (affects early test planning)&lt;br&gt;
&lt;strong&gt;Environment:&lt;/strong&gt; Agile, missing/unclear user stories&lt;br&gt;
&lt;strong&gt;Status:&lt;/strong&gt; Happens more often than you think&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;🧪 Problem&lt;/strong&gt;&lt;br&gt;
You’re assigned a feature.&lt;br&gt;
But there’s no detailed spec, no flow, no Figma, and no acceptance criteria.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔍 Root Cause&lt;/strong&gt;&lt;br&gt;
In fast-moving Agile teams, features often move into dev/test before specs are 100% finalized.&lt;br&gt;
Waiting for perfect documentation = missed deadlines.&lt;br&gt;
Testing blindly = missed bugs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✅ Expected Behavior (Mindset)&lt;/strong&gt;&lt;br&gt;
A professional tester:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Starts with what’s available&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Thinks like a user&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Documents assumptions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Asks sharp, focused questions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Iterates test cases as info improves&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;🛠 Suggested Approach&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Use the User Story to Map a Flow&lt;/strong&gt;&lt;br&gt;
Even if it’s vague, extract:&lt;/p&gt;

&lt;p&gt;Actor (user/role)&lt;/p&gt;

&lt;p&gt;Action (what they do)&lt;/p&gt;

&lt;p&gt;Goal (why they do it)&lt;/p&gt;

&lt;p&gt;Example: “As a user, I want to update my profile to keep my info current.”&lt;/p&gt;

&lt;p&gt;→ That gives you: input fields, update action, confirmation, possible validations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Write Draft Test Cases with Assumptions&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;✅ Clearly mark assumptions so devs/BA can confirm later.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Ask Specific, Context-Based Questions&lt;/strong&gt;&lt;br&gt;
“What’s the max/min value for this field?”&lt;/p&gt;

&lt;p&gt;“What happens if the user clicks Submit twice?”&lt;/p&gt;

&lt;p&gt;“Does this feature require login? Specific roles?”&lt;/p&gt;

&lt;p&gt;“What should happen if the API fails?”&lt;/p&gt;

&lt;p&gt;🎯 Ask like someone who already tried testing — not someone waiting for answers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Prioritize: Cover Happy Path First&lt;/strong&gt;&lt;br&gt;
Start with:&lt;/p&gt;

&lt;p&gt;Valid input → success flow&lt;/p&gt;

&lt;p&gt;Most common user actions&lt;/p&gt;

&lt;p&gt;Basic validation&lt;/p&gt;

&lt;p&gt;Add negative &amp;amp; edge cases once info is confirmed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Flag Test Cases as Draft / Pending&lt;/strong&gt;&lt;br&gt;
Always note test cases written under incomplete info as:&lt;/p&gt;

&lt;p&gt;Status: Draft&lt;/p&gt;

&lt;p&gt;Waiting for spec confirmation&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🧠 Final Thought&lt;/strong&gt;&lt;br&gt;
Writing test cases without a full spec isn’t impossible — it’s a core skill.&lt;/p&gt;

&lt;p&gt;Don’t block the team waiting for clarity.&lt;br&gt;
Be the one who brings clarity through smart assumptions and good questions.&lt;/p&gt;

</description>
      <category>testing</category>
      <category>beginners</category>
      <category>tutorial</category>
      <category>documentation</category>
    </item>
    <item>
      <title>The Core Mindset of a Manual Tester</title>
      <dc:creator>Maric Run Test</dc:creator>
      <pubDate>Thu, 24 Jul 2025 06:07:12 +0000</pubDate>
      <link>https://dev.to/tester_learn_testing/the-core-mindset-of-a-manual-tester-55am</link>
      <guid>https://dev.to/tester_learn_testing/the-core-mindset-of-a-manual-tester-55am</guid>
      <description>&lt;h2&gt;
  
  
  ❓Is a Manual Tester just someone who “clicks around”?
&lt;/h2&gt;

&lt;p&gt;No.&lt;/p&gt;

&lt;p&gt;A great Manual Tester doesn’t just follow test cases and log bugs.&lt;/p&gt;

&lt;p&gt;They are the ones who &lt;strong&gt;understand the product, analyze the logic, and spot problems before they even happen.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🎯 Tools may change. But with the right mindset, any tool becomes powerful.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🧩 So what is the core mindset of a Manual Tester?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. User Perspective: “What would I do if I were the user?”&lt;/strong&gt;&lt;br&gt;
Don’t just follow the test flow.&lt;/p&gt;

&lt;p&gt;A good tester puts themselves in the user’s shoes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;What mistakes might users make?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Will they understand what this feature does?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Will they try something unexpected that devs didn’t anticipate?&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;🧠 Some bugs are “so user-like” that only testers catch them — not developers.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;2. Critical Thinking: “Does this requirement make sense?”&lt;/strong&gt;&lt;br&gt;
Not all specs are perfect.&lt;/p&gt;

&lt;p&gt;A professional tester must question and challenge unclear, inconsistent, or illogical requirements.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;“What happens if a user enters a negative number?”&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;“If a user reloads halfway, does the app keep their progress?”&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;✅ Good testers don’t stay silent when things seem off.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;3. System Awareness: “What else does this feature affect?”&lt;/strong&gt;&lt;br&gt;
Manual Testers don’t test features in isolation.&lt;/p&gt;

&lt;p&gt;They understand how parts of the system are connected — a change in A might affect B and C.&lt;/p&gt;

&lt;p&gt;Example: Adding a new user role → affects permissions, UI display, menu visibility...&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🧠 That’s how Manual Testers ensure broad test coverage, even without automation.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;4. Risk-Based Thinking: “Which bugs matter most?”&lt;/strong&gt;&lt;br&gt;
Not every bug needs an urgent fix.&lt;/p&gt;

&lt;p&gt;Skilled testers know how to assess:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;How many users are affected?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Does it cause data loss or money loss?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Is it easy to reproduce?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Will fixing it break something else?&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;🎯 Prioritizing risk helps the team stay focused on what really matters.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;5. Process Mindset: “How can we test smarter, not just harder?”&lt;/strong&gt;&lt;br&gt;
Manual Testers don’t just follow tasks.&lt;/p&gt;

&lt;p&gt;They observe and suggest improvements:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Write reusable, clear test cases&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create checklists for repetitive steps&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Recommend logs or error messages for faster debugging&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Give early feedback on unclear logic to Devs or BAs&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;🔄 A good tester doesn’t just find bugs — they help prevent them.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  🔧 Summary: Core Tester Mindsets
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Mindset&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Key Question&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;User Perspective&lt;/td&gt;
&lt;td&gt;“What would a real user do here?”&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Critical Thinking&lt;/td&gt;
&lt;td&gt;“Does this requirement make sense?”&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;System Awareness&lt;/td&gt;
&lt;td&gt;“What else could this impact?”&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Risk-Based&lt;/td&gt;
&lt;td&gt;“Which bug is the most critical?”&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Process Improvement&lt;/td&gt;
&lt;td&gt;“How can we test faster and better?”&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  ✅ Final Thoughts
&lt;/h2&gt;

&lt;p&gt;You may not know automation yet.&lt;br&gt;
You may not use fancy tools.&lt;/p&gt;

&lt;p&gt;But if you’ve got the right mindset — you’re already ahead of 80% of other Manual Testers.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🧠 Manual Testing isn’t a “low-level” job.&lt;br&gt;
A Manual Tester with sharp thinking = a professional QA.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>testing</category>
      <category>webdev</category>
      <category>beginners</category>
      <category>learning</category>
    </item>
    <item>
      <title>What Testers Should Know About Specs ?</title>
      <dc:creator>Maric Run Test</dc:creator>
      <pubDate>Sat, 19 Jul 2025 12:05:10 +0000</pubDate>
      <link>https://dev.to/tester_learn_testing/what-testers-should-know-about-specs--1dll</link>
      <guid>https://dev.to/tester_learn_testing/what-testers-should-know-about-specs--1dll</guid>
      <description>&lt;p&gt;👉 &lt;strong&gt;Spec (Specification) = The answer to “How should this system work?”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🎯 To test effectively, you need to &lt;strong&gt;clearly understand&lt;/strong&gt; the system before you start testing.&lt;/p&gt;

&lt;p&gt;📚 &lt;strong&gt;Common Types of Specs&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Depending on your development process (Waterfall, Agile, Scrum…), you may encounter various types of specs.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. &lt;strong&gt;Business Requirement Document (BRD)&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;👉 Describes the &lt;em&gt;business-level&lt;/em&gt; needs and goals.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Explains the &lt;strong&gt;problem the system is solving&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Doesn’t go into technical details&lt;/li&gt;
&lt;li&gt;Read by: Business Analysts (BA), clients, PMs, and QA&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. &lt;strong&gt;User Story (Agile)&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;👉 Describes features from the &lt;strong&gt;user’s perspective&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"As a user, I want to transfer money between accounts so I can manage my finances."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Usually includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Acceptance Criteria&lt;/strong&gt; (when the feature is considered acceptable)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Definition of Done&lt;/strong&gt; (when the feature is complete)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. &lt;strong&gt;Design Spec (Figma / Wireframe / UI Flow)&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;👉 Describes the UI layout and navigation.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. &lt;strong&gt;API Spec (Swagger / Postman)&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;👉 Describes backend API details: endpoints, methods, parameters, responses, error codes.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. &lt;strong&gt;Use Case / Flow Chart / Sequence Diagram&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;👉 Visual representations of process or user flow.&lt;/p&gt;

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

&lt;p&gt;As a tester, you're not just someone who follows checklists.&lt;/p&gt;

&lt;p&gt;You're responsible for &lt;strong&gt;ensuring product quality&lt;/strong&gt;, and that starts with &lt;strong&gt;understanding the requirements&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Want to test right? → Read the spec.&lt;/li&gt;
&lt;li&gt;Want to test thoroughly? → Analyze the spec.&lt;/li&gt;
&lt;li&gt;Want to test smart? → Think like a user, a BA, and a developer.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>testing</category>
      <category>learning</category>
      <category>webdev</category>
      <category>qa</category>
    </item>
    <item>
      <title>Tester QA QC: Stop Mixing Them Up</title>
      <dc:creator>Maric Run Test</dc:creator>
      <pubDate>Thu, 17 Jul 2025 15:57:35 +0000</pubDate>
      <link>https://dev.to/tester_learn_testing/tester-qa-qc-stop-mixing-them-up-1ebm</link>
      <guid>https://dev.to/tester_learn_testing/tester-qa-qc-stop-mixing-them-up-1ebm</guid>
      <description>&lt;h2&gt;
  
  
  👨‍💻 1. Tester
&lt;/h2&gt;

&lt;p&gt;A Tester checks the product to find defects — manually or automationlly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Main tasks:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Understand requirements&lt;/li&gt;
&lt;li&gt;Write test cases &amp;amp; data&lt;/li&gt;
&lt;li&gt;Execute tests&lt;/li&gt;
&lt;li&gt;Report &amp;amp; retest bugs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;📍 Tester is part of QC, focused on the product, not the process.&lt;/p&gt;

&lt;h2&gt;
  
  
  🛠️ 2. QC = Quality Control
&lt;/h2&gt;

&lt;p&gt;QC checks the final product to ensure it meets requirements and works as expected.&lt;/p&gt;

&lt;h3&gt;
  
  
  What QC does:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Test after development&lt;/li&gt;
&lt;li&gt;Validate features&lt;/li&gt;
&lt;li&gt;Verify output matches input&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🎯 QC = Is the product right?&lt;/p&gt;

&lt;h2&gt;
  
  
  🧠 3. QA = Quality Assurance
&lt;/h2&gt;

&lt;p&gt;QA focuses on the process to prevent defects from happening in the first place.&lt;/p&gt;

&lt;h3&gt;
  
  
  What QA does:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Define standards &amp;amp; workflows&lt;/li&gt;
&lt;li&gt;Improve team practices&lt;/li&gt;
&lt;li&gt;Ensure consistent quality&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🎯 QA = Are we building it the right way?&lt;/p&gt;

&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.amazonaws.com%2Fuploads%2Farticles%2Fv5jbhtap93oztr9gt6os.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.amazonaws.com%2Fuploads%2Farticles%2Fv5jbhtap93oztr9gt6os.png" alt=" " width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🔍 Quick Comparison
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Role&lt;/th&gt;
&lt;th&gt;Focus&lt;/th&gt;
&lt;th&gt;Main Goal&lt;/th&gt;
&lt;th&gt;Involves Testing?&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Tester&lt;/td&gt;
&lt;td&gt;The software&lt;/td&gt;
&lt;td&gt;Find bugs&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;QC&lt;/td&gt;
&lt;td&gt;The final product&lt;/td&gt;
&lt;td&gt;Match requirements&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;QA&lt;/td&gt;
&lt;td&gt;The process&lt;/td&gt;
&lt;td&gt;Prevent bugs from the start&lt;/td&gt;
&lt;td&gt;❌ Not directly&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  ✅ Final Thought
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Tester ≠ QA ≠ QC.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Each role plays a different part in delivering quality software. If you're starting out, begin as a Tester — but understand where QA and QC fit into the bigger picture. That’s how you level up.&lt;/p&gt;

</description>
      <category>testing</category>
      <category>qa</category>
      <category>qc</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Testing a Crypto Exchange: Key Things to Understand</title>
      <dc:creator>Maric Run Test</dc:creator>
      <pubDate>Thu, 17 Jul 2025 02:17:41 +0000</pubDate>
      <link>https://dev.to/tester_learn_testing/testing-a-crypto-exchange-key-things-to-understand-4egd</link>
      <guid>https://dev.to/tester_learn_testing/testing-a-crypto-exchange-key-things-to-understand-4egd</guid>
      <description>&lt;p&gt;If you're a QA stepping into the crypto world, testing a &lt;strong&gt;Centralized Exchange (CEX)&lt;/strong&gt; platform is both exciting and challenging.&lt;/p&gt;

&lt;p&gt;This post walks you through key concepts and areas you must understand before testing a CEX platform effectively:&lt;/p&gt;

&lt;h2&gt;
  
  
  🧠 What is a CEX?
&lt;/h2&gt;

&lt;p&gt;CEX stands for &lt;strong&gt;Centralized Exchange&lt;/strong&gt;, a type of cryptocurrency platform where users create an account, go through identity verification (KYC), and perform trading directly through the system controlled by the exchange.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧩 Key Modules Testers Should Understand in a CEX
&lt;/h2&gt;

&lt;p&gt;Here are the core flows you'll most likely be testing:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. 🧾 &lt;strong&gt;Account &amp;amp; Authentication&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Sign up, login, reset password&lt;/li&gt;
&lt;li&gt;Two-Factor Authentication (2FA)&lt;/li&gt;
&lt;li&gt;Session/token management&lt;/li&gt;
&lt;li&gt;Rate limiting (prevent brute force attacks)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. 🧍 &lt;strong&gt;KYC Verification&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Upload documents: ID card, passport, selfie&lt;/li&gt;
&lt;li&gt;Different KYC levels and statuses (Pending / Approved / Rejected)&lt;/li&gt;
&lt;li&gt;Validations for file format, size, clarity&lt;/li&gt;
&lt;li&gt;Error handling and notification messages&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Example Test&lt;/em&gt;: What happens if I upload a blurry passport photo? Is the rejection reason clear?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  3. 💰 &lt;strong&gt;Wallet &amp;amp; Balance&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Deposit &amp;amp; withdrawal flows&lt;/li&gt;
&lt;li&gt;Balance updates in real-time&lt;/li&gt;
&lt;li&gt;Display of available vs frozen funds&lt;/li&gt;
&lt;li&gt;Blockchain transaction hash display&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Example Test&lt;/em&gt;: Does the wallet balance update correctly after a failed withdrawal?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  4. 📈 &lt;strong&gt;Trading Engine&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Placing Market / Limit / Stop orders&lt;/li&gt;
&lt;li&gt;Order book updates in real-time&lt;/li&gt;
&lt;li&gt;Slippage handling and fee calculation&lt;/li&gt;
&lt;li&gt;Cancel / Edit open orders&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Example Test&lt;/em&gt;: What if I place a Market Buy with insufficient balance?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  5. 🧮 &lt;strong&gt;Market Info &amp;amp; Charts&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Price updates and volume display&lt;/li&gt;
&lt;li&gt;Real-time candlestick charts&lt;/li&gt;
&lt;li&gt;Refresh behavior and chart syncing&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  6. 🔐 &lt;strong&gt;Security&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Password rules, session timeouts&lt;/li&gt;
&lt;li&gt;Detect suspicious behavior (e.g. multiple logins)&lt;/li&gt;
&lt;li&gt;Frontend and API error masking (no sensitive info leaked)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧪 What Makes Testing CEX Platforms Unique?
&lt;/h2&gt;

&lt;p&gt;Unlike typical e-commerce or web apps, CEX platforms involve &lt;strong&gt;real money&lt;/strong&gt;, &lt;strong&gt;fast-paced transactions&lt;/strong&gt;, and &lt;strong&gt;legal compliance&lt;/strong&gt;. That means:&lt;/p&gt;

&lt;p&gt;✅ Small bugs = big risks (funds may be lost)&lt;br&gt;&lt;br&gt;
✅ Real-time testing is crucial (prices, balances, trades)&lt;br&gt;&lt;br&gt;
✅ Tester must understand both UI and business logic&lt;br&gt;&lt;br&gt;
✅ Need for test data planning (fake KYC, sandbox wallets)&lt;/p&gt;




&lt;h2&gt;
  
  
  💡 Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Testing a crypto exchange like Coin12 isn’t just about checking buttons and forms. It’s about thinking like a real user, understanding financial flows, and making sure everything works safely and accurately.&lt;/p&gt;

&lt;p&gt;The more you understand the &lt;strong&gt;business logic behind trading&lt;/strong&gt;, the more valuable you’ll become as a QA in this field.&lt;/p&gt;

</description>
      <category>cryptocurrency</category>
      <category>testing</category>
      <category>blockchain</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Not Every App That Connects MetaMask Is a dApp</title>
      <dc:creator>Maric Run Test</dc:creator>
      <pubDate>Tue, 15 Jul 2025 03:28:12 +0000</pubDate>
      <link>https://dev.to/tester_learn_testing/a-dapp-vs-an-app-that-just-connects-to-wallet-gjn</link>
      <guid>https://dev.to/tester_learn_testing/a-dapp-vs-an-app-that-just-connects-to-wallet-gjn</guid>
      <description>&lt;p&gt;📌 A mindset bug I personally ran into&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bug Description:&lt;/strong&gt;&lt;br&gt;
I was testing a trading platform that allowed users to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Connect their Web3 wallets (MetaMask, Tronlink, etc.)&lt;/li&gt;
&lt;li&gt;Deposit and withdraw tokens&lt;/li&gt;
&lt;li&gt;See transaction hashes on-chain&lt;/li&gt;
&lt;li&gt;Use tokens for P2P trading or spot trading&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Naturally, I assumed:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"This must be a dApp! It connects MetaMask and writes to the blockchain."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But after digging deeper, I realized:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;❌ This is not a dApp. It’s a CEX (Centralized Exchange) with Web3 wallet support.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;💡 So what is a dApp?&lt;/strong&gt;&lt;br&gt;
A dApp isn’t about “connecting MetaMask” — it’s about decentralized execution.&lt;br&gt;
A dApp (Decentralized Application) must:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Run its core logic through smart contracts&lt;/li&gt;
&lt;li&gt;The user controls their assets&lt;/li&gt;
&lt;li&gt;Interact on-chain for actions like swap, stake, mint&lt;/li&gt;
&lt;li&gt;There’s no backend doing the core processing &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;—&amp;gt; That’s a &lt;strong&gt;real dApp&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;📌 Real examples: Uniswap, Aave, OpenSea, PancakeSwap...&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🧩 For New Web3 QA Testers:&lt;/strong&gt;&lt;br&gt;
🔍 Don’t just test the UI — understand the architecture behind it&lt;/p&gt;

&lt;p&gt;💬 Ask devs which smart contracts are involved&lt;/p&gt;

&lt;p&gt;🔗 Compare UI actions with results on Etherscan or BscScan&lt;/p&gt;

&lt;p&gt;🧠 Test your own mindset before testing the product&lt;/p&gt;

</description>
      <category>testing</category>
      <category>web3</category>
      <category>beginners</category>
      <category>qa</category>
    </item>
    <item>
      <title>How to Fully Test a Feature in Software</title>
      <dc:creator>Maric Run Test</dc:creator>
      <pubDate>Sat, 12 Jul 2025 08:53:07 +0000</pubDate>
      <link>https://dev.to/tester_learn_testing/how-to-fully-test-a-feature-in-software-44mi</link>
      <guid>https://dev.to/tester_learn_testing/how-to-fully-test-a-feature-in-software-44mi</guid>
      <description>&lt;p&gt;&lt;strong&gt;🧩 Pre-condition:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Feature deployed (dev/staging)&lt;/li&gt;
&lt;li&gt;Requirement/spec available&lt;/li&gt;
&lt;li&gt;Test account &amp;amp; data ready&lt;/li&gt;
&lt;li&gt;Tools ready (browser, Postman, DevTools)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;🧪 Steps:&lt;/strong&gt;&lt;/p&gt;

&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.amazonaws.com%2Fuploads%2Farticles%2Fg3aliv9blup5jx1g98ym.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.amazonaws.com%2Fuploads%2Farticles%2Fg3aliv9blup5jx1g98ym.png" alt=" " width="800" height="427"&gt;&lt;/a&gt;&lt;br&gt;
Link Mindmap: &lt;a href="https://xmind.ai/share/JnBiJ6a1?xid=zWPEj9o6" rel="noopener noreferrer"&gt;https://xmind.ai/share/JnBiJ6a1?xid=zWPEj9o6&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. UI / UX&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Review the layout and visual display&lt;/li&gt;
&lt;li&gt;User interaction (click, button, input, hover, links) → any response?&lt;/li&gt;
&lt;li&gt;Responsive design (MB, Tablet,...) → does it adapt?&lt;/li&gt;
&lt;li&gt;Enter invalid inputs → error messages?&lt;/li&gt;
&lt;li&gt;Usability (experience smooth?)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Functionality&lt;/strong&gt; (Business Logic)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Valid input → correct result?&lt;/li&gt;
&lt;li&gt;Invalid input → validation triggered?&lt;/li&gt;
&lt;li&gt;Edge cases (empty, max, special chars)&lt;/li&gt;
&lt;li&gt;Test different logic paths, if-else branches&lt;/li&gt;
&lt;li&gt;API &amp;amp; backend integration&lt;/li&gt;
&lt;li&gt;Error handling (network, timeout)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Non-Functional&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Security (unauthorized access)&lt;/li&gt;
&lt;li&gt;Performance (speed, heavy data)&lt;/li&gt;
&lt;li&gt;Use DevTools → check console errors, network issues, response times&lt;/li&gt;
&lt;li&gt;Are there proper logs for debugging?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. Extra Checks&lt;/strong&gt; (If applicable)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multi-language support&lt;/li&gt;
&lt;li&gt;Tracking/analytics&lt;/li&gt;
&lt;li&gt;Accessibility (keyboard, screen reader)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;✅ Expected:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;UI displays correctly with no visual issues or broken layout&lt;/li&gt;
&lt;li&gt;All flows and logic work as expected.&lt;/li&gt;
&lt;li&gt;No unexpected errors in console or API responses.&lt;/li&gt;
&lt;li&gt;Proper permission checks and security handling.&lt;/li&gt;
&lt;li&gt;Feature performs smoothly even with large or edge-case data.&lt;/li&gt;
&lt;li&gt;Supports all required environments, devices, and users.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;🧠 Tip&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Use this as a QA checklist before raising a bug. Covering all these areas helps ensure you're not missing important cases — and helps developers reproduce and fix issues faster.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>tutorial</category>
      <category>testing</category>
      <category>qa</category>
      <category>functional</category>
    </item>
    <item>
      <title>How to Practice JMeter with a Real-Life Scenario - J4.2</title>
      <dc:creator>Maric Run Test</dc:creator>
      <pubDate>Thu, 10 Jul 2025 04:52:09 +0000</pubDate>
      <link>https://dev.to/tester_learn_testing/how-to-practice-jmeter-with-a-real-life-scenario-j42-2833</link>
      <guid>https://dev.to/tester_learn_testing/how-to-practice-jmeter-with-a-real-life-scenario-j42-2833</guid>
      <description>&lt;h2&gt;
  
  
  Testing GET APIs with View Results Tree
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;📌 Pre-condition&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tool: Apache JMeter&lt;/li&gt;
&lt;li&gt;Objective: Test the GET API &lt;a href="https://dev.to/pod"&gt;https://dev.to/pod&lt;/a&gt; with 1000 users&lt;/li&gt;
&lt;li&gt;Environment: Local test, no token required&lt;/li&gt;
&lt;li&gt;Listener: View Results Tree&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;🧪 Steps:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Open JMeter and Add a Thread Group: Number of Threads (users): 1000 , Ramp-Up Period: 20 seconds, Loop Count: 1&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add an HTTP Request: Method: GET, URL: &lt;a href="https://dev.to/pod"&gt;https://dev.to/pod&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add Listener: View Results Tree&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Run the test and observe each request in the result tree&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;📊 Expected:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;All requests return status code 200 OK&lt;/li&gt;
&lt;li&gt;Response content correctly displays the Podcast page&lt;/li&gt;
&lt;li&gt;No HTTP errors or timeouts&lt;/li&gt;
&lt;li&gt;Response time is reasonable (under 2000ms)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;🔍 Analyzing the Results from View Results Tree&lt;/strong&gt;&lt;/p&gt;

&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.amazonaws.com%2Fuploads%2Farticles%2F2903j6stpvbtngzn3b0e.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.amazonaws.com%2Fuploads%2Farticles%2F2903j6stpvbtngzn3b0e.png" alt=" " width="800" height="357"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The View Results Tree listener shows each individual request, allowing you to analyze:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Request details&lt;/strong&gt;: URL, method, headers, and sent parameters&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Response body&lt;/strong&gt;: Helps verify if the returned data is correct&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Status code&lt;/strong&gt;: Confirm if the response is 200 OK or has errors&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Time taken&lt;/strong&gt;: Check which requests are slowest&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;💡 Example:&lt;/strong&gt; A test might pass with 200 OK, but the body could show an error message, empty data, or the wrong structure — View Results Tree reveals that.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🧠 Lessons Learned&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;View Results Tree is best for validating individual responses&lt;/li&gt;
&lt;li&gt;Not suitable for performance metrics (use Summary Report / Aggregate Report instead)&lt;/li&gt;
&lt;li&gt;Helps identify API logic issues and validate content accuracy&lt;/li&gt;
&lt;li&gt;Ideal for QA doing functional testing alongside load testing&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;🛠 Practice Tips&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Compare View Results Tree and Summary Report to understand each listener’s purpose&lt;/li&gt;
&lt;li&gt;Use Regular Expression Extractor to validate key values in responses&lt;/li&gt;
&lt;li&gt;Combine with CSV Data Set Config to test dynamic input data at scale&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

</description>
      <category>testing</category>
      <category>automaton</category>
      <category>beginners</category>
      <category>learning</category>
    </item>
    <item>
      <title>Why Testing in Web3 Is Not Like Traditional QA?</title>
      <dc:creator>Maric Run Test</dc:creator>
      <pubDate>Wed, 09 Jul 2025 06:26:52 +0000</pubDate>
      <link>https://dev.to/tester_learn_testing/why-testing-in-web3-is-not-like-traditional-qa-1lpi</link>
      <guid>https://dev.to/tester_learn_testing/why-testing-in-web3-is-not-like-traditional-qa-1lpi</guid>
      <description>&lt;p&gt;When I first switched from Web2 to Web3, I thought,&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“It’s just UI and API testing, right?”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But, I realized I had stepped into a completely different world. &lt;br&gt;
Here are the biggest differences that every QA needs to understand before testing blockchain apps.&lt;/p&gt;

&lt;p&gt;🔐 &lt;strong&gt;1. Immutable Data&lt;/strong&gt;&lt;br&gt;
In Web2, we can roll back, reset test data, or fix mistakes easily.&lt;br&gt;
In Web3? Not possible.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Every transaction is permanent on the blockchain.&lt;/li&gt;
&lt;li&gt;One small bug in a smart contract can cause real money loss.&lt;/li&gt;
&lt;li&gt;No "admin" to change data.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 Lesson: Be extra careful when testing anything that writes to the blockchain.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;🌐 &lt;strong&gt;2. Decentralized Architecture&lt;/strong&gt;&lt;br&gt;
No more single backend with easy logs or debugging.&lt;br&gt;
Web3 systems have many parts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;UI: runs in browser&lt;/li&gt;
&lt;li&gt;Wallet: signs &amp;amp; sends transactions (e.g., MetaMask)&lt;/li&gt;
&lt;li&gt;Smart Contract: runs on-chain logic&lt;/li&gt;
&lt;li&gt;Node/Provider: connects to blockchain (Infura, Alchemy...)&lt;/li&gt;
&lt;li&gt;Subgraph/Indexer: stores &amp;amp; queries blockchain data&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;💡Lesson: Bugs can happen anywhere in this stack. As a QA, you need to understand the full picture.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;⛽ &lt;strong&gt;3. Gas fee&lt;/strong&gt;&lt;br&gt;
Every on-chain action costs gas (real crypto, even on testnet).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Need ETH (testnet) to run tests&lt;/li&gt;
&lt;li&gt;Spamming tests = run out of gas = testing stops&lt;/li&gt;
&lt;li&gt;Performance testing must consider gas cost&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 Lesson: Plan your tests carefully to avoid wasting resources. And check gas usage in your test cases.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;⚙ &lt;strong&gt;4. Smart Contracts ≠ Normal Backend&lt;/strong&gt;&lt;br&gt;
Smart contracts cannot be modified after deployment (unless a proxy is used). The logic handling is also very different from the backend API:&lt;/p&gt;

&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.amazonaws.com%2Fuploads%2Farticles%2F8xek14j0bbdupo2jcj0x.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.amazonaws.com%2Fuploads%2Farticles%2F8xek14j0bbdupo2jcj0x.png" alt=" " width="791" height="268"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 Lesson: Don't just check the result. Understand the contract logic too. Sometimes it “works” but is badly designed.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;🔄 &lt;strong&gt;5. On-chain vs Off-chain Testing&lt;/strong&gt;&lt;br&gt;
Not all data is on the blockchain.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On-chain: balances, transactions, smart contract state&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;→ Test using explorers, Hardhat, JSON-RPC&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Off-chain: UI state, indexers, caches&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;→ Test using Postman, browser tools, etc.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 Lesson: UI testing is not enough. Use blockchain tools to see the full picture.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;🧩 &lt;strong&gt;Final Thought&lt;/strong&gt;&lt;br&gt;
Testing in Web3 is more than just checking UI or APIs.&lt;br&gt;
It’s about understanding a decentralized system—where bugs can affect real assets, real users, and can’t be undone.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The first step to becoming a good Web3 QA isn’t learning tools — it’s fixing the mindset bug.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>web3</category>
      <category>blockchain</category>
      <category>testing</category>
      <category>beginners</category>
    </item>
    <item>
      <title>How to Practice JMeter with a Real-Life Scenario - J4.1</title>
      <dc:creator>Maric Run Test</dc:creator>
      <pubDate>Tue, 08 Jul 2025 04:22:46 +0000</pubDate>
      <link>https://dev.to/tester_learn_testing/how-to-practice-jmeter-with-a-real-life-scenario-j41-2g6</link>
      <guid>https://dev.to/tester_learn_testing/how-to-practice-jmeter-with-a-real-life-scenario-j41-2g6</guid>
      <description>&lt;h2&gt;
  
  
  Testing GET APIs with Summary Report
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;🧪 Scenario: Load Testing a Podcast Page&lt;/strong&gt;&lt;br&gt;
It handles 1000 users&lt;br&gt;
Response times stay under 2s&lt;br&gt;
No errors occur&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🛠️ Test Plan:&lt;/strong&gt;&lt;br&gt;
Number of Threads (users): 1000&lt;br&gt;
Ramp-Up Period (in seconds): 20&lt;br&gt;
Loop Count: 1&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🌐 HTTP Request Sampler:&lt;/strong&gt; &lt;br&gt;
Method: GET&lt;br&gt;
Path: &lt;a href="https://dev.to/pod"&gt;https://dev.to/pod&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📈 Listeners:&lt;/strong&gt; Summary Report&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;📊 Expected Metrics to Watch&lt;/strong&gt;&lt;br&gt;
Average Response Time should be &amp;lt; 2000ms&lt;br&gt;
Error = 0% ideally&lt;br&gt;
Throughput &amp;gt; 80 req/sec&lt;br&gt;
Standard Deviation: Lower = more stable server&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔍Analyzing the Results from Summary Report&lt;/strong&gt;&lt;/p&gt;

&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.amazonaws.com%2Fuploads%2Farticles%2F7sc86yj6fiiwyr6cm3cf.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.amazonaws.com%2Fuploads%2Farticles%2F7sc86yj6fiiwyr6cm3cf.png" alt=" " width="800" height="206"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Samples:       1000 | Average:       1224 ms | Error %:       0% | Throughput:    48.5/sec&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;✅ Average Response Time = 1224ms &amp;lt; 2000ms&lt;br&gt;
✅ Error = 0 =&amp;gt; No error, all 1000 requests were successful, API is functionally stable.&lt;br&gt;
⚠️ Throughput = 48.5 req/sec &amp;lt; 80 req/sec =&amp;gt; Indicates that while stable, the system could struggle under heavier loads.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🛠️ Tips for Practice&lt;/strong&gt;&lt;br&gt;
Change concurrency: Try 100, 500, 2000 users and compare.&lt;br&gt;
Add timers: To simulate real-user delays.&lt;br&gt;
Use CSV DataSet: Feed dynamic data like usernames.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🧠 Wrap-Up&lt;/strong&gt;&lt;br&gt;
Practicing JMeter isn’t just about throwing traffic—it’s about:&lt;br&gt;
Understanding behavior under load.&lt;br&gt;
Catching bottlenecks early.&lt;br&gt;
Delivering stable apps.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Start with one endpoint. Read the graphs. Tune as you go.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
    </item>
  </channel>
</rss>
