Test Automation CS 4501 / 6501 Software Testing

Slides:



Advertisements
Similar presentations
Test Yaodong Bi.
Advertisements

Introduction to Software Testing Chapter 1 Model-Driven Test Design Paul Ammann & Jeff Offutt
Test process essentials Riitta Viitamäki,
Software Quality Assurance Plan
Key-word Driven Automation Framework Shiva Kumar Soumya Dalvi May 25, 2007.
2004 Cross-Platform Automated Regression Test Framework Ramkumar Ramalingam, Rispna Jain IBM Software Labs, India.
Introduction to Software Testing Chapter 9.2 Challenges in Testing Software – Software Testability Paul Ammann & Jeff Offutt
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
Software Testing Prasad G.
Dr. Pedro Mejia Alvarez Software Testing Slide 1 Software Testing: Building Test Cases.
공과대학 > IT 공학부 Embedded Processor Design Chapter 8: Test EMBEDDED SYSTEM DESIGN 공과대학 > IT 공학부 Embedded Processor Design Presenter: Yvette E. Gelogo Professor:
Testing.
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Explore.
① Computer aided design (CAD) It have been associated with computer system design with the development of the concept of computer-graphics but the concept.
Overview of Software Testing 07/12/2013 WISTPC 2013 Peter Clarke.
Cluster Reliability Project ISIS Vanderbilt University.
Winrunner Usage - Best Practices S.A.Christopher.
Configuration Management (CM)
SWE 637: Test Criteria and Definitions Tao Xie Prepared based on Slides by ©Paul Ammann and Jeff Offutt Revised by Tao Xie.
Today’s Agenda  HW #1  Finish Introduction  Input Space Partitioning Software Testing and Maintenance 1.
(1) Unit Testing and Test Planning CS2110: SW Development Methods These slides design for use in lab. They supplement more complete slides used in lecture.
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
Software Testing and Quality Assurance Practical Considerations (4) 1.
Introduction to Software Testing Paul Ammann & Jeff Offutt Updated 24-August 2010.
CPSC 873 John D. McGregor Session 9 Testing Vocabulary.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
Chapter 8 Testing. Principles of Object-Oriented Testing Å Object-oriented systems are built out of two or more interrelated objects Å Determining the.
CPSC 871 John D. McGregor Module 8 Session 1 Testing.
Chapter 1 Software Engineering Principles. Problem analysis Requirements elicitation Software specification High- and low-level design Implementation.
Software Quality Assurance and Testing Fazal Rehman Shamil.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Introduction to Software Testing Model-Driven Test Design and Coverage testing Paul Ammann & Jeff Offutt Update.
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
Tool Support for Testing Classify different types of test tools according to their purpose Explain the benefits of using test tools.
Software Testing and Quality Assurance Practical Considerations (1) 1.
Software Engineering Lecture 11 Software Testing Presenter: Josef Hallberg 1.
CPSC 372 John D. McGregor Module 8 Session 1 Testing.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini XVIII. Software Testing.
Testing: Fundamentals of Making a Good Test Presented by Emerson Murphy-Hill Based on Slides by ©Paul Ammann and Jeff Offutt
Testability.
Introduction to Software Testing Part1 Summary & Terms
Product Validation Adapted from the NASA Systems Engineering Handbook for CSULB EE 400D by Alia Bonetti.
CSCE 548 Secure Software Development Risk-Based Security Testing
Regression Testing with its types
Testing Tutorial 7.
John D. McGregor Session 9 Testing Vocabulary
C++ Plus Data Structures
Test Automation CS 4501 / 6501 Software Testing
Introduction to JUnit CS 4501 / 6501 Software Testing
Designing For Testability
More JUnit CS 4501 / 6501 Software Testing
Paul Ammann & Jeff Offutt
Chapter 8 – Software Testing
John D. McGregor Session 9 Testing Vocabulary
Atit Leelasuksan Rungroj Maipradit
Software Quality Engineering
Introduction to Software Testing Chapter 2 Model-Driven Test Design
John D. McGregor Session 9 Testing Vocabulary
Paul Ammann & Jeff Offutt
Introduction to Software Testing
Introduction to Software Testing Chapter 3 Test Automation
BASIC DEFINITIONS Errors : An error is a mistake, misconception, or misunderstanding on the part of a software developer. In the category of developer.
Fundamental Test Process
Introduction to JUnit CS 4501 / 6501 Software Testing
More JUnit CS 4501 / 6501 Software Testing
Graph Coverage for Design Elements CS 4501 / 6501 Software Testing
Software Verification, Validation, and Acceptance Testing
Dynamic Program Analysis
Lecture 34: Testing II April 24, 2017 Selenium testing script 7/7/2019
Presentation transcript:

Test Automation CS 4501 / 6501 Software Testing [Ammann and Offutt, “Introduction to Software Testing”]

Software Testing Activities review Test Manager Test Engineer automate Test Engineer 1. Test Design 2. Test Automation 3. Test Execution design instantiate Computer P Test Engineer execute analyze 4. Test Evaluation Output

Execute tests against the program under test Software Testing Design tests Revenue task Enter inputs, run program, record results Excise task Enter Test values (inputs) Program Actual results Expected results vs Comparison Execute tests against the program under test Analyze results Revenue task

What is Test Automation Use of software to control the execution of tests Comparison of actual outcomes to predicted outputs Setting up of test preconditions, and other test control and test reporting functions Test values (inputs) Program Actual results Expected results vs Executable Tests Precondition Test control Test inputs Expected results Comparison Report

Benefits of Test Automation Reduce excise tasks Free up time to focus on revenue tasks Reduce cost Reduces human error Reduce variance in test quality from different individuals Significantly reduce the cost of regression testing Automate as much as possible

What Makes Test Automation Hard Testability “The degree to which a system or component facilitates that establishment of test criteria and the performance of tests to determine whether those criteria have been met” Two practical problems: Controllability: how to provide the test values to the software Observability: how to observe the results of test execution How hard it is to detect faults in the software

Aspects that Impact Testability Controllability “How easy it is to provide a program with the needed inputs, in terms of values, operations, and behaviors” Example of software that often have low controllability: Embedded software often gets its inputs from hardware sensors Difficult to control Some inputs may be difficult, dangerous, or impossible to supply Component-based software Distributed software Web applications Mobile applications

Aspects that Impact Testability Observability ”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” Example of software that often have low observability: Embedded software often does not produce output for human consumption Component-based software Distributed software Web applications Mobile applications

Dealing with Observability and Controllability Simulation – bypass the hardware or software components that interfere with testing

Importance of Testability Testability is crucial to test automation Test scripts need to control the execution of the component under test Test scripts need to observe the results of the test

Components of a Test Case A multipart artifact with a definite structure Determine the testing quality Test case values The input values needed to complete an execution of the software under test Expected results The result that will be produced by the test if the software behaves as expected Test oracle (pass or fail)

Components of a Test Case Inputs needed to put the software into the appropriate state to receive the test case values Prefix values Affecting controllability and observability Any inputs that need to be sent to the software after the test case values are sent Postfix values Verification values: values needed to see the results of the test case values Exit values: values or commands needed to terminate the program or otherwise return it to a stable state Test case ID Purpose

Putting Tests Together Test case The test case values, prefix values, postfix values, and expected results necessary for a complete execution and evaluation of the software under test Test set A set of test cases 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 Automation Framework A set of assumptions, concepts, and tools that support test automation Provides a standard design for test scripts and support for the test driver Test driver Runs a test set by executing the software repeatedly on each test Supply the “main” method to run the software if it is not standalone (i.e., a method, class, or other component) Compares the results of execution with the expected results (from the test case) and report the results to the tester

Test Automation Frameworks (2) Most test automation frameworks support Assertions to evaluate expected results The ability to share common test data among tests Test sets to easily organize and run tests The ability to run tests from either a command line or a GUI Most test automation frameworks are designed for unit and integration testing, although some specifically support system testing, and some are built to support testing over the web Example test automation frameworks JUnit, HttpUnit, HtmlUnit, JWebUnit, Selenium, unittest, Jasmine, PHPUnit