Editorial Reviews. Review. Review of the first edition: “I think this is a great testing book, both from academic and industrial perspectives. I believe Ammann and. Gary Kaminski, Paul Ammann, Jeff Offutt, Better predicate testing, Proceedings of the 6th International Workshop on Automation of Software. Title: Introduction to software testing / Paul Ammann, George Mason. University, Jeff Offutt, George Mason University. Description: Edition 2. — Cambridge.
|Published (Last):||23 July 2007|
|PDF File Size:||11.71 Mb|
|ePub File Size:||16.57 Mb|
|Price:||Free* [*Free Regsitration Required]|
We think you have liked this presentation. If you wish to download it, please recommend it to your friends in any social system. Share buttons are a little bit lower. Published by Toby Taylor Modified over 3 years ago.
Why do we test? What should we do during testing? How do we get to ammsnn future of testing? We are in the middle of a revolution in how software is tested Research is finally meeting practice. The first step is an intuition, and comes with a burst, then difficulties arise—this thing gives out and [it is] then that ‘Bugs’—as such little faults and difficulties are called—show themselves and months of intense watching, study and labor offjtt requisite Granted that the actual mechanism is unerring in its processes, the cards may give it wrong orders.
Symantec says that most security vulnerabilities are due to faulty software n Stronger testing could solve most of these problems Introduction to Software Testing Ch 1www. Introduction to Software Testing Ch 1www. MicroSteff — big software system for the offutt V.
Program Managers often say: Willing is not enough, we must do. But … what should we do? Types of test activities 2. Software testing terms 3. Changing notions of testing —test coverage criteria offtt based on structures.
Test Evaluation n Each offutr of activity requires different skills, background knowledge, education and training n No reasonable software development organization uses the same people for requirements, design, implementation, integration and configuration control Introduction to Software Testing Ch 1www. This is clearly a waste of resources 1.
Paul Ammann & Jeff Offutt
Test Design — a Criteria-Based n This is the most technical job in software testing n Requires knowledge of: Test Design — b Human-Based n This is much harder than it may seem to developers n Criteria-based approaches can be blind to special situations n Requires knowledge of: Test Automation n This pffutt slightly less technical n Requires knowledge of programming —Fairly straightforward programming — small pieces and simple algorithms n Requires very little theory n Very boring for test designers n Programming is out of reach for many domain experts n Who is responsible for determining and embedding the expected outputs?
Test Execution n This is easy — and trivial if the tests are well automated n Requires basic computer skills —Interns —Employees with no technical background n Asking qualified test designers to execute tests is a sure way to convince them to look for a development job n If, for example, GUI tests are not well automated, this requires a lot of manual labor n Test executors have to be very careful and meticulous with bookkeeping Introduction to Software Testing Ch 1www.
Test Evaluation n This is much harder than it may seem n Requires knowledge of: Sets policy, organizes team, interfaces with development, chooses criteria, decides how much automation is needed, … n Test maintenance: Tests must be saved for offurt as software evolves —Requires cooperation of test designers and automators —Deciding when to trim the test suite is partly policy and partly technical — and in general, very hard!
DesignDesign test values to satisfy engineering goals CriteriaRequires knowledge of discrete math, programming and testing 1b. DesignDesign test values from domain knowledge and intuition HumanRequires knowledge of domain, UI, testing 2. AutomationEmbed test values into executable scripts Requires knowledge of scripting 3. ExecutionRun tests on the software and record the results Requires very little knowledge 4.
The process of evaluating software at the end of software development to ensure compliance with intended usage n Verification: An IT professional who is in charge of one or more technical test activities —designing test inputs —producing test values —running test scripts —analyzing results —reporting results to developers and managers n Test Manager: In charge of one or more test engineers —sets test policies and processes —interacts with other managers on the project —otherwise helps the engineers do their work.
Testing by executing the program with real inputs. A static defect in the software n Software Error: An offuutt internal state that is the manifestation of some fault n Software Failure: External, incorrect behavior with respect to the requirements or other description of the expected behavior Faults in software are design mistakes and will always exist.
Finding inputs that cause the software to fail n Debugging: The process of finding a fault given a failure. The offjtt or locations in the program offut contain the fault must be reached 2.
Paul Ammann & Jeff Offutt – ppt download
The state of the program must be incorrect 3. The infected state must propagate to cause some output of the program to be incorrect. The values that directly satisfy one test requirement n Expected Results: The result that will be produced when executing the test if the program satisfies it intended behavior.
How easy it is to observe the behavior of a program in terms of its outputs, effects on the environment and other hardware and software components —Software that affects hardware devices, databases, or remote files have low observability n Software Controllability: How easy it is to provide a program with the needed inputs, in terms of values, operations, and behaviors —Easy to control software with inputs from keyboards —Inputs from hardware sensors or distributed software is harder —Data abstraction reduces controllability and observability.
Any inputs necessary to put the software into the appropriate state to receive the test case values n Postfix Values: Any inputs that need to be sent to the software after the test case values n Two types of postfix values 1. Values necessary to see the results of the test case values 2.
Introduction to Software Testing, edition 2, Ammann and Offutt
Values needed to terminate the program or otherwise return it to a stable state n Executable Test Script: A test case that is prepared in a form to be executed automatically on the test software and produce a report. Test the main procedure, then go zmmann through procedures it calls, and so on n Bottom-Up Testing: Test the leaves in the tree procedures that make no callsand move up to the root.
Deriving tests from external descriptions of the software, including specifications, requirements, and design n White-box testing: Deriving tests from the source code internals of the software, specifically including branches, individual conditions, and statements This view is really out of date. The more general question is: Is the software acceptable to the user? Test how modules interact with each other n System testing: Test the overall functionality of the system n Module testing: Test each class, file, module or component n Unit testing: Test each unit method individually.
Find a Graph and Cover It n Tailored to: Define a model of the software, then find ways to cover it Testing researchers have defined dozens of criteria, but they are all really just a few criteria ammxnn four types of structures ….
Criteria Based on Structures 1. Input Domain Characterization 4. Four ways to model software A: Graph Coverage — Data Flow 6 5 3 2 17 4 This graph contains: Logical Expressions n Predicate Coverage: Various combinations of clauses —Active Clause Coverage: Syntactic Structures n Based on a grammar, or other syntactic definition n Primary example is mutation testing 1.
Induce small changes to the program: Find tests that cause the mutant programs to fail: Failure is defined as different output from the original program 4. Directly generate test values to satisfy the criterion often assumed by the research community most obvious way to use criteria very hard without automated tools 2.
Test criteria are sometimes called metrics. A procedure that automatically generates values to satisfy a criterion n Recognizer: A procedure that decides whether a given set of test values satisfies a criterion n Both problems are provably undecidable for most criteria n It is possible to recognize whether test cases satisfy a criterion far more often than it is possible to generate tests that satisfy the criterion n Coverage analysis tools are quite plentiful.
A test criterion C1 subsumes C2 if and only if every set of test cases that satisfies criterion C1 also satisfies C2 n Must be true for every set of test cases n Example: If a test set has covered every branch in a program satisfied the branch criterionthen the test set is guaranteed to also have covered every statement.
How do we get there? Now we know why and what …. Testing is a mental discipline that helps all IT professionals develop higher quality software. This describes most software companies. How can we move to a team approach?? Lack of test education 2. Necessity to change process 3. Usability of tools 4. Number of UG testing classes in the US?
Do we need to understand parsing and code generation to use a compiler?
Few tools solve the key technical problem — generating test values automatically Bill Gates says half of MS engineers are testers, programmers spend half their time testing. Introduction to Software Testing Chapter 9.
Testing What is software testing? Running a program In order to find faults a. First we build them, then we pray!!! My presentations Profile Feedback Log out.
Auth with social network: Registration Forgot your password?