views:

52

answers:

1

I test of multithreaded program. But i dont want to use unit testing method. I want to use blackbox method in my testing work. I know that for testing of multithreaded application I have to use multicore processor, and give load for application and testing synchronization and locks between interfaces my program, but the bugs that I find can not repeat the developer. And it is most big problem for me. are there methods for blackbox testing multithreaded programs?

P.S. I test desktop application (use C# .Net)

A: 

There is CHESS (I don't believe it works with .NET 4.0 though):

CHESS is a tool for finding and reproducing Heisenbugs in concurrent programs. CHESS repeatedly runs a concurrent test ensuring that every run takes a different interleaving. If an interleaving results in an error, CHESS can reproduce the interleaving for improved debugging. CHESS is available for both managed and native programs.

CHESS: Find and Reproduce Heisenbugs in Concurrent Programs

Mitch Wheat
I have known about CHESS. But it is whitebox testing method. But I want to test the program using only the GUI and dont work with code.
alexey.chumagin
if you are talking about threading testing, then you are going to be working with code!
Mitch Wheat
I dont tell about threading testing, I'm talking about testing program that uses multithreading.
alexey.chumagin
@alexey.chumagin: erm, isn't that the same thing!
Mitch Wheat
My friend discussed it with me privately and the question turned out to be mostly about problems of reproducing bugs in an application which is run on multiple computers rather than a single instance of application with multiple threads. One of the applications I test synchronize objects between computers, lock them before using etc. Bugs found in synchronization can't be reliably reproduced, so I'm looking for tools which could assist me in finding and reproducing such bugs.
alexey.chumagin