MemoryScape for QA Testers

Testing often means developing scenarios that test program operation and features. When something breaks, the test contains the procedure the developer can use to reproduce the problem.

 

Heap Graphical Report

 

Creating scenarios for testing memory is extremely difficult, so difficult that memory testing is seldom done. This changes with MemoryScape. MemoryScape can detect when a program misuses malloc'd memory and stop the program when it does. The tester can now create a report that gives developers the information they need to fix the problem. And, if there other kinds of memory problems, the tester has two ways to produce reports that will help developers identify the problem.

And, of course, we do all of this for multi-threaded and multi-process programs.

 

Block Properties

Creating Reports and Saving State

Most memory products can only produce reports when the program ends. Not MemoryScape. It lets you watch your program's memory use, leting you stop execution whenever something interesting happens.

At these times, MemoryScape can write memory state information as HTML or text. This lets you examine what occurred at a later time. And you can share this information with your developers.

You can also save memory state information so that it can be read back into MemoryScape. After it is read back in, you can use MemoryScape data analysis features on this information, and use them in the same way as if the program were executing.

You can also compare saved states against the state of the currently executing program or even compare two saved states. By sharing this information with developers, you are providing addiitional information for locating the problem.

 

Reporting Features

MemoryScape excels at creating interactive reports that can be explored to locate problems. With other memory products, "explore" means wading though pages and pages and pages of information. This isn't our approach. Instead, MemoryScape creates an interactive HTML report that you give your developers so that they can identify where problems occur. For example, we show the call stack that existed when a block was allocated and perhaps deallocated.

Rather than tell you about our reporting features, you should see them for yourself by exploring a sample that we placed on our web site.