AD--4--Design and conduct testing

2.1.4 Design and Conduct Testing
The first important issue in testing phase is to select trained testers. Although the testing
can be conduct by normal programmer; and the cost of hiring a trained tester is higher
than hiring a normal programmer, still using trained testers is more efficient and
economical. First of all, a group of trained testers might find bugs at the rate of two to
three per hour, while the same number of untrained testers found three bugs per day in
the same applications. Secondly, most of the bugs reported by the trained testers turn out
to be fixed, while many of the bugs reported by the untrained testers are returned by
developers as irreproducible. Last but not least, even with a much higher wage, it cost
less for the trained testers to find a bug than for the untrained testers to find the same bug.
Consequently, the project will use trained testers instead of normal programmers.
When it comes to the testing plan, we first find out everything there is to test by
enumerating. Then we use ranking criteria to prioritize the tests, estimate the test efforts.
Finally, we generate the most test set. As for estimate the test efforts, an important issue
is to apply adequate factors of safety. A factor of safety is a metric. It is applied to a plan
to make it more accurate. Factors of safety should be determined based on the error in the
previous estimation and then adjusted as needed. For example, a test effort was estimated
to require 14 weeks. In reality, 21 weeks were required to complete the test effort. The
estimate was low by a factor of 21/14=1.5 When the next test estimation effort takes
place, if the same or similar methods are used to make the estimate, multiply the new
estimate by a factor of 1.5, and we will get an estimate that has been adjusted to be in
keeping with reality.
Before conducting the real tests, it is necessary for the testers to specify the goals of
testing. The goal as a tester should not be break the product. Instead, it should be perform
verification and validation on the product, in other words, to verify that if the product
does what is supposed to do.
The test effort will mainly conduct system, integration and function testing, using
methods of white box testing, black box testing and others. White box testing is a method
that tests internal structures and its functionality, while black box testing tests the
functionality of an application as opposed to its internal structures.
The first step of testing strategies is to conduct unit tests. A unit is the smallest possible
testable component. Unit testing is a vital testing level. In the testing phase, the purpose
of unit tests is to make sure that each unit is working properly, which is essential for
further testing.
As the codes have been unit-tested, we conduct top-down approach in our integration
testing. The goal of integration testing is to assemble the small units into working
subsystems and get a complete system ready for system test. The reason that we use Topdown approach for integration testing is that the system is not static. It is hard to know all
the interactions going on in a group of components especially if we separately test them.
Throughout the whole testing phase, we will use Google’s well-established bug tracking
tools and metrics, which allows us to perform analysis based on several types of
measurements taken together.