Datasheet
2
Chapter 1: Preliminary Concerns
The History of Testing Tools
Tools for testing have been around for as long as developers have been writing code. In the early years
of software development, however, there wasn’t a clear distinction between testing and debugging.
At the time, this model worked. Some argue that this model worked because the system was closed;
most companies who needed software had the developers on staff to create and maintain the systems.
Computer systems were not widespread, even though developers worked very closely with customers
to deliver exactly what was required. In the years between 1970 and 1995, computer systems started
becoming more popular, and the relationships between developers and customers became distant,
often placing several layers of management between them.
What is the difference between debugging and testing you might ask? Testing is the process of finding
defects in the software. A defect could be a missing feature, a feature that does not perform adequately,
or a feature that is broken. Debugging is the process of first tracking down a bug in the software and
then fixing it.
Many of the tools developers used for testing in the early days were internal tools developed specifically
for a particular project and oftentimes not reused. Developers began to see a need to create reusable tools
that included the patterns they learned early on. Testing methodologies evolved and tools started to
become standardized, due to this realization. In recent years, testing methodologies have become their
own, very strict computer science discipline.
During the past 12 years, many tools have been developed to help make testing easier. However, it’s
essential to learn about the past and the tools we had previously before diving into the set of tools we
have now. It’s important to notice that the tools tend to evolve as the process evolves.
The term "debugging" was made popular by Admiral Grace Murray Hopper, a woman who was working
on a Mark II computer at Harvard University in August 1945. When her colleagues discovered a moth
stuck in a relay, and realized it was causing issues with the system, she made the comment that they were
“debugging the system.”
The sUnit Testing Framework
It is said that imitation is the sincerest form of flattery; that said, most modern unit testing frames are
derived from the principals set forth in the sUnit testing framework primary developed by Kent Beck in
1998. Below are just a small number of frameworks which have built upon Beck’s original concept.
sUnit. Created by Kent Beck for Small Talk, sUnit has become known as the “mother of testing
frameworks.” Many popular unit testing frameworks such as jUnit and nUnit are ports of sUnit.
The key concepts of the sUnit testing framework were originally published in Chapter 30 of Kent
Beck’s Guide to Better Smalltalk (Cambridge University Press, 1998).
jUnit. A port of sUnit for Java created by Kent Beck and Erich Gamma in late 1998. jUnit helped
bring automated unit testing into the main stream.
nUnit. In late 2000, all the great things about jUnit were ported to .NET allowing C# developers
to write jUnit style unit tests against their C# code.
qUnit. This is the unit test running for the jQuery Framework. In May 2008, qUnit was pro-
moted to a top-level application in the jQuery project. qUnit allows web developers to run unit
tests on JavaScript.
96640c01.indd 2 9/25/09 7:18:27 AM