Testing Tools Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 14.

Slides:



Advertisements
Similar presentations
Test process essentials Riitta Viitamäki,
Advertisements

White-Box Testing Techniques IV
Software Quality Assurance Plan
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #7 Software Engineering.
Developer Testing and Debugging. Resources Code Complete by Steve McConnell Code Complete by Steve McConnell Safari Books Online Safari Books Online Google.
Software Quality Assurance Inspection by Ross Simmerman Software developers follow a method of software quality assurance and try to eliminate bugs prior.
Documentation Testing
Software Testing.
1 Test Planning CSSE 376, Software Quality Assurance Rose-Hulman Institute of Technology March 9, 2007.
Software Testing and Quality Assurance
1 Software Testing and Quality Assurance Lecture 30 - Introduction to Software Testing.
I n t e g r i t y - S e r v i c e - E x c e l l e n c e Business & Enterprise Systems Introduction to Hewlett Packard (HP) Application Lifecycle Management.
Lecture Nine Database Planning, Design, and Administration
Testing - an Overview September 10, What is it, Why do it? Testing is a set of activities aimed at validating that an attribute or capability.
Software Testing Name: Madam Currie Course: Swen5431 Semester: Summer 2K.
Stoimen Stoimenov QA Engineer QA Engineer SitefinityLeads,SitefinityTeam6 Telerik QA Academy Telerik QA Academy.
Introduction to Software Testing
Software Testing Introduction. Agenda Software Testing Definition Software Testing Objectives Software Testing Strategies Software Test Classifications.
Using A Defined and Measured Personal Software Process Watts S. Humphrey CS 5391 Article 8.
Damian Gordon. Requirements testing tools Static analysis tools Test design tools Test data preparation tools Test running tools - character-based, GUI.
© 2006, Cognizant Technology Solutions. All Rights Reserved. The information contained herein is subject to change without notice. Automation – How to.
NYC Technology Forum Introduction to Test Automation 11/2/07 All rights reserved Not to be reproduced without permission Bill Rinko-Gay Solutions Director,
October 15, 2004 – 1 Welcome IPMA and SolutionsIQ Professional Event Testing, Testing, 1…2…3… Improving software quality -- one bug at a time.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u 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.
Introduction to Systems Analysis and Design Trisha Cummings.
Database System Development Lifecycle © Pearson Education Limited 1995, 2005.
Semester 1, 2003 Week 7 CSE9020 / 1 Software Testing and Quality Assurance With thanks to Shonali Krishnaswamy and Sylvia Tucker.
Software Testing Lifecycle Practice
1 Software Testing (Part-II) Lecture Software Testing Software Testing is the process of finding the bugs in a software. It helps in Verifying and.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
SOFTWARE TESTING STRATEGIES CIS518001VA : ADVANCED SOFTWARE ENGINEERING TERM PAPER.
Software Testing Life Cycle
RUP Implementation and Testing
Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1Compiled by: Umm-e-Laila.
FCS - AAO - DM COMPE/SE/ISE 492 Senior Project 2 System/Software Test Documentation (STD) System/Software Test Documentation (STD)
Feasibility Study.
Service Transition & Planning Service Validation & Testing
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
Software Development Software Testing. Testing Definitions There are many tests going under various names. The following is a general list to get a feel.
Testing Workflow In the Unified Process and Agile/Scrum processes.
Disciplined Software Engineering Lecture #7 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem.
Software Research, Inc. Setting the Standard for Software Testing Windows Solution.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 7 1 Design and Code Reviews - Overview What are design and code.
Sylnovie Merchant, Ph.D. MIS 161 Spring 2005 MIS 161 Systems Development Life Cycle II Lecture 5: Testing User Documentation.
What is Testing? Testing is the process of exercising or evaluating a system or system component by manual or automated means to verify that it satisfies.
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
Chair of Software Engineering Exercise Session 6: V & V Software Engineering Prof. Dr. Bertrand Meyer March–June 2007.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
1 Software Testing Strategies: Approaches, Issues, Testing Tools.
CPSC 871 John D. McGregor Module 6 Session 2 Validation and Verification.
Software Engineering Lecture 8: Quality Assurance.
T EST T OOLS U NIT VI This unit contains the overview of the test tools. Also prerequisites for applying these tools, tools selection and implementation.
Software Test Plan Why do you need a test plan? –Provides a road map –Provides a feasibility check of: Resources/Cost Schedule Goal What is a test plan?
Tool Support for Testing Classify different types of test tools according to their purpose Explain the benefits of using test tools.
1 March 19, Test Plans William Cohen NCSU CSC 591W March 19, 2008.
SOFTWARE TESTING TRAINING TOOLS SUPPORT FOR SOFTWARE TESTING Chapter 6 immaculateres 1.
Chapter Goals Describe the application development process and the role of methodologies, models, and tools Compare and contrast programming language generations.
Tool Support for Testing
Software Engineering (CSI 321)
White-Box Testing Techniques IV
White-Box Testing Techniques IV
Chapter 10 Software Quality Assurance& Test Plan Software Testing
Unit-6 Tool Support For SW Testing
Introduction to Software Testing
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Software Requirements Specification (SRS) Template.
Software Testing Lifecycle Practice
Presentation transcript:

Testing Tools Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 14

Overview of Topics Why is test automation desirable? Types of test automation –test design tools –test implementation (including “testing frameworks”) tools –test execution and other run-time tools Sources for testing tools One other “Testing Tool:” Test Plans and Planning

Why is test automation desirable? A recent survey result reported in SoftwareTech News † (a DoD publication) confirms that software testing activity consumes a significant fraction of the overall development lifecycle. † October 2007 Vol. 10, Number 3

In the same article, a study undertaken by the US Navy showed that substantial time savings can be achieved via automated testing. Why is test automation desirable? (cont’d)

Some types of testing are not feasible without automation, e.g.: –load (“concurrency”) testing –long term “soak” testing to detect memory leaks/performance degradation More efficient build verification (“smoke”) testing Stand-alone “lights out” testing Increased repeatability Testers can focus on more creative tasks Much higher levels of coverage Other benefits of automated testing

Test Design Tools

Parameter value generators Boundary value, equivalence class, and special value generators Random data generation based on probabilistic CFGs (Context-Free Grammars) Fault tree coverage Cause-Effect analysis Database test data generators (for performance, load, and usability test) (cont’d)

Test Design Tools (cont’d) Statistical test generators (for reliability, availability, and performance testing) Structural test case design tools: –utilize code instrumentation (see Run- Time Tools) –source code specific –may incorporate symbolic execution capabilities to aid in path sensitization

Test Implementation Tools

Test Case Scripting Languages: –test scripts automate the steps involved in carrying out tests –suitable for tests that will be repeated (i.e., in support of regression testing) –scripts are maintained in a change-controlled Test Database (cont’d)

Test Implementation Tools (cont’d) Test Harness (scaffolding) Generators: –automates development of test drivers, stubs, and oracles (“assertions”) –often coupled with a test scripting capability (= “testing frameworks”) –useful for module and integration test

Run-Time Tools

Code Instrumentation: –inserts additional code to monitor cumulative logic/dataflow coverage, support trace and debug functions, and detect run-time errors. –aids in designing test cases to meet white-box coverage goals or to debug code. –alters execution performance and may mask or introduce timing errors. –many commercial (source code specific) tools available. –among the oldest of testing tool types. (cont’d)

Let’s Pause for a Moment… Imagine that it’s summertime and that a 3- day weekend is just starting… Wouldn’t it be great to just grab a fishin’ pole and head on out to the lake!

Let’s Pause for a Moment… (Take 2) There’s NOTHING like Paris in the the spring!

Run-Time Tools (cont’d) Data / Output Comparators –used to automatically compare output or data files for discrepancies –effective in dealing with the “Paris in the the spring” problem † –most are not “smart enough” to ignore “don’t care” data fields. –useful for regression testing when combined with a keystroke recorder and playback tool… † Also know as inattentional or perceptual blindness. (cont’d)

Run-Time Tools (cont’d) Keystroke Recorder and Playback Tools –records and plays-back keystrokes, pointer movement, and mouse clicks –useful for regression testing when combined with a data/output comparator

Sources for Tools An excellent source of information about testing tools is the WWW. Use your favorite search engine to find sites associated with “software testing tools” (about 94 million Google hits at last count). Several QA and testing related magazines, newsletters, and trade journals are available which publish tool reviews and comparisons. (cont’d)

Sources for Tools (cont’d) Relevant links can also be found at the websites of several QA and testing related organizations and societies, e.g., –SEI –IEEE –ACM –American Society for Quality –Society for Software Quality –Quality Assurance Institute –European Organization for Quality (cont’d)

Sources for Tools (cont’d) Some useful testing tools-related links: – – –

Test Plans and Planning Pezze and Young, Software Testing and Analysis, Wiley, 2008

Motivation Planning – just as important in testing as in any other engineering activity. Allows for the effective use of limited resources and management of activities. In a nutshell, it involves a disciplined, timely consideration of: –What needs to be done, –When and How it will be done, and –What resources (including time and effort) will be required.

The Master Test Plan Also called a Comprehensive Test Plan. Must be compatible with overall project plan. Developed early – during project planning and requirements stages. Defines requirements for lower level plans: –Unit Test Plan –Component Test Plan –Product Test Plan –System Test Plan

Master Test Plan Check-List Defines test stages (e.g., unit, integration, system) schedules, and responsibilities. Establishes objectives, strategies, and procedures. Identifies required tools, facilities, and test libraries. Sets criteria for test completion and success. Defines the integration test strategy and iden- tifies all scaffolding required with respon- sibilities and schedules for its production. (cont’d)

Master Test Plan Check-List (cont’d) Defines test coverage goals and methods for tracking progress. Establishes a regression test policy. Specifies required hardware and software, particularly non-standard or special purpose elements. Identifies estimated resource requirements including machine time, disk storage, physical / logical device access, etc. Identifies training required. Specifies test entry and exit criteria.

Typical Test Entry Criteria Test plan is complete and has been reviewed Design and implementation of test cases reviewed and all problems fixed Drivers, stubs, oracles in place Test environment (hardware and software) is ready

Typical Test Exit Criteria All problems discovered have been recorded and fixed All fixes have been re-tested Regression test(s) complete All test cases and associated documentation updated as necessary

IEEE Test Plan Template 1.Introduction and references 2.Test items (versions, media, references, etc.) 3.Features to be tested 4.Features NOT to be tested (and reasons) 5.Testing strategies and approach 6.Dependencies 7.Test case success/failure criteria 8.Pass/fail criteria for the complete test 9.Test entry/exit criteria (cont’d)

IEEE Test Plan Template (cont’d) 10.Test deliverables/status communication vehicles 11.Testing tasks 12.Hardware and software requirements 13.Problem determination and correction responsibilities 14.Staffing and training needs/assignments 15.Test schedules 16.Risks and contingencies 17.Approvals

Test Planning Summary Test planning allows for the effective use of limited resources and the effective manage- ment of test activities. A plan is only as good as the planning that goes into it!

Testing Tools Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture 14