Popular Searches
Popular Course Categories
Popular Courses

Types of Software Testing

Types of Software Testing

Introduction to Software Testing

Types of Software Testing

Software testing is the process of evaluating a software application to verify that it behaves according to its requirements and to identify defects, unexpected behavior, usability problems, performance issues, security weaknesses, and other quality-related risks.

Software testing can be classified in different ways based on the testing objective, execution method, level of testing, scope, and whether the testing is performed manually or with automation tools. Understanding these testing types is an important foundation for learning Selenium and professional software testing.

In Selenium-based automation, testers commonly automate suitable web application scenarios such as functional testing, regression testing, smoke testing, cross-browser testing, data-driven testing, and end-to-end workflows. Other testing activities, such as exploratory, usability, and certain visual evaluations, may continue to require significant human involvement.

Learners can explore the JustAcademy Selenium Automation Testing Course to continue learning software testing and Selenium automation.


1. What is Software Testing?

Software testing is the systematic process of checking an application or software system to determine whether it satisfies specified requirements and behaves as expected.

Testing involves designing test scenarios, preparing test data, executing tests, comparing actual results with expected results, identifying defects, and communicating test results to the development and project teams.

Simple Definition

Software testing means evaluating software to find defects and verify that the application works according to its expected requirements.

Example

Suppose an application has a login page. A tester may verify:

  • Valid username and password.
  • Invalid username and password.
  • Empty username.
  • Empty password.
  • Password masking.
  • Login button behavior.
  • Error messages.
  • Forgot-password functionality.
  • Account lock behavior.
  • Navigation after successful login.

2. Why Are There Different Types of Software Testing?

A software application contains many different components and quality requirements. A single testing approach cannot effectively evaluate every aspect of an application.

For example, functional testing checks whether features work correctly, while performance testing evaluates system behavior under different workloads. Security testing focuses on security risks, usability testing evaluates user experience, and compatibility testing checks behavior across different environments.

Testing Classification

Software Testing
       |
       +-------------------------+
       |                         |
   Testing Approach        Testing Objective
       |                         |
       +---- Manual              +---- Functional
       +---- Automation          +---- Non-Functional
       |
       |
   Testing Level
       |
       +---- Unit
       +---- Integration
       +---- System
       +---- Acceptance

3. Major Categories of Software Testing

Software testing can be broadly organized into several categories.

Category Examples
Testing by Execution Manual Testing, Automation Testing
Testing by Objective Functional Testing, Non-Functional Testing
Functional Testing Types Unit, Integration, System, Acceptance, Regression, Smoke, Sanity
Non-Functional Testing Types Performance, Load, Stress, Security, Usability, Compatibility, Accessibility
Testing Based on Change Regression Testing, Retesting
Testing Based on Knowledge Black Box, White Box, Grey Box
Testing Based on Execution Style Exploratory, Ad-Hoc, Scripted Testing

4. Manual Testing

Manual testing is testing performed by a human tester without using automation scripts to execute the complete test scenario.

The tester interacts directly with the application, enters test data, performs actions, observes results, compares actual results with expected results, and records the outcome.

Example

  1. Open the browser.
  2. Open the application.
  3. Navigate to the login page.
  4. Enter username.
  5. Enter password.
  6. Click Login.
  7. Verify the dashboard.

Common Uses

  • Exploratory testing
  • Usability testing
  • Ad-hoc testing
  • Visual evaluation
  • New feature testing
  • Scenarios requiring human judgment

5. Automation Testing

Automation testing uses software tools, frameworks, and scripts to execute predefined test scenarios.

Automation can perform actions such as opening a browser, entering data, clicking elements, navigating through pages, validating results, and generating test reports.

Example

WebDriver driver = new ChromeDriver();

driver.get("https://example.com/login");

driver.findElement(By.id("username"))
      .sendKeys("[email protected]");

driver.findElement(By.id("password"))
      .sendKeys("Test@123");

driver.findElement(By.id("loginButton"))
      .click();

driver.quit();

Selenium WebDriver can be used to automate browser-based test scenarios like the example above.


6. Functional Testing

Functional testing verifies whether the application's features and functions behave according to specified requirements.

Examples

  • Login functionality
  • Registration functionality
  • Search functionality
  • Product filtering
  • Shopping cart
  • Checkout
  • Password reset
  • Form submission
  • Navigation

Functional Testing Flow

Requirement
    ↓
Test Scenario
    ↓
Test Case
    ↓
Execute Test
    ↓
Compare Actual vs Expected
    ↓
Pass / Fail

7. Non-Functional Testing

Non-functional testing evaluates quality characteristics of a system rather than only checking whether a specific business function works.

Common Non-Functional Testing Types

  • Performance Testing
  • Load Testing
  • Stress Testing
  • Security Testing
  • Usability Testing
  • Compatibility Testing
  • Accessibility Testing
  • Reliability Testing
  • Scalability Testing

8. Unit Testing

Unit testing tests small individual components of an application, such as functions, methods, or classes.

The purpose is to verify that a small unit of code behaves correctly in isolation or within a controlled environment.

Example

public int add(int a, int b) {
    return a + b;
}

A unit test can verify that calling add(10, 20) returns 30.

Advantages

  • Finds defects early.
  • Tests small pieces of code.
  • Helps developers identify problems quickly.
  • Can be automated easily using appropriate testing frameworks.

9. Integration Testing

Integration testing verifies whether multiple modules or components work correctly when they interact with each other.

Example

Consider an e-commerce application:

Product Module
      ↓
Cart Module
      ↓
Payment Module
      ↓
Order Module

Integration testing verifies whether these components exchange information correctly.

Example Scenario

A product is added to the cart. The cart sends the correct product and price information to checkout. The payment module processes the transaction, and the order module creates the expected order.


10. System Testing

System testing evaluates the complete integrated application as a whole.

The objective is to verify whether the complete system behaves according to its specified requirements.

Example

For an e-commerce application, system testing may cover:

  • User registration
  • Login
  • Product search
  • Product selection
  • Cart
  • Checkout
  • Payment
  • Order confirmation
  • Order history

11. Acceptance Testing

Acceptance testing verifies whether the software satisfies business and user requirements and is suitable for its intended use.

Acceptance testing is often associated with business stakeholders, customers, product owners, or designated acceptance testers.

Example

A business may specify that a customer must be able to search for a product, add it to the cart, complete checkout, and receive an order confirmation.

Acceptance testing checks whether the application satisfies these expected business workflows.


12. User Acceptance Testing

User Acceptance Testing (UAT) is performed to determine whether the system meets the needs of its intended users and business processes.

Example

Before launching a banking application feature, selected business users may validate important workflows such as account access, transaction history, and fund-transfer processes.

UAT Flow

Business Requirement
        ↓
Business Scenario
        ↓
User Acceptance Test
        ↓
Execute Workflow
        ↓
Validate Business Result
        ↓
Acceptance Decision

13. Smoke Testing

Smoke testing is a relatively broad but shallow set of checks used to determine whether a build is stable enough for more detailed testing.

Example

For an e-commerce application, smoke tests may check:

  • Application opens successfully.
  • Login works.
  • Product search works.
  • Product page opens.
  • Product can be added to cart.
  • Checkout page opens.

If critical functionality is completely unavailable, the build may not be suitable for deeper testing.


14. Sanity Testing

Sanity testing is focused testing performed after specific changes or fixes to verify that the affected functionality works as expected and that the change has not introduced obvious related problems.

Example

Suppose a login defect was fixed. A sanity test may focus on:

  • Valid login
  • Invalid login
  • Login error message
  • Password field
  • Login button

15. Smoke Testing vs Sanity Testing

Parameter Smoke Testing Sanity Testing
Purpose Check whether the build is broadly stable for further testing Verify specific changed or affected functionality
Scope Broad and relatively shallow Narrow and focused
Execution Often performed on a new build Often performed after a specific change or fix
Focus Critical application functionality Specific functionality and related areas

16. Regression Testing

Regression testing verifies that existing functionality continues to work after application changes.

Changes may include new features, bug fixes, configuration changes, dependency updates, or other modifications.

Example

Suppose a developer changes the checkout module. Regression testing may verify:

  • Login
  • Search
  • Product selection
  • Cart
  • Checkout
  • Order confirmation

Why Automation is Useful

Regression suites can contain many repetitive test cases. Suitable regression tests can therefore be automated and executed repeatedly.


17. Retesting

Retesting means executing a failed test again after the reported defect has been fixed to determine whether the specific issue has been resolved.

Example

Test Case
    ↓
Test Fails
    ↓
Defect Reported
    ↓
Developer Fixes Defect
    ↓
Retest
    ↓
Pass / Fail

Retesting vs Regression Testing

Retesting Regression Testing
Focuses on verifying a specific defect fix. Checks whether existing functionality remains unaffected by changes.
Usually targets previously failed scenarios. Can cover a broader existing test suite.
Confirms whether the reported defect has been fixed. Checks for unintended side effects.

18. Exploratory Testing

Exploratory testing involves learning about the application, designing tests, executing actions, and investigating results dynamically.

Unlike strictly scripted testing, exploratory testing allows the tester to adapt based on observations.

Example

A tester opens a shopping application and explores different combinations of:

  • Search terms
  • Filters
  • Sorting
  • Product variations
  • Cart quantities
  • Navigation paths

The tester may discover unexpected behavior that was not explicitly described in predefined test cases.


19. Ad-Hoc Testing

Ad-hoc testing is informal testing performed without a detailed predefined test plan or structured test case set.

The tester uses experience and understanding of the application to investigate potential problems.

Example

A tester intentionally enters unusual combinations of characters, rapidly clicks buttons, navigates between pages, or changes input values to investigate unexpected behavior.


20. Black Box Testing

Black box testing tests software from the perspective of its external behavior without requiring knowledge of the internal implementation.

Focus

  • Inputs
  • Outputs
  • Requirements
  • User behavior
  • Business functionality

Example

A tester enters valid and invalid login credentials and checks the resulting behavior without needing to inspect the application's source code.


21. White Box Testing

White box testing involves testing with knowledge of the application's internal code, logic, structure, or implementation.

Examples

  • Testing individual methods.
  • Testing conditional branches.
  • Testing loops.
  • Checking code paths.
  • Evaluating code coverage.

White box testing is commonly associated with development-level testing and requires knowledge of the implementation.


22. Grey Box Testing

Grey box testing combines aspects of black box and white box testing. The tester has some knowledge of the internal system while primarily evaluating externally observable behavior.

Example

A tester may understand database structures or API behavior while testing the application through its user interface.


23. Performance Testing

Performance testing evaluates how an application behaves in terms of response time, throughput, resource utilization, stability, and other performance characteristics.

Common Performance Questions

  • How quickly does the application respond?
  • How many requests can the system process?
  • How does performance change as traffic increases?
  • Does the application remain stable over time?

24. Load Testing

Load testing evaluates application behavior under an expected or specified workload.

Example

An application normally expects thousands of concurrent users. Load testing can be performed to evaluate how the application behaves under a representative workload.

Load Testing Flow

Expected User Load
        ↓
Generate Requests
        ↓
Monitor System
        ↓
Measure Response Time
        ↓
Analyze Throughput
        ↓
Identify Bottlenecks

25. Stress Testing

Stress testing evaluates application behavior beyond normal or expected operating conditions to understand how the system behaves under extreme load.

Example

A system designed for a certain number of concurrent users may be tested with progressively increasing traffic to identify performance limits, degradation, or failure behavior.


26. Volume Testing

Volume testing evaluates how an application behaves when processing large amounts of data.

Example

A reporting system may be tested using a database containing millions of records to evaluate query response times and system behavior.


27. Security Testing

Security testing evaluates an application's ability to protect data and functionality against unauthorized access and other security risks.

Common Security Testing Areas

  • Authentication
  • Authorization
  • Session management
  • Access control
  • Input validation
  • Data protection
  • Secure communication

Example

A tester verifies that a normal user cannot access administrative functionality without the required permissions.


28. Usability Testing

Usability testing evaluates how easily and effectively users can interact with an application.

Common Areas

  • Navigation
  • Readability
  • Form usability
  • Error messages
  • Workflow clarity
  • User interaction
  • Overall ease of use

Usability testing generally benefits from human observation and feedback.


29. Compatibility Testing

Compatibility testing verifies whether an application behaves correctly across different environments.

Compatibility Areas

  • Web browsers
  • Operating systems
  • Devices
  • Screen sizes
  • Browser versions
  • Network environments

Example

A web application may be tested across Chrome, Firefox, Edge, and other supported browsers.


30. Cross-Browser Testing

Cross-browser testing verifies that a web application behaves correctly across supported browsers and browser configurations.

Example

Web Application
       |
       +---- Chrome
       |
       +---- Firefox
       |
       +---- Edge
       |
       +---- Safari
       |
       +---- Other Supported Browsers

Selenium WebDriver is commonly used to automate suitable cross-browser web application scenarios.


31. Accessibility Testing

Accessibility testing evaluates whether software can be used effectively by people with different accessibility needs.

Common Areas

  • Keyboard navigation
  • Screen-reader compatibility
  • Text readability
  • Color contrast
  • Form labels
  • Alternative text
  • Focus management

Accessibility testing may combine automated checks with manual evaluation.


32. End-to-End Testing

End-to-end testing verifies a complete business workflow from beginning to end.

E-Commerce Example

Open Website
     ↓
Register / Login
     ↓
Search Product
     ↓
Open Product
     ↓
Add to Cart
     ↓
Checkout
     ↓
Payment
     ↓
Order Confirmation

An end-to-end test validates that the complete workflow functions correctly across the involved components.


33. Positive Testing

Positive testing verifies that the application behaves correctly when valid and expected inputs are provided.

Example

For a login form:

  • Enter a valid username.
  • Enter a valid password.
  • Click Login.
  • Verify successful login.

34. Negative Testing

Negative testing verifies how an application behaves when invalid, unexpected, incomplete, or incorrect inputs are provided.

Example

  • Invalid username
  • Invalid password
  • Empty username
  • Empty password
  • Invalid email format
  • Unexpected characters
  • Excessively long input

The objective is to verify that the application handles invalid conditions appropriately.


35. Data-Driven Testing

Data-driven testing executes the same test logic with multiple sets of test data.

Example

Test Data

Username                Password
---------------------------------------
[email protected]       Test@123
[email protected]       Test@456
[email protected]       Test@789

The same login test can be executed using multiple data sets.

Benefits

  • Reduces duplication.
  • Improves test coverage.
  • Supports multiple input combinations.
  • Works well with automation frameworks.

36. Keyword-Driven Testing

Keyword-driven testing uses predefined keywords to represent test actions.

Example

Keyword Action
OPEN Open browser or application
INPUT Enter data
CLICK Click an element
VERIFY Validate expected result
CLOSE Close browser

37. Scripted Testing

Scripted testing follows predefined test cases and instructions.

The tester executes documented steps and compares actual results with expected results.

Example

1. Open login page.
2. Enter valid username.
3. Enter valid password.
4. Click Login.
5. Verify dashboard.
6. Record result.

38. Static Testing

Static testing evaluates software artifacts without executing the application.

Examples

  • Requirement reviews
  • Design reviews
  • Code reviews
  • Documentation reviews
  • Static code analysis

The objective is to identify issues early in the development lifecycle.


39. Dynamic Testing

Dynamic testing involves executing the software and evaluating its behavior.

Example

Opening a web application, entering login credentials, clicking buttons, and validating the resulting page are examples of dynamic testing.


40. Alpha Testing

Alpha testing is testing performed in a controlled environment before the software is released to a broader external user group.

It is generally performed near the end of development and before beta testing or broader release activities.


41. Beta Testing

Beta testing involves releasing software to a selected group of external users so that the software can be evaluated in realistic usage environments.

Example

A company may provide a pre-release version of an application to selected customers and collect feedback about defects, usability, and real-world behavior.


42. Installation Testing

Installation testing verifies whether software can be installed, configured, upgraded, and removed correctly in supported environments.

Examples

  • Fresh installation
  • Upgrade installation
  • Configuration validation
  • Uninstallation
  • Installation failure handling

43. Recovery Testing

Recovery testing evaluates whether a system can recover correctly after failures or unexpected interruptions.

Examples

  • Application crash
  • Network interruption
  • Server failure
  • Database failure
  • Unexpected system restart

The objective is to determine whether the application can restore functionality and data appropriately.


44. Reliability Testing

Reliability testing evaluates whether software can perform consistently over a specified period and under expected conditions.

Example

An application may be operated continuously for an extended period while monitoring failures, errors, and system behavior.


45. Scalability Testing

Scalability testing evaluates how effectively an application handles increasing workload, users, transactions, or data.

Example

1,000 Users
     ↓
5,000 Users
     ↓
10,000 Users
     ↓
50,000 Users
     ↓
Measure System Behavior

The objective is to understand how the application behaves as demand increases.


46. Localization Testing

Localization testing verifies that an application works correctly for a particular language, region, or locale.

Examples

  • Language translation
  • Date formats
  • Time formats
  • Currency formats
  • Number formats
  • Localized content

47. Internationalization Testing

Internationalization testing evaluates whether an application is designed to support multiple languages, regions, character sets, and cultural conventions without requiring major code changes for each locale.

Localization focuses on adapting the application to a particular locale, while internationalization focuses on preparing the software to support multiple locales.


48. Configuration Testing

Configuration testing verifies application behavior under different supported configurations.

Examples

  • Different operating systems
  • Different browsers
  • Different browser versions
  • Different hardware configurations
  • Different application settings
  • Different network configurations

49. Compliance Testing

Compliance testing evaluates whether an application follows applicable requirements, standards, policies, regulations, or organizational rules.

Examples

  • Industry standards
  • Organizational security policies
  • Accessibility requirements
  • Data handling requirements
  • Regulatory requirements

50. API Testing

API testing validates application programming interfaces directly rather than testing only through the user interface.

API Testing Areas

  • HTTP methods
  • Status codes
  • Request parameters
  • Request headers
  • Response body
  • Authentication
  • Response time
  • Error handling

Example

Client
  ↓
API Request
  ↓
Server
  ↓
API Response
  ↓
Validate Status / Data
  ↓
Pass / Fail

51. Database Testing

Database testing verifies that data is stored, retrieved, updated, and maintained correctly.

Common Checks

  • Data insertion
  • Data updates
  • Data deletion
  • Data retrieval
  • Data integrity
  • Relationships
  • Constraints

52. UI Testing

UI testing evaluates the application's user interface and verifies that interface elements behave as expected.

Examples

  • Buttons
  • Text fields
  • Menus
  • Links
  • Forms
  • Navigation
  • Messages

Selenium WebDriver is commonly used to automate suitable web UI testing scenarios.


53. Regression Testing vs Retesting

Parameter Regression Testing Retesting
Purpose Check existing functionality after changes Verify a specific defect fix
Scope Can be broad Usually focused
Target Existing functionality potentially affected by changes Previously failed test case
Automation Frequently suitable for automation Can also be automated where appropriate

54. Functional vs Non-Functional Testing

Functional Testing Non-Functional Testing
Checks what the system does. Checks how well the system performs.
Focuses on business functionality. Focuses on quality characteristics.
Examples include login and checkout. Examples include performance and usability.
Validates functional requirements. Validates non-functional quality requirements.

55. Testing Levels

Testing can also be classified according to the level at which the software is tested.

Testing Levels

Unit Testing
     ↓
Integration Testing
     ↓
System Testing
     ↓
Acceptance Testing

Unit Testing

Tests individual units or components.

Integration Testing

Tests interactions between components.

System Testing

Tests the complete integrated system.

Acceptance Testing

Tests whether the system satisfies business and user requirements.


56. Testing Pyramid

The testing pyramid is a conceptual model for organizing different levels of automated tests.

          /\
         /  \
        / UI \
       /------\
      /Service \
     /----------\
    /    Unit    \
   /--------------\

A typical testing strategy contains many lower-level tests and fewer expensive end-to-end UI tests, although the exact balance depends on the application and project requirements.


57. Selenium and Types of Testing

Selenium is primarily relevant to browser-based web application automation.

Common Selenium Use Cases

  • Functional web testing
  • Regression testing
  • Smoke testing
  • Sanity testing
  • End-to-end testing
  • Cross-browser testing
  • Data-driven testing
  • Automated UI testing

Selenium Testing Flow

Test Scenario
      ↓
Test Case
      ↓
Selenium WebDriver
      ↓
Browser
      ↓
Web Application
      ↓
Web Element Interaction
      ↓
Assertion
      ↓
Test Result

58. Types of Testing Commonly Automated with Selenium

Testing Type Selenium Usage
Functional Testing Automate web application functionality
Regression Testing Repeatedly execute stable web test cases
Smoke Testing Automate critical application checks
Sanity Testing Automate focused checks where appropriate
End-to-End Testing Automate complete browser workflows
Cross-Browser Testing Execute tests across supported browsers
Data-Driven Testing Execute the same workflow with multiple data sets

59. Types of Testing That May Require More Human Involvement

Automation can assist many testing activities, but certain areas depend heavily on human observation, interpretation, or judgment.

  • Exploratory testing
  • Usability testing
  • Subjective visual evaluation
  • Ad-hoc investigation
  • Some accessibility evaluations
  • Business acceptance activities
  • Testing of rapidly changing functionality

60. Real-World Example: E-Commerce Application

Consider an e-commerce website containing registration, login, search, product pages, cart, checkout, payment, and order management.

Feature Possible Testing Types
Login Functional, Negative, Regression, Security
Search Functional, UI, Performance, Regression
Cart Functional, Integration, Regression
Checkout Functional, Integration, End-to-End, Regression
Payment Functional, Security, Integration, End-to-End
Website UI UI, Usability, Compatibility, Accessibility

61. Real-World Example: Banking Application

A banking application requires multiple testing approaches because it contains authentication, financial transactions, sensitive data, integrations, and business-critical workflows.

Possible Testing Types

  • Functional Testing
  • Security Testing
  • Integration Testing
  • Regression Testing
  • Performance Testing
  • Usability Testing
  • Database Testing
  • API Testing
  • End-to-End Testing
  • Acceptance Testing

62. Choosing the Appropriate Testing Type

The appropriate testing type depends on the objective of the test.

Testing Requirement Relevant Testing Type
Verify a feature Functional Testing
Verify individual code unit Unit Testing
Verify module interaction Integration Testing
Verify complete application System Testing
Verify business acceptance Acceptance Testing
Verify changes did not break existing functionality Regression Testing
Verify a specific defect fix Retesting
Check basic build stability Smoke Testing
Check specific changed functionality Sanity Testing
Check response under load Performance / Load Testing
Check security controls Security Testing
Check user experience Usability Testing
Check multiple browsers Compatibility / Cross-Browser Testing

63. Common Mistakes in Software Testing

  • Testing only the happy path.
  • Ignoring negative scenarios.
  • Testing without understanding requirements.
  • Using unrealistic test data.
  • Not testing boundary conditions.
  • Ignoring regression testing after important changes.
  • Automating every test without evaluating suitability.
  • Ignoring failed automation results.
  • Using unstable automation locators.
  • Not maintaining test cases.
  • Not documenting defects clearly.
  • Ignoring environment differences.

64. Best Practices for Software Testing

  • Understand requirements before creating tests.
  • Design positive and negative test scenarios.
  • Prioritize important business workflows.
  • Use realistic and controlled test data.
  • Test boundary and exceptional conditions.
  • Maintain clear test documentation.
  • Perform regression testing after relevant changes.
  • Automate stable and repetitive scenarios where appropriate.
  • Use reliable automation architecture.
  • Review and maintain automation scripts regularly.
  • Analyze failed tests instead of ignoring them.
  • Use appropriate testing tools for different testing objectives.
  • Combine manual and automated testing where appropriate.

65. Practical Testing Exercise

Choose a demo web application and create a testing plan covering different testing types.

Part A: Functional Testing

  1. Identify five major features.
  2. Create positive test cases.
  3. Create negative test cases.
  4. Execute the tests.
  5. Record expected and actual results.

Part B: Regression Testing

  1. Select stable test cases.
  2. Automate suitable scenarios.
  3. Execute them after application changes.
  4. Analyze failures.

Part C: Selenium Automation

  1. Open the browser using Selenium WebDriver.
  2. Navigate to the application.
  3. Identify web elements.
  4. Perform user actions.
  5. Add assertions.
  6. Execute the test.
  7. Record the result.

Practice Flow

Application
     ↓
Identify Features
     ↓
Create Test Scenarios
     ↓
Select Testing Types
     ↓
Manual Execution
     ↓
Identify Automation Candidates
     ↓
Selenium Automation
     ↓
Regression Execution
     ↓
Analyze Results

66. Interview Questions

Q1. What is software testing?

Software testing is the process of evaluating software to verify that it meets requirements and behaves as expected.

Q2. What are the major types of software testing?

Common categories include functional testing, non-functional testing, manual testing, automation testing, unit testing, integration testing, system testing, acceptance testing, regression testing, smoke testing, sanity testing, performance testing, security testing, usability testing, and compatibility testing.

Q3. What is functional testing?

Functional testing verifies whether application features behave according to specified requirements.

Q4. What is non-functional testing?

Non-functional testing evaluates quality characteristics such as performance, usability, security, compatibility, reliability, and scalability.

Q5. What is regression testing?

Regression testing verifies that existing functionality continues to work after application changes.

Q6. What is retesting?

Retesting verifies whether a previously reported defect has been fixed successfully.

Q7. What is smoke testing?

Smoke testing performs a broad but relatively shallow set of checks to determine whether a build is stable enough for further testing.

Q8. What is sanity testing?

Sanity testing performs focused checks on specific functionality after relevant changes or fixes.

Q9. What is black box testing?

Black box testing evaluates external application behavior without requiring knowledge of the internal implementation.

Q10. What is white box testing?

White box testing involves testing with knowledge of internal code, logic, or structure.

Q11. What is exploratory testing?

Exploratory testing allows testers to dynamically investigate an application while learning about its behavior and adapting their tests based on observations.

Q12. What is performance testing?

Performance testing evaluates characteristics such as response time, throughput, resource utilization, and system behavior under workload.

Q13. What is load testing?

Load testing evaluates application behavior under an expected or specified workload.

Q14. What is stress testing?

Stress testing evaluates system behavior under extreme or beyond-normal workload conditions.

Q15. What is Selenium used for?

Selenium is primarily used to automate interactions with web applications through supported browsers.

Q16. Which testing types can Selenium automate?

Selenium can be used for suitable web-based functional, regression, smoke, sanity, end-to-end, cross-browser, and data-driven testing scenarios.

Q17. Can Selenium perform performance testing?

Selenium is primarily a browser automation tool rather than a dedicated performance-testing tool. Performance testing generally requires specialized tools and approaches.

Q18. Can Selenium replace manual testing?

No. Selenium can automate suitable browser interactions, but exploratory testing, usability evaluation, visual judgment, test design, analysis, and other activities may still require human involvement.


67. Key Points to Remember

  • Software testing verifies application behavior against expected requirements.
  • Testing can be classified according to objective, level, execution method, and scope.
  • Functional testing checks application functionality.
  • Non-functional testing evaluates quality characteristics.
  • Unit testing focuses on individual components.
  • Integration testing checks interaction between components.
  • System testing evaluates the complete system.
  • Acceptance testing verifies business and user requirements.
  • Smoke testing checks broad build stability.
  • Sanity testing focuses on specific changed functionality.
  • Regression testing checks existing functionality after changes.
  • Retesting verifies a specific defect fix.
  • Exploratory testing allows dynamic investigation.
  • Black box testing focuses on external behavior.
  • White box testing uses knowledge of internal implementation.
  • Performance testing evaluates system performance characteristics.
  • Security testing evaluates protection against security risks.
  • Usability testing evaluates ease of use.
  • Compatibility testing evaluates behavior across supported environments.
  • Selenium is primarily used for web browser automation.
  • Not every type of testing should be automated with Selenium.
  • Manual and automation testing can be combined in a complete testing strategy.

68. Summary

Software testing includes many different testing types because applications must be evaluated from multiple perspectives. Functional testing verifies what the application does, while non-functional testing evaluates characteristics such as performance, security, usability, compatibility, reliability, and scalability.

Testing can also be classified according to testing level, such as unit testing, integration testing, system testing, and acceptance testing. Other important approaches include smoke testing, sanity testing, regression testing, retesting, exploratory testing, black box testing, white box testing, positive testing, negative testing, and end-to-end testing.

Selenium is primarily useful for automating web application testing. It can be used for suitable functional, regression, smoke, sanity, end-to-end, cross-browser, and data-driven web testing scenarios. Human testers continue to play an important role in exploratory testing, usability testing, test design, analysis, and other activities requiring judgment.


69. Selenium Training Resources

Learners who want to continue learning Selenium and software testing can explore the JustAcademy Selenium Automation Testing Course.

JustAcademy Selenium Training Course

Register for Selenium Course Demo


70. Final Learning Outcome

After completing this topic, a learner should be able to explain the major types of software testing, differentiate functional and non-functional testing, understand testing levels, explain smoke and sanity testing, distinguish regression testing from retesting, understand black box and white box testing, identify performance and security testing concepts, explain exploratory and usability testing, and identify which web testing scenarios can be automated using Selenium.

whatsapp