Software QA FYI - SQAFYI

Quality Tools for Large Scale software development

By: Dynamic Memory Solutions

Quality Tools for Large Scale software development

Here is a list of the most popular tools for C/C++ Unix executables. All commentary is strictly the opinion of the editor. Five stars are reserved for the best tools.

Memory Leak Checking

Dynamic Leak Check

Dynamic Leak Check finds memory leaks, boundary overflows and other heap based errors.

Download the manual for Dynamic Leak Check now by clicking here User Guide

Homepage: Dynamic Memory Solutions
Platforms: Solaris and Linux
Runtime Models: 32 and 64 bit, multithreading
Advantages: No recompile or relink required. High performance and usable on the largest of executables.
Disadvantages: Error checking is not as well rounded as some other tools. More platforms need to be supported.
Stars: *****

Insure++

Insure++ finds memory leaks, boundary overflows, other heap based errors and stack errors. Insure++ is an excellent tool for source code based debugging. It find more errors than any other tool on the market.

Homepage: Parasoft Insure++
Platforms: Widely ported
Runtime Models: 32 and 64 bit, multithreading
Advantages: Error checking is very complete.
Disadvantages: Both source code and link time instrumentation are required, this is a major hassle for large source code bases. Performance is an issue for large executables.
Stars: ****

Purify

Purify finds memory leaks, boundary overflows, other heap based errors. The tool is the industry standard tool for leak checking

Homepage: Rational Software Purify
Platforms: Widely ported
Runtime Models: 32 and 64 bit, multithreading on most platforms
Advantages: Error checking is good.
Disadvantages: Both link time and compile time instrumentation is required. The Instrumentation is a major hassle for large source code bases. Performance is an issue for large executables.
Rating: ****

Valgrind

Valgrind finds memory leaks, boundary overflows, other heap based errors and some stack errors. The tools use a unique CPU simulator to find errors. From a computer science standpoint, it is really quite interesting. The tool is free so the price is right.

Homepage: Valgrind
Platforms: Linux only
Runtime Models: 32
Advantages: Error checking is acceptable. No instrumentation is required.
Disadvantages: Performance is an issue. Not always 100% accurate for leak checking. Linux is the only supported platform.
Rating: ****

mpatrol

mpatrol finds memory leaks, boundary overflows and other heap based errors. The tool is free.

Homepage: mpatrol
Platforms: Widely ported
Runtime Models: 32 and 64, multithreading
Advantages: Error checking is pretty good. No instrumentation is required on some platforms.
Disadvantages: Performance is a serious issue.
Rating: ***

Code Coverage

Dynamic Code Coverage

Dynamic Code Coverage is certainly the best tool on the market today. It combines the depth of decision and branch coverage with the ease of no instrumentation.

The Dynamic Code Coverage user guide may be downloaded by clicking on this link: User Guide

Homepage: Dynamic Memory Solutions
Platforms: Solaris and Linux
Runtime Models: 32 and 64 bit, multithreading
Advantages: No recompile or relink required. Function, line, decision and branch coverage. High performance and usable on the largest of executables.
Disadvantages: More platforms need to be supported.
Stars: *****

Bullseye Coverage

Bullseye is a very popular and useful product. The use of decision and condition coverage gives it a leg up on the competition.

Homepage: Bullseye Coverage
Platforms: Widely ported
Runtime Models: 32 and 64 bit, multithreading
Advantages: Function, line, decision and condition coverage.
Disadvantages: Requires compile time instrumentation, for large executables this is a major obstacle.
Stars: ****

Pure Coverage

Rational Pure Coverage is the industry standard tool. It supports only function and line coverage however.

Homepage: Pure Coverage
Platforms: Widely ported
Runtime Models: 32 and 64 bit, multithreading on most platforms
Advantages: Attractive GUI. Industry standard product
Disadvantages: No decision, condition or branch coverage. Requires link time instrumentation, for large executables this is a major obstacle.
Stars: ***

Insure++ TCA

TCA is an add on to Parasoft Insure++. It supports only function and basic block coverage.

Homepage: Pure Coverage
Platforms: Widely ported
Runtime Models: 32 and 64 bit, multithreading
Advantages: Attractive GUI. Well integrated with Insure++
Disadvantages: No decision, condition or branch coverage. Requires compile time instrumentation, for large executables this is a major obstacle.
Stars: ***


Other Resource

... to read more articles, visit http://sqa.fyicenter.com/art/

Quality Tools for Large Scale software development