Parasoft Tools that Debug

ParaSoft User Testimonials


"We were looking to do unit testing and regression testing and our only option would be to do it on our own. C++Test does everything we wanted to do, without us having to do the work - it's a good tool."

Thomas Gielow, Demand Management, Inc.

"With minimal effort on my part, I can come up to speed on C++Test very fast after a few months of not using it. All of ParaSoft's C development tools are extremely easy to use. The user manuals are quite informative, and the graphical user interface provides an intuitive mechanism for retrieving pertinent debugging information."

Robert Luppold, Luppold & Associates, Inc.


"Within minutes of using Jtest it had reported some important problems with some critical code. In fact, I believed Jtest to be in error, yet upon careful review Jtest had detected some very subtle problems with some of our classes. Problems that I'm sure we would never have detected on our own-- they'd have only been found by our customers."

Chris Johnson, Vertical Networks

"This powerful new version of Jtest is an essential testing tool for our Java project teams. Jtest v2.0 has increased our testing efficiency by automating code coverage and identifying runtime exceptions."

Steve Brim, Wall Data Incorporated

"This is the best Java tool we've found. I have studied and evaluated many Java testing tools available on the market today and have recommended Jtest as the testing tool for all LFR Java development."

Kaleem Aziz, LFR Technologies

"I was extremely pleased to see that ParaSoft incorporated some of my suggestions, literally within weeks of receiving my initial feedback. It is always a pleasure to encounter a company that does indeed hear what its users are saying. I just wish there were more companies in the industry that were as attentive to their customers as ParaSoft!"

Lee Bernbaum, a Fortune 500 software firm

"Currently, our white-box testing is centered around JavaSpec. As you know, JavaSpec is an excellent tool that gives us the ability to test classes down to the method, block and even branch level. This testing focuses on verifying basic data integrity of constructors, assuring try/catch blocks function properly, and most importantly, that object values are consistent through out code execution. However, JavaSpec has two shortcomings which I have had concerns about, shortcomings that Jtest! solves.

The first is the time factor. JavaSpec does not write tests for us and requires a tester to analyze source code and produce test cases. This involves writing code (java) that is executed by JavaSpec with selected input values. For state of object, data integrity, and try/catch tests, the process is fairly straightforward, and while time consuming, not unmanageable. Where time becomes a factor is in testing for runtime exceptions, and this takes us to JavaSpec's second shortcoming. JavaSpec will not report uncaught runtime exceptions that are generated unless a test is coded that attempts to recognize the possibility of an exception occurring in particular block. or method and catches and reports it. This is as difficult as it sounds. In our last testing phase with PLS, in two weeks, I was able to achieve basic coverage of 82% of the core PLS classes (over 50 different test cases), but I could only come up with two tests for runtime exceptions. While JavaSpec has the ability, in theory, to test for runtime exceptions. In practice, the process is daunting and yields little as far as useful results. Additionally, it's these runtime exceptions that are the most dangerous. They are the infamous "nullPointer" and other exceptions that occur during program execution and cause applications/applets to crash. While JavaSpec falls short in this respect, Jtest is designed to automate this task.

Jtest analyzes a class or classes, chooses appropriate input values, and repetitively executes the code while catching and reporting any exceptions that occur. Since these are exceptions that happen outside of try/catch blocks, they are unplanned runtime exceptions. I ran a demo copy of Jtest on several of our classes from the 2.0 release. Some tests yielded many exceptions, others fewer. Once I knew where the exceptions occurred and what input values causes the fatal conditions, I was able to replicate each failure with JavaSpec and verified that the results I got from Jtest were in fact accurate.

After verifying the results, I took them to two engineers who had worked on the code I had tested and asked them what they thought of the tool and the exceptions it reported. In both cases, the engineers disputed the validity of the tests because they asserted that the conditions tested, i.e. arguments passed and methods called, could not have occurred in the real world, and the code would not have failed. This may be true, but it is not the point. Jtest will undoubtedly find exceptions that won't occur in real world use, but it will also find exceptions that will, exceptions that will cause our product to fail.

Currently, our only method for finding runtime errors, is black-box testing. We run our stuff and bang on it and hope we find the right combination of clicks, drags, or whatever that will fail or cause an exception. Our inability to find these problems is one of the reasons Perspecta employees outside QA find so many bugs during the production cycle. The combined use of the GUI tester, JavaStar, JavaSpec, our other in-house methods, and Jtest would give us a comprehensive testing gauntlet that would let very little get by us. The tool is expensive at $3000, but its usefulness is definitely worth the cost."

Steven Phillips, Perspecta, Inc.

"Jtest represents a dramatic step forward in Java testing. As developers move toward serious application development, it is absolutely critical for them to incorporate tools such as Jtest in their development cycle. As Visual Cafe is used for increasingly mission-critical enterprise applications, our customers continue to demand tools such as Jtest for ensuring maximum reliability and quality."

Will Iverson, Symantec

"Jtest is a simple, dependable and lightweight tool that helps to make your Java code fool proof by tracking down the uncaught runtime exceptions -- it really makes your life easier."

Ramaswamy Parameswaran, Mastech Corporation

"Jtest is the most powerful development testing tool I've ever seen. It gives the programmer the ability to squash bugs before they even reach alpha testing, thus saving valuable time for both developers and testers alike. It goes beyond simple unit path testing and searches out any possible cause of exceptions.

Thanks again for everything. I look forward to having my shop ramp up so that we can get this in house. Especially since we will be retraining some of our developers into Java and Jtest will be a perfect way to help guide them from having all the normal exceptions get thrown."

Scott Boding, FCI Communications

"We found Jtest to be very useful, particularly when finding uncaught runtime exceptions. We love the fact that we can select a single class and perform unit testing on it; it is an extremely useful and handy tool. Jtest is user-friendly and easy to operate. From a QA point of view, the test reports, particularly the metric reports, are very descriptive and informative."

Jelena Vasiljevic, Xign Canada, Inc.


"Over the last two years, Insure++ has saved Hekimian countless hours of tracking down hard-to-find memory errors. It has improved the quality of our software code base by allowing us to find problems earlier in our software development life cycle. We chose Insure++ over other similar products because it has the ability to detect static, stack and heap memory errors (and leaked) covering all potential memory problems with just one product.

The product has paid for itself many times over since its purchase.

Gary D. Tominovich, Hekimian

"Please, use my name to witness that INSURE++ and ParaSoft's Java products do what they are designed to do; eliminate faults!! Before using INSURE++, we sent products to the field with embedded errors in them. Only on failure would we find and fix the error. When first we used your products, we isolated seven basic error types in our C/C++ code that had never been detected and resolved before -- EVER! In 1996 from January to July, we spent over $450,000.00 dollars traveling to sites for software error repairs. After installing INSURE++ our costs dropped by 80-90 percent. So it is a simple process to see that INSURE++ from ParaSoft is worth the cost many times over, and you can quote me on that."

Marlin Bailey, New Telephone R&D Systems, Richardson Communication Group

"I used Insure++ on a Linux motion control project involving three separate networked processes and 55,000 lines of C++ code. Insure++ was extremely easy to use and integrated nicely into our g++ compiler environment, as well as my emacs editing environment. My primary concern was finding memory leaks, particularly in third-party libraries we are using. Insure++ succeeded in doing exactly that. The information about each leak is very detailed, with a full stack trace provided for each memory allocation problem. In the first day of use Insure++ proved itself to be immensely useful. Insure++ will easily save us weeks of debugging time and I strongly recommend it to anyone doing development on Linux."

Michael Babcock, Jim Henson's Creature Shop

"You can quote me anytime. Insure++ has saved me dozens of hours of work. It has discovered and reported problems which no other tool could detect. If I had not had access to Insure++, I would still be debugging that same project a year later."

Douglas A. Scott, Silicon Graphics, Inc.

"Insure++ is an indispensable tool for my development. It automatically finds all the otherwise hard-to-find bugs and memory leaks during compilation and runtime. Inuse is a graphical tool that comes with Insure++. During testing, I run my program with Inuse for a few days, non-stop. This way, I can be sure my program is free of memory leaks. I won't deliver my programs to customers unless I first check them with Insure++. I can't imagine doing development without Insure++."

Chee Cheng, Chicago Tribune

"Insure++ is the most thorough debugging tool I've ever used. Period."

Bill Emshoff, Lockheed Martin

"Insure has played a critical role in Software Quality Assessment and Insurance at TIS. Through the entire system implementation life cycle, Insure saves time and money by providing immediate and accurate feedback to developers in an easy to understand format. This feedback allows us to deliver robust applications to our customers in a timely manner."

Anthony Nelson,Transaction Information Systems

"Problems that used to take us several days or even weeks to track down, we are able to routinely find and fix in a few hours with Insure++. So, Insure++ is now a standard tool that is used on all software that we develop before it is released. Our engineering team is very enthusiastic about it and management is convinced that it was well worth the money. We have told lots of our peers about Insure and will keep doing so."

David Miller, Hewlett-Packard

"I have used Insure++ now on two major software projects at two different major companies. The first project software consisted of 1,000,000+ lines of code, the second 500,000+ lines. Both projects were plagued with unpredictable run-time behavior and program crashes. On both projects, efforts were made to identify and fix the bugs using manual debugging techniques. After hundreds of hours trying to debug manually I convinced management to let me evaluate Insure++ by applying it to the project code. The results in both cases were dramatic. The number of errors reported at compile-time alone was a shock. But Insure++ eased that shock by leading us right to the lines of code containing the memory errors. The run-time errors reported also led us right to the offending lines of code. The ease of use and accuracy of reporting the bugs saved us from spending hundreds of hours doing the same work manually. AND THIS ALL HAPPENED DURING THE EVALUATION PHASE! I want to thank ParaSoft for creating Insure++. I also want to thank you for superb technical support. Your product and people seem to have been spun from the very fiber of excellence."

Joe Summars, Web Team Leader

"Within only hours I was able to track down a nasty memory bug in my code that had plagued me for weeks. Insure++ is of tremendous help in debugging programs and it is very easy to use."

Dr. Marcus E. Hennecke, Applied Research Laboratories

"Insure++ is a must for any serious development project. It sure made me look good in our project. I was tasked to fix a core dump that another had been unsuccessfully looking at for a month. Little did that developer know that our company had just purchased Insure++. I ran the application through Insure++ and found 3 major memory bugs. I had the problem resolved in less than a day. I also ran our C++ code through CodeWizard. It pointed out some issues, which I changed to make our C++ code much more efficient. Great tools, worth every cent."

Sean Hill, Software Engineer

"One of the strengths of Insure++ is the ability to detect leaks and heap corruption errors without recompiling an entire code. By just linking object code with Insure++ libraries, once can detect those errors, and not suffer a huge performance penalty."

Irv Lustig, PhD Math Programming Software, ILOG CPLEX Division

"Insure++'s ability to find memory overwrites is amazing. Now we find bugs before they even get to testing let alone our customers. We even found bugs in third party libraries with Insure++."

Richard Boyle, JNL Industries Inc

"We're very happy with Insure++. This is a really good product that has saved my butt several times during the development of several large systems here? I work in a small (overworked) team with tight deadlines. We can't afford to waste days tracking down bugs. We depend on tools like Insure++ to quickly locate problems and let us get back to development. We use CodeCenter during initial development and Insure++ for quality assurance testing. All my dealings with ParaSoft have been pleasant. I would not hesitate to contact to recommend your products to anyone who cares about the quality of the software they produce."

John Wendel, Computer Specialist, Branch of US Military

"I wanted my money to go towards a system that would find as many 'hard to find' bugs as possible. I decided Insure would do me better, based on my evaluation. I know from past experience some of the hardest bugs to find are incorrect values and formatting strings passed to printf/sprintf, and random behavior caused by non-core dumping pointer overruns. So thanks for all the support, and I look forward to sleeping a little better knowing that I now have a tool that will prevent me from having to put a detective's hat on and crawl through code printouts with a magnifying glass just to figure out why variables are getting corrupted."

Greg Ercolano, Digital Domain

"To be honest, I first though Insure++ was a glorified version of the debugger/memory checker Purify that I was already using. However, the error printouts and associated data proved to be twice as useful due to their more specific nature and the more precise handling of memory leak/read instances. For example, it became just as easy to fix a LEAK_SCOP error as to fix a random syntax error in original C code, where Purify might report that the memory was lost but not exactly "when" it became completely unaccessible. Of course, you know all this but I wanted to underscore the greater efficiency it lent to the programming process.

Furthermore, the simple fact that a reliable, nontrivial, and intuitive GUI ran the operation yielded a drastic improvement in speed over the make-run (not knowing when in the program's cycle errors are occurring, for that matter_ -parse purify file, repeat. The code-insertion technique mentioned in the version 5 release sounds extremely compelling in developing larger, more complex projects.

Criticisms come few and far between. Of course, one would like a program like Insure++ to give "suggestions" about how to fix a certain memory problem but the realistic implications of this exercise are questionable- certainly, the credibility of such a package would be doubted if such suggestions ultimately resulted in more and more errors due to the nature of C/C++ (or any, for that matter) code. Thus my main suggestion, one that seems more feasible, is the ability to "diff," so to speak, two instances of a program given a user-defined change- the ability to deduce from an added/removed "free" instance why more/different problems result with the change. Then again, that's the job of a programmer.

Combining the Insure++ package (I tested the rest of the suite compiling large project code downloaded from other sources to see its industrial ability) with a step-by-step data visualization debugger (I chose DDD 3.1.4) is a godsend not only for esthetical reasons (Inuse in particular is fun to watch, especially when your program *works*) but for transition in making productive use of the programs (15 minute acclimation for myself."

John Hjelmstad,

"I'm very pleased with the information provided by Insure++ and CodeWizard, and their ability to detect "sneaky" errors. All of ParaSoft's C development tools are extremely easy to use. The user manuals are quite informative, and the graphical user interface provides an intuitive mechanism for retrieving pertinent debugging information."

Robert Luppold, Luppold & Associates, Inc.


"This tool could definitely be used in our software department. Thankfully, it is the code reviewer without the attitude; it knows all the rules and does not waste other colleagues' time having to participate in something they do not want to do."

Suzette LaGray, Software Consultant

"CodeWizard is working well for us so far. We chose CodeWizard to augment our code review process. We felt that CodeWizard could relieve us of the mundane parts of code review, such as naming conventions."

David Weidenkopf, Principal Engineer - Software, ATL Ultrasound, A Philips Medical Systems Company

"It's fast and does its job well. I can seen where it would be a big help in writing squeaky-clean, probable C++."

Mike LeBlanc, SKY Computers, Inc.

"Well, I finally got to trying it out. My comments in no particular order:
  1. The GUI is nice.
  2. Insure integration is nice.
  3. I like the HTML documentation.
  4. I think it is most useful for inexperienced C++ programmers"
James S. Zeoli, Instinet Corporation

"When we first tried CodeWizard, we were using VC++ 4.2b. We really liked it a lot, even though it hated a lot of our code (our problem--we were doing lots of truly horrible things in places). CodeWizard got us to clean up a lot of stuff."

Mike Ciagala, Systems Development Corporation

"I am glad to say that after a little practice with the tool, I find CodeWizard's Suppression features very powerful and elegant."

Javier Borrajo, Telefonica Investigation & Desarollo

"The nice message of the day is that yesterday CodeWizard taught me some C++ by telling me to use initialization instead of assignment in constructors! It took some time to find out how to do it, but it worked and I can see that it is a performance booster."

Frans Van Hoesel, University of Groningen - Netherlands

"I think CodeWizard is a very useful tool. I do use it only when I need to check if the code is unsafe, or not perfectly correct. The software comes in handy on controversial issues in programming."

Guru Rao, Data Research Associates

"For years I've told C++ programmers to ignore problematic constructs that compilers will detect, but that still left a lot of language minutia for them to worry about. With the advent of tools like CodeWizard, they can focus less on C++ as a language and more on it as a way to solve challenging programming problems."

Scott Meyers

"Code Wizard has some limitations. For example, it can't read the minds of the designers and coders to see if they understood the implications of the design and code for a particular technique. So, it reports it as a potential problem. So, for well-designed, well-coded, reviewed and inspected code, Code Wizard has no value other than confirming that standards are being followed. On the other hand, we have code from sources outside of our project's control. We don't know the design and code standards, if any, that were used when writing it. We just have the code, and a lot of it. Code Wizard quickly found several serious problems that absolutely must be fixed. We would have found them sooner or later. Maybe when we had time to re-engineer the code to our standards. Maybe when our project was running at a customer site and crashed. The cost of Code Wizard was far less than the cost of re-engineering code or fixing problems with the code as the popped up."

Marlin A. Bailey, Richardson Communications Group

"I'm very pleased with the information provided by Insure++ and CodeWizard, and their ability to detect "sneaky" errors. All of ParaSoft's C development tools are extremely easy to use. The user manuals are quite informative, and the graphical user interface provides an intuitive mechanism for retrieving pertinent debugging information."

Robert Luppold, Luppold & Associates, Inc.
Tools to debug c++ and java
(888) 305-0041 info@parasoft.com Copyright © 1996-2001 ParaSoft