Software Testing

Software Testing: Master the art of making software cry — so your customers don’t have to.

Follow the Functional Testing Process Without Getting Lost (or Falling Asleep Mid-Plan)

🎬 Setting the Stage: What’s Functional Testing Again?

Imagine you ordered a pizza 🍕 online. When the delivery arrives, you expect:

  • ✅ The crust to be baked
  • ✅ The cheese to melt
  • ✅ The toppings to match your order
  • ❌ And for pineapple to never show up unless explicitly invited!

Now imagine you’re testing this whole pizza experience:

  • Did the “Order Now” button work?
  • Did you get a confirmation email?
  • Was the “Choose Toppings” dropdown working properly?
  • Did the cart update when you added extra cheese?
  • Did the checkout form behave when you used a fake credit card?

That, my friend, is Functional Testing in action.
You’re not inspecting the oven’s temperature — you’re just making sure the pizza tastes like what the customer paid for.


🛠️ But How Do We Actually Do Functional Testing?

It’s not just about clicking buttons and shouting “Bug!”
There’s a structured process behind the scenes — like a well-oiled kitchen.

Let’s now break down that process step-by-step — from reading the recipe (requirements), to prepping ingredients (test cases), baking the pizza (execution), handling burnt ones (bug reports), and finally sending the final menu (closure report).


🔽 Scroll down to dive into:

The Functional Testing Process — A Step-by-Step Guide With Examples, Docs & Laughs.

📋 STEP 1: Requirement Analysis

“If you don’t know what’s expected, how will you know if it failed?”

🎯 What You Do Here:

You read, understand, question, and organize everything that the client or product owner wants.


🔍 Let’s Break It Down:

📝 1.1 — BRD (Business Requirement Document)

What it is: The big-picture document that says, “Our app needs to let users log in, search, and buy ice cream.”

Looks like:

textCopyEditBRD: IceCreamHub App v1.0

Objective:
Allow customers to search, view, and order ice cream online.

Functional Requirements:
1. Users must be able to register and login.
2. Users can browse available flavors.
3. Users can add items to cart and checkout.

📌 Not very detailed — just the skeleton.


🧠 1.2 — User Stories

What it is: Simple, user-focused descriptions of a feature.

🗣️ Example:

pgsqlCopyEditAs a registered user, I want to reset my password so that I can log in if I forget it.

✅ Acceptance Criteria:

  • Password reset link sent to registered email
  • Link expires after 24 hours
  • Error shown for unregistered emails

🎉 Now we’re talking testable content!


🧪 1.3 — Functional Specs / Wireframes

Visuals or documents showing what the system will do on each screen. Think:

  • UI mockups
  • Field validations
  • Error messages

🧠 Pro Tip: Functional testers eat wireframes for breakfast.


🧠 Analogy Time:

Requirement analysis is like reading the recipe before you start cooking.
You wouldn’t start baking a cake without knowing if it’s a chocolate or a vanilla one, right?


📑 STEP 2: Test Planning & Strategy

“Failing to plan is planning to write bug reports forever.”


🧠 2.1 — Test Plan Document

📄 Think of this as your roadmap to war — where you write down:

SectionExample Entry
ScopeOnly UI and API tests for Login & Checkout
Out of ScopePayment Gateway integration
Test TypesFunctional (Manual + Automation)
ToolsSelenium, Postman
Entry/Exit CriteriaEntry: Code deployed; Exit: 100% test run
RisksNo test environment before UAT

🧭 2.2 — Test Strategy

Usually at an organization or project level.

It’s the umbrella plan — test plan is the picnic under it. ☂️

Covers:

  • Testing approach for all modules
  • Team roles/responsibilities
  • Communication plans
  • Test levels & environments

📁 Often a PDF/Confluence page shared across the QA team.


🧠 Analogy Time:

Test Planning is like prepping for a road trip.
You decide who’s driving, what snacks you’ll take, where you’ll stop, and how much fuel you’ll need.


🖊️ STEP 3: Test Case Design

“This is where the rubber meets the test case.”


💡 Your Mission:

Turn those user stories and requirements into step-by-step checklists.

Example Test Case:

FieldEntry
Test IDTC_Login_01
DescriptionLogin with valid credentials
Steps1. Enter email 2. Enter password 3. Click Login
ExpectedUser is redirected to dashboard
PreconditionUser already registered
PriorityHigh

🧠 Analogy Time:

Writing test cases is like writing a recipe others can follow without messing up.
The clearer it is, the less likely someone bakes a cake with toothpaste.


🧪 STEP 4: Test Execution

“It’s time to break things professionally.” 😎


🔥 What Happens:

  • You follow the test cases and mark them as:
    • ✅ Pass
    • ❌ Fail
    • 🚫 Blocked
  • Report unexpected behavior
  • Document actual results (and attach screenshots)

🛠️ Tools Used: TestLink, Zephyr, Xray, Excel (for the brave)

🎯 Example Entry:

pgsqlCopyEditLogin with wrong password → Actual: No error message shown → Status: Fail

🐞 STEP 5: Defect Logging

“Reporting a bug is like leaving a note saying ‘Hey, you dropped this 💩’… politely.”


🔧 What a Bug Report Contains:

FieldSample Entry
Summary“Forgot Password sends link to wrong email”
Steps1. Go to forgot password → 2. Enter email
ExpectedLink sent to correct email
ActualLink sent to unrelated address
SeverityHigh
PriorityCritical
AttachmentScreenshot of wrong email

🛠️ Bug Tools: JIRA, Bugzilla, Mantis, etc.


🧠 Analogy Time:

Bug reporting is like filing a complaint in a hotel — you want results, not revenge.


🔁 STEP 6: Retesting & Regression

“Fix one bug, awaken the rest.” 🧟

🔁 Retesting: Giving Bugs a Second Chance (To Fail!)

Definition:
Retesting is the process of verifying a specific test case that previously failed, after the reported bug has been fixed by the development team.


💡 In Simple Terms:

You found a bug 🐞 → Dev fixes it 🛠️ → You go back and run that same test again to make sure the fix actually worked.
No shortcuts. No assumptions. Just laser-focused verification.


🧪 What Happens During Retesting?

  1. Bug Fix Confirmed: Developer marks the defect as “Fixed.”
  2. Test Case Re-Executed: You rerun only the failed test(s) using the same data, environment, and steps.
  3. Result Observed:
    • If it passes – great! The fix worked.
    • If it fails again – back to the dev team it goes. 🚨

🚫 What Retesting Is Not:

  • It is not running all test cases again.
  • It is not checking for side effects or new bugs (that’s regression testing, our next guest!).

🎭 Analogy Time!

Imagine a coffee machine breaks down and the maintenance guy says, “Fixed it!”
Retesting is like brewing that exact same espresso shot again ☕ — same button, same cup, same pressure — just to confirm it actually pours this time.


✅ Key Points to Remember:

AspectRetesting
PurposeConfirm bug fix works
ScopeOnly specific failed test case(s)
Performed ByQA/Testers
Test DataSame as original test
TimelineAfter the fix is marked complete
Related ToDefect life cycle, not full system testing

🔁 Regression Testing:

  • Run previous tests again to ensure nothing else is broken

💡 Use automation to save time — especially for repetitive UI flows or APIs.

🛠️ Tools:

  • Selenium WebDriver
  • Cypress
  • Postman (for APIs)
  • JUnit/TestNG (for unit tests)

✅ STEP 7: Test Closure

“We came. We tested. We filed bugs. We wrote a summary report.”


📁 Final Steps:

  • Review test execution summary
  • Log metrics (pass %, bug trends, effort hours)
  • Archive documents (Test Plan, Test Cases, Defects)
  • Conduct a retrospective

📄 Final Report Includes:

  • Scope tested
  • Outstanding bugs
  • Coverage %
  • Lessons learned
  • Team comments (“We need better coffee!”)

🧠 Wrap-Up: Why This Whole Process Matters

By following this process:

  • You catch problems early (cheaper to fix!)
  • You protect the user experience
  • You save the developer’s backside
  • You become the unsung hero of product quality 🎖️

🧠 Quiz: Let’s See If You Were Paying Attention (Or Just Craving Burgers 🍔)

Welcome to your Quiz- SoftwareTesting:S2

Scroll to Top