<?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: Joy Odinaka</title>
    <description>The latest articles on DEV Community by Joy Odinaka (@dev-dinakajoy).</description>
    <link>https://dev.to/dev-dinakajoy</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%2F2960206%2F5637d0f1-920d-43bd-970d-31aeb95720ed.png</url>
      <title>DEV Community: Joy Odinaka</title>
      <link>https://dev.to/dev-dinakajoy</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dev-dinakajoy"/>
    <language>en</language>
    <item>
      <title>Test Planning: Before I Start Testing</title>
      <dc:creator>Joy Odinaka</dc:creator>
      <pubDate>Fri, 02 Oct 2026 01:06:07 +0000</pubDate>
      <link>https://dev.to/dev-dinakajoy/test-planning-before-i-start-testing-1onb</link>
      <guid>https://dev.to/dev-dinakajoy/test-planning-before-i-start-testing-1onb</guid>
      <description>&lt;p&gt;So far, I have learned how to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Understand requirements&lt;/li&gt;
&lt;li&gt;Design tests&lt;/li&gt;
&lt;li&gt;Write test cases&lt;/li&gt;
&lt;li&gt;Execute tests&lt;/li&gt;
&lt;li&gt;Report bugs&lt;/li&gt;
&lt;li&gt;Document results&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But before all of that, there is an important question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;What exactly are we going to test, and how are we going to test it?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Test Planning?
&lt;/h2&gt;

&lt;p&gt;Test planning is the process of deciding what will be tested, how it will be tested, who will do it, and when it will happen.&lt;/p&gt;

&lt;p&gt;A test plan gives the team a clear direction before testing begins.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Goes Into a Test Plan?
&lt;/h2&gt;

&lt;p&gt;A test plan can include:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Scope
&lt;/h3&gt;

&lt;p&gt;What are we testing?&lt;/p&gt;

&lt;p&gt;Defining scope helps prevent confusion about what the team is responsible for testing.&lt;/p&gt;

&lt;p&gt;For a food delivery application, for example:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In scope:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Registration&lt;/li&gt;
&lt;li&gt;Login&lt;/li&gt;
&lt;li&gt;Restaurant search&lt;/li&gt;
&lt;li&gt;Viewing menus&lt;/li&gt;
&lt;li&gt;Adding food to cart&lt;/li&gt;
&lt;li&gt;Placing orders&lt;/li&gt;
&lt;li&gt;Order history&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Out of scope:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Payment gateway&lt;/li&gt;
&lt;li&gt;Delivery processing&lt;/li&gt;
&lt;li&gt;Password reset&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Testing Types
&lt;/h3&gt;

&lt;p&gt;We also decide what types of testing are needed. The types selected depend on the application and its requirements.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Functional testing&lt;/li&gt;
&lt;li&gt;Regression testing&lt;/li&gt;
&lt;li&gt;Exploratory testing&lt;/li&gt;
&lt;li&gt;Negative testing&lt;/li&gt;
&lt;li&gt;Smoke testing&lt;/li&gt;
&lt;li&gt;Usability testing&lt;/li&gt;
&lt;li&gt;Compatibility testing&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Test Environment
&lt;/h3&gt;

&lt;p&gt;Where will testing happen?&lt;/p&gt;

&lt;p&gt;The environment matters because software can behave differently across browsers, devices, and configurations.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Browser:
Chrome
Firefox

Devices:
Desktop
Android

Database:
Test Database
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4. Roles and Responsibilities
&lt;/h3&gt;

&lt;p&gt;Who is involved?&lt;/p&gt;

&lt;p&gt;Everyone should understand their role during testing.&lt;/p&gt;

&lt;p&gt;A test plan can define responsibilities for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;QA Tester&lt;/li&gt;
&lt;li&gt;QA Lead&lt;/li&gt;
&lt;li&gt;Developer&lt;/li&gt;
&lt;li&gt;Product Owner&lt;/li&gt;
&lt;li&gt;Scrum Master&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5. Schedule
&lt;/h3&gt;

&lt;p&gt;Testing doesn't happen randomly.&lt;/p&gt;

&lt;p&gt;Schedule gives the team an idea of &lt;strong&gt;what happens when&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;We can plan activities such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Requirement Review
       ↓
Test Planning
       ↓
Test Scenario Design
       ↓
Test Case Design
       ↓
Test Execution
       ↓
Bug Reporting &amp;amp; Retesting
       ↓
Test Closure
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Entry and Exit Criteria
&lt;/h2&gt;

&lt;p&gt;Another thing I learned is that testing needs clear conditions for starting and finishing.&lt;/p&gt;

&lt;h3&gt;
  
  
  Entry Criteria
&lt;/h3&gt;

&lt;p&gt;Conditions that should be met before testing begins.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Requirements are available&lt;/li&gt;
&lt;li&gt;Test environment is ready&lt;/li&gt;
&lt;li&gt;Test data is available&lt;/li&gt;
&lt;li&gt;Build is deployed&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Exit Criteria
&lt;/h3&gt;

&lt;p&gt;Conditions that help determine when testing can be considered complete.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Planned tests have been executed&lt;/li&gt;
&lt;li&gt;Critical defects are resolved&lt;/li&gt;
&lt;li&gt;Test results are documented&lt;/li&gt;
&lt;li&gt;Required coverage has been achieved&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Risks and Assumptions
&lt;/h2&gt;

&lt;p&gt;Things don't always go according to plan.&lt;/p&gt;

&lt;p&gt;A test plan can also identify potential risks.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The test environment may not be available on time.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Or:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A required test API may be unavailable.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Identifying risks early allows the team to think about how to handle them.&lt;/p&gt;




&lt;p&gt;Test planning has changed the way I think about testing. I don't just start testing immediately I am giving the application.&lt;/p&gt;

&lt;p&gt;Now I first define:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What we are testing&lt;/li&gt;
&lt;li&gt;What's not included &lt;/li&gt;
&lt;li&gt;How we will test it&lt;/li&gt;
&lt;li&gt;Who is responsible &lt;/li&gt;
&lt;li&gt;What is needed&lt;/li&gt;
&lt;li&gt;When we can start and finish&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Testing isn't something we simply start doing without a plan.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I'm learning QA and I'm taking you with me.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>qa</category>
      <category>testing</category>
      <category>beginners</category>
      <category>learning</category>
    </item>
    <item>
      <title>Test Execution &amp; Documentation</title>
      <dc:creator>Joy Odinaka</dc:creator>
      <pubDate>Tue, 29 Sep 2026 16:33:45 +0000</pubDate>
      <link>https://dev.to/dev-dinakajoy/test-execution-documentation-149h</link>
      <guid>https://dev.to/dev-dinakajoy/test-execution-documentation-149h</guid>
      <description>&lt;p&gt;I have learned how to &lt;strong&gt;design tests&lt;/strong&gt;, and the next is how to actually document and run them.&lt;/p&gt;

&lt;p&gt;I need to execute the tests, record what happened, report problems, and keep track of what has been tested.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Test Case Execution
&lt;/h2&gt;

&lt;p&gt;A test case tells me &lt;strong&gt;what to test and how to test it&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;During execution, I follow the steps and compare the actual result with the expected result.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test:&lt;/strong&gt; Login with valid credentials&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Expected:&lt;/strong&gt; User should be successfully logged in.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Actual:&lt;/strong&gt; User is successfully logged in.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Result:&lt;/strong&gt; PASS ✅&lt;/p&gt;

&lt;p&gt;But what if the login fails?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Actual:&lt;/strong&gt; Error message: "Invalid credentials"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Result:&lt;/strong&gt; FAIL ❌&lt;/p&gt;

&lt;p&gt;And here, documentation becomes important.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Test Status
&lt;/h2&gt;

&lt;p&gt;Not every test will simply be Pass or Fail.&lt;/p&gt;

&lt;p&gt;Common statuses include:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Pass&lt;/strong&gt; ✅&lt;/td&gt;
&lt;td&gt;Expected result was achieved&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Fail&lt;/strong&gt; ❌&lt;/td&gt;
&lt;td&gt;Actual result differs from expected result&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Blocked&lt;/strong&gt; 🚫&lt;/td&gt;
&lt;td&gt;Test cannot be executed because of a blocker&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Not Run&lt;/strong&gt; ⏳&lt;/td&gt;
&lt;td&gt;Test hasn't been executed yet&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;This gives the team a quick picture of the current testing progress.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Expected vs Actual Result
&lt;/h2&gt;

&lt;p&gt;One thing I'm learning is to keep these two separate.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Expected Result&lt;/strong&gt; -&amp;gt; What should happen?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Actual Result&lt;/strong&gt; -&amp;gt; What actually happened?&lt;/p&gt;

&lt;p&gt;This difference is very important when reporting a bug.&lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;"Login doesn't work."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I should be able to say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Expected:&lt;/strong&gt; User should log in with valid credentials.&lt;br&gt;
&lt;strong&gt;Actual:&lt;/strong&gt; User remains on the login page and receives an error message.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's much easier for someone else to understand and investigate.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. Bug Reporting
&lt;/h2&gt;

&lt;p&gt;When a test fails because of a defect, I need to report it clearly.&lt;/p&gt;

&lt;p&gt;A useful bug report usually contains:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bug ID&lt;/li&gt;
&lt;li&gt;Title&lt;/li&gt;
&lt;li&gt;Description&lt;/li&gt;
&lt;li&gt;Steps to reproduce&lt;/li&gt;
&lt;li&gt;Test data&lt;/li&gt;
&lt;li&gt;Expected result&lt;/li&gt;
&lt;li&gt;Actual result&lt;/li&gt;
&lt;li&gt;Severity&lt;/li&gt;
&lt;li&gt;Priority&lt;/li&gt;
&lt;li&gt;Environment&lt;/li&gt;
&lt;li&gt;Screenshots or other evidence&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal isn't simply to say that there's a bug.&lt;/p&gt;

&lt;p&gt;The goal is to give the developer enough information to &lt;strong&gt;reproduce and understand the problem&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Retesting vs Regression Testing
&lt;/h2&gt;

&lt;p&gt;When a developer fixes a bug, I don't just assume it's fixed.&lt;/p&gt;

&lt;p&gt;I &lt;strong&gt;retest&lt;/strong&gt; it to know if the specific bug got fixed.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;A login bug was reported.&lt;/p&gt;

&lt;p&gt;The developer fixes it.&lt;/p&gt;

&lt;p&gt;I run the same steps again to verify the fix.&lt;/p&gt;

&lt;p&gt;Next, I do a &lt;strong&gt;Regression Testing&lt;/strong&gt; to know if the fix broke anything else?&lt;/p&gt;

&lt;p&gt;I test related or existing functionality to make sure the change hasn't introduced new problems.&lt;/p&gt;

&lt;p&gt;So:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Retesting -&amp;gt; Check the fix&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Regression -&amp;gt; Check for unintended impact&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  6. Test Execution Reports
&lt;/h2&gt;

&lt;p&gt;As testing progresses, the team needs to know what's happening.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Total Tests:      50
Executed:         38
Passed:           32
Failed:            6
Blocked:           4
Not Run:           8
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;From this, we can calculate useful metrics such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Test coverage&lt;/li&gt;
&lt;li&gt;Pass rate&lt;/li&gt;
&lt;li&gt;Fail rate&lt;/li&gt;
&lt;li&gt;Blocked tests&lt;/li&gt;
&lt;li&gt;Remaining tests&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The numbers help communicate the current state of testing.&lt;/p&gt;




&lt;h2&gt;
  
  
  7. Requirements Traceability Matrix
&lt;/h2&gt;

&lt;p&gt;Another useful document is the &lt;strong&gt;RTM - Requirements Traceability Matrix&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It connects requirements to test cases and, where applicable, defects.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Requirement&lt;/th&gt;
&lt;th&gt;Test Case&lt;/th&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;th&gt;Bug&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;User can log in&lt;/td&gt;
&lt;td&gt;TC-LOGIN-001&lt;/td&gt;
&lt;td&gt;Fail&lt;/td&gt;
&lt;td&gt;BUG-001&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;User can search products&lt;/td&gt;
&lt;td&gt;TC-SEARCH-001&lt;/td&gt;
&lt;td&gt;Pass&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;This helps answer:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Have we tested all the requirements?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And if something fails:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Which requirement and test case are affected?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  What I am Learning
&lt;/h3&gt;

&lt;p&gt;Test execution has taught me that testing isn't finished when I click &lt;strong&gt;Run&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Good QA also means:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Execute → Observe → Compare → Document → Report → Retest → Verify&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The quality of the documentation matters because testing is a team activity.&lt;/p&gt;

&lt;p&gt;Someone else should be able to understand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What I tested&lt;/li&gt;
&lt;li&gt;What happened&lt;/li&gt;
&lt;li&gt;What failed&lt;/li&gt;
&lt;li&gt;Why it failed&lt;/li&gt;
&lt;li&gt;What has been fixed&lt;/li&gt;
&lt;li&gt;What still needs attention&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;I will start working on a small &lt;strong&gt;QA project&lt;/strong&gt;, creating test scenarios, test cases, executing them, reporting bugs, and documenting the results.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I'm learning QA and I'm taking you with me.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>testing</category>
      <category>qa</category>
    </item>
    <item>
      <title>Test Design: How Do I Know What to Test?</title>
      <dc:creator>Joy Odinaka</dc:creator>
      <pubDate>Wed, 02 Sep 2026 10:32:24 +0000</pubDate>
      <link>https://dev.to/dev-dinakajoy/test-design-how-do-i-know-what-to-test-3gdc</link>
      <guid>https://dev.to/dev-dinakajoy/test-design-how-do-i-know-what-to-test-3gdc</guid>
      <description>&lt;p&gt;So far, I have learned the fundamentals of Manual QA.&lt;/p&gt;

&lt;p&gt;Now comes a question that sounds simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;If I have a feature to test, what exactly should I test?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Test design is about deciding &lt;strong&gt;what test cases to create&lt;/strong&gt; so that we can test a feature effectively without having to test every possible combination.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Equivalence Partitioning
&lt;/h2&gt;

&lt;p&gt;Instead of testing every possible input, divide inputs into groups that should behave similarly.&lt;/p&gt;

&lt;p&gt;These groups are called &lt;strong&gt;equivalence partitions&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Example
&lt;/h3&gt;

&lt;p&gt;A website allows users to enter an age between &lt;strong&gt;18 and 60&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;We can divide the inputs into:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Below 18     → Invalid
18 - 60      → Valid
Above 60     → Invalid
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Instead of testing every age, we can test representative values:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;17 → Invalid&lt;/li&gt;
&lt;li&gt;30 → Valid&lt;/li&gt;
&lt;li&gt;61 → Invalid&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The idea is to test one or more values from each group instead of testing everything.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Boundary Value Analysis
&lt;/h2&gt;

&lt;p&gt;Bugs often hide around the &lt;strong&gt;edges&lt;/strong&gt; of valid ranges.&lt;/p&gt;

&lt;p&gt;Boundary Value Analysis (BVA) focuses on those edges.&lt;/p&gt;

&lt;p&gt;Using the same age requirement:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;18 to 60&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We test:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;17  → Just below
18  → Minimum
19  → Just above

59  → Just below maximum
60  → Maximum
61  → Just above
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Why?&lt;/p&gt;

&lt;p&gt;Because developers can accidentally implement:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;age &amp;gt; 18
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;instead of:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;age &amp;gt;= 18
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The boundary is where things often go wrong.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;If there's a boundary, we test around it.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  3. Decision Table Testing
&lt;/h2&gt;

&lt;p&gt;Some features behave differently depending on &lt;strong&gt;multiple conditions&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Decision tables help us organize these combinations.&lt;/p&gt;

&lt;h3&gt;
  
  
  Example: Login
&lt;/h3&gt;

&lt;p&gt;Suppose login succeeds only when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Email is valid&lt;/li&gt;
&lt;li&gt;Password is correct&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Email&lt;/th&gt;
&lt;th&gt;Password&lt;/th&gt;
&lt;th&gt;Expected Result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Valid&lt;/td&gt;
&lt;td&gt;Correct&lt;/td&gt;
&lt;td&gt;Login succeeds&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Valid&lt;/td&gt;
&lt;td&gt;Incorrect&lt;/td&gt;
&lt;td&gt;Login fails&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Invalid&lt;/td&gt;
&lt;td&gt;Correct&lt;/td&gt;
&lt;td&gt;Login fails&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Invalid&lt;/td&gt;
&lt;td&gt;Incorrect&lt;/td&gt;
&lt;td&gt;Login fails&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Instead of trying to remember every combination, the decision table makes the rules visible.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;When multiple conditions affect the outcome, it is best to think in combinations.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  4. State Transition Testing
&lt;/h2&gt;

&lt;p&gt;Some systems behave differently depending on their &lt;strong&gt;current state&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;An example is a user account.&lt;/p&gt;

&lt;p&gt;Let's say an account is locked after &lt;strong&gt;3 failed login attempts&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Active
  ↓
1 failed attempt
  ↓
Active
  ↓
2 failed attempts
  ↓
Active
  ↓
3 failed attempts
  ↓
Locked
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now we can test:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Successful login → Account remains active&lt;/li&gt;
&lt;li&gt;1 failed attempt → Account remains active&lt;/li&gt;
&lt;li&gt;2 failed attempts → Account remains active&lt;/li&gt;
&lt;li&gt;3 failed attempts → Account becomes locked&lt;/li&gt;
&lt;li&gt;Login after lock → Access denied&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"What happens when the system moves from one state to another?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  5. Error Guessing
&lt;/h2&gt;

&lt;p&gt;This one is different because there isn't a strict formula.&lt;/p&gt;

&lt;p&gt;It is about using &lt;strong&gt;experience, intuition, and knowledge of common mistakes&lt;/strong&gt; to predict where bugs might exist.&lt;/p&gt;

&lt;p&gt;For a registration form, we might try:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Empty fields&lt;/li&gt;
&lt;li&gt;Very long inputs&lt;/li&gt;
&lt;li&gt;Special characters&lt;/li&gt;
&lt;li&gt;Spaces&lt;/li&gt;
&lt;li&gt;Duplicate email&lt;/li&gt;
&lt;li&gt;Invalid email format&lt;/li&gt;
&lt;li&gt;Copy/paste unexpected values&lt;/li&gt;
&lt;li&gt;Rapidly clicking the submit button&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'm asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"If I wanted to break this feature, what would I try?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The more experience a tester gains, the better they become at guessing where problems might hide.&lt;/p&gt;




&lt;h2&gt;
  
  
  6. Positive &amp;amp; Negative Testing
&lt;/h2&gt;

&lt;p&gt;These are two fundamental ways of approaching a test.&lt;/p&gt;

&lt;h3&gt;
  
  
  Positive Testing
&lt;/h3&gt;

&lt;p&gt;Use &lt;strong&gt;valid input&lt;/strong&gt; and verify that the system works as expected.&lt;/p&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Valid email + Valid password = Login succeeds
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Negative Testing
&lt;/h3&gt;

&lt;p&gt;Use &lt;strong&gt;invalid, unexpected, or inappropriate input&lt;/strong&gt; and verify that the system handles it correctly.&lt;/p&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Invalid email + Valid password = Login rejected
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As a good tester you always ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Does it work when I use it correctly?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;and&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"What happens when I don't?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;Testing a &lt;strong&gt;product quantity field&lt;/strong&gt; that accepts values from &lt;strong&gt;1 to 10&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;We could use several techniques:&lt;/p&gt;

&lt;h3&gt;
  
  
  Equivalence Partitioning
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt; 1       → Invalid
1 - 10    → Valid
&amp;gt; 10      → Invalid
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Boundary Value Analysis
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;0, 1, 2
9, 10, 11
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Positive Testing
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Enter 5 → Should be accepted
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Negative Testing
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Enter 0 → Should be rejected
Enter 11 → Should be rejected
Enter "abc" → Should be rejected
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Error Guessing
&lt;/h3&gt;

&lt;p&gt;I might also try:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Empty value
Negative number
Decimal number
Very large number
Special characters
Spaces
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now I am not just randomly clicking around, but I am designing tests with a reason.&lt;/p&gt;




&lt;h1&gt;
  
  
  What I Have Learned
&lt;/h1&gt;

&lt;p&gt;Test design has changed how I think about testing. I don't just jump into testing a feature, But I first check the possible inputs, conditions, states, boundaries, and failure points?&lt;/p&gt;

&lt;p&gt;Testing isn't about testing everything but more about choosing the &lt;strong&gt;right things to test&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I'm learning QA and I'm taking you with me.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>testing</category>
      <category>qa</category>
      <category>learning</category>
    </item>
    <item>
      <title>Starting with Manual QA</title>
      <dc:creator>Joy Odinaka</dc:creator>
      <pubDate>Tue, 01 Sep 2026 10:17:11 +0000</pubDate>
      <link>https://dev.to/dev-dinakajoy/starting-with-manual-qa-l2</link>
      <guid>https://dev.to/dev-dinakajoy/starting-with-manual-qa-l2</guid>
      <description>&lt;p&gt;After learning the difference between &lt;strong&gt;QA and testing&lt;/strong&gt;, it’s time to get into the actual fundamentals.&lt;/p&gt;

&lt;p&gt;I'm starting with &lt;strong&gt;Manual QA&lt;/strong&gt; because I want to understand the thinking behind testing before moving into automation.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. QA vs Software Testing
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;QA (Quality Assurance)&lt;/strong&gt; focuses on preventing quality problems by improving the process used to build software.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Software testing&lt;/strong&gt; focuses on checking the software to find defects and verify that it behaves as expected.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;QA -&amp;gt; How do we prevent problems?&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Testing -&amp;gt; Can we find problems?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  2. SDLC &amp;amp; STLC
&lt;/h2&gt;

&lt;p&gt;Before testing software, I need to understand &lt;strong&gt;how software is built&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  SDLC — Software Development Life Cycle
&lt;/h3&gt;

&lt;p&gt;This is the overall process of developing software:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Requirements
     ↓
Design
     ↓
Development
     ↓
Testing
     ↓
Deployment
     ↓
Maintenance
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  STLC — Software Testing Life Cycle
&lt;/h3&gt;

&lt;p&gt;This is the process specifically followed for testing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Requirement Analysis
        ↓
Test Planning
        ↓
Test Case Design
        ↓
Test Environment Setup
        ↓
Test Execution
        ↓
Test Closure
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;SDLC is the bigger picture. STLC focuses on testing.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Test Scenarios vs Test Cases
&lt;/h2&gt;

&lt;p&gt;A &lt;strong&gt;test scenario&lt;/strong&gt; describes &lt;em&gt;what&lt;/em&gt; needs to be tested.&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;test case&lt;/strong&gt; describes &lt;em&gt;how&lt;/em&gt; to test it.&lt;/p&gt;

&lt;p&gt;For a login feature:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scenario:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Verify that a user can log in.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Test cases:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Login with valid credentials&lt;/li&gt;
&lt;li&gt;Login with an incorrect password&lt;/li&gt;
&lt;li&gt;Login with an empty email&lt;/li&gt;
&lt;li&gt;Login with an empty password&lt;/li&gt;
&lt;li&gt;Login with both fields empty&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Scenario = What to test&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Test case = How to test it&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  4. Bug / Defect Lifecycle
&lt;/h2&gt;

&lt;p&gt;Finding a bug is only the beginning.&lt;/p&gt;

&lt;p&gt;A typical defect lifecycle looks like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;New
 ↓
Assigned
 ↓
In Progress
 ↓
Fixed
 ↓
Retest
 ↓
Verified → Closed
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But note that bugs can also be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reopened&lt;/li&gt;
&lt;li&gt;Rejected&lt;/li&gt;
&lt;li&gt;Duplicate&lt;/li&gt;
&lt;li&gt;Deferred&lt;/li&gt;
&lt;li&gt;Won't Fix&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The important thing is that a defect should be &lt;strong&gt;tracked from discovery to resolution&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Severity vs Priority
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Severity:&lt;/strong&gt; How badly does the bug affect the system?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Priority:&lt;/strong&gt; How urgently should it be fixed?&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A typo on the homepage might have &lt;strong&gt;low severity but high priority&lt;/strong&gt; if the homepage is part of an important marketing campaign.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Another example:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A crash in a rarely used feature could have &lt;strong&gt;high severity but lower priority&lt;/strong&gt; depending on the business context.&lt;br&gt;
&lt;strong&gt;Severity = Impact&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Priority = Urgency&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  6. Positive vs Negative Testing
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Positive testing
&lt;/h3&gt;

&lt;p&gt;Check that the software works with &lt;strong&gt;valid input&lt;/strong&gt;.&lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;Enter a valid email and password -&amp;gt; Login should succeed.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Negative testing
&lt;/h3&gt;

&lt;p&gt;Check how the software behaves with &lt;strong&gt;invalid or unexpected input&lt;/strong&gt;.&lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;Enter an incorrect password -&amp;gt; Login should fail with an appropriate message.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Good testers don't only ask: &lt;em&gt;"Does it work?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;They also ask: &lt;em&gt;&lt;strong&gt;"What happens when I do something I shouldn't?"&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  7. Functional vs Non-Functional Testing
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Functional testing
&lt;/h3&gt;

&lt;p&gt;Checks &lt;strong&gt;what the system does&lt;/strong&gt;.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Login&lt;/li&gt;
&lt;li&gt;Registration&lt;/li&gt;
&lt;li&gt;Search&lt;/li&gt;
&lt;li&gt;Checkout&lt;/li&gt;
&lt;li&gt;Payment&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Non-functional testing
&lt;/h3&gt;

&lt;p&gt;Checks &lt;strong&gt;how well the system works&lt;/strong&gt;.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Performance&lt;/li&gt;
&lt;li&gt;Security&lt;/li&gt;
&lt;li&gt;Usability&lt;/li&gt;
&lt;li&gt;Reliability&lt;/li&gt;
&lt;li&gt;Compatibility&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Functional = What does it do?&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Non-functional = How well does it do it?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  8. Smoke, Sanity, Regression &amp;amp; Exploratory Testing
&lt;/h2&gt;

&lt;p&gt;These testing types are easy to mix up.&lt;/p&gt;

&lt;h3&gt;
  
  
  Smoke Testing
&lt;/h3&gt;

&lt;p&gt;A quick check to see if the build is stable enough for further testing.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Does the application basically work?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Sanity Testing
&lt;/h3&gt;

&lt;p&gt;A focused check after a change or fix.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Does this specific change work correctly?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Regression Testing
&lt;/h3&gt;

&lt;p&gt;Checks that new changes haven't broken existing functionality.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Did this change break something that already worked?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Exploratory Testing
&lt;/h3&gt;

&lt;p&gt;Testing without following only predefined test cases.&lt;/p&gt;

&lt;p&gt;The tester explores the application, asks questions, follows clues, and looks for unexpected behavior.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"What can I discover?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  9. Agile, Scrum &amp;amp; QA
&lt;/h2&gt;

&lt;p&gt;Modern QA doesn't happen only after developers finish everything.&lt;/p&gt;

&lt;p&gt;In an &lt;strong&gt;Agile&lt;/strong&gt; team, QA is involved throughout development.&lt;/p&gt;

&lt;p&gt;A typical Scrum team may include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Product Owner&lt;/li&gt;
&lt;li&gt;Scrum Master&lt;/li&gt;
&lt;li&gt;Developers&lt;/li&gt;
&lt;li&gt;QA/Testers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;QA can contribute during:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Planning -&amp;gt; Development -&amp;gt; Testing -&amp;gt; Review -&amp;gt; Release&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This means QA isn't simply the person who receives a finished product and looks for bugs.&lt;/p&gt;

&lt;p&gt;QA works &lt;strong&gt;with the team&lt;/strong&gt; to help build quality into the product.&lt;/p&gt;




&lt;h1&gt;
  
  
  My Take Away
&lt;/h1&gt;

&lt;p&gt;Manual QA is much more than clicking buttons.&lt;/p&gt;

&lt;p&gt;It's about:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Understanding -&amp;gt; Thinking -&amp;gt; Designing -&amp;gt; Testing -&amp;gt; Finding -&amp;gt; Communicating -&amp;gt; Verifying&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And the biggest skill I'm beginning to develop is &lt;strong&gt;thinking about what could go wrong&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That's what I want to get better at.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's Next?
&lt;/h2&gt;

&lt;p&gt;I will be learning test design techniques such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Equivalence Partitioning&lt;/li&gt;
&lt;li&gt;Boundary Value Analysis&lt;/li&gt;
&lt;li&gt;Decision Table Testing&lt;/li&gt;
&lt;li&gt;State Transition Testing&lt;/li&gt;
&lt;li&gt;Error Guessing&lt;/li&gt;
&lt;li&gt;Positive &amp;amp; Negative Testing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;I'm learning QA and I'm taking you with me.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>qa</category>
      <category>beginners</category>
      <category>testing</category>
    </item>
    <item>
      <title>Quality Assurance vs Testing?</title>
      <dc:creator>Joy Odinaka</dc:creator>
      <pubDate>Sun, 30 Aug 2026 19:55:15 +0000</pubDate>
      <link>https://dev.to/dev-dinakajoy/whats-the-difference-between-qa-vs-testing-5f7</link>
      <guid>https://dev.to/dev-dinakajoy/whats-the-difference-between-qa-vs-testing-5f7</guid>
      <description>&lt;p&gt;My first note:&lt;/p&gt;

&lt;p&gt;Software Quality Assurance vs Software Testing&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Quality Assurance (QA)?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Software Quality Assurance (QA)&lt;/strong&gt; is about improving the process used to build software so that quality is built in from the start.&lt;/p&gt;

&lt;p&gt;It looks at the bigger picture — processes, requirements, development, testing, and how the team works.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Testing?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Software testing&lt;/strong&gt; is about checking the actual software to find problems and verify that it behaves as expected.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;A developer builds a login page.&lt;/p&gt;

&lt;p&gt;A tester checks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Can a user log in with valid credentials?&lt;/li&gt;
&lt;li&gt;What happens with the wrong password?&lt;/li&gt;
&lt;li&gt;What if the email is empty?&lt;/li&gt;
&lt;li&gt;What if the password is empty?&lt;/li&gt;
&lt;li&gt;What happens after several failed attempts?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These checks can reveal defects before users do.&lt;/p&gt;




&lt;h2&gt;
  
  
  QA vs Testing
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;QA&lt;/th&gt;
&lt;th&gt;Testing&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Prevents quality problems&lt;/td&gt;
&lt;td&gt;Finds problems&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Process-focused&lt;/td&gt;
&lt;td&gt;Product-focused&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Starts early&lt;/td&gt;
&lt;td&gt;Happens throughout development&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Asks &lt;strong&gt;“How can we prevent defects?”&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Asks &lt;strong&gt;“Can we find defects?”&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;They are different, but they work together.&lt;/p&gt;

&lt;h2&gt;
  
  
  What does a QA tester actually do?
&lt;/h2&gt;

&lt;p&gt;A QA tester does not simply click around looking for bugs.&lt;/p&gt;

&lt;p&gt;They:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Understand requirements&lt;/li&gt;
&lt;li&gt;Think about what could go wrong&lt;/li&gt;
&lt;li&gt;Design test cases&lt;/li&gt;
&lt;li&gt;Execute tests&lt;/li&gt;
&lt;li&gt;Report defects&lt;/li&gt;
&lt;li&gt;Retest fixes&lt;/li&gt;
&lt;li&gt;Perform regression testing&lt;/li&gt;
&lt;li&gt;Explore the software&lt;/li&gt;
&lt;li&gt;Communicate with developers and other team members&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And perhaps most importantly:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;They think like the user, and sometimes like the person trying to break the software.&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;QA is about helping teams build better software and not just only finding bugs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I'm learning QA and I'm taking you with me.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>testing</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Getting Started in QA</title>
      <dc:creator>Joy Odinaka</dc:creator>
      <pubDate>Sun, 23 Aug 2026 10:13:48 +0000</pubDate>
      <link>https://dev.to/dev-dinakajoy/getting-started-in-qa-why-now-3bb1</link>
      <guid>https://dev.to/dev-dinakajoy/getting-started-in-qa-why-now-3bb1</guid>
      <description>&lt;p&gt;I am starting my journey into &lt;strong&gt;Quality Assurance (QA)&lt;/strong&gt;, and I am starting from the beginning.&lt;/p&gt;

&lt;p&gt;I want to understand how software is tested, how bugs are found, how quality is maintained, and what it really means to work as a QA tester/engineer.&lt;/p&gt;




&lt;p&gt;Software is everywhere but good software is about building features and making sure those features &lt;strong&gt;work as expected&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I am learning how testers think:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What can go wrong?&lt;/li&gt;
&lt;li&gt;How can I find it?&lt;/li&gt;
&lt;li&gt;How do I know the software is working correctly?&lt;/li&gt;
&lt;li&gt;How do I communicate a problem clearly?&lt;/li&gt;
&lt;li&gt;How can testing help build better software?&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;I have decided to &lt;strong&gt;learn by doing and document the journey as I go&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I won't pretend to be an expert.&lt;/p&gt;

&lt;p&gt;I will learn something -&amp;gt; practice it -&amp;gt; make mistakes -&amp;gt; fix them -&amp;gt; write about it.&lt;/p&gt;

&lt;p&gt;Hopefully, someone starting their own QA journey can learn alongside me.&lt;/p&gt;




&lt;p&gt;I will start with &lt;strong&gt;Manual QA&lt;/strong&gt; and gradually move toward automation.&lt;/p&gt;

&lt;p&gt;I will document the things I learn, the things I struggled/struggle with, and the things that finally make sense.&lt;/p&gt;

&lt;p&gt;This is no story about becoming an expert, but it is the beginning of a journey.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I'm learning QA and I'm taking you with me.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>qa</category>
      <category>testing</category>
      <category>devjournal</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
