Skip to main content

Command Palette

Search for a command to run...

Types of Software Testing

Updated
2 min read
Types of Software Testing
P

#pratiks-desk | I'm Pratik Joshi a B.Tech graduate in Computer Science and Engineering.

🧪Types of Software Testing – Categorized by Aspects

✅ By Execution Approach

🔹 Manual Testing

  • Testing performed manually without automation tools.

  • Testers execute test cases, observe behavior, and report bugs.

  • Best suited for exploratory, usability, and ad-hoc testing.

🔹 Automation Testing

  • Testing done using tools/scripts (e.g., Selenium, TestNG).

  • Ideal for repetitive and regression tests.

  • Saves time in the long run but requires initial scripting effort.


🧱 By Visibility (Code Access)

🔹 Black Box Testing

  • No access to source code.

  • Focus is on input-output behavior of the application.

  • Example: Validating login functionality via UI.

🔹 White Box Testing

  • Full access to internal code logic.

  • Performed mostly by developers (e.g., unit testing).

  • Example: Validating loops and code paths.

🔹 Gray Box Testing

  • Partial knowledge of the codebase.

  • Combines black box and white box approaches.

  • Example: Testing UI with knowledge of database schema.


🎯 By Objective

🔹 Functional Testing

  • Ensures features work as per business requirements.

  • Includes unit, integration, system, smoke, sanity, and UAT testing.

🔹 Non-Functional Testing

  • Evaluates performance, usability, security, and reliability.

  • Examples: Load Testing, Security Testing, Compatibility Testing.


⏱️ By Timing / Stage

🔹 Alpha Testing

  • Done by internal teams before release.

  • Simulates real usage in a controlled environment.

🔹 Beta Testing

  • Performed by actual users in real environments.

  • Helps uncover issues before official release.

🔹 User Acceptance Testing (UAT)

  • Conducted by clients/business users.

  • Validates the system meets business needs and is ready for production.


📦 By Scope

🔹 Static Testing

  • Testing without executing code.

  • Involves document reviews, walkthroughs, and inspections.

🔹 Dynamic Testing

  • Testing with code execution.

  • Validates actual system behavior and logic.


🧠 Other Types

🔹 Exploratory Testing

  • No predefined test cases.

  • Tester learns and tests simultaneously.

  • Great for early-stage or unstructured testing.

🔹 Ad-hoc Testing

  • Informal, unplanned testing.

  • Relies on tester's experience and intuition.

🔹 End-to-End (E2E) Testing

  • Validates complete user workflows from start to finish.

  • Example: Login → Add to Cart → Checkout → Payment → Logout.


✅ This structured categorization helps in understanding the breadth of testing types used across various stages and scopes in software development.