|
ParaSoft User Testimonials
C++Test
"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.
|
|
Jtest
"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.
|
|
Insure++
"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.
|
|
CodeWizard
"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:
- The GUI is nice.
- Insure integration is nice.
- I like the HTML documentation.
- 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.
|
|
|