# Software Testing

pipelines

# Common Types

# Functional Testing types include:

  • Unit Testing
  • Integration Testing
  • System Testing
  • Sanity Testing
  • Smoke Testing
  • Interface Testing
  • Regression Testing
  • Beta/Acceptance Testing

# Non-functional Testing types include:

  • Performance Testing
  • Load Testing
  • Stress Testing
  • Volume Testing
  • Security Testing
  • Compatibility Testing
  • Install Testing
  • Recovery Testing
  • Reliability Testing
  • Usability Testing
  • Compliance Testing
  • Localization Testing

# Unit Testing

TIP

Testing of an individual software component or module is termed as Unit Testing.

  • It is typically done by the programmer and not by testers

# Integration Testing

TIP

Testing of all integrated modules to verify the combined functionality after integration is termed as Integration Testing.

  • Modules are typically code modules, individual applications, client and server applications on a network, etc.
  • This type of testing is especially relevant to client/server and distributed systems.

# Browser Compatibility Testing

TIP

Browser Compatibility Testing is performed for web applications and it ensures that the software can run with the combination of different browser and operating system.

# End-to-End Testing

TIP

End-to-End Testing involves testing of a complete application environment in a situation that mimics real-world use, such as interacting with a database, using network communications, or interacting with other hardware, applications, or systems if appropriate.

# Functional Testing

TIP

This type of testing ignores the internal parts and focuses only on the output to check if it is as per the requirement or not.

# Load Testing

TIP

The objective of Load Testing is to check how much load or maximum workload a system can handle without any performance degradation.

  • Load testing is performed using tools like JMeter, LoadRunner, WebLoad, Silk performer, etc.

# Regression Testing

TIP

Testing an application as a whole for the modification in any module or functionality is termed as Regression Testing.

  • It is difficult to cover all the system in Regression Testing, so typically Automation Testing Tools are used for these types of testing.

# Vulnerability Testing

TIP

The testing which involves identifying weakness in the software, hardware and the network is known as Vulnerability Testing. Malicious programs, the hacker can take control of the system, if it is vulnerable to such kind of attacks, viruses, and worms.

  • So it is necessary to check if those systems undergo Vulnerability Testing before production. It may identify critical defects, flaws in the security.

# Alpha Testing

TIP

The objective of this testing is to identify all possible issues or defects before releasing it into the market or to the user.

  • carried out at the end of the software development phase but before the Beta

# Beta Testing

TIP

Beta Testing is a formal type of Software Testing which is carried out by the customer. It is performed in the Real Environment before releasing the product to the market for the actual end-users.

# Acceptance Testing

TIP

An Acceptance Test is performed by the client and verifies whether the end to end the flow of the system is as per the business requirements or not and if it is as per the needs of the end-user.

  • It is the last phase of the testing, after which the software goes into production. This is also called User Acceptance Testing (UAT).

Original Link (opens new window)