Software testing level

 Software testing level

There are 4 basic levels of testing, including:




1. Unit Test

Concept:

Unit testing is a type of software testing in which individual units/components of the software, such as functions, classes, and methods, are tested. Unit testing is conducted during the application development process. Errors at this level are usually fixed immediately after they are found, without being logged and managed like other test levels. Typically, programmers are the ones who perform testing at this level.

Purpose:

  • Isolate Components: Separate each component to verify and demonstrate that they accurately fulfill the functional requirements specified. 
  • Early Bug Fixing: Errors are rectified early in the software development cycle, thereby saving time and cost in error correction. 
  • Increased Code Reusability: The source code can be reused more frequently. 
  • Enhanced Confidence in Modifications or Maintenance: Increases confidence in making changes or maintaining the code. 
  • Increased Code Reliability: The source code becomes more reliable.

2. Intergration Test

Concept:

In integration testing, individual components that have been tested at the unit testing level are combined and tested to ensure compatibility and proper functioning when integrated with each other.

Purpose:

Detecting and addressing issues related to communication and interaction between components, as well as ensuring that the entire system operates as expected. This helps to ensure consistency and reliability of the application.

Types of Integration Testing:

There are different approaches to integration testing, including:

  • Big Bang Integration Testing: All components are integrated simultaneously, and testing is performed on the entire system.
  • Top-Down Integration Testing: Testing begins with the highest-level components and progresses downward, with lower-level components gradually being integrated and tested.
  • Bottom-Up Integration Testing: Testing starts with the lowest-level components and moves upward, with higher-level components being integrated and tested as the process continues.
  • Sandwich (Hybrid) Integration Testing: This approach combines elements of both top-down and bottom-up integration testing.

3. System Testing

Concept: 

System testing is the testing of all functions and interfaces of the system. 

Purpose: 

To evaluate whether the system meets the requirements of the customer or end users.

Types of System Testing: 

In system testing, various types of tests are conducted to ensure that the system operates correctly and meets the requirements. Here are some common types of tests:

Functional Testing: This test focuses on verifying the functions of the system to determine if they operate correctly and meet the specified requirements.

Performance Testing: This type of test evaluates the system's performance under different load conditions, including high load, response time, and page load.

Security Testing: This test ensures that the system is protected against threats and attacks from external sources by identifying security vulnerabilities and determining appropriate security measures.

Compatibility Testing: This test checks the system's ability to operate on different platforms and environments, including web browsers, operating systems, and mobile devices.

Recovery Testing: This type of test assesses the system's ability to recover after a failure occurs, including data recovery and functionality restoration after a system failure.

Non-functional Testing: This includes tests unrelated to functionality, such as reliability testing, readiness testing, resource testing, etc.

4. Acceptance Testing

Concept: 

Acceptance testing is to check whether the software meets all customer requirements, and whether the customer accepts the product or not. 

Purpose: 

To conduct system acceptance testing before the system is put into operation.

Types of Acceptance Testing: 

Alpha test: Conducted by members of the software development organization but not directly involved in the project (usually product management members). Alpha testing is performed at the software production site, as an internal form of testing, before the software undergoes Beta testing.

Beta test: Conducted by end users (typically customers). Beta testing takes place at the customer's location, where users test or use the system in their own environment.


Hau.Vo
....................................
Source: istqb.org

Nhận xét

Bài đăng phổ biến từ blog này

The Seven Principles of Testing

Testing methods - Overview of black-box & gray-box testing