断断续续读完了《Software Testing》by Ron Patton,现在重新复习一下每章后面的问题,使自己能进一步吸收,也希望对大家能有所帮助。
Part one: The big Picture Chapter 1 1、In the year 2000 bug example,did Dave do anything wrong? A1:If Dave was a good programmer he would have questioned the "obvious" oversight and not just programmed his software to only work through 1999.Because he didn't, a software tester should have tested for and found the bug. The team could have then decided whether to fix it. 2、Ture or False:It's important what term your company or team calls a problem in its software. A2:False.It's not important,but the term used often reflects the personality of the team and how they approach the finding,reporting,and fixing of the problems. 3、What's wrong with just testing that a program works as expected? A3: At most, that's only half the testing problem.Users don't always follow the rules,and testers need to prove out what happens when they don't.Also, if testers don't approach their testing with a gotta-break -it attitude,they will miss bugs. 4、How much more does it cost to fix a bug found after the product is released than it does from the very start of the project? A4: From 10 to 100 times or even higher! 5:What's the goal of a software tester? A5:The goal of a software tester is to find bugs,find them as early as possible,and make sure them get fixed. 6:Ture or False: A good tester relentlessly strives for perfection. A6:False.A good tester knows when perfection isn't attainable and when "good enough" is reached. 7:Give several reasons why the product specification is usually the largest source of bugs in a software product. A7:Often a spec isn't even writtenremember, if you can't say it ,you can't do it. Other reasons are that the spec exists but it isn't thorough, it's constantly changing,or it's not communicated to the rest of the development team.
Chapter 2 The Software Development Process 1、Name several tasks that should be performed before a programmer starts writing the first line of code. A1:The development team needs to understand the customer requirements and difine the features in a product spec. A schedule should be created so team members know what work has been completed and what work remains to be done. The should be architected and designed, and the test team should start planning their work. 2、What disadvantage is there to having a formal,locked-down specification? A2:There's no flexibility to adjust the software if the customer's needs change or the market moves in a different direction while the software is being developed. 3、What is the best feature of the big-bang model of software development? A3: It's simple. Period. 4、When using the code-and-fix model, how do you know when the software is ready to release? A4: There's no real exit criteria for the code-and-fix process except for when someone,or the schedule,says that it's time to stop. 5: Why can the waterfall method be difficult to use? A5:Just like with salmon,it's difficult to swim upstream. Each step is a discrete,standalone process that follows the one before it. If you get to the end and find that something should have happended further up,it's too late to go back. 6:Why would a software tester like the spiral model better than the others? A6: they involved very early in the development process and have the opportunity to find problems early,saving the project time and money.
Chapter 3: The Realities of Software Testing 1:Given that it's impossible to test a program completely, what information do you think should be considered when deciding whether it's time to stop testing? A1: There is no universal answer for when to stop testing. Each project is different. Examples of the information that might go into the decision would be: Are lots of bugs still being found? Is the team satisfied with the number and types of tests that have been run? Have the reported bugs been evaluated to decide which ones to fix and which ones not to fix? Has the product been validated against the user's requirments? 2:Start the windows Calculator. Type 5,000-5=(the comma is important).Look at the result. Is this a bug? Why or Why not? A2: The answer you get is 0,not 4995 as you would expect. The reason is that the ,(comma) was automatically converted to a .(decimal point). What you calculated was 5.000-5=0, not 5,000-5=4995. To detemine if this is a bug,verify this operation against the product specification. It might state that commas are to be converted to decimal point. You should also validate this "feature" against the user requirements. Find out if most users want this to occur or if it would be confusing. 3、if you were testing a simulation game such as a flight simulator or a city simulator, what do you think would be more important to test its accuracy or its precision? A3: The purpose of a simulation game is to put the player into an artifical environment that mimics a real-world scenario. Flying a flight simulator should look and feel like flying a real plane. Running a city simulator should reflect what happens in a real city. What's most important is how accurately the simulator reflects reality. Does the plane fly like a Boeing 757 or Piper Cub? Does the skyline of the city look like the city it represents? Once you know the software is accurate, you can then test for precision. This is where you start caring about whether the windows in the buildings are in their precise locations and whether the plane movement perfectly maps to the joystick motion. 4、Is it possible to have a high-quality and low-reliability product? What might an example be? A4:Yes, but it depends on the customer's expectations for quality. Many people buy high-performance sports cars that are considered to be high quality for their acceleration and speed, their style, and their fit and finish. Often these same cars are notoriously unreliable, frequnently breaking down and being expensive to expensive to repair. The owners have their own perception of quality and don't see low- reliability as an important issue. 5、 Why is it impossible to test a program completely? A5:With any software other than the smallest and simplest program, there are too many inputs, too many outputs, and too many path combinations to fully test. Also, software specs can be subjective and be interpreted in different ways. 6、If you were testing a feature of your software on Monday and finding a new bug every hour, at what rate would you expect to find bugs on Tuesday? A6:Two axioms come into play here. The first that the number of bugs remaining is proportional to the number of bugs you've already found means that you won't come in on Tuesday and miraculously find the software to be perfect. The pesticide paradox tells you that if you continue to run the same tests over and over that you eventually won't find new and different bugs until you add more tests. Given these two axioms, you will probably continue to find bugs at the same rate or slightly less. |
|