Datasheet
5
Chapter 1: Preliminary Concerns
Customer Test. This is another term for an acceptance test.
System Test. The term system test is a term to indicate an “End To End” test of the system. System
tests include unit testing, security testing, GUI testing, functional testing, acceptance testing, and
accessibility testing.
Load Test. A large amount of connections are made to the website to determine if it will scale
correctly. This type of testing is to ensure that the website can handle the peak load expected
when the website is used in production without any errors or failures.
Stress Test. This is another name for a load test.
Performance Test. Performance testing measures the response of a system in normal use and
when it’s placed under load. A common metric for Web Applications is Time To First Byte
(TTFB) and Requests Per Second (RPS).
Acceptance Test. This is a formal test to indicate if a function of a software project conforms to
the specification the customer expects.
Black Box Test. A black box test is a test created without knowing the internal workings of the
feature being tested. The only information you have to base your tests on is the requirements.
White Box Test. A white box test is a test created with knowledge of the inner workings of the
code being tested. By using your internal knowledge of the system you can adapt the inputs
you use to ensure high test coverage and correctness of the system.
Regression Test. A regression test is a test created to ensure that existing functionality was
working correctly previously and is still working as expected.
Testing Myths
Some developers are required to explain every development practice and tool they’ll need to create a piece
of software to their managers; it’s this manager who will then decide if the practice or tool is prudent for
use. These managers are often developers that have been promoted, and their focus is no longer on devel-
opment but managing. Former developers do not always make for the best managers; many times they
don’t keep their development skills sharp, and they can sometimes deny the use of new techniques and
tools just because it’s not the way that they do things. These situations do not make sense and are often
hard for developers to handle, especially junior developers who are very eager to learn the latest and
greatest technology.
Unit testing frameworks have been mainstream for roughly 10 years, but still, many managers fight
developers who ask to implement unit testing frameworks. This section explores some of the popular
myths around testing and helps give advice to the developer who is having issues implementing a testing
regiment into their organization.
Testing Is Expensive
Frederick Brooks stated in his book of essays, The Mythical Man-Month, that “A bug found in the field
can easily cost one thousand times more to resolve then one found in development.”
If this is an argument that your manager uses, create a test to verify the functionality of the method
that contains the bug and use it the next time the bug occurs — and time yourself. Then, write the fix
96640c01.indd 5 9/25/09 7:18:27 AM