Taxonomy of Test Oracles

Slides:



Advertisements
Similar presentations
Test Yaodong Bi.
Advertisements

SE 450 Software Processes & Product Metrics Reliability: An Introduction.
Software Testing and Quality Assurance
Simulation.
1 Software Testing and Quality Assurance Lecture 30 - Introduction to Software Testing.
Presented by: Hatem Halaoui
The Basics of Software Testing
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Swami NatarajanJuly 14, 2015 RIT Software Engineering Reliability: Introduction.
1 Software Testing and Quality Assurance Lecture 5 - Software Testing Techniques.
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
Software Testing & Strategies
Chapter 13 & 14 Software Testing Strategies and Techniques
What Exactly are the Techniques of Software Verification and Validation A Storehouse of Vast Knowledge on Software Testing.
Software Engineering 2003 Jyrki Nummenmaa 1 REQUIREMENT SPECIFICATION Today: Requirements Specification Requirements tell us what the system should.
CMSC 345 Fall 2000 Unit Testing. The testing process.
What is Software Testing? And Why is it So Hard J. Whittaker paper (IEEE Software – Jan/Feb 2000) Summarized by F. Tsui.
Chapter 8 – Software Testing Lecture 1 1Chapter 8 Software testing The bearing of a child takes nine months, no matter how many women are assigned. Many.
Verification and Validation Overview References: Shach, Object Oriented and Classical Software Engineering Pressman, Software Engineering: a Practitioner’s.
Winrunner Usage - Best Practices S.A.Christopher.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
Testing Workflow In the Unified Process and Agile/Scrum processes.
BE-SECBS FISA 2003 November 13th 2003 page 1 DSR/SAMS/BASP IRSN BE SECBS – IRSN assessment Context application of IRSN methodology to the reference case.
CSE403 Software Engineering Autumn 2001 More Testing Gary Kimura Lecture #10 October 22, 2001.
Software Construction Lecture 18 Software Testing.
Conformance Test Experiments for Distributed Real-Time Systems Rachel Cardell-Oliver Complex Systems Group Department of Computer Science & Software Engineering.
Programming Languages and Design Lecture 3 Semantic Specifications of Programming Languages Instructor: Li Ma Department of Computer Science Texas Southern.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
WERST – Methodology Group
How to Program? -- Part 1 Part 1: Problem Solving –Analyze a problem –Decide what steps need to be taken to solve it. –Take into consideration any special.
Software Quality Assurance and Testing Fazal Rehman Shamil.
Dynamic Testing.
Week 6 MondayTuesdayWednesdayThursdayFriday Testing III Reading due Group meetings Testing IVSection ZFR due ZFR demos Progress report due Readings out.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
Verification vs. Validation Verification: "Are we building the product right?" The software should conform to its specification.The software should conform.
SOFTWARE TESTING AND QUALITY ASSURANCE. Software Testing.
Douglas HoffmanCopyright © , SQM, LLC.1 Test Automation Architectures: Planning for Test Automation Florida Tech Testing 2 January 27, 2014 Douglas.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini XVIII. Software Testing.
Testing and delivery Web design principles. Web development is software development.
Principles of Programming & Software Engineering
A Review of Software Testing - P. David Coward
Advanced Computer Systems
Software Testing.
OPERATING SYSTEMS CS 3502 Fall 2017
A scalable approach for Test Automation in Vector CAST/Manage with
Operating System Interface between a user and the computer hardware
Software Testing Techniques
Software Engineering (CSI 321)
Designing For Testability
DDC 1023 – Programming Technique
Principles of Programming and Software Engineering
Chapter 13 & 14 Software Testing Strategies and Techniques
FOR0383 Software Quality Assurance
Unit Test Pattern.
Unit# 8: Introduction to Computer Programming
Software testing strategies 2
Introduction to Software Testing
Program Design Introduction to Computer Programming By:
Software Verification and Validation
Software Verification and Validation
Regression testing Tor Stållhane.
Programming Fundamentals (750113) Ch1. Problem Solving
CSE403 Software Engineering Autumn 2000 More Testing
Programming Fundamentals (750113) Ch1. Problem Solving
Software Verification and Validation
Software Development Process Using UML Recap
Presented by KARRI GOVINDA RAO ,
Chapter 13 & 14 Software Testing Strategies and Techniques 1 Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Presentation transcript:

Taxonomy of Test Oracles Mudit Agrawal Course: Introduction to Software Testing, Fall ‘06 12/3/2018 Software Testing, Fall 2006

Motivation Shortcomings of automated tests (as compared to human ‘eye-ball oracle’) Factors influencing test oracles Environmental (private, global) variables State (initial and present) of the program Dependence on test case What kind of oracle(s) are best suited for which applications? 12/3/2018

Contents Mutating Automated Tests – Challenges for test oracles Generations of Automations and Oracles Challenges for Oracles Types of Oracles Conclusion 12/3/2018

Automated Tests Advantages Limitations: No intervention needed after launching tests Automatically sets up and/or records relevant test environment Evaluates actual against expected results Reports Analysis of pass/fail Limitations: Less likely to cover latent defects Doesn’t do anything different each time it runs Oracle is not ‘complete’ 12/3/2018

12/3/2018

Limited by Test Oracle ‘Predicting’ and comparing the results Playing twenty questions with all the questions written down in advance! Has to be influenced by Data Program State Configuration of the system environment 12/3/2018

Testing with the Oracle Source: Douglas Hoffman, SQM, LLC 12/3/2018

Generations of Automation: First Generation Automation Automate existing tests by creating equivalent exercises Self verifying tests Hard Coded oracles Limitations Handling negative test cases 12/3/2018

Second Generation Automation Automated Oracles Emphasis on expected results – more exhaustive input variation, coverage Increasing Frequency Intensity Duration of automated test activities (load testing) 12/3/2018

Second Generation continued… Random selection among alternatives Partial domain coverage Dependence of system state on previous test cases Mechanism to determine whether SUT’s behavior is expected Pseudo random number generator Test recovery 12/3/2018

Third Generation Automation Take into account knowledge and visibility Software instrumentation Multi-threaded tests Fall back compares Using other oracles 12/3/2018

Third Generation continued… Heuristic Oracles Fuzzy comparisons, approximations Diagnostics Looks for errors Performs additional tests based on the specific type of error encountered 12/3/2018

Challenges for Oracles Independence and completeness – difficult to achieve both Independence from Algorithms Sub-programs, libs Platforms OS Completeness in form of information Comparing computed functions, screen navigations and asynchronous event handling Speed of predictions Time of Execution of oracle 12/3/2018

Challenges for Oracle continued… Better an oracle is, more complex it becomes Comprehensive oracles make up for long test cases (DART paper) More it predicts, more dependent it is on SUT More likely for it to contain the same fault 12/3/2018

Challenges for Oracle continued… Legimitate oracle – an oracle that produces accurate rather than estimated outputs Generates results based on the formal specs What if formal specs are wrong? Very few errors cause noticeable abnormal test termination 12/3/2018

12/3/2018 Source: An automated oracle for software testing

IORL – Input/Output Req. Lang. Graphics based Language Optimal representation between the informal requirements and the target code 12/3/2018

Oracles for different scenarios Transducers That read an input sequence and produce and output sequence Logical correspondence between I/O structures e.g. native file format to HTML conversions in web applications Solution – CFGs System translates a formal specs of I/O files into an automated oracle 12/3/2018

Embedded Assertion Languages [Oracles for different scenarios] Asserts! Problems: Non-local assertions Asserts for pre/post condition pairs with a procedure as a whole e.g. asserts for each method that modifies the object state State caching Saving parts or all of ‘before’ values 12/3/2018

Embedded Assertion Languages [Oracles for different scenarios] Auxiliary variables Quantification 12/3/2018

Extrinsic Interface Contracts [Oracles for different scenarios] Instead of inserting asserts within the program, checkable specs are kept separate from the implementation Extrinsic specs are written in notations Less tightly coupled with target programming language Useful when source-code need not be touched 12/3/2018

Pure Specification Languages [Oracles for different scenarios] Problem with older approach: specs were not pure Z and object-Z are model based specification languages Describe intended behavior using familiar mathematical objects Free of the constraints of the language 12/3/2018

Trace Checking [Oracles for different scenarios] Uses a partial trace of events Such a trace can be checked by an oracle derived from formal specs of externally observable behavior 12/3/2018

Types of Oracles Categorized based on Oracle-Outputs True Oracle Faithfully reproduces all relevant results Uses independent platform, processes, compilers, code etc. Lesser commonality => more confidence in the correctness of results e.g. sin(x) [problem: how is ‘all inputs’ defined? 12/3/2018

Types of Oracles continued… Stochastic Oracle Statistically random input selection Error prone areas of the software are no more or less likely to be encountered sin() – pseudo random generator to select input values 12/3/2018

Types of Oracles continued… Heuristic Oracle Reproduces selected results for the SUT Remaining values are checked based on heuristics No exact comparison Sampling Values are selected using some criteria (not random) e.g. boundary values, midpoints, maxima, minima 12/3/2018

Types of Oracles continued… Consistent Oracle Uses results from one test run as the Oracle for subsequent runs Evaluating the effects of changes from one revision to another 12/3/2018

Comparison 12/3/2018

Who wants to be a Millionaire? 12/3/2018

Which category best describes GUI Testing? a. Heuristic b. Trace Checking c. Transducers d. None 12/3/2018

Thanks! 12/3/2018