Black Box Software Testing Copyright © 2003 Cem Kaner & James Bach 1 Black Box Software Testing Fall 2004 PART 24 -- DEVELOPING A PLAN FOR TESTING by Cem.

Slides:



Advertisements
Similar presentations
More and Better Test Ideas Rikard Edgren TIBCO Spotfire EuroSTAR share one-liner test ideas.
Advertisements

Thoughts on Systematic Exploratory Testing of Important Products James Bach, Satisfice, Inc.
Verification and Validation
Black Box Software Testing Copyright © Cem Kaner & James Bach 1 Black Box Software Testing Spring 2005 Part 4 -- QUALITY COST ANALYSIS by Cem Kaner,
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Chapter 4 Design Approaches and Methods
Applied Software Project Management INTRODUCTION Applied Software Project Management 1 5/20/2015.
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
Usability Inspection n Usability inspection is a generic name for a set of methods based on having evaluators inspect or examine usability-related issues.
1 Software Testing and Quality Assurance Lecture 15 - Planning for Testing (Chapter 3, A Practical Guide to Testing Object- Oriented Software)
1 Introduction to System Engineering G. Nacouzi ME 155B.
SE 555 Software Requirements & Specification Requirements Validation.
(c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 1 Software Test and Analysis in a Nutshell.
Applied Software Project Management 1 Introduction Dr. Mengxia Zhu Computer Science Department Southern Illinois University Carbondale.
Recall The Team Skills Analyzing the Problem
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Stoimen Stoimenov QA Engineer QA Engineer SitefinityLeads,SitefinityTeam6 Telerik QA Academy Telerik QA Academy.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
S/W Project Management
Extreme Programming Software Development Written by Sanjay Kumar.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Verification and Validation.
CPIS 357 Software Quality & Testing
 CS 5380 Software Engineering Chapter 8 Testing.
Testing Workflow In the Unified Process and Agile/Scrum processes.
Product Documentation Chapter 5. Required Medical Device Documentation  Business proposal  Product specification  Design specification  Software.
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Project.
Testing -- Part II. Testing The role of testing is to: w Locate errors that can then be fixed to produce a more reliable product w Design tests that systematically.
Black Box Software Testing Copyright © Cem Kaner & James Bach 1 Black Box Software Testing Fall 2005 Overview—Part 2 (Mission of Testing) Cem Kaner,
Black Box Software Testing Copyright © 2003 Cem Kaner & James Bach 1 Black Box Software Testing Fall 2004 PART USER TESTING by Cem Kaner, J.D., Ph.D.
Black Box Software Testing Copyright © 2003 Cem Kaner & James Bach 1 Black Box Software Testing Spring 2005 PART 7 -- FUNCTION TESTING by Cem Kaner, J.D.,
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Copyright (c) Cem Kaner Black Box Software Testing (Academic Course - Fall 2001) Cem Kaner, J.D., Ph.D. Florida Institute of Technology Section:
Copyright © , Satisfice, Inc. V1. James Bach, Satisfice, Inc. (540)
Black Box Software Testing Copyright © 2003 Cem Kaner & James Bach 1 Black Box Software Testing 2004 Academic Edition Part EDITING BUGS by Cem Kaner,
Session # Rational User Conference 2002 Author Note: To edit Session # go to: View/Master/Title Master ©1998, 1999, 2000, 2001, 2002 Rational Software.
How Much Do We know about Our Textbook? Zhang Lu.
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
The Case Against Test Cases
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Project.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
Evaluating Requirements
Copyright (c) Cem Kaner Black Box Software Testing (Academic Course - Fall 2001) Cem Kaner, J.D., Ph.D. Florida Institute of Technology Section:
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
IT Project Management, Third Edition Chapter 8 1 Chapter 5: Project Quality Management.
INFO 638Lecture #91 Software Project Management Conclude Adaptive Project Framework INFO 638 Glenn Booker.
Black Box Software Testing Copyright © 2003 Cem Kaner & James Bach 1 Black Box Software Testing Spring 2005 PART 8 -- TEST DESIGN by Cem Kaner, J.D., Ph.D.
Copyright 2015, Robert W. Hasker. Classic Model Gathering Requirements Specification Scenarios Sequences Design Architecture Class, state models Implementation.
Week # 4 Quality Assurance Software Quality Engineering 1.
Verification vs. Validation Verification: "Are we building the product right?" The software should conform to its specification.The software should conform.
Black Box Software Testing Spring 2005
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
Software Engineering (CSI 321)
Black Box Software Testing Spring 2005
Black Box Software Testing (Professional Seminar)
Recall The Team Skills Analyzing the Problem
Introduction to Software Testing
A test technique is a recipe these tasks that will reveal something
Verification and Validation Unit Testing
Fundamental Test Process
KEY IDEA Use a diversified test strategy that will serve the mission.
Black Box Software Testing Fall 2004
Black Box Software Testing Fall 2005 Overview – Part 1 of 3
Black Box Software Testing 2004 Academic Edition
CS240: Advanced Programming Concepts
Cem Kaner, J.D., Ph.D. Director
Black Box Software Testing (Academic Course - Fall 2001)
Baisc Of Software Testing
Exploring Exploratory Testing
Presentation transcript:

Black Box Software Testing Copyright © 2003 Cem Kaner & James Bach 1 Black Box Software Testing Fall 2004 PART DEVELOPING A PLAN FOR TESTING by Cem Kaner, J.D., Ph.D. Professor of Software Engineering Florida Institute of Technology and James Bach Principal, Satisfice Inc. Copyright (c) Cem Kaner & James Bach, This work is licensed under the Creative Commons Attribution-ShareAlike License. To view a copy of this license, visit or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. These notes are partially based on research that was supported by NSF Grant EIA ITR/SY+PE: "Improving the Education of Software Testers." Any opinions, findings and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.

Black Box Software Testing Copyright © 2003 Cem Kaner & James Bach 2 Developing a Plan for Testing: Readings This section highlights a few issues. Far more detail is available in Lessons Learned in Software Testing, Chapter 11, Planning the Testing Strategy

Black Box Software Testing Copyright © 2003 Cem Kaner & James Bach 3 What is a plan for testing? The real plan is the set of ideas that guide what you do. –Test documentation is not the plan: It might be a record of the plan. It might be a valuable part of the plan if it guides you well. It might be a distraction from the plan, or from planning. It is often fiction, neither a collection of the ideas that will guide testing nor a source of inspiration when testing is actually done. –The plan will normally specify The strategy: specifies the relationship between the test project (what you do) and the test mission. The deliverables: how your work is presented to clients The logistics: How you will apply resources to fulfill the strategy.

Black Box Software Testing Copyright © 2003 Cem Kaner & James Bach 4 Planning is everything. The plan is nothing The real plan is the set of ideas that guide what you do. Planning helps you develop and prioritize the ideas. As the project unfolds, you will discover unexpected problems and opportunities, and the product will change in unexpected ways. –Change what you do to deal well with the new circumstances. –A process that requires you to stick with outdated ideas is a broken process. –(Sometimes, you will be stuck with a broken process, that you must conform to. Oh, well. Better luck next time. But don't treat your process as broken if you actually have permission to adapt.)

Black Box Software Testing Copyright © 2003 Cem Kaner & James Bach 5 The plan is subject to "givens" (constraints) We studied testing project constraints as "Project Environment Elements" in the Heuristic Test Strategy Mode. For overall planning, it's also useful to analyze context in terms of five "givens": –Development process and product: When you get something to test, what do you get, when do you get it, how testable is it, how well tested is it, how good is it, what is your role in early design / testing of it? –Requirements: What are the criteria for this product to be successful? Who are the stakeholders with influence? –Test team: Over time, you can change the size and skill set of your staff, but on this project, who do you have, what can they do, and what flexibility do you have to supplement their skills? –Test lab: What systems, tools, materials, and equipment do you have and how much budget (and permission) do you have to upgrade? (How much time will you lose in upgrading?) –Mission: The understanding that you and your clients (should) share about the nature and value of your work.

Black Box Software Testing Copyright © 2003 Cem Kaner & James Bach 6 A plan must fit within the context of your mission Find important problems Assess quality Block premature product releases Help managers make ship / no-ship decisions Certify to standard Fulfill specific process mandates Satisfy particular stakeholders Assure accountability Advise about development process Advise about testability or quality Advise clients about how to test Maximize testing efficiency Minimize testing time or cost Minimize support costs Minimize litigation risk Verify safe scenarios for product use ?? Assure Quality ?? The quality of testing depends on which of these possible missions matter and how they relate. Many debates about the goodness of testing are really debates over missions and givens.

Black Box Software Testing Copyright © 2003 Cem Kaner & James Bach 7 Test Strategy Strategy is less often discussed than logistics and deliverables, but it is extremely important. 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.

Black Box Software Testing Copyright © 2003 Cem Kaner & James Bach 8 Test Strategy A good test strategy is: –Diversified –Specific –Practical –Defensible

Black Box Software Testing Copyright © 2003 Cem Kaner & James Bach 9 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.

Black Box Software Testing Copyright © 2003 Cem Kaner & James Bach 10 Test Cases/Procedures Test cases and procedures should manifest the test strategy. Suppose your strategy is to “execute the test suite I got from Joe” How does that answer the prime strategic questions: –How will you achieve your mission (e.g. 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.

Black Box Software Testing Copyright © 2003 Cem Kaner & James Bach 11 Test Strategy Over time, the objectives of testing should change: –Test sympathetically (early code) –Test aggressively (after it passes simple tests, be harsh) –Increase complexity (combine features when they appear stable on their own) –Test meticulously (at the end of the project, preparing for final release) In an iterative environment, different objectives will often be in play simultaneously: –You might be testing new components sympathetically while applying aggressive, complex tests to more mature components. Over time, the effectiveness of specific techniques will change: –Shift to new techniques when current ones yield less

Black Box Software Testing Copyright © 2003 Cem Kaner & James Bach 12 Levels of Analysis 1-Variable –Basic user interface verification –Filters –Many testers stop here, at the most superficial level of testing 2-Variable –Shared or related filters –Logical relationships among variables Multi-Variable –The core problem is the vastness of the space of test cases. We need a sampling strategy.

Black Box Software Testing Copyright © 2003 Cem Kaner & James Bach Why bother with black box? Public vs. private bugs A programmer’s public bug rate includes all bugs left in the code when she gives it to someone else (such as a tester.) Rates of one bug per hundred statements are not unusual, and several programmers’ rates are higher (such as three bugs per hundred). A programmer’s private bug rate includes all the bugs that she makes, including the ones she fixes before passing the program to testing. Estimates of private bug rates have ranged from 15 to 150 bugs per 100 statements. Therefore, programmers must be finding and fixing between 80% and 99.3% of their own bugs before their code goes into test. (Even the sloppy ones find and fix a lot of their own bugs.) What does this tell us about our task? It says that we’re looking into the programmer’s (and her tools’) blind spots. Merely repeating the types of tests that the programmers did won’t yield more bugs. That’s one of the reasons that an alternative approach is so valuable.

Black Box Software Testing Copyright © 2003 Cem Kaner & James Bach 14 Heuristics from James Bach’s Test Plan Evaluation Model, HeuristicBasis for the Heuristic 1. Testing should be optimized to find important problems fast, rather than attempting to find all problems with equal urgency. 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.

Black Box Software Testing Copyright © 2003 Cem Kaner & James Bach 15 Heuristics for Test Plan Evaluation HeuristicBasis 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.

Black Box Software Testing Copyright © 2003 Cem Kaner & James Bach 16 Heuristics for Test Plan Evaluation HeuristicBasis for the Heuristic 6. Not all testing should be pre-specified 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.

Black Box Software Testing Copyright © 2003 Cem Kaner & James Bach 17 Heuristics for Test Plan Evaluation HeuristicBasis 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.

Black Box Software Testing Copyright © 2003 Cem Kaner & James Bach 18 Heuristics for Test Plan Evaluation HeuristicBasis 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.

Black Box Software Testing Copyright © 2003 Cem Kaner & James Bach 19 Heuristics for Test Plan Evaluation HeuristicBasis 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.

Black Box Software Testing Copyright © 2003 Cem Kaner & James Bach 20 Heuristics for Test Plan Evaluation HeuristicBasis 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.

Black Box Software Testing Copyright © 2003 Cem Kaner & James Bach 21 Heuristics for Test Plan Evaluation HeuristicBasis 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.

Black Box Software Testing Copyright © 2003 Cem Kaner & James Bach 22 Heuristics for Test Plan Evaluation HeuristicBasis 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 undergo review by someone other than the author. The review process 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.