Why Software Testing is Crucial in Software Development


Software Testing is considered a key part of software development.

There are a number of methods that software testers employ and each method has its advantages and disadvantages.

Take a look at some of the different types of testing below:


1. Non Functional Testing

Testing is a crucial part of the development progress used to find bugs as well as to validate and verify that a system, program or application meets all business and technical requirements. There are two areas of testing; functional and non-functional. Non-functional testing measures how well a system behaves3 whereas functional testing tests that the system performs as expected.

This post focuses on a few of the most widely used types of non-functional testing. Performance Testing encompasses numerous types of non-functional test and is used to analyse the speed, scalability, and stability of a system. Performance testing is either performed at the beginning of development and throughout (the agile approach) or at the end of development (the waterfall approach).


2. Stress Testing

What?

To overload a system until it breaks by applying an unrealistic load.

Main Goal

To find the breaking point of the system.

Why

  • To determine the maximum capacity of performance.
  • To determine the limitations of any functionality.
  • To analyse the recovery of the system after a stressful phase.
  • To verify if data has been saved before a system crash and to determine if the system produced meaningful error messages during the crash.
  • To make sure that unexpected failures have not caused security issues.

 Example scenarios

  • Having the maximum number of users logged in at the same time.
  • Have all users performing critical operations simultaneously.
  • Have all users simultaneously accessing the same file. 


3. Endurance/SOAK Testing 

What

The process of testing a system by applying a considerable load over an extended period of time. 

Main Goal

 To make sure no unwanted behaviour emerges over time.

Other Reasons

  • To identify how a system behaves under sustained use.
  • To determine if a system becomes less efficient under a prolonged test
  • To check and identify any memory leaks.
  • To inspect database resource and server resource consumption.
  •  To provide a measure of stability.

When

  • SOAK Tests are normally performed overnight or at a weekend so that they can be run for as long as possible.    


4. Load Testing

What

The process of testing the system's behaviour under various conditions by increasing the load during the test unlike stress testing. 

Main Goal

To ensure the system can handle what it is designed to handle, the goal is not to break the environment. 

Other Reasons

  • To identity the maximum operating capacity of a system.
  • To identify any bottlenecks.
  • To analyse the behaviour of the system when multiple users use it simultaneously.
  • To check for performance degradation.
  • To identify if the system breaking point occurs below peak load condition.
  • To monitor response times.

When

  • To be performed once the project is nearly at the end of its production cycle.

Types of Load Testing

  • Volume Testing: Apply a heavy load in a limited time to the system.
  • Longevity Testing: Apply a constant, moderate load to the system for a long time.


Author: Emma Millar

From this thread

12 related stories

See all of them

take me back to

qa blog