Page 202 -
P. 202

tests will uncover a defect that the senior managers decide must be fixed before the soft-
                          ware is shipped. This is why testing tasks are necessary, and why the project manager
                          must fight for time to finish testing the software.
                          Testing tasks cannot be cut any more than programming tasks can. Yet, when the project
                          is late, senior managers and project stakeholders will often put a great deal of pressure on
                          the project manager to do exactly that. Sometimes they will insist that regression tests be
                          replaced with smoke tests (or cut entirely); other times, they will cut out environments,
                          performance tests, or other activities that are critical to ensuring the software functions. It
                          is the project manager’s responsibility to resist this and assure the quality of the software.

                          One way that software quality is often compromised through time pressure is by putting
                          pressure on testers to make overly aggressive estimates, and then to work overtime to
                          meet those estimates. This happens in testing more than it happens anywhere else in a
                          software organization, simply by virtue of the fact that testing activities are the last ones
                          performed on the project, and the fact that few people really understand what it is that
                          testers do. The key to avoiding this is for a project manager to use a repeatable estimation
                          process (see Chapter 3), to resist the urge to cut quality tasks from the schedule, and to
                          constantly stand up for the fact that the time that was estimated is what will actually be
                          needed to test the software.
                          For example, if it’s known that one iteration of regression tests takes three weeks, and the
                          stakeholders choose during triage to repair defects and cut a new build, then it must be
                          made clear to them that they are making the decision to spend three more weeks testing
                          the software. There are two options at that point: either release the software as is, or bite
                          the bullet and take the three weeks. One effective way to explain this is to point out that
                          had the last iteration of regression testing not been done, the team would not even know
                          about the defects that they want to fix, so not testing is a big risk.

                          Another common misguided request is that testers cut out any test cases that are not seen
                          as representative of typical user behavior. For example, in the test case example in
                          Table 8-2, the five bullet points in the requirement being tested require at least five differ-
                          ent test cases. A manager putting pressure on the tester may insist that only one of the
                          tests for that requirement be executed. Yet that manager would never go to the program-

                          mer and suggest that they only implement one of the five bullets. (This is especially likely
                          with negative cases and boundary cases.) The bottom line is that if a feature is important
                          enough to build, then it’s important enough to make sure that it works properly.

                          The project manager must fight for the estimated time frame. If the estimates are overly
                          aggressive and the testers need to work overtime to meet their own goal, that’s fine. The
                          testers should not have agreed to the inaccurate estimates. However, it’s important not to
                          routinely undercut the tester. It’s very common for a manager under pressure to require, for
                          example, that the testers come in on weekends to meet a deadline, or to arbitrarily cut down
                          the amount of time that it takes to run a regression test. This is unfair. It’s no different than
                          telling a programmer who needs three weeks to build a feature that she only has two.
                          Something will give and, in either of these cases, it will lead to problems with the software.


                   194  CHAPTER EIGHT
   197   198   199   200   201   202   203   204   205   206   207