Thread Testing: Types, Strategy & Multithreading

What is Thread Testing?

Thread testing is a testing technique to verify the key functional capabilities of a specific task(thread). It is usually conducted at the early stage of integration testing phase.

Thread based testing is one of the incremental strategies adopted during System Integration Testing. That's why, thread test should probably more properly be called a "thread interaction test."

Thread Testing: Types, Strategy & Multithreading

Types of Thread Testing

Thread based testing are classified into two categories

  • Single thread testing: A single thread testing involves one application transaction at a time
  • Multi-thread testing: A multi-thread testing involves several concurrently active transaction at a time

Testing Strategy for Thread Test

The thread process focuses on the integration activities rather than the full development lifecycle.

  • Thread-based testing is a generalized form of session-based testing, in that sessions are a form of thread, but a thread is not necessarily a session.
  • For thread testing, the thread or program (small functionality) are integrated and tested incrementally as a subsystem, and then executed for a whole system.
  • At the lowest level, it provided integrators with better knowledge of the scope of what to test
  • Rather than testing software components directly, it required integrators to concentrate on testing logical execution paths in the context of the entire system.

Tips for Multithread Testing

  • Test your multithreaded program by executing it repeatedly with a different mix of applications running
  • Test your multithreaded program by having multiple instances of the program active at the same time
  • Execute your multithreaded program on different hardware models with varying stress levels and workloads
  • Code inspection
  • Only collect errors and failures that occurred in threads other than the main one

Challenges in thread Testing

  • For multithreading testing, the biggest challenge is that you should be able to program reproducible test for unit test
  • Writing unit tests for multithreaded code is a challenging task
  • Testing criteria for multi-thread testing are different than single thread testing. For multithread testing various factors like memory size, storage capacity, timing problems, etc. varies when called on different hardware.

Summary:

  • Thread testing is a technique to verify the key functional capabilities of a specific task
  • Thread based testing are classified into two categories
    • Single thread testing
    • Multi thread testing

 

Tutorial Index