1,000 Testers in a Shoe Box Advances in Automated Test Generation Andreas Zeller Saarland University, Saarbrücken, Germany
|
|
- Clara Gordon
- 5 years ago
- Views:
Transcription
1 1,000 Testers in a Shoe Box Advances in Automated Test Generation Andreas Zeller Saarland University, Saarbrücken, Germany Visual Computing Institute Center for Information Security, Privacy and Accountability
2 Testing
3 Software is manifold
4 Software is manifold
5 Software is manifold
6 Software is manifold
7 Software is manifold
8 Software is manifold
9 Testing Configurations
10 Testing Configurations
11 What to test? How do we cover as much behavior as possible? Configurations
12 Testing Criteria Path testing Boundary interior testing LCSAJ testing Branch testing subsumes Compound condition testing MC/DC testing Branch and condition testing Practical Criteria Theoretical Criteria Loop boundary testing Statement testing Basic condition testing
13 Dijkstra s Curse Testing can only find the presence of errors, not their absence Configurations
14 Formal Verification Configurations
15 Formal Verification Abstraction Configurations
16 Formal Verification Abstraction Configurations
17 Formal Verification Abstraction Configurations
18 This might crash static tree fold_negate_expr (location_t loc, tree t) { // 200 Lines... tem = TREE_OPERAND (t, 0); if t is null if ((INTEGRAL_TYPE_P (type) && (TREE_CODE (tem) == NEGATE_EXPR (TREE_CODE (tem) == INTEGER_CST && may_negate_without_overflow_p (tem))))!integral_type_p (type)) return fold_build2_loc (loc, TREE_CODE (t), type, negate_expr (tem), TREE_OPERAND (t, 1)); }
19
20
21 but can these ever be invoked from here? static analysis may detect errors here
22 ? This might crash This might crash This might crash This might crash This might crash This might crash This might crash This might crash This might crash This might crash
23 Zeller s Variation on Dijkstra Abstraction Verification can only find the absence of errors, but never their presence Configurations
24 The Best of two Worlds Abstraction Configurations
25 Generating Tests Abstraction Configurations
26
27 Generated Unit Test public class RandoopTest0 extends TestCase {...! public void test8() throws Throwable { if (debug) System.out.printf("%nRandoopTest0.test8"); AddressBook var0 = new AddressBook(); EventHandler var1 = var0.geteventhandler(); Category var2 = var0.getrootcategory(); Contact var3 = new Contact(); AddressBook var4 = new AddressBook(); EventHandler var5 = var4.geteventhandler(); Category var6 = var4.getrootcategory(); String var7 = var6.getname(); var0.addcategory(var3, var6); SelectionHandler var9 = new SelectionHandler(); AddressBook var10 = new AddressBook(); EventHandler var11 = var10.geteventhandler();
28 MainWindow var64 = new MainWindow(var0); AddressBook var65 = new AddressBook(); EventHandler var66 = var65.geteventhandler(); Category var67 = var65.getrootcategory(); Contact var68 = new Contact(); Category[] var69 = var68.getcategories(); var65.removecontact(var68); java.util.list var71 = var65.getcontacts(); AddressBook var72 = new AddressBook(); EventHandler var73 = var72.geteventhandler(); Category var74 = var72.getrootcategory(); EventHandler var75 = var72.geteventhandler(); SelectionHandler var76 = new SelectionHandler(); actions.createcontactaction var77 = new actions.createcontactaction(var72, var76); boolean var78 = var77.isenabled(); AddressBook var79 = new AddressBook(); EventHandler var80 = var79.geteventhandler(); Category var81 = var79.getrootcategory(); String var82 = var81.getname(); var77.categoryselected(var81); Category var85 = var65.createcategory(var81, "hi!"); String var86 = var85.tostring(); Category var88 = var0.createcategory(var85, "exceptions.namealreadyinuseexception"); }
29 Simplified Test Case public class RandoopTest0 extends TestCase { public void test8() throws Throwable { if (debug) System.out.printf("%nRandoopTest0.test8");! } } AddressBook a1 = new AddressBook(); AddressBook a2 = new AddressBook(); Category a1c = a1.createcategory(a1.getrootcategory(), "a1c"); Category a2c = a2.createcategory(a1c, "a2c");
30 how many addressbooks?
31 sub-category of in in public class RandoopTest0 extends TestCase { public void test8() throws Throwable { if (debug) System.out.printf("%nRandoopTest0.test8");! } } a1 a1c a2 a2c AddressBook a1 = new AddressBook(); AddressBook a2 = new AddressBook(); Category a1c = a1.createcategory(a1.getrootcategory(), "a1c"); Category a2c = a2.createcategory(a1c, "a2c");
32 112 failures 0 PROBLEMS
33 0 PROBLEMS
34 but can these ever be invoked from here? testing may detect errors here
35 test generation at the system level
36 test generation at the system level anything that happens here is real
37 Getting Coverage static tree fold_negate_expr (location_t loc, tree t) { // 200 Lines... tem = TREE_OPERAND (t, 0); if ((INTEGRAL_TYPE_P (type) && (TREE_CODE (tem) == NEGATE_EXPR (TREE_CODE (tem) == INTEGER_CST && may_negate_without_overflow_p (tem))))!integral_type_p (type)) return fold_build2_loc (loc, TREE_CODE (t), type, negate_expr (tem), TREE_OPERAND (t, 1)); } get me here
38 what to enter here? get me here
39 Infinite Monkey Theorem
40 Test Generation Static analysis and symbolic test generation work well at the unit level but miss the surrounding context System test generation generates real executions but misses features at the code level
41 Evolutionary Algorithms Create population Create mutations Rank Recombine Select
42 Create population fdsakfh+ew%3gfhdi%4f fwe8^ru786234jä Mutation fdsakfh+br%3gfhdi%4f fdsakfh+ew%4gfhdi%4f fwe8^ru&26234jä xb3#ru786234jä Recombine fdsakfh+ew%4gfhdi%4f xb3#ru786234jä
43 Create population fdsakfh+ew%3gfhdi%4f fwe8^ru786234jä Mutation fdsakfh+br%3gfhdi%4f fdsakfh+ew%4gfhdi%4f fwe8^ru&26234jä xb3#ru786234jä Recombine fdsakfh+ew%4gfhdi%4f xb3#ru786234jä xb3#ru7%4gfhdi%4f
44 Selection and Ranking if (angle = 47 power = 532) { } fdsakfh+ew%4gfhdi%4f angle = 31 xb3#ru786234jä angle = 48 xb3#ru7%4gfhdi%4f angle = 65
45 Selection and Ranking if (angle = 47 power = 532) { } angle = 51 xb4%ru786234jä xb3#ru78^^&1jä xb3#ru786234jä angle = 48 angle = 47
46 int main() { } CC Tests XML Tests GUI Tests Web Tests
47 int main() { } CC Tests XML Tests GUI Tests Web Tests
48 Testing a C Compiler CCFuzz C Source Code Compiler
49 Parsing C Files expression = n = mult(x, 2); variable call n mult x 2
50 Mutation expression = n = div(x, 2); variable call n mult div x 2
51 Recombination z = y << 3; n = mult(x, 2); expression expression = = variable << variable call z y 3 n mult x 2
52 Recombination z = y << 3; n = mult(x, 2); expression expression = = variable << variable call z y 3 n mult x 2
53 Recombination z = 2; n = mult(x, y << 3); expression expression = = variable 2 variable call z n mult x << y 3
54 Testing a C Compiler CCFuzz C Source Code Compiler
55 Evolved C Input int main() { double var0 = ; double var1 = var0; var1 /= (var * var0) L; unsigned long var2 = UL; var2 *= var2 * var2; int var3 = ; for (; var3 <= ; ++var3) { var1 = var1 / LL / (var3 & ULL) == / U; unsigned long long var4 = ULL; int var5 = ; var5 += (4 / var4 % var2 & ULL) >= / % 120; } int var4 = ; var4 = var ; signed char var5 = 22; unsigned char var6 = 7; var5 = var5 + var6; }
56 Domain Code CCFuzz C Source Code Compiler
57 int main() { } CC Tests XML Tests GUI Tests Web Tests
58 int main() { } CC Tests XML Tests GUI Tests Web Tests
59 <math> <mrow> <munderover> <mo> </mo> <mrow> <mi>x</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <mrow> <apply> <power/> <ci>x</ci> <cn>2</cn> </apply> </mrow> </mrow> </math> XML Tests nx x=1 x 2
60 <math> <mrow> <munderover> <mo> </mo> <mrow> <mi>x</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <mrow> <apply> <power/> <ci>x</ci> <cn>2</cn> </apply> </mrow> </mrow> </math> XML Tests
61 Domain Inputs XMLTest XML Input Tested System
62 int main() { } CC Tests XML Tests GUI Tests Web Tests
63 int main() { } CC Tests XML Tests GUI Tests Web Tests
64 EXSYST Florian Groß, Andreas Zeller
65 DROIDMATE Konrad Jamrozik, Andreas Zeller
66 DROIDMATE
67 Test Coverage Unit Test Generators GUI Test Generators Randoop Evosuite GUItar Exsyst 100 % 75 % 50 % 25 % 0 % Addressbook Calculator TerpPresent TerpSpreadSheet TerpWord
68
69
70 int main() { } CC Tests XML Tests GUI Tests Web Tests
71 int main() { } CC Tests XML Tests GUI Tests Web Tests
72
73 WEBMATE Martin Burger, Valentin Dallmeier, Andreas Zeller
74
75
76 Test this! Test Subscribe
77 int main() { } CC Tests XML Tests GUI Tests Web Tests
78 int main() { } CC Tests XML Tests GUI Tests Web Tests
79 Checking Results Crashes Assertions Regressions
80 Crashes If the system detects an error, we do so, too
81 Assertions
82 Assertions class RedBlackTree { boolean repok() { assert (roothasnoparent()); assert (rootisblack()); assert (rednodeshaveonlyblackchildren()); assert (equalnumberofblacknodesonsubtrees()); assert (treeisacyclic()); assert (parentsareconsistent());! return true; } } Test generators aim for branch coverage and thus aim for falsifying assertions
83 Regression nx n X x 2 x 3 x=1 x=1 Compare with earlier or alternate version
84 Compare Compilers LLVM Executable 0 CCFuzz GCC Executable 1 Intel Executable 0
85 App Mining
86 Layer Oracles System interface (XML, etc.) Java code C code
87 Layer Oracles System interface (XML, etc.) in = <x>20</x> Java code sx = 20 int f(int x) { return 2 * x; } void h(int x, int y) { if (x!= y && f(x) == x + 10) abort(); x = 20, y = 1 x = 20, y!= x }
88 Layer Oracles System interface (XML, etc.) Java code C code
89
90 90
91 A Rau V Dallmeier S Just E May F Gross K Herzig C Hammacher A Zeller A Tarasevich M Burger K Streit M Höschele B Pohl M Mirold I Tavecchia G Reibold J Rößler K Jamrozik JP Galeotti K Becker A Gorla
92
93 Software is manifold but can these ever be invoked from here? 1,000 Testers in a Shoe Box static analysis Advances in Automated may Test detect Generation errors here Evolutionary Algorithms int main() { } Create population Create mutations CC Tests XML Tests Rank Select Recombine GUI Tests Web Tests
Carving Invariants. Andreas Zeller Saarland University. CREST Open Workshop The Oracle Problem for Automated Software Testing, London, May 2012
Carving Invariants Andreas Zeller Saarland University CREST Open Workshop The Oracle Problem for Automated Software Testing, London, May 2012 Concrete Tests Concrete Tests y = sqrt(4) assert(y == 2) Concrete
More informationExperimental Program Analysis. Program Analysis. Static Analysis
Experimental Program Analysis Experimental Program Analysis Andreas Zeller Saarland University, Saarbrücken, Germany, zeller@cs.unisaarland.de, http://www.st.cs.unisaarland.de/zeller/ Andreas Zeller Saarland
More informationF. Tip and M. Weintraub FUNCTIONAL TESTING
F. Tip and M. Weintraub FUNCTIONAL TESTING ACKNOWLEDGEMENTS Thanks go to Andreas Zeller for allowing incorporation of his materials 2 HOW TO TELL IF A SYSTEM MEETS EXPECTATIONS? Two options: 1. testing:
More informationSTRUCTURAL TESTING. AKA White Box Testing. Thanks go to Andreas Zeller for allowing incorporation of his materials. F. Tip and M.
F. Tip and M. Weintraub STRUCTURAL TESTING AKA White Box Testing Thanks go to Andreas Zeller for allowing incorporation of his materials STRUCTURAL TESTING Testing based on the structure of the code Test
More informationGenerating Parameterized Unit Tests
Generating Parameterized Unit Tests Gordon Fraser Saarland University Computer Science Saarbrücken, Germany fraser@cs.uni-saarland.de Andreas Zeller Saarland University Computer Science Saarbrücken, Germany
More informationMutation-based Generation of Tests and Oracles. Gordon Fraser and Andreas Zeller Saarland University, Germany
Mutation-based Generation of Tests and Oracles Gordon Fraser and Andreas Zeller Saarland University, Germany LocalDate date = new LocalDate(2010, 7, 15); date.plusyears(1); assertequals(date.getyear(),
More informationSTRUCTURAL TESTING. AKA White Box Testing. Thanks go to Andreas Zeller for allowing incorporation of his materials. F. Tip and M.
F. Tip and M. Weintraub STRUCTURAL TESTING AKA White Box Testing Thanks go to Andreas Zeller for allowing incorporation of his materials STRUCTURAL TESTING Testing based on the structure of the code Test
More informationStructural Testing. Testing Tactics. Why Structural? Structural white box. Functional black box. Structural white box. Functional black box
From Pressman, Software Engineering a practitioner s approach, Chapter 14 and Pezze + Young, Software Testing and Analysis, Chapters 12-13 Structural Testing Software Engineering Andreas Zeller Saarland
More informationTesting Tactics. Structural Testing. Why Structural? Why Structural? Functional black box. Structural white box. Functional black box
ing Tactics Structural ing Functional black box Structural white box Software Engineering Andreas Zeller Saarland University s based on spec covers as much specified behavior as possible s based on code
More informationTest Automation. 20 December 2017
Test Automation 20 December 2017 The problem of test automation Testing has repetitive components, so automation is justified The problem is cost-benefit evaluation of automation [Kaner] Time for: test
More informationPart I: Preliminaries 24
Contents Preface......................................... 15 Acknowledgements................................... 22 Part I: Preliminaries 24 1. Basics of Software Testing 25 1.1. Humans, errors, and testing.............................
More informationAn Industrial Evaluation of Unit Test Generation: Finding Real Faults in a Financial Application
An Industrial Evaluation of Unit Test Generation: Finding Real Faults in a Financial Application M. Moein Almasi, Hadi Hemmati, Gordon Fraser, Andrea Arcuri, Jānis Benefelds Department of Computer Science,
More informationFault-based testing. Automated testing and verification. J.P. Galeotti - Alessandra Gorla. slides by Gordon Fraser. Thursday, January 17, 13
Fault-based testing Automated testing and verification J.P. Galeotti - Alessandra Gorla slides by Gordon Fraser How good are my tests? How good are my tests? Path testing Boundary interior testing LCSAJ
More informationCS 520 Theory and Practice of Software Engineering Fall 2018
Today CS 52 Theory and Practice of Software Engineering Fall 218 Software testing October 11, 218 Introduction to software testing Blackbox vs. whitebox testing Unit testing (vs. integration vs. system
More informationSOQUA Automated Generation and Evaluation of Dataflow-based Test Data for Object-Oriented Software. Norbert Oster
Automated Generation and Evaluation of Dataflow-based Test Data for Object-Oriented Software (Germany) (Informatik 11) SOQUA 2005 page 1 page 2 Agenda Motivation and goal Introduction to dataflow based
More informationRecap. Juan Pablo Galeotti,Alessandra Gorla, Software Engineering Chair Computer Science Saarland University, Germany
Recap Juan Pablo Galeotti,Alessandra Gorla, Software Engineering Chair Computer Science Saarland University, Germany 30% projects (10% each) At least 50% threshold for exam admittance Groups of 2 70% final
More informationSubject Software Testing Structural Testing
Subject Software Testing Structural Testing Objective: 1. Understand Concept of structural testing 2. How structural (code-based or glass-box) testing complements functional (black-box) testing 3. Recognize
More informationTesting. CMSC 433 Programming Language Technologies and Paradigms Spring A Real Testing Example. Example (Black Box)?
Testing CMSC 433 Programming Language Technologies and Paradigms Spring 2007 Testing Feb. 15, 2007 Some slides adapted from FSE 98 Tutorial by Michal Young and Mauro Pezze Execute program on sample input
More informationSystem Assertions. Your Submissions. Oral Exams FEBRUARY FEBRUARY FEBRUARY
System Assertions Andreas Zeller 1 Your Submissions Program must behave exactly as specified (i.e., input, output, flags, etc.) Program must use recent Python 2 version (i.e., Python 2.6 installed in CIP
More informationhttps://www.lri.fr/ linaye/gl.html
Software Engineering https://www.lri.fr/ linaye/gl.html lina.ye@centralesupelec.fr Sequence 3, 2017-2018 1/61 Software Engineering Plan 1 2 3 4 5 2/61 Software Engineering Software Testing 3/61 Software
More informationAsserting Expectations. Your Submissions. Oral Exams
Asserting Expectations Andreas Zeller 1 Your Submissions Program must behave exactly as specified (i.e., input, output, flags, etc.) Program must use recent Python 2 version (i.e., Python 2.6 installed
More informationCoverage-Guided Fuzzing
Coverage-Guided Fuzzing Dynamic Coverage Static Structure Security Testing Andreas Zeller, Saarland University Smart Algorithms Our Goal We want to cause the program to fail We have seen random (unstructured)
More informationSoftware Testing Lecture 1. Justin Pearson
Software Testing Lecture 1 Justin Pearson 2017 1 / 50 Four Questions Does my software work? 2 / 50 Four Questions Does my software work? Does my software meet its specification? 3 / 50 Four Questions Does
More informationIngegneria del Software Corso di Laurea in Informatica per il Management
Ingegneria del Software Corso di Laurea in Informatica per il Management Software testing Davide Rossi Dipartimento di Informatica Università di Bologna Validation and verification Software testing is
More informationIBM Rational Rhapsody TestConductor Add On. Code Coverage Limitations
IBM Rational Rhapsody TestConductor Add On Code Coverage Limitations 1 Rhapsody IBM Rational Rhapsody TestConductor Add On Code Coverage Limitations Release 2.7.1 2 License Agreement No part of this publication
More informationStructural Testing. Testing Tactics. Why Structural? Structural white box. Functional black box. Structural white box. Functional black box
From Pressman, Software Engineering a practitioner s approach, Chapter 14 and Pezze + Young, Software Testing and Analysis, Chapters 12-13 Structural Testing Software Engineering Andreas Zeller Saarland
More informationManuel Oriol, CHCRC-C, Software Testing ABB
Manuel Oriol, CHCRC-C, 08.11.2017 Software Testing Slide 1 About me 1998 2004 2005 2008 2011 Slide 2 Introduction Why do we test? Did you have to deal with testing in the past? Slide 3 Ariane 5 http://www.youtube.com/watch?v=kyurqduyepi
More information(CONDITIONALS_BOUNDARY)
Pitest (../../) Overview PIT currently provides ten built-in mutators, of which seven are activated by default. The default set can be overriden, and different operators selected, by passing the names
More informationCS159. Nathan Sprague. September 30, 2015
CS159 Nathan Sprague September 30, 2015 Testing Happens at Multiple Levels Unit Testing - Test individual classes in isolation. Focus is on making sure that each method works according to specification.
More informationReplaying and Isolating Failing Multi-Object Interactions. Martin Burger Andreas Zeller Saarland University
Replaying and Isolating Failing Multi-Object Interactions Martin Burger Andreas Zeller Saarland University e-mail client written in Java 100,200 LOC ~ 1,600 Java classes 17 developers Actively developed
More informationIntroduction to Programming Using Java (98-388)
Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;
More informationIntroduction to Dynamic Analysis
Introduction to Dynamic Analysis Reading assignment Gary T. Leavens, Yoonsik Cheon, "Design by Contract with JML," draft paper, http://www.eecs.ucf.edu/~leavens/jml//jmldbc.pdf G. Kudrjavets, N. Nagappan,
More informationAliasing restrictions of C11 formalized in Coq
Aliasing restrictions of C11 formalized in Coq Robbert Krebbers Radboud University Nijmegen December 11, 2013 @ CPP, Melbourne, Australia Aliasing Aliasing: multiple pointers referring to the same object
More informationTesting and Debugging C Programming and Software Tools. N.C. State Department of Computer Science
Testing and Debugging C Programming and Software Tools N.C. State Department of Computer Science Introduction Majority of software development is testing, debugging, and bug fixing The best software developers
More informationCUTE: A Concolic Unit Testing Engine for C
CUTE: A Concolic Unit Testing Engine for C Koushik Sen Darko Marinov Gul Agha University of Illinois Urbana-Champaign Goal Automated Scalable Unit Testing of real-world C Programs Generate test inputs
More informationAn Introduction to Systematic Software Testing. Robert France CSU
An Introduction to Systematic Software Testing Robert France CSU Why do we need to systematically test software? Poor quality products can Inconvenience direct and indirect users Result in severe financial
More informationTesting. Prof. Clarkson Fall Today s music: Wrecking Ball by Miley Cyrus
Testing Prof. Clarkson Fall 2017 Today s music: Wrecking Ball by Miley Cyrus Review Previously in 3110: Modules Specification (functions, modules) Today: Validation Testing Black box Glass box Randomized
More informationEvolutionary Generation of Whole Test Suites
Evolutionary Generation of Whole Test Suites Gordon Fraser Saarland University Computer Science Saarbrücken, Germany fraser@cs.uni-saarland.de Andrea Arcuri Simula Research Laboratory P.O. Box 134, 1325
More informationPrinciples of Software Construction: Objects, Design, and Concurrency (Part 2: Designing (Sub )Systems)
Principles of Software Construction: Objects, Design, and Concurrency (Part 2: Designing (Sub )Systems) More Analysis for Functional Correctness Jonathan Aldrich Charlie Garrod School of Computer Science
More informationSoftware Quality Assurance. David Janzen
Software Quality Assurance David Janzen What is quality? Crosby: Conformance to requirements Issues: who establishes requirements? implicit requirements Juran: Fitness for intended use Issues: Who defines
More informationChapter 7 Control Statements Continued
Chapter 7 Control Statements Continued Logical Operators used in Boolean expressions to control behavior of if, while or for statements. && - and, - or,! - not if (the sun shines && you have the time)
More informationTopics in Software Testing
Dependable Software Systems Topics in Software Testing Material drawn from [Beizer, Sommerville] Software Testing Software testing is a critical element of software quality assurance and represents the
More informationAccelerating Stateflow With LLVM
Accelerating Stateflow With LLVM By Dale Martin Dale.Martin@mathworks.com 2015 The MathWorks, Inc. 1 What is Stateflow? A block in Simulink, which is a graphical language for modeling algorithms 2 What
More informationChapter 11, Testing. Using UML, Patterns, and Java. Object-Oriented Software Engineering
Chapter 11, Testing Using UML, Patterns, and Java Object-Oriented Software Engineering Outline Terminology Types of errors Dealing with errors Quality assurance vs Testing Component Testing! Unit testing!
More informationMONIKA HEINER.
LESSON 1 testing, intro 1 / 25 SOFTWARE TESTING - STATE OF THE ART, METHODS, AND LIMITATIONS MONIKA HEINER monika.heiner@b-tu.de http://www.informatik.tu-cottbus.de PRELIMINARIES testing, intro 2 / 25
More informationType Conversion. and. Statements
and Statements Type conversion changing a value from one type to another Void Integral Floating Point Derived Boolean Character Integer Real Imaginary Complex no fractional part fractional part 2 tj Suppose
More informationAutomatic Repair of Real Bugs in Java: A Large-Scale Experiment on the Defects4J Dataset
Automatic Repair of Real Bugs in Java: A Large-Scale Experiment on the Defects4J Dataset Matias Martinez, Thomas Durieux, Romain Sommerard, Jifeng Xuan, Martin Monperrus 1 Automatic Software Repair Automatic
More informationData Structures. Subodh Kumar. Dept of Computer Sc. & Engg. IIT Delhi
Data Structures Subodh Kumar Dept of Computer Sc. & Engg. IIT Delhi OOP Quiz 2 Class Bird extends class Animal. class Cat { public Bird catchbird(bird birdtocatch) {... Later in a method Animal pigeon
More informationFeedback-controlled Random Test Generation
Feedback-controlled Random Test Generation Kohsuke Yatoh 1*, Kazunori Sakamoto 2, Fuyuki Ishikawa 2, Shinichi Honiden 12 1:University of Tokyo, 2:National Institute of Informatics * He is currently affiliated
More informationAutomated Test Generation for Java Generics
Automated Test Generation for Java Generics Gordon Fraser 1 and Andrea Arcuri 2 1 University of Sheffield Dep. of Computer Science, Sheffield, UK gordon.fraser@sheffield.ac.uk, 2 Simula Research Laboratory
More informationCS152: Programming Languages. Lecture 2 Syntax. Dan Grossman Spring 2011
CS152: Programming Languages Lecture 2 Syntax Dan Grossman Spring 2011 Finally, some formal PL content For our first formal language, let s leave out functions, objects, records, threads, exceptions,...
More informationEvolutionary Generation of Whole Test Suites
Evolutionary Generation of Whole Test Suites Gordon Fraser Saarland University Computer Science Saarbrücken, Germany fraser@cs.uni-saarland.de Andrea Arcuri Simula Research Laboratory P.O. Box 134, 1325
More informationHow Failures Come to be. Andreas Zeller
How Failures Come to be Andreas Zeller An F-16 (northern hemisphere) 2 An F-16 (southern hemisphere) 3 F-16 Landing Gear 4 The First Bug September 9, 1947 5 More Bugs 6 Facts on Debugging Software bugs
More informationProfiling General Purpose Systems for Parallelism
Profiling General Purpose Systems for Parallelism 06.11.009 Clemens Hammacher, Kevin Streit, Sebastian Hack, Andreas Zeller Saarland University Department of Computer Science Saarbrücken, Germany Motivation
More informationCSE 374 Programming Concepts & Tools. Hal Perkins Fall 2015 Lecture 15 Testing
CSE 374 Programming Concepts & Tools Hal Perkins Fall 2015 Lecture 15 Testing Where we are Some very basic software engineering topics in the midst of tools Today: testing (how, why, some terms) Later:
More informationInternet Accessible Mathematical Computation A Progress Report
Internet Accessible Mathematical Computation A Progress Report Paul S. Wang Institute for Computational Mathematics Kent State University http://horse.mcs.kent.edu/ pwang FMC-1 Contents Math Communication
More informationAutomatic Generation of Oracles for Exceptional Behaviors
Automatic Generation of Oracles for Exceptional Behaviors ISSTA * * Artifact Consistent * Complete * Well Documented * Easy to Reuse * Evaluated * AEC * Alberto Goffi alberto.goffi@usi.ch USI Università
More informationSoftware Engineering
Software Engineering Lecture 13: Testing and Debugging Testing Peter Thiemann University of Freiburg, Germany SS 2014 Recap Recap Testing detect the presence of bugs by observing failures Recap Testing
More informationThere are three basic elements in object oriented programming: encapsulation, inheritance and polymorphism.
More on Object Oriented Programming Concepts Functional, structured programming often results in programs that describe a hierarchy of tasks to be performed. Object oriented design, however, results in
More informationData abstractions: ADTs Invariants, Abstraction function. Lecture 4: OOP, autumn 2003
Data abstractions: ADTs Invariants, Abstraction function Lecture 4: OOP, autumn 2003 Limits of procedural abstractions Isolate implementation from specification Dependency on the types of parameters representation
More informationProgramming Embedded Systems
Programming Embedded Systems Lecture 8 Overview of software testing Wednesday Feb 8, 2012 Philipp Rümmer Uppsala University Philipp.Ruemmer@it.uu.se 1/53 Lecture outline Testing in general Unit testing
More informationProgram Analysis: A Hierarchy
0/13 Workshop on Dynamic Analysis, Portland, Oregon, 2003 Program Analysis: A Hierarchy Andreas Zeller Lehrstuhl Softwaretechnik Universität des Saarlandes, Saarbrücken A Hierarchy of Reasoning 1/13 Experimentation
More informationStructural Coverage Analysis for Safety-Critical Code - Who Cares? 2015 LDRA Ltd 1
Structural Coverage Analysis for Safety-Critical Code - Who Cares? 2015 LDRA Ltd 1 What is Structural Coverage? Measurement of Test Effectiveness How effectively did tests exercise code? Exercised, entry
More informationLevels of Testing Testing Methods Test Driven Development JUnit. Testing. ENGI 5895: Software Design. Andrew Vardy
Testing ENGI 5895: Software Design Andrew Vardy Faculty of Engineering & Applied Science Memorial University of Newfoundland March 6, 2017 Outline 1 Levels of Testing 2 Testing Methods 3 Test Driven Development
More informationChapter 4 Defining Classes I
Chapter 4 Defining Classes I This chapter introduces the idea that students can create their own classes and therefore their own objects. Introduced is the idea of methods and instance variables as the
More informationComparing Coverage. Andreas Zeller
Comparing Coverage Andreas Zeller Tracing Infections For every infection, we must find the earlier infection that causes it. Which origin should we focus upon? 2 Tracing Infections 3 Focusing on Anomalies
More informationSoftware Engineering Testing and Debugging Testing
Software Engineering Testing and Debugging Testing Prof. Dr. Peter Thiemann Universitt Freiburg 08.06.2011 Recap Testing detect the presence of bugs by observing failures Debugging find the bug causing
More informationProgram Verification! Goals of this Lecture! Words from the Wise! Testing!
Words from the Wise Testing On two occasions I have been asked [by members of Parliament], Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out? I am not able rightly
More informationLearning outcomes. Systems Engineering. Debugging Process. Debugging Process. Review
Systems Engineering Lecture 9 System Verification II Dr. Joanna Bryson Dr. Leon Watts University of Bath Department of Computer Science 1 Learning outcomes After both lectures and doing the reading, you
More informationUnit and Functional Testing for the Android Platform. Christopher M. Judd
Unit and Functional Testing for the Android Platform Christopher M. Judd Christopher M. Judd President/Consultant of leader Columbus Developer User Group (CIDUG) Remarkable Ohio Free Developed for etech
More informationPROGRAM ANALYSIS & SYNTHESIS
Lecture 02 Structural Operational Semantics (SOS) PROGRAM ANALYSIS & SYNTHESIS EranYahav 1 Previously static analysis over-approximation of program behavior abstract interpretation abstraction, transformers,
More informationIn this lab we will practice creating, throwing and handling exceptions.
Lab 5 Exceptions Exceptions indicate that a program has encountered an unforeseen problem. While some problems place programmers at fault (for example, using an index that is outside the boundaries of
More informationThere are several files including the start of a unit test and the method stubs in MindNumber.java. Here is a preview of what you will do:
Project MindNumber Collaboration: Solo. Complete this project by yourself with optional help from section leaders. Do not work with anyone else, do not copy any code directly, do not copy code indirectly
More informationMining Specifications
Mining Specifications Andreas Zeller Saarland University zeller@acm.org WINNER OF JOLT PRODUCTIVITY AWARD ANDREAS ZELLER WHY PROGRAMS FAIL A GUIDE TO SYSTEMATIC DEBUGGING SECOND EDITION FOSE 10 FSE 10
More informationMutation Testing. Leaving the Stone Age
Mutation Testing Leaving the Stone Age 2017 whoami ios Developer by day compiler hacker by night https://twitter.com/1101_debian https://lowlevelbits.org https://systemundertest.org Outline Quality of
More informationCMSC 132: OBJECT-ORIENTED PROGRAMMING II
CMSC 132: OBJECT-ORIENTED PROGRAMMING II Program Testing Department of Computer Science University of Maryland, College Park Debugging Is Harder Than Coding! Debugging is twice as hard as writing the code
More informationA Fitness Function to Find Feasible Sequences of Method Calls for Evolutionary Testing of Object-Oriented Programs
A Fitness Function to Find Feasible Sequences of Method Calls for Evolutionary Testing of Object-Oriented Programs Myoung Yee Kim and Yoonsik Cheon TR #7-57 November 7; revised January Keywords: fitness
More informationTesting! The material for this lecture is drawn, in part, from! The Practice of Programming (Kernighan & Pike) Chapter 6!
Testing The material for this lecture is drawn, in part, from The Practice of Programming (Kernighan & Pike) Chapter 6 1 Goals of this Lecture Help you learn about: Internal testing External testing General
More informationEXAMINING THE CODE. 1. Examining the Design and Code 2. Formal Review: 3. Coding Standards and Guidelines: 4. Generic Code Review Checklist:
EXAMINING THE CODE CONTENTS I. Static White Box Testing II. 1. Examining the Design and Code 2. Formal Review: 3. Coding Standards and Guidelines: 4. Generic Code Review Checklist: Dynamic White Box Testing
More informationTesting & Debugging TB-1
Testing & Debugging TB-1 Need for Testing Software systems are inherently complex» Large systems 1 to 3 errors per 100 lines of code (LOC) Extensive verification and validiation is required to build quality
More informationC07: Testing and JUnit
CISC 3120 C07: Testing and JUnit Hui Chen Department of Computer & Information Science CUNY Brooklyn College 9/19/2017 CUNY Brooklyn College 1 Outline Recap and issues Grades and feedback Assignments &
More informationTesting: Test design and testing process
Testing: Test design and testing process Zoltán Micskei Based on István Majzik s slides Dept. of Measurement and Information Systems Budapest University of Technology and Economics Department of Measurement
More informationTest Case Generation Based on Sequence Diagrams
Test Case Generation Based on Sequence Diagrams Yao-Cheng Lei Nai-Wei Lin Department of Computer Science and Information Engineering National Chung Cheng University Chiayi, Taiwan 621, R.O.C. {lyc94,naiwei}@cs.ccu.edu.tw
More informationTOS Test Center (TTC)
TOS Arno Puder 1 Objectives Explain the TOS testing system Explain some debugging techniques when a program error typically crashes the whole system Explain symbolic debugging of TOS 2 Test Cases TOS comes
More informationLevels of Testing Testing Methods Test Driven Development JUnit. Testing. ENGI 5895: Software Design. Andrew Vardy
Testing ENGI 5895: Software Design Andrew Vardy Faculty of Engineering & Applied Science Memorial University of Newfoundland March 6, 2017 Outline 1 Levels of Testing 2 Testing Methods 3 Test Driven Development
More informationSoftware Engineering and Scientific Computing
Software Engineering and Scientific Computing Barbara Paech, Hanna Remmel Institute of Computer Science Im Neuenheimer Feld 326 69120 Heidelberg, Germany http://se.ifi.uni-heidelberg.de paech@informatik.uni-heidelberg.de
More informationWhy testing and analysis. Software Testing. A framework for software testing. Outline. Software Qualities. Dependability Properties
Why testing and analysis Software Testing Adapted from FSE 98 Tutorial by Michal Young and Mauro Pezze Software is never correct no matter what developing testing technique is used All software must be
More informationComparing the effectiveness of automated test generation tools EVOSUITE and Tpalus
Comparing the effectiveness of automated test generation tools EVOSUITE and Tpalus A THESIS SUBMITTED TO THE FACULTY OF THE GRADUATE SCHOOL UNIVERSITY OF MINNESOTA BY Sai Charan Raj Chitirala IN PARTIAL
More informationExploring Code with Microsoft Pex
Exploring Code with Microsoft Pex Tutorial for Automated Whitebox Testing for.net Applications Abstract Microsoft Pex 2010 is a Microsoft Visual Studio add-in that provides a runtime code analysis tool
More informationMain concepts to be covered. Testing and Debugging. Code snippet of the day. Results. Testing Debugging Test automation Writing for maintainability
Main concepts to be covered Testing and Debugging Testing Debugging Test automation Writing for maintainability 4.0 Code snippet of the day public void test() { int sum = 1; for (int i = 0; i
More informationTesting and Validation of Simulink Models with Reactis
Testing and Validation of Simulink Models with Reactis Build better embedded software faster. Generate tests from Simulink models. Detect runtime errors. Execute and debug Simulink models. Track coverage.
More informationSoftware Quality Assurance Dynamic Test
Software Quality Assurance Dynamic Test Contents Properties and goals Structural testing Control flow testing Data flow testing Functional test Diversified test 2 Properties and Goals Properties of dynamic
More informationGUITAR AMP (AutoMatic jfcunit test case Producer)
GUITAR AMP (AutoMatic jfcunit test case Producer) http://www.cs.umd.edu/~atif/ugprojects/francis_and_hackner/guitar_amp.html Daniel R. Hackner - dan.hackner@gmail.com Advisor: Atif M. Memon - atif@cs.umd.edu
More informationCSE 403: Software Engineering, Fall courses.cs.washington.edu/courses/cse403/16au/ Unit Testing. Emina Torlak
CSE 403: Software Engineering, Fall 2016 courses.cs.washington.edu/courses/cse403/16au/ Unit Testing Emina Torlak emina@cs.washington.edu Outline Software quality control Effective unit testing Coverage
More informationTesting! The material for this lecture is drawn, in part, from! The Practice of Programming (Kernighan & Pike) Chapter 6!
Testing The material for this lecture is drawn, in part, from The Practice of Programming (Kernighan & Pike) Chapter 6 1 Words from the Wise On two occasions I have been asked [by members of Parliament],
More informationMining API Popularity
Mining API Popularity 40 # projects using an API element 35 30 25 20 15 10 5 junit.framework.testsuite javax.swing.jscrollpane javax.swing.border.border junit.framework.assertionfailederror java.io.stringbufferinputstream
More information(See related materials in textbook.) CSE 435: Software Engineering (slides adapted from Ghezzi et al & Stirewalt
Verification (See related materials in textbook.) Outline What are the goals of verification? What are the main approaches to verification? What kind of assurance do we get through testing? How can testing
More informationCSE 431S Type Checking. Washington University Spring 2013
CSE 431S Type Checking Washington University Spring 2013 Type Checking When are types checked? Statically at compile time Compiler does type checking during compilation Ideally eliminate runtime checks
More informationIntermediate Representations & Symbol Tables
Intermediate Representations & Symbol Tables Copyright 2014, Pedro C. Diniz, all rights reserved. Students enrolled in the Compilers class at the University of Southern California have explicit permission
More informationCPSC 233: Assignment 4 (Due March 26 at 4 PM)
CPSC 233: Assignment 4 (Due March 26 at 4 PM) New learning concepts: Problem solving using object-oriented programming. Aside from main() you cannot implement other static methods. Also you should not
More information