Major testing types
Functional Testing
Ad-hoc Testing
Ad-hoc testing is a form of software testing where the tester explores the software system in an unstructured manner. The objective is to discover defects and issues by interacting with the system randomly. Ad hoc testing is often conducted when there are limitations in terms of time or resources for formal testing, or when testers aim to quickly understand the system's behavior.
Exploratory Testing
Exploratory testing is a dynamic and flexible approach to software testing that enables testers to actively explore the software system. Rather than adhering to predetermined test cases, exploratory testing leverages the tester's expertise, experience, and creativity to design and execute tests in real-time, as they delve into the system.
Regression Testing
Regression testing is a vital software testing approach that validates whether modifications, updates, or bug fixes to a software system have unintentionally introduced defects or caused previously functioning features to malfunction. The main goal of regression testing is to ensure that the existing functionality of the software remains intact and unaffected by changes.
Smoke Testing
Smoke testing, sometimes referred to as build verification testing or sanity testing, is an initial and high-level testing process conducted on a software build or release candidate. The primary goal of smoke testing is to promptly assess the stability of the build and determine if it is suitable for further, more extensive testing. This testing approach aids in the early identification of major issues and ensures that the essential functionalities of the software are functioning correctly.
Sanity Testing
Sanity testing, also referred to as build verification testing, is a specific form of regression testing that targets the essential and critical functionalities of a software application. Its purpose is to swiftly verify that the fundamental features and functionality of the software are functioning as expected following minor modifications or enhancements.
Integration Testing
Integration testing, is related to testing of communication between two subsystems.Like if you have a module to capture user data and some modules related to processing the data and other module to just display processed data. The modules related to processing data will provide data for the reporting module.All this modules inputs and output will be tested individually first and then their business flow will be tested via integration testing.
Non-Functional Testing
Load Testing
Load testing is a software testing method that evaluates the performance of a system under anticipated or expected load conditions. It involves simulating concurrent user activity or workload to measure the system's response time, throughput, and resource usage. The objective of load testing is to identify performance limitations, detect bottlenecks, and ensure that the software can handle the expected load without compromising its performance or stability. By conducting load testing, organizations can optimize their systems to meet user demands, enhance user experience, and ensure scalability and reliability
Stress Testing
Stress testing is a software testing approach that assesses a system's stability and resilience by subjecting it to extreme and excessive loads or conditions. The main goal of stress testing is to observe how the system behaves, performs, and maintains reliability when pushed beyond its normal operating capacity. It involves exerting intense pressure on the system by increasing the load, frequency, or duration of operations, with the aim of uncovering weaknesses, failures, or bottlenecks. Through stress testing, organizations can identify potential points of failure, evaluate the system's ability to recover from adverse events, and implement necessary improvements to ensure its durability and stability in high-stress scenarios.
Scalability Testing
Scalability testing is a software testing method that evaluates a system's capability to handle growing workloads and accommodate increasing user demands. The purpose of scalability testing is to assess the system's performance and efficiency as the workload is incrementally increased or decreased. This testing helps identify potential limitations, bottlenecks, or constraints that may impede the system's ability to scale and handle higher levels of user traffic or data volumes. By conducting scalability testing, organizations can gauge the system's capacity to scale horizontally (adding more resources) or vertically (increasing individual resource capacity) to meet future growth requirements. It involves gradually increasing the workload or user count while monitoring key performance indicators, response times, resource utilization, and any signs of degradation or inconsistencies. Scalability testing assists organizations in optimizing their systems, planning for capacity expansion, and ensuring a seamless user experience as the system's demands increase over time.
Endurance Testing
Endurance testing, sometimes referred to as longevity testing or soak testing, is a software testing approach that focuses on evaluating the performance and stability of a system when subjected to sustained or continuous loads over an extended period of time. The main objective of endurance testing is to assess the system's capability to handle prolonged usage, sustain normal or peak loads, and detect any potential issues like memory leaks or resource exhaustion that may arise.
Comments
Post a Comment