Getting Restarted With Software Testing: Part 3

Published: (January 2, 2026 at 07:57 AM EST)
6 min read
Source: Dev.to

Source: Dev.to

If you haven’t read Part 1 yet, you can read it here:

Getting Restarted with Software Testing – Part 2

“Test Scenarios vs Test Cases: What’s the difference and why does it matter?”

1. Test Scenarios

A test scenario is a high‑level description of what needs to be tested.
It represents a real‑world use case or business flow of the application.

Example – We have a web application.

Test Scenario

  • Verify user login functionality

From this single scenario, multiple test cases can be derived:

  • Login with valid credentials
  • Login with invalid password
  • Login with invalid username
  • Login with empty fields
  • Login with locked account

2. Test Cases

A test case details the step‑by‑step process to perform and validate a specific piece of functionality.

Key Components of a Test Case

ComponentDescription
Test Case IDUnique identifier (e.g., TC001)
Test Description / TitleShort description of what is being tested (e.g., “Verify login functionality with valid credentials.”)
PreconditionsConditions that must be met before execution (e.g., “User must be registered in the system.”)
Test StepsStep‑by‑step instructions (see example below)
Test DataInput data required for the test (e.g., username = user1, password = Pass@123)
Expected ResultWhat the system should do after executing the steps (e.g., “User should be redirected to the dashboard.”)
Actual ResultWhat actually happened (filled after execution)
StatusPass / Fail
RemarksOptional comments, bugs, or observations

Example Test Case

Test Case ID:      TC001
Title:             Verify login functionality with valid credentials
Preconditions:    User must be registered in the system
Test Steps:
  1. Open the login page
  2. Enter valid username (e.g., validuser)
  3. Enter valid password (e.g., validpassword123)
  4. Click the login button
Test Data:
  username = validuser
  password = validpassword123
Expected Result:  User is redirected to the dashboard
Actual Result:    (filled after execution)
Status:           Pass / Fail
Remarks:          (optional)

3. Positive vs. Negative Test Cases

3.1 Positive Test Cases

A positive test case uses valid input and verifies that the system behaves as intended.

Example – Verify user login with valid credentials

StepAction
1Open the login page
2Enter a valid username (e.g., validuser)
3Enter the correct password (e.g., validpassword123)
4Click the login button

Expected Outcome: The user is successfully logged in and redirected to the homepage/dashboard.

3.2 Negative Test Cases

A negative test case uses invalid input to ensure the system handles errors gracefully.

Example – Verify user login with invalid credentials

StepAction
1Open the login page
2Enter an invalid username (e.g., invaliduser)
3Enter an incorrect password (e.g., wrongpassword)
4Click the login button

Expected Outcome:

  • An error message such as “Invalid username or password.” is displayed.
  • The user remains on the login page and is not logged in.

4. What Is a Bug in Software Testing?

A bug (or defect) is a flaw or deviation in a software application that causes it to produce incorrect or unexpected results, or to behave in ways it was not designed to.

Example Bugs

TypeDescriptionExpected BehaviorActual Behavior
UI BugText on a button in an e‑commerce site is not aligned properly.Text should be centered on the button.Text is pushed to the left side of the button.
Functional BugUsers cannot log in even with correct credentials.After entering correct credentials, users should be logged in and redirected to the homepage.After submitting valid credentials, an error “Invalid username or password.” is shown.
Performance BugWebpage takes > 30 seconds to load a product list.The product page should load within 5 seconds.The page loads in more than 30 seconds.

5. Bug Life Cycle

The bug life cycle describes the stages a defect goes through from discovery to closure.

Stages

  1. New – Bug identified but not yet analyzed.
  2. Assigned – A developer or team is assigned to fix the bug.
  3. Open – The bug is being worked on.
  4. Fixed – Development team has fixed the issue.
  5. Retest – Testing team verifies that the fix resolves the problem.
  6. Closed – Bug is confirmed fixed and closed.
  7. Reopened – If the issue persists after the first fix, it is reopened for further investigation.

6. Common Bug Statuses

Bug statuses indicate the current state of a defect within its life cycle.

StatusMeaning
NewDefect discovered for the first time; not yet reviewed.
OpenDefect reviewed and accepted; assigned to a developer.
AssignedSpecifically assigned to a developer (duplicate of “Open” in some tools).
In ProgressDeveloper is actively working on the fix.
FixedDevelopment has implemented a fix.
RetestQA is testing the fix.
ClosedDefect verified as fixed and closed.
ReopenedFix was insufficient; defect reopened for further work.

Additional Lifecycle Statuses

StatusDescription
Pending RetestFix is deployed to the test environment; waiting for tester verification.
VerifiedTester confirms the bug is fixed successfully.
RejectedBug is not valid (works as designed or not reproducible).
DuplicateBug already exists in the system.
DeferredBug fix is postponed to a future release.
Not a BugReported issue is expected system behavior.
Cannot ReproduceDeveloper or tester cannot reproduce the issue.
On HoldWork paused due to dependency or missing information.
Won’t FixBug acknowledged but will not be fixed due to low impact.

7. Bug Severity in Software Testing

Severity indicates the impact of a defect on the software from a technical standpoint. It measures how serious the defect is.

Bug Severity Levels

SeverityDescriptionExample
Critical / BlockerSystem crashes or becomes unusable; testing cannot continue.Application crashes on launch; server down.
Major / HighMajor functionality is broken; no workaround available.Login not working; payment processing fails.
Medium / ModeratePartial functionality issue; a workaround exists.Search works but filters fail.
Low / MinorMinor issue with minimal impact; cosmetic or UI problems.Button misalignment; font inconsistency.

8. Bug Priority in Software Testing

Priority indicates how urgently a defect needs to be fixed. It helps the team decide which defects to address first, based on business impact and timelines.

Bug Priority Levels

PriorityDescriptionExample
High PriorityMust be fixed immediately; affects critical business functionality.Payment button not working; app crashes during checkout.
Medium PriorityShould be fixed, but not immediately; core functionality works with workarounds.Profile update works but shows a warning message.
Low PriorityCan be fixed later; minor impact on user experience.UI alignment issue.

9. Roles and Responsibilities of a Software Tester

A software tester ensures that a product works correctly, meets requirements, and is free of defects.

Roles of a Software Tester

  1. Quality Assurance Role – Ensures the software meets quality standards and user expectations.
  2. Defect Identifier – Finds bugs, errors, and missing features.
  3. Requirement Validator – Checks whether the software matches the given requirements and specifications.
  4. User Advocate – Considers the end‑user’s perspective to ensure good usability and functionality.
  5. Team Collaborator – Works closely with developers, designers, and managers to improve the product.

Responsibilities of a Software Tester

  1. Understanding Requirements – Study software requirements, designs, and use cases carefully.
  2. Test Planning – Create test plans and decide what, how, and when to test.
  3. Test Case Design – Write test cases and test scenarios based on requirements.
  4. Test Execution – Run manual or automated tests to check software behavior.
  5. Defect Reporting – Identify, document, and report bugs clearly using defect‑tracking tools.
  6. Regression Testing – Re‑test after fixes to ensure new changes don’t break existing features.
  7. Performance & Security Testing – Check speed, stability, and basic security aspects (when required).
  8. Test Documentation – Maintain test cases, test reports, and test results.
  9. Automation (if applicable) – Develop and maintain automated test scripts.
  10. Continuous Improvement – Suggest improvements in testing processes and product quality.

Conclusion

From understanding SDLC/STLC and testing types to identifying defects, software testing ensures every product is reliable and user‑friendly. Testers play a crucial role in maintaining quality and bridging the gap between development and users. Effective testing is the key to delivering software that truly works.

Back to Blog

Related posts

Read more »