Testing Terminologies - Notes By ShariqSP

Important Testing Terminologies

Understanding key terminologies in software testing is essential for effective communication among team members and for the successful execution of testing processes. Below are some of the most important terms you’ll encounter in testing documents, along with their definitions.

1. Severity

Severity refers to the impact of a defect on the application. It categorizes the defect based on how critical it is to the system's functionality. Severity is typically classified into the following levels:

  • Blocker: Prevents further testing or usage of the application.
  • Critical: Causes a complete failure of the system or major functionality.
  • Major: Significantly impairs functionality but allows the application to continue functioning.
  • Minor: Affects functionality but does not significantly impact the overall user experience.
  • Trivial: Very low impact, often related to cosmetic issues.

2. Priority

Priority indicates the urgency of fixing a defect. It reflects the order in which defects should be addressed, based on business needs and deadlines. Priority is typically classified as:

  • High Priority: Needs immediate attention and must be resolved as soon as possible.
  • Medium Priority: Should be fixed in the near future but is not urgent.
  • Low Priority: Can be addressed at a later time; not critical to the current release.

3. Test Case

A test case is a set of conditions or variables used to determine whether a system behaves as expected. It typically includes the following components:

  • Test Case ID: A unique identifier for the test case.
  • Description: A brief overview of what the test case aims to validate.
  • Preconditions: Any conditions that must be met before executing the test case.
  • Test Steps: Detailed instructions on how to perform the test.
  • Expected Result: The anticipated outcome of the test.
  • Actual Result: The actual outcome after executing the test.

4. Defect

A defect, also known as a bug, is an imperfection in the software that causes it to behave unexpectedly or incorrectly. Defects can arise from coding errors, miscommunication, or unexpected interactions between components.

5. Regression Testing

Regression testing is the process of testing existing software applications to ensure that new changes have not adversely affected existing functionality. This type of testing is crucial after updates or bug fixes.

6. User Acceptance Testing (UAT)

UAT is the final phase of testing, conducted by end users to validate that the system meets their needs and requirements. This testing is typically performed in a staging environment and focuses on real-world usage scenarios.

7. Performance Testing

Performance testing evaluates the responsiveness, speed, scalability, and stability of a software application under a particular workload. This includes stress testing, load testing, and endurance testing.

8. Test Plan

A test plan is a formal document that outlines the strategy, scope, resources, and schedule for testing activities. It typically includes information about the testing objectives, deliverables, milestones, and resource allocation.

9. Test Script

A test script is a set of instructions that automate the execution of a test case. Test scripts are often used in automated testing to ensure consistency and repeatability in testing processes.

Conclusion

Familiarity with these key terminologies in software testing is crucial for effective communication among team members and for the overall success of the testing process. Understanding these terms helps ensure that everyone involved has a clear understanding of the objectives and processes of testing, ultimately leading to better quality software.