Black Box Software Testing Part 15. Testing User Documentation Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 527 Copyright Notice These slides are distributed under the Creative Commons License. In brief summary, you may make and distribute copies of these slides so long as you give the original author credit and, if you alter, transform or build upon this work, you distribute the resulting work only under a license identical to this one. For the rest of the details of the license, see http://creativecommons.org/licenses/bysa/2.0/legalcode. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 528 Documentation is an Express Warranty A warranty is a statement of fact, either articulated or implied by law, respecting the quality or character of the goods to be sold. Under the Uniform Commercial Code an express warranty is: 2-313(a) Any affirmation of fact or promise made by the seller to the buyer which relates to the goods and becomes part of the basis of the bargain . . . 2-313(b) Any description of the goods which is made part of the basis of the bargain . . . 2-313(c) Any sample or model which is made part of the basis of the bargain. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 529 Documentation is an Express Warranty You can’t disclaim an express warranty -you are accountable for your claims. Uniform Commercial Code 2-316 (1): Words or conduct relevant to the creation of an express warranty and words or conduct tending to negate or limit warranty shall be construed whenever reasonable as consistent with each other; but . . . negation or limitation is inoperative to the extent that such construction is unreasonable. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 530 Black Box Testing: Testing Documentation Doc testing is important because: • Errors in the manual increase risks of legal liability. • Testing the documentation improves the reliability of the program. • The documentation may be your mainstream test plan and your most up-to-date specification. • Confusion in the manual reflects confusion in the program’s design. Refer to Testing Computer Software, Chapter 10 Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 531 Testing Documentation: What to Test • Verify every statement of fact and every reasonable implication • Check the placement and accuracy of figures • Audit the completeness of the manual (check that every feature is documented) Track errors in the documentation in a way that is normal for the Doc group. This probably doesn’t involve the bug tracking system (but put code/doc mismatches there). If you give back marked up manuscripts, keep photocopies of your markups. Check your corrections against the next circulating draft of the manual. On average, you will cover 4 pages per hour in a reasonably stable program. Your second pass will go more quickly because the program is in better shape, but it will still take several minutes per page because you will actually test every page. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 532 Testing Documentation: Things to Say • Your role is not editorial: you are not the • • • • • authority on style and layout. Keep your tone non-judgmental. Point out upcoming changes (design changes, new error handling, data structures, etc.) that might affect the manual. Mark these in appropriate sections on the manuscript. Name experts or references to consult when the writer is confused. Suggest examples. Point to useful existing data files (for examples). Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 533 Testing Documentation: Things to Say • When appropriate, you might do some writing. The writer might or might not use what you have written. You might write in two ways: » words that you think belong in the manual “as is” (you’re saying, “Here, say it like this and it will be right.”) » explanations that are background material for the writer. Maybe a rough draft of what she’ll write. • Note: the final review is a meeting just a few days before the book goes to the printer. If you have many small-detail late comments, offer the writer a chance to review them privately with you a few days before the review. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 534 Documentation Testing: On-Line Help • • • • • • • • • • • • • Contents of the help Cross-reference jumps Glossary lookups Browse sequences Graphic hotspots Graphic display - color or resolution Window size, e.g. compile at 1024x768 and display at 640x480 Procedure sequences Balloon help / tool tips Index Search Context jumps Error messages Refer to Testing Copyright © 1994-2004 Cem Kaner and SQM, LLC. Computer Software, Chapter 10 All Rights Reserved. 535 Publisher Liability for Content-Related Errors Winter v. G.P. Putnam’s Sons, 938 F.2d 1033, (9th Circuit) 1991. Winter became seriously ill from picking and eating mushrooms after relying on The Encyclopedia of Mushrooms, published by Putnam. Putnam did not verify the material in the book and did not intentionally include the error. • Putnam was not liable for errors in the book. • Noted that Jeppesen cases consistently held publisher liable for information error when information published was to be used as a tool. • The court said that a software publisher might be liable for program that does not work as intended. ALM v. Van Nostrand Reinhold 480 NE.2d 1263, 1985. The Making of Tools. Plaintiff used it, and a tool shattered, causing injury. VNR not liable, but author of the book might be. Liability might also attach if the program provides professional services (such as tax preparation) and gives bad information. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 536 Warranties & Misrepresentations: What Must You Test? • Advertisements • Published specifications • Interviews • Box copy • Fax-backs • Manual • Help system • Warranty • Web pages • Readme • Advice given to customers on Internet, CompuServe or AOL Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 537 Black Box Software Testing Part 16. Managing Automated Software Testing Several of these slides were developed by Doug Hoffman or in co-authorship with Doug Hoffman for a course that we co-taught on software test automation. Many of the ideas in this presentation were presented and refined in Los Altos Workshops on Software Testing. LAWST 5 focused on oracles. Participants were Chris Agruss, James Bach, Jack Falk, David Gelperin, Elisabeth Hendrickson, Doug Hoffman, Bob Johnson, Cem Kaner, Brian Lawrence, Noel Nyman, Jeff Payne, Johanna Rothman, Melora Svoboda, Loretta Suzuki, and Ned Young. LAWST 1-3 focused on several aspects of automated testing. Participants were Chris Agruss, Tom Arnold, Richard Bender, James Bach, Jim Brooks, Karla Fisher, Chip Groder, Elizabeth Hendrickson, Doug Hoffman, Keith W. Hooper, III, Bob Johnson, Cem Kaner, Brian Lawrence, Tom Lindemuth, Brian Marick, Thanga Meenakshi, Noel Nyman, Jeffery E. Payne, Bret Pettichord, Drew Pritsker, Johanna Rothman, Jane Stepak, Melora Svoboda, Jeremy White, and Rodney Wilson. I’m indebted to James Whittaker, James Tierney, Harry Robinson, and Noel Nyman for additional explanations of stochastic testing. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 538 Overview • About Automated Software Testing • The regression testing paradigm • 19 common mistakes • 27 questions about requirements • Planning for short-term ROI • 6 sometimes successful architectures • Conclusions from LAWST • Breaking away from the regression paradigm andSQM, SQM,LLC. LLC. Copyright © 1994-2004 Cem Kaner and All Rights Reserved. 539 Overview In the mass-market software world, many efforts to automate testing have been expensive failures. Paradigms that dominate the Information Technology and DoDdriven worlds don’t apply well to the mass-market paradigm. Our risks are different. Solutions that are highly efficient for those environments are not at all necessarily good for mass-market products. The point of an automated testing strategy is to save time and money. Or to find more bugs or harder-to-find bugs. The strategy works if it makes you more effective (you find better and more-reproducible bugs) and more efficient (you find the bugs faster and cheaper). I wrote a lot of test automation code back in the late 1970’s and early 1980’s. (That’s why WordStar hired me as its Testing Technology Team Leader when I came to California in 1983.) Since 1988, I haven’t written a line of code. I’ve been managing other people, and then consulting, seeing talented folks succeed or fail when confronted with similar problems. I’m not an expert in automated test implementation, but I have strengths in testing project management, and how that applies to test automation projects. That level of analysis--the manager’s view of a technology and its risks/benefits as an investment--is the point of this section. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 540 About Automated Testing Source of test cases • Old • Intentionally new • Random new Size of test pool • Small • Large • Exhaustive Serial dependence among tests • Independent • Sequence is relevant andSQM, SQM,LLC. LLC. Copyright © 1994-2004 Cem Kaner and All Rights Reserved. 541 About Automated Testing Evaluation strategy • Comparison to saved result • Comparison to an oracle • Comparison to a computational or logical model • Comparison to a heuristic prediction. (NOTE: All oracles are heuristic.) • Crash • Diagnostic • State model andSQM, SQM,LLC. LLC. Copyright © 1994-2004 Cem Kaner and All Rights Reserved. 542 Issues Faced in A Typical Automated Test • What is being tested? • How is the test set up? • Where are the inputs coming from? • What is being checked? • Where are the expected results? • How do you know pass or fail? andSQM, SQM,LLC. LLC. Copyright © 1994-2004 Cem Kaner and All Rights Reserved. 543 The “Complete” Oracle Test Inputs Precondition Data Precondition Program State Test Results Test Results Test Oracle System Under Test Environmental Inputs Postcondition Data Postcondition Data Postcondition Program State Postcondition Program State Environmental Results Environmental Results Reprinted with permission of Doug Hoffman andSQM, SQM,LLC. LLC. Copyright © 1994-2004 Cem Kaner and All Rights Reserved. 544 Automated Software Test Functions • • • • • • • • • • • Automated test case/data generation Test case design from requirements or code Selection of test cases Able to run two or more specified test cases Able to run a subset of all the automated test cases No intervention needed after launching tests Automatically sets-up and/or records relevant test environment Runs test cases Captures relevant results Compares actual with expected results Reports analysis of pass/fail andSQM, SQM,LLC. LLC. Copyright © 1994-2004 Cem Kaner and All Rights Reserved. 545 Characteristics of “fully automated” tests • A set of tests is defined and will be run together. • No intervention needed after launching tests. • Automatically sets-up and/or records relevant test environment. • Obtains input from existing data files, random generation, or another defined source. • Runs test exercise. • Captures relevant results. • Evaluates actual against expected results. • Reports analysis of pass/fail. Not all automation is full automation. Partial automation can be very useful. andSQM, SQM,LLC. LLC. Copyright © 1994-2004 Cem Kaner and All Rights Reserved. 546 Capabilities of Automation Tools Automated test tools combine a variety of capabilities. For example, GUI regression tools provide: • capture/replay for easy manual creation of tests • execution of test scripts • recording of test events • compare the test results with expected results • report test results Some GUI tools provide additional capabilities, but no tool does everything well. andSQM, SQM,LLC. LLC. Copyright © 1994-2004 Cem Kaner and All Rights Reserved. 547 Capabilities of Automation Tools Here are examples of automated test tool capabilities: • Analyze source code for bugs • Design test cases • Create test cases (from requirements or code) • Generate test data • Ease manual creation of test cases • Ease creation/management of traceability matrix • Manage testware environment • Select tests to be run • Execute test scripts • Record test events • Measure software responses to tests (Discovery Functions) • Determine expected results of tests (Reference Functions) • Evaluate test results (Evaluation Functions) • Report and analyze results andSQM, SQM,LLC. LLC. Copyright © 1994-2004 Cem Kaner and All Rights Reserved. 548 Tools for Improving Testability by Providing Diagnostic Support • Hardware integrity tests. Example: power supply deterioration can look like irreproducible, buggy behavior. • Database integrity. Ongoing tests for database corruption, making corruption quickly visible to the tester. • Code integrity. Quick check (such as checksum) to see whether part of the code was overwritten in memory. • Memory integrity. Check for wild pointers, other corruption. • Resource usage reports: Check for memory leaks, stack leaks, etc. • Event logs. See reports of suspicious behavior. Probably requires collaboration with programmers. • Wrappers. Layer of indirection surrounding a called function or object. The automator can detect and modify incoming and outgoing messages, forcing or detecting states and data values of interest. andSQM, SQM,LLC. LLC. Copyright © 1994-2004 Cem Kaner and All Rights Reserved. 549 Automation Design • Determine the goals of the automation • Determine the capabilities needed to achieve those goals • Select automation components • Set relationships between components • Identify locations of components and events • Sequence test events • Evaluate and report results of test events. andSQM, SQM,LLC. LLC. Copyright © 1994-2004 Cem Kaner and All Rights Reserved. 550 The Regression Testing Paradigm The most commonly discussed automation approach: • create a test exercise • run it and inspect the output • if the program fails, report a bug and try again later • if the program passes the test, save the resulting outputs • in future tests, run the program and compare the output to the saved results. Report an exception whenever the current output and the saved output don’t match. andSQM, SQM,LLC. LLC. Copyright © 1994-2004 Cem Kaner and All Rights Reserved. 551 Is this Really Automation? Analyze product -human Design test -human Run test 1st time -human Evaluate results -human Report 1st bug -human Save code -human Save result -human Document test -human Re-run the test -MACHINE Evaluate result -MACHINE (plus human if there’s any mismatch) Maintain result -human andSQM, SQM,LLC. LLC. Copyright © 1994-2004 Cem Kaner and Woo-hoo! We really get the machine to do a whole lot of our work! (Maybe, but not this way.) All Rights Reserved. 552 Common Mistakes about Test Automation The paper (Avoiding Shelfware) lists 19 “Don’ts.” For example, Don’t expect to be more productive over the short term. • The reality is that most of the benefits from automation don’t happen until the second release. • It takes 3 to 10+ times the effort to create an automated test than to just manually do the test. Apparent productivity drops at least 66% and possibly over 90%. • Additional effort is required to create and administer automated test tools. andSQM, SQM,LLC. LLC. Copyright © 1994-2004 Cem Kaner and All Rights Reserved. 553 GUI Automation is Expensive • Test case creation is expensive. Estimates run from 3-5 times the time to create and manually execute a test case (Bender) to 3-10 times (Kaner) to 10 times (Pettichord) or higher (LAWST). • You usually have to increase the testing staff in order to generate automated tests. Otherwise, how will you achieve the same breadth of testing? • Your most technically skilled staff are tied up in automation • Automation can delay testing, adding even more cost (albeit hidden cost.) • Excessive reliance leads to the 20 questions problem. (Fully defining a test suite in advance, before you know the program’s weaknesses, is like playing 20 questions where you have to ask all the questions before you get your first answer.) andSQM, SQM,LLC. LLC. Copyright © 1994-2004 Cem Kaner and All Rights Reserved. 554 GUI Automation Pays off Late • GUI changes force maintenance of tests » May need to wait for GUI stablization » Most early test failures are due to GUI changes • Regression testing has low power » Rerunning old tests that the program has passed is less powerful than running new tests » Old tests do not address new features • Maintainability is a core issue because our main payback is usually in the next release, not this one. and andSQM, SQM, SQM,LLC. LLC. LLC. Copyright © 1994-2004 Cem Kaner and All Rights Reserved. 555 Test Automation is Programming Win NT 4 had 6 million lines of code, and 12 million lines of test code Common (and often vendor-recommended) design and programming practices for automated testing are appalling: • Embedded constants • No modularity • No source control No documentation • No requirements analysis • No wonder we fail Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 556 Requirements Analysis Automation requirements are not just about the software under test and its risks. To understand what we’re up to, we have to understand: • Software under test and its risks • The development strategy and timeframe for the software under test • How people will use the software • What environments the software runs under and their associated risks • What tools are available in this environment and their capabilities • The regulatory / required recordkeeping environment • The attitudes and interests of test group management. • The overall organizational situation andSQM, SQM,LLC. LLC. Copyright © 1994-2004 Cem Kaner and All Rights Reserved. 558 Requirements Analysis Requirement: “Anything that drives design choices.” The paper (Avoiding Shelfware) lists 27 questions. For example, Will the user interface of the application be stable or not? • Let’s analyze this. The reality is that, in many companies, the UI changes late. • Suppose we’re in an extreme case. Does that mean we cannot automate cost effectively? No. It means that we should do only those types of automation that will yield a fast return on investment. andSQM, SQM,LLC. LLC. Copyright © 1994-2004 Cem Kaner and All Rights Reserved. 559 You Can Plan for Short Term ROI • Smoke testing • Configuration testing • Variations on a theme • Stress testing • Load testing • Life testing • Performance benchmarking • Other tests that extend your reach andSQM, SQM,LLC. LLC. Copyright © 1994-2004 Cem Kaner and All Rights Reserved. 560 Six Sometimes-Successful Automation Architectures • Quick & dirty • Equivalence testing • Framework • Data-driven • Application-independent data-driven • Real-time simulator with event logs andSQM, SQM,LLC. LLC. Copyright © 1994-2004 Cem Kaner and All Rights Reserved. 561 Quick and Dirty • Smoke tests • Configuration tests • Variations on a theme • Stress, load, or life testing andSQM, SQM,LLC. LLC. Copyright © 1994-2004 Cem Kaner and All Rights Reserved. 562 Equivalence Testing A/B comparison Random tests using an oracle Regression testing is the weakest form andSQM, SQM,LLC. LLC. Copyright © 1994-2004 Cem Kaner and All Rights Reserved. 563 Framework-Based Architecture Frameworks are code libraries that separate routine calls from designed tests. • modularity • reuse of components • hide design evolution of UI or tool commands • partial salvation from the custom control problem • independence of application (the test case) from user interface details (execute using keyboard? Mouse? API?) • important utilities, such as error recovery For more on frameworks, see Linda Hayes’ book on automated testing, Tom Arnold’s book on Visual Test, and Mark Fewster & Dorothy Graham’s book “Software Test Automation.” andSQM, SQM,LLC. LLC. Copyright © 1994-2004 Cem Kaner and All Rights Reserved. 564 Data-Driven Tests • Variables are data • Commands are data • UI is data • Program’s state is data • Test tool’s syntax is data andSQM, SQM,LLC. LLC. Copyright © 1994-2004 Cem Kaner and All Rights Reserved. 565 Data-Driven Architecture • • • • • In test automation, there are three interesting programs: • The software under test (SUT) • The automation tool that executes the automated test code • The test code (test scripts) that define the individual tests From the point of view of the automation software, • The SUT’s variables are data • The SUT’s commands are data • The SUT’s UI is data • The SUT’s state is data Therefore it is entirely fair game to treat these implementation details of the SUT as values assigned to variables of the automation software. Additionally, we can think of the externally determined (e.g. determined by you) test inputs and expected test results as data. Additionally, if the automation tool’s syntax is subject to change, we might rationally treat the command set as variable data as well. andSQM, SQM,LLC. LLC. Copyright © 1994-2004 Cem Kaner and All Rights Reserved. 566 Data-Driven Architecture In general, we can benefit from separating the treatment of one type of data from another with an eye to: • optimizing the maintainability of each • optimizing the understandability (to the test case creator or maintainer) of the link between the data and whatever inspired those choices of values of the data • minimizing churn that comes from changes in the UI, the underlying features, the test tool, or the overlying requirements andSQM, SQM,LLC. LLC. Copyright © 1994-2004 Cem Kaner and All Rights Reserved. 567 Data-Driven Architecture: Calendar Example Imagine testing a calendar-making program. The look of the calendar, the dates, etc., can all be thought of as being tied to physical examples in the world, rather than being tied to the program. If your collection of cool calendars wouldn’t change with changes in the UI of the software under test, then the test data that define the calendar are of a different class from the test data that define the program’s features. – Define the calendars in a table. This table should not be invalidated across calendar program versions. Columns name features settings, each test case is on its own row. – An interpreter associates the values in each column with a set of commands (a test script) that execute the value of the cell in a given column/row. – The interpreter itself might use “wrapped” functions, i.e. make indirect calls to the automation tool’s built-in features. andSQM, SQM,LLC. LLC. Copyright © 1994-2004 Cem Kaner and All Rights Reserved. 568 Data-Driven Architecture: Calendar Example This is a good design from the point of view of optimizing for maintainability because it separates out four types of things that can vary independently: • The descriptions of the calendars themselves come from real-world and can stay stable across program versions. • The mapping of calendar element to UI feature will change frequently because the UI will change frequently. The mappings (one per UI element) are written as short, separate functions that can be maintained easily. • The short scripts that map calendar elements to the program functions probably call sub-scripts (think of them as library functions) that wrap common program functions. Therefore a fundamental change in the program might lead to a modest change in the software under test. • The short scripts that map calendar elements to the program functions probably also call sub-scripts (think of them as library functions) that wrap functions of the automation tool. If the tool syntax changes, maintenance involves changing the wrappers’ definitions rather than the scripts. andSQM, SQM,LLC. LLC. Copyright © 1994-2004 Cem Kaner and All Rights Reserved. 569 Data Driven Architecture Note with this example: • we didn’t run tests twice • we automated execution, not evaluation • we saved SOME time • we focused the tester on design and results, not execution. Other table-driven cases: • automated comparison can be done via a pointer in the table to the file • the underlying approach runs an interpreter against table entries. » Hans Buwalda and others use this to create a structure that is natural for non-tester subject matter experts to manipulate. andSQM, SQM,LLC. LLC. Copyright © 1994-2004 Cem Kaner and All Rights Reserved. 570 Application-Independent Data-Driven • Generic tables of repetitive types • Rows for instances • Automation of exercises andSQM, SQM,LLC. LLC. Copyright © 1994-2004 Cem Kaner and All Rights Reserved. 571 Real-time Simulator • Test embodies rules for activities • Stochastic process • Possible monitors • • • • Code assertions Event logs State transition maps Oracles andSQM, SQM,LLC. LLC. Copyright © 1994-2004 Cem Kaner and All Rights Reserved. 572 Think About: • Automation is software development. • Regression automation is expensive and can be inefficient. • Automation need not be regression--you can run new tests instead of old ones. • Maintainability is essential. • Design to your requirements. • Set management expectations with care. andSQM, SQM,LLC. LLC. Copyright © 1994-2004 Cem Kaner and All Rights Reserved. 573 GUI Regression Strategies: Some Papers of Interest Chris Agruss, Automating Software Installation Testing James Bach, Test Automation Snake Oil Hans Buwalda, Testing Using Action Words Hans Buwalda, Automated testing with Action Words: Abandoning Record & Playback Elisabeth Hendrickson, The Difference between Test Automation Failure and Success Cem Kaner, Avoiding Shelfware: A Manager’s View of Automated GUI Testing John Kent, Advanced Automated Testing Architectures Bret Pettichord, Success with Test Automation Bret Pettichord, Seven Steps to Test Automation Success Keith Zambelich, Totally Data-Driven Automated Testing andSQM, SQM,LLC. LLC. Copyright © 1994-2004 Cem Kaner and All Rights Reserved. 574 Black Box Software Testing Part 17 Test Strategy Planning Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 576 Test Strategy “How we plan to cover the product so as to develop an adequate assessment of quality.” A good test strategy is: • Diversified • Specific • Practical • Defensible Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 577 Test Strategy • Makes use of test techniques. • May be expressed by test procedures and cases. • Not to be confused with test logistics, which involve the details of bringing resources to bear on the test strategy at the right time and place. • You don’t have to know the entire strategy in advance. The strategy can change as you learn more about the product and its problems. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 578 Test Cases/Procedures • Test cases and procedures should manifest the test strategy. • If your strategy is to “execute the test suite I got from Joe Third-Party”, how does that answer the prime strategic questions: • How will you cover the product and assess quality? • How is that practical and justified with respect to the specifics of this project and product? • If you don’t know, then your real strategy is that you’re trusting things to work out. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 579 Diverse Half-Measures • There is no single technique that finds all bugs. • We can’t do any technique perfectly. • We can’t do all conceivable techniques. Use “diverse half-measures”-- lots of different points of view, approaches, techniques, even if no one strategy is performed completely. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 580 Heuristics from James Bach’s Test Plan Evaluation Model, www.satisfice.com 1. Look for the important problems first 2. Focus mainly on areas of potential technical risk 3. Address configuration, operation , observation, and evaluation of the product 4. Diversify test techniques and perspectives 5. Specify test data design and generation 6. Don’t just run preplanned tests 7. Test against stated and implied requirements 8. Collaborate with outside people for testing ideas Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 581 Heuristics from James Bach’s Test Plan Evaluation Model, www.satisfice.com 9. Work with developers to improve product testability 10. Highlight the non-routine, project-specific aspects of the testing strategy and the testing project 11. Use people and tools for what they do best 12. Identify dependencies in the testing schedule 13. Keep testing off the critical path for release 14. Make the feedback loop with development short 15. Learn what people outside of testing think of the product quality 16. Review all test materials Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 582 Heuristics for Test Plan Evaluation Heuristic 1. Testing should be optimized to find important problems fast, rather than attempting to find all problems with equal urgency. Basis for the Heuristic The later in the project that a problem is found, the greater the risk that it will not be safely fixed in time to ship. The sooner a problem is found after it is created, the lesser the risk of a bad fix. 2. Test strategy should focus most effort on areas of potential technical risk, while still putting some effort into low risk areas just in case the risk analysis is wrong. Complete testing is impossible, and we can never know if our perception of technical risk is completely accurate. 3. Test strategy should address test platform configuration, how the product will be operated, how the product will be observed, and how observations will be used to evaluate the product. Sloppiness or neglect within any of these four basic testing activities will increase the likelihood that important problems will go undetected. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 584 Heuristics for Test Plan Evaluation Heuristic Basis for the Heuristic 4. Test strategy should be diversified in terms of test techniques and perspectives. Methods of evaluating test coverage should take into account multiple dimensions of coverage, including structural, functional, data, platform, operations, and requirements. No single test technique can reveal all important problems in a linear fashion. We can never know for sure if we have found all the problems that matter. Diversification minimizes the risk that the test strategy will be blind to certain kinds of problems. Use diverse half-measures to go after low-hanging fruit. 5. The test strategy should specify how test data will be designed and generated. It is common for the test strategy to be organized around functionality or code, leaving it to the testers to concoct test data on the fly. Often that indicates that the strategy is too focused on validating capability and not focused enough on reliability. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 585 Heuristics for Test Plan Evaluation Heuristic Basis for the Heuristic 6. Not all testing should be prespecified in detail. The test strategy should incorporate reasonable variation and make use of the testers’ ability to use situational reasoning to focus on important, but unanticipated problems. A rigid test strategy may make it more likely that a particular subset of problems will be uncovered, but in a complex system it reduces the likelihood that all important problems will be uncovered. Reasonable variability in testing, such as that which results from interactive, exploratory testing, increases incidental test coverage, without substantially sacrificing essential coverage. 7. It is important to test against implied requirements—the full extent of what the requirements mean, not just what they say. Testing only against explicit written requirements will not reveal all important problems, since defined requirements are generally incomplete and natural language is inherently ambiguous. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 586 Heuristics for Test Plan Evaluation Heuristic Basis for the Heuristic 8. The test project should promote collaboration with all other functions of the project, especially developers, technical support, and technical writing. Whenever possible, testers should also collaborate with actual customers and users, in order to better understand their requirements. Other teams and stakeholders often have information about product problems or potential problems that can be of use to the test team. Their perspective may help the testers make a better analysis of risk. Testers may also have information that is of use to them. 9. The test project should consult with development to help them build a more testable product. The likelihood that a test strategy will serve its purpose is profoundly affected by the testability of the product. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 587 Heuristics for Test Plan Evaluation Heuristic Basis for the Heuristic 10. A test plan should highlight the non-routine, project-specific aspects of the test strategy and test project. Virtually every software project worth doing involves special technical challenges that a good test effort must take into account. A completely generic test plan usually indicates a weak test planning process. It could also indicate that the test plan is nothing but unchanged boilerplate. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 588 Heuristics for Test Plan Evaluation Heuristic Basis for the Heuristic 11. The test project should use humans for what humans do well and use automation for what automation does well. Manual testing should allow for improvisation and on the spot critical thinking, while automated testing should be used for tests that require high repeatability, high speed, and no judgment. Many test projects suffer under the false belief that human testers are effective when they use exactingly specified test scripts, or that test automation duplicates the value of human cognition in the test execution process. Manual and automated testing are not two forms of the same thing. They are two entirely different classes of test technique. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 589 Heuristics for Test Plan Evaluation Heuristic Basis for the Heuristic 12. The test schedule should be represented and justified in such a way as to highlight any dependencies on the progress of development, the testability of the product, time required to report problems, and the project team’s assessment of risk. A monolithic test schedule in a test plan often indicates the false belief that testing is an independent activity. The test schedule can stand alone only to the extent that the product the highly testable, development is complete, and the test process is not interrupted by the frequent need to report problems. 13. The test process should be kept off of the critical path to the extent possible. This can be done by testing in parallel with development work, and finding problems worth fixing faster than the developers fix them. This is important in order to deflect pressure to truncate the testing process. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 590 Heuristics for Test Plan Evaluation Heuristic Basis for the Heuristic 14. The feedback loop between testers and developers should be as tight as possible. Test cycles should be designed to provide rapid feedback to developers about recent additions and changes they have made before a full regression test is commenced. Whenever possible testers and developers should work physically near each other. This is important in order to maximize the efficiency and speed of quality improvement. It also helps keep testing off of the critical path. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 591 Heuristics for Test Plan Evaluation Heuristic Basis for the Heuristic 15. The test project should employ channels of information about quality other than formal testing in order to help evaluate and adjust the test project. Examples of these channels are inspections, field testing, or informal testing by people outside of the test team. By examining product quality information gathered through various means beyond the test team, blind spots in the formal test strategy can be uncovered. 16. All documentation related to the test strategy, including test cases and procedures, should be undergo review by someone other than the person who wrote them. The review process used should be commensurate with the criticality of the document. Tunnel-vision is the great occupational hazard of testing. Review not only helps to reveal blind spots in test design, but it can also help promote dialog and peer education about test practices. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 592 Evaluating Your Plan: Context Free Questions Based on: The CIA’s Phoenix Checklists (Thinkertoys, p. 140) and Bach’s Evaluation Strategies (Rapid Testing Course notes) • Can you solve the whole problem? Part of the problem? • What would you like the resolution to be? Can you picture it? • How much of the unknown can you determine? • What reference data are you using (if any)? • What product output will you evaluate? • How will you do the evaluation? • Can you derive something useful from the information you have? • Have you used all the information? • Have you taken into account all essential notions in the problem? • Can you separate the steps in the problem-solving process? Can you determine the correctness of each step? • What creative thinking techniques can you use to generate ideas? How many different techniques? • Can you see the result? How many different kinds of results can you see? • How many different ways have you tried to solve the problem? Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 593 Evaluating Your Plan: Context Free Questions • • • • • • • • • • • What have others done? Can you intuit the solution? Can you check the results? What should be done? How should it be done? Where should it be done? When should it be done? Who should do it? What do you need to do at this time? Who will be responsible for what? Can you use this problem to solve some other problem? What is the unique set of qualities that makes this problem what it is and none other? • What milestones can best mark your progress? • How will you know when you are successful? • How conclusive and specific is your answer? Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 594 Black Box Software Testing Part 18. Planning Testing Projects Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 596 Planning and Negotiating the Testing Project • The notes here focus on your process of negotiating resources and quality level. • Please see Testing Computer Software, Chapter 13 for a detailed discussion of planning and testing tasks across the time line of the project. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 597 Early Planning (1) Things you can do very early in the project: • Analyze any requirements documents for testability, ambiguity. • Facilitate inspection and walkthrough meetings. • Prepare a preliminary list of hardware configurations and start arranging for loaners. • Ask for testing support code, such as debug monitors, memory meters, support for testpoints. • Ask for a clear error handling message structure. • Discuss the possibility of code coverage measurement (which will require programmer support). Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 598 Early Planning (2) Things you can do very early in the project: • Prepare for test automation. This involves reaching agreements in principle on breadth of automation and automation support staffing level. • Order automation support equipment. • Order external test suites. • Learn about the product’s market and competition. • Evaluate coding tools that facilitate automation (e.g. test 3rd party custom controls against MS-Test) Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 599 First Principles in Planning • You can’t nail everything down. • You will face difficult prioritization choices, and many constraints will be out of your direct control. • You can influence several constraints by opening up your judgments to other stakeholders in the company. This is more than getting a sign-off. • Reality is far more important than your ability to cast blame. • Your task is to manage project-level risks. This includes risks to the project’s cost, schedule, and interpersonal dynamics, as well as to the product’s feature set and reliability. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 600 Deciding Your Depth of Testing You have three key objectives: 1 Achieve a uniform and well-understood minimum level of testing. 2 Be explicit about the level of testing for each area: » mainstream » exploratory » formally planned » structured regression 3 Reach corporate agreement on the level of testing for each area Just like bug deferrals, depth-of-testing restrictions must rest on sound business decisions. This should not be your decision to make. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 602 Identify the Testing Tasks Develop a project task list with your staff. Remember, you are looking for realism in estimates of complexity, difficulty, and time. • Make the listing and estimation process public, and allow public comment. • Identify all potential sources of information. • List all main functional areas, and all other cross-functional approaches that you will take in testing the program. • List every task that appears to need more than 1/2 day (Probably you will do this by a group brainstorming session on flipcharts, listing sources on one chart. Gather the sources. List areas and approaches on a few charts. Make one chart for each area of work, and list tasks for each chart. Tentatively assign times to each task, possibly by a museum tour.) Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 603 Estimate the Project Time 1 Assign time estimates to each task. Invite programmers, marketers, and project managers to walk through the charts and provide their own estimates. Explore the bases of differences. You might have underestimated a task’s complexity. Or you might be seeing a priority disagreement. Or wishful thinking. 2 Make your best-estimate task list. Provide the time needed to achieve formal, planned testing for each area. Include estimates for structured regression for key areas. This number is probably absurdly huge. 3 Add to the list your suggestions for time-cuts to guerrila-level and mainstream-level testing for selected areas. 4 Circulate your lists to all stakeholders, call one or more planning meetings, and reach agreements on the level of testing for each area. Keep cutting tasks and/or adding staff until you reach an achievable result. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 604 Estimate the Project Time Don’t forget: • Budget for meetings and administrative overhead (10-30%). • Budget for bug regression (5-15%). • Budget for down time. • Budget for holidays and vacations. • Never develop a budget that relies on overtime. Leave the overtime free for discretionary additional work by the individual tester. • Don’t let yourself be bullied or embarrassed, and don’t bully or embarrass your staff, into making underestimates. To achieve a result, insist on cutting tasks, adding staff, or finding realistic ways to improve productivity. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 605 Identify Dependencies & Milestones You can’t start reviewing the manual until you receive it, right? List these dependencies and point out, in every project meeting, what is due to you that is not yet delivered and holding you up. Try to reach verifiable, realistic definitions for each milestone. For example, if “gamma” is 6 weeks before release, the product can’t have more than 6 weeks of schedule risk at gamma. Negotiate a definition. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 606 Monitor Progress • Put the tasks and agreed-to durations on a timeline and review progress of all staff every week. • When prerequisite materials aren’t provided, find other tasks to do instead. When you can’t meet the schedule, due to absent materials, publish new estimates. • When design changes invalidate your estimates, publish new estimates. • If you’re falling consistently behind (e.g. due to underestimated overhead), publish the problem and ask for fewer tasks, more staff, or some other realistic solution. • If one of your staff has trouble with an area, recognize it and deal with it. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 607 Control Late-Stage Issues • Watch out for late changes. Encourage people to be cautious about late bug fixes, and supercautious about late design changes. • Provide interim and final deferred-bug reviews. • Take a final inventory of your testing coverage. • Carry out final integrity tests. • You may have to assess and reporting the reliability of the tested product. • Plan for post-release processes. Develop a release kit for product support. • Don’t forget the party. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 608 Black Box Software Testing Part 19. Metrics and Measurement Theory Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 610 We Aren’t Collecting Data. Capers Jones, Patterns of Software Systems Failure & Success: The number one root cause of cancellations, schedule slippages, and cost overruns is the chronic failure of the software industry to collect accurate historical data from ongoing and completed projects. This failure means that the vast majority of major software projects are begun without anyone having a solid notion of how much time will be required. Software is perhaps the only technical industry where neither clients, managers, nor technical staff have any accurate quantitative data available to them from similar projects when beginning major construction activities. . . . A result that is initially surprising but quite common across the industry is to discover that the software management community within a company knows so little about the technology of software planning and estimating that they do not even know of the kinds of tools that are commercially available. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 611 Question Imagine being on the job. Your local PBH (pointy-haired boss) drops in and asks: “So, how much testing have you gotten done?” Please write down an answer. Feel free to use fictitious numbers but (except for the numbers) try to be realistic in terms of the type of information that you would provide. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 612 How do we Measure Extent of Testing? Before we can measure something, we need some sense of what we’re measuring. It’s easy to come up with “measurements” but we have to understand the relationship between the thing we want to measure and the statistic that we calculate to “measure” it. If we want to measure the “extent of testing”, we have to start by understanding what we mean by “extent of testing.” Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 613 What is measurement? Measurement is the assignment of numbers to objects or events according to a rule derived from a model or theory. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 614 The Question is Remarkably Ambiguous Common answers are based on the: Product • We’ve tested 80% of the lines of code. Plan • We’ve run 80% of the test cases. Results • We’ve discovered 593 bugs. Effort • We’ve worked 80 hours a week on this for 4 months. We’ve run 7,243 tests. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 615 The Question is Remarkably Ambiguous Common answers are based on the: Obstacles • We’ve been plugging away but we can’t be efficient until X, Y, and Z are dealt with. Risks • We’re getting a lot of complaints from beta testers and we have 400 bugs open. The product can’t be ready to ship in three days. Quality of • Beta testers have found 30 bugs that we missed. Our regression tests seem ineffective. Testing History • At this milestone on previous projects, we had fewer than 12.3712% of the bugs found across still open. We should be at that percentage projects on this product too. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 616 A Framework for Measurement A measurement involves at least 10 factors: • Attribute to be measured » appropriate scale for the attribute » variation of the attribute • Instrument that measures the attribute » scale of the instrument » variation of measurements made with this instrument • Relationship between the attribute and the instrument • Likely side effects of using this instrument to measure this attribute • Purpose • Scope Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 617 Framework for Measurement Attribute • Extent of testing – What does that mean? Instrument • What should we count? Lines? Bugs? Test cases? Hours? Temper tantrums? Mechanism • How will increasing “extent of testing” affect the reading (the measure) on the instrument? Side Effect • If we do something that makes the measured result look better, will that mean that we’ve actually increased the extent of testing? Purpose • Why are we measuring this? What will we do with the number? Scope • Are we measuring the work of one tester? One team on one project? Is this a cross-project metrics effort? Cross-departmental research? Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 618 Simple measurement You have a room full of tables that appear to be the same length. You want to measure their lengths. You have a one-foot ruler. You use the ruler to measure the lengths of a few tables. You get: • 6.01 feet • 5.99 feet • 6.05 feet You conclude that the tables are “6 feet” long. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 619 Simple measurement (2) Note the variation • Measurement errors using the ruler • Manufacturing variation in the tables Note the rule: • We are relying on a direct matching operation and on some basic axioms of mathematics » The sum of 6 one-foot ruler-lengths is 6. » A table that is 6 ruler-lengths long is twice as long as one that is 3 ruler-lengths long. These rules don’t always apply. What do we do when we have something hard to measure? Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 620 Attributes and Instruments Length Ruler Duration Stopwatch Speed Ruler / Stopwatch Sound energy Sound level meter Loudness Sound level comparisons by humans Tester goodness ??? Bug count ??? Code complexity ??? Branches ??? Extent of testing??? ??? ----Product coverage ?? Count statements / branches tested ?? ----Proportion of bugs found ?? Count bug reports or graph bug curves?? Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 621 Surrogate measures "Many of the attributes we wish to study do not have generally agreed methods of measurement. To overcome the lack of a measure for an attribute, some factor which can be measured is used instead. This alternate measure is presumed to be related to the actual attribute with which the study is concerned. These alternate measures are called surrogate measures." Mark Johnson’s MA Thesis “Surrogates” provide unambiguous assignments of numbers according to rules, but they don’t provide an underlying theory or model that relates the measure to the attribute allegedly being measured. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 622 Consider bug counts • Do bug counts measure testers? • Do bug counts measure thoroughness of testing? • Do bug counts measure the effectiveness of an automation effort? • Do bug counts measure how near we are to being ready to ship the product? How would we know? Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 623 Bug counts and testers To evaluate an instrument that is supposed to measure an attribute, we have to ask two key questions: • What underlying mechanism, or fundamental relationship, justifies the use of the reading we take from this instrument as a measure of the attribute? If the attribute increases by 20%, what will happen to the reading? • What can we know from the instrument reading? How tightly is the reading traceable to the underlying attribute? If the reading increases by 20%, does this mean that the attribute has increased 20%. If the linkage is not tight, we risk serious side effects as people push the reading (the “measurement”) up and down without improving the underlying attribute. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 624 Bug counts and testers: mechanism? Suppose we could improve testing by 20%. This might mean that: • We find more subtle bugs that are important but that require more thorough investigation and analysis • We create bug reports that are more thorough, better researched, more descriptive of the problem and therefore more likely to yield fixes. • We do superb testing of a critical area that turns out to be relatively stable. The bug counts might even go down, even though tester goodness has gone up. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 625 Bug Counts & Testers: Side effects What if you could increase the count of reported bugs by 20%? If you reward testers for higher bug counts, won’t you make changes like these more likely? • Testers report easier-to-find, more superficial bugs • Testers report multiple instances of the same bug • Programmers dismiss design bugs as non-bugs that testers put in the system to raise their bug counts • No one will work on the bug tracking system or other group infrastructure. • Testers become less willing to spend time coaching other testers. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 626 Bug counts and extent of testing? Bugs Per Week What Is This Curve? Week Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 627 Bug counts and extent of testing Attribute • Instrument • Mechanism • Not sure. Maybe we’re thinking of percentage found of the total population of bugs in this product. Bugs found. (Variations: bugs found this week, etc., various numbers based on bug count.) If we increase the extent of testing, does that result in more bug reports? Not necessarily. Side Effect • If we change testing to maximize the bug count, does that mean we’ve achieved more of the testing? Maybe in a trivial sense, but what if we’re finding lots of simple bugs at the expense of testing for a smaller number of harder-to-find serious bugs? Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 628 Bug curves and extent of testing Attribute • We have a model of the rate at which new bugs will be found over the life of the project. Instrument • Bugs per week. A key thing that we look at is the agreement between the predictive curve and the actual bug counts. Mechanism • As we increase the extent of testing, will our bug numbers conform to the curve? Not necessarily. It depends on the bugs that are left in the product. Side Effect • If we do something that makes the measured result look better, will that mean that we’ve actually increased the extent of testing? No, no, no. See side effect discussion. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 629 Side effects of bug curves Earlier in testing: (Pressure is to increase bug counts) • Run tests of features known to be broken or incomplete. • Run multiple related tests to find multiple related bugs. • Look for easy bugs in high quantities rather than hard bugs. • Less emphasis on infrastructure, automation architecture, tools and more emphasis of bug finding. (Short term payoff but long term inefficiency.) Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 630 Side effects of bug curves Later in testing: (Pressure is to decrease new bug rate) • Run lots of already-run regression tests • Don’t look as hard for new bugs. • Shift focus to appraisal, status reporting. • Classify unrelated bugs as duplicates • Class related bugs as duplicates (and closed), hiding key data • • • • • • about the symptoms / causes of the problem. Postpone bug reporting until after the measurement checkpoint (milestone). (Some bugs are lost.) Report bugs informally, keeping them out of the tracking system Testers get sent to the movies before measurement checkpoints. Programmers ignore bugs they find until testers report them. Bugs are taken personally. More bugs are rejected. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 631 Bug curve counterproductive? Bugs Per Week Shouldn't We Strive For This ? Week Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 632 Code coverage Coverage measures the amount of testing done of a certain type. Since testing is done to find bugs, coverage is a measure of your effort to detect a certain class of potential errors: • 100% line coverage means that you tested for every bug that can be revealed by simple execution of a line of code. • 100% branch coverage means you will find every error that can be revealed by testing each branch. • 100% coverage should mean that you tested for every possible error. This is obviously impossible. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 633 Benefits of coverage Before I attack coverage measures, let me acknowledge that they are often useful. • Many projects achieve low statement coverage, as little as 2% at one well-known publisher that had done (as measured by tester-hours) extensive testing and test automation. The results from checking statement coverage caused a complete rethinking of the company’s automation strategy. • Coverage tools can point to unreachable code or to code that is active but persistently untested. Coverage tools can provide powerful diagnostic information about the testing strategy, even if they are terrible measures of the extent of testing. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 634 Analysis: Statement/Branch Coverage Attribute • Extent of testing – How much of the product have we tested? Instrument • Mechanism • Count statements and branches tested If we do more testing and find more bugs, does that mean that our line count will increase? Not necessarily. Example—configuration tests. Side Effect • If we design our tests to make sure we hit more lines, does that mean we’ll have done more extensive testing? Maybe in a trivial sense, but we can achieve this with weaker tests that find fewer bugs. Purpose • Not specified Scope • Not specified Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 635 Statement / branch coverage just test the flowchart You’re not testing:: » data flow » tables that determine control flow in table-driven code » side effects of interrupts, or interaction with background tasks » special values, such as boundary cases. These might or might » » » » » » not be tested. unexpected values (e.g. divide by zero) user interface errors timing-related bugs compliance with contracts, regulations, or other requirements configuration/compatibility failures volume, load, hardware faults Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 636 If we use “coverage”? • If we improve testing by 20%, does this result in a 20% increase in “coverage”? Does it necessarily result in ANY increase in “coverage”? • If we increase “coverage” by 20%, does this mean that there was a 20% improvement in the testing? • If we achieve 100% “coverage”, do we really think we’ve found all the bugs? Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 637 Side effects and “coverage” • Without a mechanism that ties changes in the attribute being measured to changes in the reading we get from the instrument, we have a “measure” that is ripe for abuse. • People will optimize what is tracked. If you track “coverage”, the coverage number will go up, but (as Marick has often pointed out) the quality of testing might go down. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 638 Having framed the problem . . . Do I have a valid, useful measure of the extent of testing? • Nope, not yet. • The development and validation of a field’s measures takes time. In the meantime, what do we do? • We still have to manage projects, monitor progress, make decisions based on what’s going on - - - so ignoring the measurement question is not an option. • Let’s look at strategies of some seasoned test managers and testers. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 639 One approach: Balanced scorecard “Coverage” measures are popular because they provide management with essential (if incorrect) feedback about the progress of testing. Rather than reporting a single not-very-representative measure of testing progress, consider adopting a “balanced scorecard” approach. Report: • • • • a small number (maybe 10) of different measures, none of them perfect, all of them different from each other, and all of them reporting progress that is meaningful to you. Together, these show a pattern that might more accurately reflect progress. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 640 One Approach: Balanced Scorecard • For 101 examples of possible coverage measures, that might be suitable for balancing, see “Software Negligence and Testing Coverage” at www.kaner.com. These are merged in a list with over 100 additional indicators of extent of testing in the paper, “Measurement Issues & Software Testing”, which is included in the proceedings. • Robert Austin criticizes even this balanced scorecard approach. It will still lead to abuse, if the measures don’t balance each other out. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 641 “Extent” as a Multidimensional Problem We developed the 8 aspects (or dimensions) of “extent of testing” by looking at the types of measures of extent of testing that we were reporting. The accompanying paper reports a few hundred “measures” that fit in the 8 categories • product coverage - plan / agreement • effort - results • obstacles - risks • quality of testing - project history ALL of them have problems Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 642 “Extent” as a Multidimensional Problem So, look at testing progress reports actually used in the field. Do we see focus on these individual measures? • Often, NOT. • Instead, we see reports that show a pattern of information of different types, to give the reader / listener a sense of the overall flow of the testing project. • Several examples in the paper, here are two of them: » Hendrickson’s component map » Bach’s project dashboard Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 643 Project Report / Component Map (Hendrickson) Page 1 --- Issues that need management attention Page 2 --- Component map Page 3 --- Bug statistics Component Test Tester Total Type Tests Planned / Created Tests Passed / Failed / Blocked Time Budget Time Projected Notes Spent for Next Build We see in this report: - Progress against plan - Obstacles / Risks - Effort - Results Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 644 Bach’s Dashboard Updated Testing Dashboard Area Effort Coverage Coverage Planned Achieved Build 11/1/00 32 Quality Comments 1345, 1410 File/edit High High Low View Low Med Med Insert Blocked Med Low 1621 We see coverage of areas, progress against plan, current effort, key results and risks, and obstacles. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 645 Suggested Lessons • Bug count metrics cover only a narrow slice of testing progress. There are LOTS of alternatives. • Simple charts can carry a lot of useful information and lead you to a lot of useful questions. • Report multidimensional patterns, rather than single measures or a few measures along the same line. • Think carefully about the potential side effects of your measures. • Listen critically to reports (case studies) of success with simple metrics. If you can’t see the data and don’t know how the data were actually collected, you might well be looking at results that were sanitized by working staff (as a side effect of the imposition of the measurement process). Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 646 Black Box Software Testing Part 20. Defect Life Cycles Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 648 Why Track Defects? • Get things that should be fixed, fixed • Capture valuable information • Identify responsibilities • Provide data about quality • Focal point for decision making Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 649 Tasks In Defect Tracking • Quickly notify appropriate people • Avoid forgetting about errors • Assure important issues get resolved • Minimize errors going unfixed due to poor communication Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 650 What Are We Tracking? • Symptoms of possible errors • Severity of possible errors • Priority for fixing errors • Events related to the reported error • No duplicate reports (for single error) • Responsibilities • Resolutions Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 651 Forces Acting on Defect Tracking • • • • • • • • • • • • Severity and Priority Features and Quality Duplicate reports Project status reporting Project management / Developer tasking Metrics Issue tracking and incident reporting Irreproducible problems Enhancement requests Design errors Deferring problems Branches and release versions Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 652 Problem of Similar Bugs You File a Defect Report You Ignor It Never Fixed It's a It Gets Fixed New Defect (Consumer Risk) Same Old Waste of Time Gets Fixed Defect (Producer Risk) Anyway Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 653 Defect Tracking Activities •Submitting •Assigning •Fixing •Verifying •Resolving •Administering Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 654 Example Defect Life Cycle Issue Perceived Entered Submitted Accepted Not an issue, Duplicate, Will not fix, Cannot reproduce, Withdrawn Assigned Fix Later Not fixed Finished Deferred It’s Later Fixed Fix verified Closed Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 655 Defect Resolutions • Common resolutions include: • Pending: the bug is still being worked on. • Fixed: the programmer says it’s fixed. Now you should check it. • Cannot reproduce: The programmer can’t make the failure • • • • • happen. You must add details, reset the resolution to Pending, and notify the programmer. Deferred: It’s a bug, but we’ll fix it later. As Designed: The program works as it’s supposed to. Need Info: The programmer needs more info from you. She has probably asked a question in the comments. Duplicate: This is just a repeat of another bug report (XREF it on this report.) Duplicates should not close until the duplicated bug closes. Withdrawn: The tester who reported this bug is withdrawing the report. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 656 Project Planning Part 21. Testing Impossible Software Under Impossible Deadlines Cem Kaner, Software Testing Analysis East, 1999 Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 658 Introduction I didn’t come up with the idea for this talk--the STAR folk suggested it as something that I might be able to provide a few insights into. After all, this is a chronic complaint among testers. . . . Well, here goes. How should you deal with a situation in which the software comes to you undocumented on a tight deadline? I think that the answer depends on the causes of the situation that you’re in. Your best solution might be technical or political or resume-ical. It depends on how you and the company got into this mess. If it is a mess. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 659 What Caused This Situation? So, let’s start with some questions about causation: • Why is the software undocumented? • Why do you have so little time? • What are the quality issues for this customer? Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 660 Why Do You Have So Little Time? A Few Possibilities • Time-to-release drives competition • Cash flow drives release date • Key fiscal milestone drives release date • Executive belief that you’ll never be satisfied, so your • • • • • schedule input is irrelevant Executive belief that testing group is out of control and needs to be controlled by tight budgets Executive belief that you have the wrong priorities (e.g. paperwork rather than bugs) Executive belief that testing is irrelevant Structural lack of concern about the end customer, or Maybe you have an appropriate amount of time. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 661 Quality Issues For This Customer? • In-house, “In-house” outsourced • External, custom • External, large package, packaged • External, mass-market, packaged • What is quality in this market? What are their costs of failure? » User groups, Software stores, Sales calls, Support calls Over the long term, a good understanding of quality in the market, and as it affects your company’s costs, will buy you credibility and authority. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 662 Political Approaches: Buying Time Many of the ideas in this section will help you if you’re dealing with a single project that is out of control. If your problem is structural (reflects policy or standard practice of the company), then some of these ideas will be counter-productive. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 663 Buying Time: Delaying a Premature Release -2 Take the high road • “I want to see knives in the chests, not in the backs.” » Trip Hawkins, founding President, Electronic Arts • Communicate honestly. • Avoid springing surprises on people. • Never sabotage the project. • Don’t become The Adversary: If you are nasty and personal, you will become a tool, to be used by someone else. And you will be disposable. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 664 Buying Time: Delaying a Premature Release -3 • • • Search for show-stoppers. If you can, dedicate a specialist within your group to this task. Circulate deferred bug lists broadly. Consider writing mid-project and late-inproject assessments of: » » » » extent of testing (by area) extent of defects (by area, with predictions about level of bugs left) deferred bugs likely out of box experience or reviewers’ experience Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 665 Buying Time: Delaying a Premature Release -4 Do regular, effective status reporting. List: • your group’s issues (deliverables due to you, things slowing or blocking your progress, etc., areas in which you are behind or ahead of plan) • project issues • bug statistics Find allies (think in terms of quality-related costs) Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 666 Signing Off on the Release? Don’t sign off. • Don’t accept the authority to sign off. • Don’t pretend to be “QA” when you (obviously) are not. • Position yourself as a technical information provider. » Publish pre-release reports that provide data on the stability of the product and the extent of completed testing » Publish a report that lays out the likely issues that will be raised by magazine reviewers (or other third parities) when they see the product » Let the people who want to ship prematurely own their responsibility. Your responsibility is to provide them with the information they need to make that decision. • Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 667 Technical Approaches • Find reference docs (you can get lots of data, • • • • even if you can’t get specs.) See the notes on this in the section on Spec-Driven testing Re-use materials across projects. Plan for exploratory testing. Do cost-effective automation. Use tools to find bugs faster » web page syntax checkers, spiders, etc. • Facilitate inspections » (Get those bugs out before they reach you.) • Cover the obvious legal issues. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 668 Copyright © 1994-2004 Cem Kaner and SQM, LLC. Non-digits Maximum possible number of chars Empty field (clear the default value) UB number of digits or chars LB number of digits or chars Negative 0 UB of value + 1 LB of value - 1 UB of value LB of value Nothing Reusable Test Matrix Numeric Input Field All Rights Reserved. 669 Group Management Approaches Can you add head count? • Will they let you? • Can you absorb them? » Do a work flow analysis to figure out what parts of each task could be split off and delegated to a newcomer. Stay organized • Use functional outlines • Or use a detailed project plan • Create and publish explicit coverage reports Get critical processes under control • Example: release management Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 670 Black Box Software Testing Part 22. Career Planning for Testers Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 672 Career Planning for Testers Tracks within testing: • • • Technical » Automation programmer » Automation architect » Systems analyst » User interface / human factors analyst / critic » Test planner » Subject matter expert » Black box tester Management » Test lead, manager, director, internal consultant, external consultant Process management » Metrics » Software process improvement specialist Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 673 Certification of Testers Several organizations will now give you “certification” in software testing or software quality, including the American Society for Quality, the Quality Assurance Institute and the British Computer Society. Should you be certified? Training / studying for certification may or may not train you in skills useful to your work. However, a certificate is a clear statement that you care about your role in the profession. In a tight market, such a certificate might improve your chances of getting a job. I think that additional courses in programming or work samples that show you have used test automation tools (download a demo version and write your own tests if necessary) are more likely to get you a good position. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 674 Career Planning for Testers Tracks outside of testing (for example): • Programming • Program management • Marketing • Technical support • Documentation • Sales • Field support • Human factors analyst • Systems analyst Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 675 Career Planning for Testers Tracks outside of testing • People move back and forth between other fields and testing. This doesn’t happen by accident. One way to prepare to move to another field is by picking tasks within testing that will educate you in tasks that are performed in that other field. • Management of multiple areas (e.g. testing and something else) can lead to much more senior management positions. Multi-functional managers are often paid much better (along with promotion faster) than managers of single areas. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 676 Career Planning for Testers: Bodies of Knowledge Based on the American Society for Quality Control’s Body of Knowledge for the Certified Software Quality Engineer, Software Testing Laboratories developed three useful documents for describing the role of testers in a black box testing organization: • The STL Body of Knowledge describes the knowledge that they expect their staff to possess. • The STL Job Ladder is an overview of the knowledge and skill of different levels of testing staff. The “Lead Track” is the track of someone headed toward management. The “Engineer Track” is the career track of an increasingly senior technical contributor. • The STL Body of Knowledge Map relates the knowledge areas in the Body of Knowledge to the seniority levels in the STL Job Ladder. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 677 Career Planning for Testers: Bodies of Knowledge The two bodies of knowledge are quite different. Both list the knowledge areas that they expect of a senior person in the field, but ST Labs’ was developed by and for their testers, whereas ASQ’s development was dominated by process improvement specialists from (or who consult to) large corporations, and includes relatively little on testing. The ST Labs approach is useful in several ways: • You can work with your staff to plan their advancement as testers. (Look for assignments that will grow their skills / knowledge in desired ways). • You can work with candidates and hires who intend to stay in testing only for a fixed time (say, a year or 18 months). They’re coming to you with a plan to move to programming, tech support, marketing, writing, something. You can review with them what they can work on within testing that will help them get and then do well in that next job. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 678 Job Seeking in an Expanding Market Part 22. Cem Kaner, J.D., Ph.D., ASQ-CQE Contact Information: kaner@kaner.com www.kaner.com (testing website) www.badsoftware.com (legal website) These slides were written in 1999 and early 2000 when the market was at its peak. Some of the advice is dated now that the market has changed, but much of it is still current, you just have to look harder for the right position. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 680 Factors to Consider • What are your responsibilities to your current employer? • What will make you happy? • How much money? • What about stock and benefits? • What should your resume look like? • How much should you stretch the truth? • How do you build a reputation? • Where can you find out about jobs? • How should you manage recruiters? • How can you learn about a company? • How can you look good in an interview? • How do you prepare to negotiate? • How do you negotiate? • Dealing with race, gender, age, etc. • How do you set yourself up for success on the job? Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 681 Responsibilities to Your Current Employer Loyalty? • • • • Many employers are trying to appeal to the loyalty of their staff, to keep them from leaving. Pardon my cynicism, but many of the same people bragged about controlling costs with layoffs when the market was tighter. There are exceptions, such as Hewlett-Packard and IBM, that undertake a strong sense of long-term responsibility to their staff. You might reasonably feel a mutual obligation to these companies. For the average company, if they want to appeal to your loyalty, maybe you should ask for some golden handcuffs. More generally • • • • Give reasonable notice, but don’t give more than your employer would give you, unless that serves other interests of yours Preserve secrets If you signed a non-compete contract, check with your lawyer In general, what goes around comes around Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 682 What Will Make You Happy? Great job markets are temporary. Take advantage of it while you’ve got it. Now is the time to think about what will make you happy, and go for it. • • • • • • • • • Money, stock, benefits, money Opportunity for specific experiences / education Opportunity for career growth Opportunity to work with exceptional people (or to be a big fish in a pond) Social value of your work Make room for your family, social life, education Location Specific allowances, support for your health Other special circumstances Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 683 Money Salary surveys • • • • Many of these are lowball estimates Few of these account for software testing as a separate area There are several at websites like careerbuilder.com Take geographic differences seriously. Practice interviews • • Interview with many companies In several of the interviews, try out high numbers to test the top of your market value. You’ll lose credibility in some of these interviews (and thus lose the job) but you’ll learn a lot for your next jobs. Employers will typically whine about how much you are about to make, during a salary negotiation. Many will lay a trip on you even if you are asking for half of the rate they expected to pay. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 684 Stock & Benefits Stock • • • Pre-IPO often means No-IPO. We hear about stock option millionaires, but most become hundredaires or thousandaires. Look for factors that make it credible that this company will go public in X timeframe: » Profitability » Consistent meeting of projections, no surprises to market » Reasonably unique niche Benefits • • The usual medical, dental, education—what is important to you? Think carefully about overvaluing swimming pool, fitness center, laundry room, dry cleaning pickup at your company. Also, if they offer all this at the office, where is your life? Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 685 Resume Tips A resume INCLUDES and EXCLUDES. Your goal is to appeal to the right sub-market. Functional vs. historical • You need buzz words but you are at risk in a functional resume that is essentially a collection of buzz words. Interviewers need history. Screeners need buzz. Create several resumes for different market segments Length (1 page, 2 page, ???) Emphasize what is special about you. Your hobby might be your strongest selling point. Verbosity is dangerous, people will tune out. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 686 Resume Tips When should you send references with your cover letter? • You are stretching to a job or are seeking work in a discriminated situation. In general, include refs if they make it substantially more likely that potential employers will interview or hire you. Write your COVER LETTER to specifically respond to the ad. If it lists “requirements” then point out the ones that you meet and the ones on the list that you don’t meet but really want to learn. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 687 Stretching the Truth? Never stretch the truth 25% of American resumes contain false data. Don’t join this 25% Think of your manager • Test managers are used to BS from others, and we don’t like it. • Probably completely intolerant of the false details, and probably has a well-developed BS-detector. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 688 How Do You Build a Reputation? • • • • • Talks at local meetings Teach classes at local universities / colleges Go to conferences Publish Create a web site The more attractive you are in the marketplace, the higher your final salary will be. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 689 Where to Find Jobs • Newspapers • Magazines • On-line services • Internet search engines • Recruiters • Colleagues • Spam (would you work for a company that spams you?) Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 690 Managing Recruiters They are salespeople, typically on pure commission. The more easily they think they can sell you, the more they’ll work on your case. Contact them regularly • Be consistent in the day / time that you contact them • Remind them of you • Ask them of openings that have recently crossed their desk that you might be aware of. Restrict their circulation of your resume • You must approve all sendings of your resume. Put this restriction in writing. Refuse to deal with anyone who won’t honor this. • Don’t tell them about other opportunities (or agree to tell them) (this would have you giving another recruiter’s secrets to this recruiter). Be aware of differences among recruiters • Executive recruiters vs. general purpose recruiters vs. outplacement firm Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 691 Learn About the Company During the search (or later) • • • • • • • Read the company’s web site, download demo software Read the SEC filing Deja News Google, askjeeves.com, northern light Stock sites that give investor info Credit report (knowx.com) Your peer network • In the phone screen • • • Ask for product literature Ask for demo copies of software Ask how else to find info about the company • Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 692 Learn About the Company Useful questions: I ask some of these of managers and some of them of working staff. Use your judgment about who you ask what: • • • • • • • • • What kinds of products and services does your company provide? Can I see a demonstration of the key product? What is special about your products and services? What are the key strengths and weaknesses? How did you develop the main product? What were the key development tradeoffs? (Time vs Features vs. Cost vs. Reliability) Who are your customers? Who are your competition? How do you learn about your customers? How do you learn about your customers’ satisfaction with the overall product, with the design, and with the defects? Show me an organization chart (and where you are on it and where I would be on it) Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 693 Learn About the Company • What is it like to work here? • What do you do? What kinds of products and services • • • • • • • • • • do you provide? Can I see some examples? Where do you fit in the product development process? What do you like about your job? What would you like to change? How do you make time for your family? How much control do you have over your own work? Who designs the tests that you run? Who runs the tests that you design? Tell me about your test design process. Can I see some test plans and test cases? How do you feel about your pay / boss / colleagues? Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 694 Learn About the Company • What courses or conferences did you take last year? • What other training have you received? • How do you learn new things? • Describe three key things that you learned last year. Keep your eyes open • Are the interviewers tired? • How is their furniture? How does it compare to the company’s executives’ furniture? • How much space / equipment / light do standard testers get, and how much do higher ranking staff get? • Look for congruencies and incongruencies of claims regarding working conditions (e.g. 4-day work week) Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 695 Looking Good in an Interview What makes you attractive to them? • • • • Skills, knowledge, aptitude, other (KSAO) Your independence and confidence Your reputation If you had to look for a job today, what would be your unique selling proposition? Are you happy with it? What kind of position will it gain for you? What makes you look bad? • • Looking desperate Arrogance What convinces them that you are serious about them? • • • Background research Saying that you want the job Looking interested Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 696 Some characteristics of great testers Alert Attentive to detail Analytical problem solver Architect Arrogance (usually, less is better) Artistic (knowledgeably critique esthetic issues) Assertive Auditor Author Commitment (keep promises, stick around) Commitment to a task (do what it takes) Commitment to quality Copes with difficult circumstances Courageous Creative Credible Curious (inquisitive) Customer focused Decision maker (good judgment) Decisive Not very defensive (able to take criticism) Diplomatic Editor (criticize / improve printed materials) Effective with junior testers Effective with senior testers Effective with test managers Effective with programmers Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 697 Some characteristics of great testers Effective with nontesting managers Empathetic Empirical frame of reference Empowering Energizing Fast abstraction skills Financially aware and sophisticated Finds bugs (intuitive tester) Flexible Goal setting Glue (promotes group cohesiveness) Humility Integrity (honest; keeps commitments) Interpersonally perceptive Interviewer Investigative reader Leadership Long term thinker Meeting manager Mentor Multi-tasking Organizer and planner Persuasive Politically perceptive Policy and procedure developer Pragmatic Programmer Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 698 Some characteristics of great testers Protective (stands behind his staff) Punctual Scholarly (collects information, can back up or evaluate arguments) Sense of humor Spoken communication Strength of character Subject matter expert Substance abuser (not) Team builder Tolerant of ambiguity Tolerant of different development approaches UI design Versatile (many abilities) Warm (makes the human environment more pleasant) Written communication Zealot (Rarely desirable in large quantities.) Catalyst Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 699 Looking Good in an Interview What marketing materials are you bringing? • • • Resume, letters of reference, papers, printout of web pages, other stuff that shows your vision Work samples (beware of confidentiality) Comments on their product Practice interviewing • • • Interview lots of times Interview with companies that are non-critical Do mock interviews with friends Send a follow-up letter • • Astonishingly few people send these. This is a marketing opportunity for you to spin the meeting’s results. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 700 Preparing to Negotiate Fisher, R. & Ertel, D. (1995) Getting Ready to Negotiate: The Getting to Yes Workbook The key things are • • • • • Knowing what you want Knowing what they want Knowing what they think of themselves Knowing how they will present themselves as potential employers Knowing what your alternatives are (your best alternative to a negotiated agreement for this job) PRACTICE NEGOTIATING • • With friends With potential employers. Plan to blow several away. » Learn your market value » Learn what’s out there » Learn what seems to turn employers on and off. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 701 How Do You Negotiate? You are negotiating a long term relationship that you have to live with If you don’t negotiate, you leave money on the table that cuts back on your lifetime earning expectations If you don’t negotiate, you leave your work open instead of picking your assignment If you don’t negotiate, you don’t learn how the company will be when you do need to negotiate. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 702 How Do You Negotiate? • Say what you want (non-monetary issues) or what excites you, early in the interview. • Refuse to provide previous salary info. Politely reject queries about your salary expectations until after the employer is excited about you. • Be enthusiastic but don’t be over-eager. • Speak about their product in their vocabulary. • Find and point out ways in which you can help them. Make proposals, show examples of your thinking. • Let them know that you want the job. • Talk about your stretch opportunity. If you have to stretch for this job, let them see how they could make you happy with the job (how it is a fit for you) and how you could do it. • Keep your eye out for intimidating styles from the potential employer. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 703 How Do You Negotiate? Chapman, J. (1996, 3rd Ed.) Negotiating Your Salary: How to Make $1000 a Minute Fisher, R., Ury, W., & Patton, B. (1991), Getting to Yes. Freund, J.C. (1992), Smart Negotiating: How to Make Good Deals in the Real World O’Malley, M. (1998) Are You Paid What You’re Worth? Miller, L.J. (1998), Get More Money on Your Next Job: 25 Proven Strategies for Getting More Money, Better Benefits, & Greater Job Security. Tarrant, J. (1997), Perks & Parachutes: Negotiating Your Best Possible Employment Deal, from Salary and Bonus to Benefits and Protection. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 704 Dealing with Race, Gender, Age, etc. H1 is creating a discriminatory environment. A.D.A gives you right to notice of tests I think I see a widening pay differential. Much of the program that I think is the problem is the negotiating style of the individual rather than a policy of the company. Some behaviors that turn out to have a severe differential impact are engaged in by people who would not call themselves (or normally be called) racist or sexist. If you are a member of a group that is often treated as disadvantaged / easy target, then you should definitely: 1. Read books on negotiation 2. Take a negotiating class (seriously consider trying Karrass, not the nicey-nicey win/win stuff) 3. Do practice interviews 4. Join a group like Toastmasters 5. Find ways to compare notes with white men in comparable positions. Knowledge is power. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 705 How Do You Set Yourself Up for Success? • Remember that if they don’t treat you well in the interview, it won’t get better later. • Don’t take a low rate to get in the door unless you are brand new and plan to leave once you get experience. They perceive you as more senior if they pay you more. • If you have special needs, you must bargain for them clearly and precisely up front. The alternative—bring it up later—is often a loser. • Get it in writing. Get any ambiguities cleared up in the writing. Trust me doesn’t work well in many of these ingredients. • Be specifically aware of the possibility of becoming the expendable 40+ manager who is out of work for a year. (If you’re in this state, you have no fresh skills, no hot new experience, you look easily replaced, and therefore you find it intimidating to sell yourself.) Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 706 Black Box Software Testing Part 24. Recruiting for Testers Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 708 Warning, warning: Legal issues I am NOT well versed in employment law. Do NOT take this as legal advice. This talk raises a FEW legal issues, but only to get you thinking. The rules vary by state. The rules are followed differently by different companies. Talk to your HR department. It is generally unwise to ask questions about age, race, sexual orientation, political preference, national origin, pregnancy or parental or marital status, disability (except for questions that are provably directly tied to ability to perform the job), or anything else that a normal person would consider private. Talk to your HR department about what questions you are allowed to ask. Be very cautious about checking a candidate’s credit record or about insisting that she take a polygraph exam. Beware of accidentally making unintended promises. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 709 Underlying principles • Every hire should support the short term need and • • • • • the long term mission of the group. Your team should be diverse. With some creativity and tolerance, you can find great people. Hiring decisions should be made by consensus. Use a behavioral strategy for gathering information Tests should predict performance on the job. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 710 What is the mission of your group? Every position in the testing group should help your group realize its mission. • The nature of each position is determined partially in terms of work that has to be done over some foreseeable term and partially in terms of the overall mission of the group. • The skills, knowledge, and abilities required for each position are partially determined by the specific nature of the tasks to be accomplished over the short or intermediate term and partially by the need to have people who can help the group fulfill its mission. » Example—the group needs a statistician but this will occupy only 10% of that person’s time. You will hire for some “other” position, but keep an eye out for statisticians. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 711 What is the mission of your group? Examples of different missions: • Assess and report the quality of the product? (So what’s quality?)(What’s assessment? Probably need a person skilled in statistics and measurement.) • Discover, report and advocate for the repair of product defects? (So what’s a defect?) • Investigate the product’s conformance to a written specification. • Carry out some other limited set of functions, such as looking only for coding errors (mismatch between the programmer’s intended and actual behavior of the program). Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 712 A Sample Job Description The second level associate engineer has skill and experience in software testing or development, and a demonstrated ability to follow our internal SQA practices. We expect successful A2’s to create and execute a systematic test plan for a routine project, producing all relevant reports. We expect them to have knowledge of typical technologies sufficient to recognize quality problems in those areas. Minimum 1 year directly relevant experience in addition to required education and other professional experience. • (Copied from materials published by ST Labs) Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 713 What position are you trying to fill? The notion of “essential job functions” • Job descriptions are generic. The specific position you have to fill now has other details. • Make a list of what you absolutely need, right now. • Make a list of what else you want of a person in this position. • Think of a good candidate as someone who meets all of the absolutely-needs and some portion (maybe a percentage) of the want-tohaves. • This turns into a memo that you distribute to everyone interviewing for the position. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 714 Who are you looking for? Knowledge—the body of information that the candidate will need in order to perform effectively. For example, a person might know or have training in test case design, maybe even a course in creating test matrices. Skills—involve proficiency at a specific task. For example, a person might be really good at creating test matrices. Abilities—potential to do a job. For example, a person might be a very bright, systematic, analytical thinker, who you would expect to be able to quickly become very good at creating test matrices. Other—other characteristics that are important to the job. For example, a person might have personal integrity. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 715 Characteristics: The Need for Diversity Diversity is essential. We need: • subject matter experts • programmers • testers, test planners • project managers, writers Standard credentials are not the answer • An example: Staffing for a financial application Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 716 Exercise: Characteristics of Candidates Refer to the slides in the Career Planning section that list a few characteristics of good testers. Take 15 minutes to: • Imagine recruiting for a mid-level tester in your test group. • Identify at least one skill, area of knowledge, or ability that is important to the position (or to your company as a whole), that is not listed on these slides. • Circle (or write in) the top 10 characteristics that are most important for this position Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 717 The Opportunity Hire Some human examples of opportunity hiring • Training requirement: Entertainment company, low pay. Recruited Director-level employee as a tester. Key promise to teach him about American business culture, goal of opening a test lab. • Temporary assignments: » Marketeer (wanted training in product development) » Tech support (offered expertise in my product, supervisory experience; wanted a stint in PD) • Work force: Left computing (project/product mgr) to do construction project management. Came back to computing without the most current skills. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 719 The Opportunity Hire Opportunity hiring poses challenges. These challenges may or may not be insurmountable. Here are some hypothetical examples that have a loose relationship to real problems I’ve had to manage. • Programmer who wants to move groups today • Programmer who seeks out “spare time” programming assignments • Executive who is too used to deferential treatment for the rough and tumble of testing • Family commitment led to time jealousy Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 720 Consensus-driven hiring I follow three simple rules when hiring: • Anyone in the company who wants to be part of the interview process for a candidate is welcome. • Example, talk with manufacturing mgr about doc mgr and then invite to do the interview • Of the people who have interviewed the candidate, anyone in the testing group and any senior player from any other group who will work with the candidate can veto the hiring of this person. • The veto policy must be actively managed so that vetoes will not be based on race, religion, family situation, gender, sexual orientation, age, disability, national origin, etc. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 721 Consensus-driven hiring • Important (almost essential) for opportunity hiring • Group acceptance of special situation, at the start and later • Additionally • More likely to discover serious problems • More likely to reject based on those problems • Provides support network for incoming candidate • Key assumption: It is a more serious mistake to hire badly than to pass up a good candidate. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 722 Behavioral information gathering • The general principle: • The goal of the interview is to predict how the candidate will behave if she joins your group. • You can achieve this by (for example) • asking questioning that elicit behavioral responses, • examining work samples, • testing, • setting up situations that let you see how the candidate responds. • Simple questioning often fails to elicit behavioral information. • Much of the behavior that you will see is independent of the questioning. • Example: The late interview candidate. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 723 Behavioral Interviewing Questioning • Closed vs. open-ended questions • Factual vs. opinion questions • Hypothetical vs. behavioral questions Work samples • Ask (during phone screen) if he has any work samples that he can bring for review. • The problem of confidential documents: » Don’t request confidential documents. » Before reviewing something that looks as if it might be confidential, ask. » Don’t review documents that are (or that you think probably are) » Be diplomatic in your refusal to read them » Listen to the candidate’s responses—this is a predictor of how he will treat your confidential documents in the future. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 724 Behavioral Interviewing: Testing Testing • Puzzles » Big practice effects » Cultural fairness issues (may have a discriminatory impact) » I’m not convinced that they predict success in testing » They are NOT IQ tests, though many people treat them as if they were. • Test cases • A testing / training exercise • Bug reports Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 725 Interview Technique You’re the tester, here’s a CD. You have four hours to test it. What will you do? Question is, how do we gather information about the product, what is the though process. “How can you generate a test case without knowing what the requirements are?” Go into a feature map after you determine the market and the requirements. Another example, use a print dialog that is broken for interviewing. For example, leave a blank button somewhere, see what they do with it. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 728 Black Box Software Testing Part 25. Learning Styles --- Teaching Testers Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 730 Learning Styles People learn in different ways. There are several models of learning styles. Different presentation methods work best for different styles of learners. I’m not up to date on this literature. Back when I was a grad student in psychology, we talked about • Visual vs. auditory learners. Visual learners have more success in lectures if they have a copy of every slide • Active vs. passive learners. Some people learn better in lecture or by reading / memorizing. Others learn better through exercises. • Individual vs. group learners. Some people learn better on their own, others on project teams. • Concrete vs. conceptual learners. Some people learn better from detailed stories, others from the formal presentation of the underlying principles. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 731 Learning Styles I’m still thinking about how to develop a course that works well with the different styles. (I’m especially interested in this for building on-line courses that are worth teaching/taking). For now, my approach involves: • Lecture of key material • Hard copies of every slide • Many stories with rich detail to support key points • Several assignments, which can be done by individuals or jointly • Sample questions that can be studied by individuals or jointly. And may soon involve • Self-study drills • A library of examples that students can read on their own. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 732 Learning Styles There’s nothing magical about the division that I learned, and several others are more popular in the literature. For a useful introduction and discussion of several style classifications, see R.M. Felder, Matters of Style, http://www2.ncsu.edu/unity/lockers/users/f/felder/public/ Papers/LS-Prism.htm Felder makes the point that the basic lessons for instructional design end up being pretty similar across the different classification schemes. The next slides, taken verbatim from his paper, show his advice to chemistry teachers: Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 733 Examples from Felder’s Matter of Style “Here are some strategies to ensure that your courses present information that appeals to a range of learning styles. These suggestions are based on the Felder-Silverman model. Teach theoretical material by first presenting phenomena and problems that relate to the theory (sensing, inductive, global). For example, don't jump directly into free-body diagrams and force balances on the first day of a statics course. First describe problems associated with the design of buildings and bridges and artificial limbs, and perhaps give the students some of those problems and see how far they can go before they get all the tools for solving them. Balance conceptual information (intuitive) with concrete information (sensing). Intuitors favor conceptual information--theories, mathematical models, and material that emphasizes fundamental understanding. Sensors prefer concrete information such as descriptions of physical phenomena, results from real and simulated experiments, demonstrations, and problem-solving algorithms. For example, when covering concepts of vapor-liquid equilibria, explain Raoult's and Henry's Law calculations and nonideal solution behavior, but also explain how these concepts relate to barometric pressure and the manufacture of carbonated beverages. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 734 Examples from Felder’s Matter of Style • Make extensive use of sketches, plots, schematics, vector diagrams, computer graphics, and physical demonstrations (visual) in addition to oral and written explanations and derivations (verbal) in lectures and readings. For example, show flow charts of the reaction and transport processes that occur in particle accelerators, test tubes, and biological cells before presenting the relevant theories, and sketch or demonstrate the experiments used to validate the theories. • To illustrate an abstract concept or problem-solving algorithm, use at least one numerical example (sensing) to supplement the usual algebraic example (intuitive). For example, when presenting Euler's method for numerical integration, instead of simply giving the formulas for successive steps, use the algorithm to integrate a simple function like y = x2 and work out the first few steps on the chalkboard with a hand calculator. • Use physical analogies and demonstrations to illustrate the magnitudes of calculated quantities (sensing, global). For example, tell your students to think of 100 microns is about the thickness of a sheet of paper and to think of a mole as a very large dozen molecules. Have them pick up a 100 ml. bottle of water and a 100 ml. bottle of mercury before talking about density. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 735 Examples from Felder’s Matter of Style • Occasionally give some experimental observations before presenting the general principle, and have the students (preferably working in groups) see how far they can get toward inferring the latter (inductive). For example, rather than giving the students Ohm's or Kirchoff's Law up front and asking them to solve for an unknown, give them experimental voltage/current/resistance data for several circuits and let them try to figure out the laws for themselves. • Provide class time for students to think about the material being presented (reflective) and for active student participation (active). Occasionally pause during a lecture to allow time for thinking and formulating questions. Assign "one-minute papers" near the end of a lecture period, having students write on index cards the lecture's most important point and the single most pressing unanswered question. Assign brief group problem-solving exercises in class that require students to work in groups of three or four. • Encourage or mandate cooperation on homework (every style category). Hundreds of research studies show that students who participate in cooperative learning experiences tend to earn better grades, display more enthusiasm for their chosen field, and improve their chances for graduation in that field relative to their counterparts in more traditional competitive class settings. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 736 Examples from Felder’s Matter of Style • Demonstrate the logical flow of individual course topics (sequential), but also point out connections between the current material and other relevant material in the same course, in other courses in the same discipline, in other disciplines, and in everyday experience (global). For example, before discussing cell metabolism chemistry in detail, describe energy release by glucose oxidation and relate it to energy release by nuclear fission, electron orbit decay, waterfalls, and combustion in fireplaces, power plant boilers, and automobiles. Discuss where the energy comes from and where it goes in each of these processes and how cell metabolism differs. Then consider the photosynthetic origins of the energy stored in C-H bonds and the conditions under which the earth's supply of usable energy might run out.” Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 737 Blooms Taxonomy Slides “Bloom's Taxonomy, created in 1956 by Dr. Benjamin Bloom of the University of Chicago and his group of educational psychologists, is a categorization of verbs describing cognitive skills verbs into six classes (knowledge, comprehension, application, analysis, synthesis, and evaluation). The classes are ranked from least complex (knowledge) to most complex (evaluation) in terms of the level of thinking required for students to achieve these objectives. In general, critical thinking skills encompass only the three most complex categories (analysis, synthesis, and evaluation).” (From Michael Bowen’s web page, http://207.233.105.16/curriculum/bloomtax.htm, to be distributed in class.) Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 738 Testing Training • It is easy to teach to the first few levels (tests would have students recall what was taught, define terms, make simple applications). • It is much tougher to teach the underlying skills of testing. • Putting students through tests, exercises and exams has been eye-opening in terms of how much they can learn with personal involvement and how little they get from traditional lectures. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 739 Example of a Task Breakdown Bug Reporting • Reproduce the bug • Simplify the bug • Follow-up testing • Describe the screen • Describe the sequence • Determine customer impact • Determine technical impact What sub-tasks and skills are involved in each of these? Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 740 Closing Notes Given a group of motivated, bright people who have appropriate background knowledge and belong to your testing group or your testing class: • Only some testers will learn well in lectures • Only some testers will learn well by being thrown into a project and being told to figure it out • Only some testers will learn well from books • Only some testers will learn well or work well on their own and some will only learn well or work well on their own Build training strategies to achieve the learning you want to convey, accommodate multiple learning styles, and push for mastery, not memory. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 741 Black Box Software Testing Part 26. Testing Resources on the Net Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 742 Testing Resources on the Net Various Web Sites DOUG HOFFMAN’S HOME PAGE www.SoftwareQualityMethods.com Consulting and training in strategy and tactics for software quality. Articles on software testing, quality engineering, and management. Look here for updated links. CEM KANER’S HOME PAGE www.kaner.com Articles on software testing and testing-related laws JAMES BACH www.satisfice.com Several interesting articles from one of the field’s most interesting people. BRETT PETTICHORD www.io.com/~wazmo/qa.html Several interesting papers on test automation. Other good stuff too. BRIAN LAWRENCE www.coyotevalley.com Project planning from Brian Lawrence & Bob Johnson. BRIAN MARICK www.testing.com Brian Marick wrote an interesting series of papers for CenterLine. This particular one is a checklist before automating testing. The CenterLine site has a variety of other useful papers. ELISABETH HENDRICKSON www.QualityTree.com Consulting and training in software quality and testing. JOHANNA ROTHMAN www.jrothman.com Consulting in project management, risk management, and people management. HUNG NGUYEN www.logigear.com Testing services, training, and defect tracking products. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 743 Testing Resources on the Net Various Web Sites LESSONS LEARNED IN SOFTWARE TESTING www.testinglessons.com This is the home page for Cem’, James’, and Bret’s book, Lessons Learned in Software Testing. BAD SOFTWARE HOME PAGE www.badsoftware.com This is the home page for Cem’s book, Bad Software. Material on the law of software quality and software customer dissatisfaction. SOFTWARE QUALITY ENGINEERING www.sqe.com Several interesting articles on current topics. SOFTWARE QUALITY ENGINEERING www.stqe.com www.stickyminds.com Articles from STQE magazine, forum for software testing and quality engineering. QA DUDE’S QUALITY INFO CENTER www.dcez.com/~qadude “Over 200 quality links” -- pointers to standards organizations, companies, etc. Plus articles, sample test plans, etc. QUALITY AUDITOR www.geocities.com/WallStreet/2233/qa-home.htm Documents, links, listservs dealing with auditing of product quality. THE OBJECT AGENCY www.toa.com Ed Berard’s site. Object-oriented consulting and publications. Interesting material. RBSC (BOB BINDER) www.rbsc.com A different approach to object-oriented development and testing. DILBERT www.unitedmedia.com/comics/dilbert. Home of Ratbert, black box tester from Heck. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 744 Testing Resources on the Net Various Web Sites SSQA www.ventanatech.com/ssqa Silicon Valley Software Quality Association is a local professional software QA organization with monthly meetings, newsletter, more. AMERICAN SOCIETY FOR QUALITY (ASQ) www.asq.org National/international professional QA organization. SILICON VALLEY SECTION OF (ASQ) www.asq-silicon-valley.org ISO www.iso.ch Describes ISO (International Organization for Standardization), with links to other standards organizers AMERICAN NATIONAL STANDARDS INSTITUTE www.ansi.org NSSN www.nssn.org National Standards Systems Network. Find / order various standards. Lots of links to standards providers, developers and sellers. IEEE Computer Society www.computer.org Back issues of IEEE journals, other good stuff. SOFTWARE ENGINEERING INSTITUTE www.sei.cmu.edu SEI at Carnegie Melon University. Creators of CMM and CMMI. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 745 Testing Resources on the Net Various Web Sites CENTER FOR SOFTWARE DEVELOPMENT www.center.org Non-profit in San Jose with a big test lab and various other support facilities. RELIABLE SOFTWARE TECHNOLOGIES www.rstcorp.com Consulting firm. Hot stuff on software reliability and testability. Big archive of downloadable papers. Lots of pointers to other software engineering sites. SOFTWARE TESTING INSTITUTE www.ondaweb.com/sti Membership-funded institute that promotes professionalism in the industry. BIG list of pointers to resources in the industry (the Online STI Resource Guide). SOFTWARE PRODUCTIVITY CENTRE www.spc.ca Methodology, training and research center that supports software development in the Vancouver BC area. CENTRE FOR SOFTWARE ENGINEERING www.cse.dcu.ie “Committed to raising the standards of quality and productivity within Ireland’s software development community.” EUROPEAN SOFTWARE INSTITUTE www.esi.es Industry organization founded by leading European companies to improve the competitiveness of the European software industry. Very interesting for the Euromethod contracted software lifecycle and documents. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 746 Testing Resources on the Net Various Web Sites QUALITY.ORG www.casti.com Links to quality control source materials. CSST (CLIENT-SERVER SOFTWARE TESTING) www.cse.dcu.ie D. J. Mosley’s home page. Lots of client / server publications. FORMAL TECHNICAL REVIEW ARCHIVE www.ics.Hawaii.edu/~johnson/FTR Documents, links, listservs dealing with auditing of product quality. SOCIETY FOR TECHNICAL COMMUNICATION www.stc.org Links to research material on documentation process and quality. BUGNET www.bugnet.com Lists of bugs and (sometimes) fixes. Great source for data. TRY THIS SOMETIME -- With a product you own, look up bugs in BugNet that doesn’t list a workaround or a bugfix release, and replicate it on your computer. Then call the publisher’s tech support group and ask if they have an upgrade or a fix for this bug. Don’t tell them that you found it in BugNet. The question is, what is the probability that your publisher’s support staff will say, “Gosh, we’ve never heard of that problem before.” JPL TEST ENGINEERING LAB tsunami.jpl.nasa.gov Jet Propulsion Lab’s Test Engineering Laboratory. Includes the comp.software.testing archives. Additionally, there are many sites for specialized work, such as sites for HTML compatibility tests of browsers. The usual search tools lead you to the key sites (the list changes weekly.) Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 747 Testing Resources on the Net Various Web Sites SOFTWARE RESEARCH INC. www.soft.com Also a major consulting and toolbuilding firm. Organizes the Quality Week conference. Publishes the TTN-Online newsletter. Excellent links. QUALITY ASSURANCE INSTITUTE www.qai.com Quality control focused on the needs of Information Technology groups. AETG WEBSITE http://aetgweb.argreenhouse.com/ Home page for the AETG combinatorial testing product. Includes articles describing the theory of the product. UNIFORM COMMERCIAL CODE ARTICLE 2B www.law.upenn.edu/bll/ulc/ulc.htm These hold the drafts of the proposed Article 2B (UCITA), which will govern all sales of software. This will become the legal foundation of software quality. Currently, the foundation looks like it will be made of sand, Jell-O, and invisible ink. SOFTWARE PUBLISHERS ASSOCIATION www.spa.org Software & Information Industry Association is the main software publishers’ trade association. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 748 Testing Resources on the Net: Some News Groups comp.software.testing This covers issues of general interest to software testers. Plagued by too much spamming, this is not quite as interesting a spot as it used to be. comp.human-factors User interface issues, usability testing, safety, man-machine reliability, design tools. comp.software.international Internationalization and localization issues comp.software.config-mgmt Various configuration management issues. comp.software-eng Discussions of all areas of software engineering, including design, architecture, testing, etc. The comp.software-eng FAQ is the one that lists sources of bug tracking systems, for example. (You’d think it would be in comp.software.testing, but comp.software-eng got there first.) comp.software.measurement Not much there, but the goal is picking up metrics / measurements / data. Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 749 Testing Resources on the Net: Some News Groups comp.answers The home of many, many FAQs (documents that answer Frequently Asked Questions). comp.jobs, comp.jobs.offered, ba.jobs, misc.jobs, etc. A good way to check out market values for testers (or to find your new home when you need one). comp. risks Daily discussions of newsworthy bugs. comp.dcom.modems Lots and lots and lots of discussion of modems. misc.industry.quality Various discussions of quality control paradigms and experiences. alt.comp.virus This covers viruses, explaining things at end-user and more technical levels. The group often has very-up-to-date stuff. And like most alt-based groups, it seems to have a lot of spam mixed in. . . Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 750 Testing Resources on the Net Mailing Lists, etc. swtest-discuss@convex.convex.com Mail swtest-discuss-digest-request@rstcorp.com with "subscribe" in the body of the message to subscribe. baldrige, qs9000, many others contact bill casti The Quality Czar <help@quality.org> DEMING-L contact LISTSERV@UHCCVM.UHCC.HAWAII.EDU testing technology newsletter contact ttn@soft.com, software research assocs Copyright © 1994-2004 Cem Kaner and SQM, LLC. All Rights Reserved. 751