UnitCheck: Unit Testing and Model Checking Combined
|
|
|
- Griffin Tate
- 9 years ago
- Views:
Transcription
1 UnitCheck: Unit Testing and Model Checking Combined Michal Kebrt and Ondřej Šerý Charles University in Prague Malostranské náměstí Prague 1 Czech Republic [email protected], [email protected] Abstract. Code model checking is a rapidly advancing research topic. However, apart from very constrained scenarios (e.g., verification of device drivers by Slam), the code model checking tools are not widely used in general software development process. We believe that this could be changed if the developers could use the tools in the same way they already use testing tools. In this paper, we present the UnitCheck tool, which enhances standard unit testing of Java code with model checking. A developer familiar with unit testing can apply the tool on standard unit test scenarios and benefit from the exhaustive traversal performed by a code model checker, which is employed inside UnitCheck. The UnitCheck plugin for Eclipse presents the checking results in a convenient way known from unit testing, while providing also a verbose output for the expert users. 1 Introduction In recent years, the field of code model checking has advanced significantly. There exist a number of code model checkers targeting mainstream programming languages such as C, Java, and C# (e.g., Slam [2], CBMC [6], Blast [11], Java PathFinder [15], and MoonWalker [7]). In spite of this fact, the adoption of the code model checking technologies in the industrial software development process is still very slow. This is caused by two main reasons (i) limited scalability to large software, and (ii) missing tool-supported integration into the development process. The current model checking tools can handle programs up to tens of KLOC and often require manual simplifications of the code under analysis [13]. Unfortunately, such program size is still several orders of magnitude smaller than the size of many industrial projects. This work was partially supported by the Czech Academy of Sciences project 1ET , and the Q-ImPrESS research project (FP ) by the European Union under the Information and Communication Technologies priority of the Seventh Research Framework Programme.
2 Apart from the scalability issues, there is virtually no support for integration of the code model checkers into the development process. Although some tools feature a user interface in the form of a plugin for a mainstream IDE (e.g., SatAbs [5]), creation of a particular checking scenario is not often discussed or supported in any way. A notable exception is Slam and its successful application in the very specific domain of kernel device drivers. These two obstacles might be overcome by employing code model checking in a way similar to unit testing we use the term unit checking first proposed in [10]. Unit testing is widely used in industry and developers are familiar with writing test suites. Providing model checking tools with a similar interface would allow developers to directly benefit from model checking technology (e.g., of exploration of all thread interleavings) without changing their habits. Moreover, applying model checking to smaller code units also helps avoiding the state explosion problem, the main issue of the model checking tools. Goals and structure of the paper. We present the UnitCheck tool, which allows for creation, execution and evaluation of checking scenarios using the Java PathFinder model checker (JPF). UnitCheck accepts standard JUnit tests [1] and exhaustively explores the reachable state space including all admissible thread interleavings. Moreover, the checking scenarios might feature nondeterministic choices, in which case all possible outcomes are examined. The tool is integrated into the Eclipse IDE in a similar way as the JUnit framework and also an Ant task is provided. As a result, users familiar with unit testing using JUnit might immediately start using UnitCheck. Test example. Examples of two JUnit tests that would benefit from the analysis performed by UnitCheck (in contrast to standard unit testing) are listed in Figure 1. The code under test, on the left, comprises of bank accounts and bankers that sequentially deposit money to an account. The first test creates two bankers for the same account, executes them in parallel, and checks the total balance when they are finished. UnitCheck reports a test failure because the line marked with (1) is not synchronized. Therefore, with a certain thread interleaving of the two bankers the total balance will not be correct due to the race condition. In most cases, JUnit misses this bug because it uses only one thread interleaving. The second test demonstrates the use of a random generator (the Verify class) to conveniently specify the range of values to be used in the test. UnitCheck exhaustively examines all values in the range and discovers an error, i.e., the negative account balance. When using standard unit testing, the test designer could either use a pseudorandom number generator (the Random class) and take a risk of missing an error, or explicitly loop through all possible values, thus obfuscating the testing code. 2 Tool In this section, the internal architecture of UnitCheck is described. Additionally, we discuss three user interfaces to UnitCheck which can be used to employ the tool in the development process.
3 public class Account { private double balance = 0; public void deposit(double a) { balance = balance + a; //(1) public void withdraw(double a) { balance = balance a; public double getbalance() { return balance; public class Banker implements Runnable { private Account account; private double amount; private int public void testdepositinthreads() { Account account = new Account(); Thread t1 = new Thread( new Banker(account, 5, 5)); Thread t2 = new Thread( new Banker(account, 10, 5)); t1.start(); t2.start(); t1.join(); t2.join(); assertequals(account.getbalance(), , public void testdepositwithdraw() { Account account = new Account(); int income = Verify.getInt(0, 10); int outcome = Verify.getInt(0, public void run() { for (int i=0; i < cnt; ++i) { account.deposit(amount); account.deposit(income); assertequals(account.getbalance(), income, 0); account.withdraw(outcome); assertequals(account.getbalance(), Math.max(income outcome, 0), 0); Fig. 1. Tests that benefit from UnitCheck s features 2.1 Architecture An overview of the UnitCheck s architecture is depicted in Figure 2. The core module of UnitCheck, the actual integration of JPF and JUnit, is enclosed in the central box. It is compiled into a Java library so that it can be easily embedded into other Java applications (e.g., into an IDE). As an input, the core module takes an application under analysis, the JUnit-compliant test cases, and optionally additional properties to fine-tune JPF. The analysis is then driven and monitored via the UnitCheckListener interface. It is important to note that neither JPF nor JUnit functionality and structures are directly exposed outside the core. The UnitCheckListener interface hides all JPF and JUnit specific details. This solution brings a couple of advantages. (i) Extensions (e.g., Eclipse plugin) implement only the single (and simple) listener interface. (ii) In future, both JPF and JUnit can be replaced with similar tools without modifying existing extensions. Inside the core, UnitCheckListener is built upon two interfaces JPF s SearchListener and JUnit s RunListener. SearchListener notifies about property violations (e.g., deadlocks) and provides complete execution history leading to a violation. RunListener informs about assertion violations and other uncaught exceptions. UnitCheck processes reports from both listeners and provides them in a unified form to higher levels through UnitCheckListener. When analyzing the test cases, two Java virtual machines are employed. The first one is the host virtual machine in which UnitCheck itself and the underlying JPF are executed. The second one is JPF, a special kind of virtual machine, which executes JUnit. Subsequently, JUnit runs the input test cases
4 (in Figure 2, the code executed inside the JPF virtual machine is explicitly marked). The information about test case progress provided by the JUnit s RunListener interface is available only in the JPF virtual machine. To make this information accessible in the host virtual machine, the JPF s Model Java Interface (MJI) API is used. It allows to execute parts of the application under analysis in the host virtual machine instead of the JPF virtual machine. Each class that is to be executed in the host VM has a corresponding peer counterpart. This mechanism is used for the TestReportListener class. Fig. 2. JPF and JUnit integration 2.2 User Interface Currently, there are three different extensions that provide user interface for checking JUnit tests using UnitCheck simple command-line application, Ant task, and Eclipse plugin. The interfaces are designed to make their usage as close to the usage of the corresponding JUnit tools as possible. As an example, the Eclipse plugin provides a user interface very similar to the JUnit plugin for Eclipse, including test summaries, progress reports, and run configurations. On the other hand, the tools provide also a verbose output for the expert users which are familiar with model checking tools. In addition to the easy-to-understand JUnit-like result summaries, the Eclipse plugin provides also a navigable panel with a detailed error trace obtained from JPF with different levels of verbosity. 1 1 The UnitCheck tool and all three user interfaces are available for download at
5 3 Related work The notion of unit checking was first used in [10]. The authors study the problem of symbolic model checking of code fragments (e.g., individual functions) in separation. In a similar vein, we use the term unit checking in parallel to unit testing. However, the focus of UnitCheck is in providing users with tool support for integration of model checking into the software development process. To our knowledge, the Slam project [2] is by far the most successful application of code model checking in real-life software development process. Nevertheless, its success stems from the very constrained domain of device drivers, where the environment is fixed and known in advance by the tool s developers. In contrast, UnitCheck offers benefits of code model checking in a convenient (and familiar) interface to developers of general purpose Java software. Another related project is Chess, which is a testing tool that can execute the target.net or Win32 program in all relevant thread interleavings. Chess comes in a form of a plugin into Microsoft Visual Studio and can be used to execute existing unit tests. As well as with UnitCheck, the user of Chess is not forced to change his/her habits with unit testing and gets the benefit of test execution under all relevant thread interleaving for free. In contrast to UnitCheck, Chess cannot cope with random values in tests, because it uses a layer over the scheduler-relevant API calls. The presence of a random event in a test would result in the loss of error reproducibility. Orthogonal to our work is the progress on generating test inputs for unit tests for achieving high code coverage [9, 16, 17]. To name one, the Pex tool [14] uses symbolic execution and an automated theorem prover Z3 [12] to automatically produce a small test suite with high code coverage for a.net program. We believe that similar techniques can be used in synergy with unit checking. There are other approaches for assuring program correctness than code model checking. Static analysis tools (e.g., Splint [8]) are easy to use and scale well. However, there is typically a trade off between amount of false positives and completeness of such analysis. The design-by-contract paradigm (e.g., JML [4], Spec# [3]) relies on user provided code annotations. Specifying these annotations is a demanding task that requires an expertise in formal methods. 4 Conclusion We presented the UnitCheck tool that brings the benefits of code model checking to the unit testing area the developers are familiar with. Of course, not all tests are amenable for unit checking. Only tests for which the standard testing is not complete (i.e., tests that feature random values or concurrency) would benefit from exhaustive traversal using UnitCheck 2. As UnitCheck accepts standard JUnit tests, developers can seamlessly switch among the testing engines as necessary. 2 Of course, only the (increasing) portion of the standard Java libraries supported by JPFcan be used in the tests.
6 References 1. JUnit testing framework, 2. T. Ball, E. Bounimova, B. Cook, V. Levin, J. Lichtenberg, C. McGarvey, B. Ondrusek, S. K. Rajamani, and A. Ustuner. Thorough static analysis of device drivers. SIGOPS Oper. Syst. Rev., 40(4):73 85, M. Barnett, R. DeLine, M. Fähndrich, B. Jacobs, K. R. M. Leino, W. Schulte, and H. Venter. The spec# programming system: Challenges and directions. In B. Meyer and J. Woodcock, editors, VSTTE, volume 4171 of Lecture Notes in Computer Science, pages Springer, P. Chalin, J. R. Kiniry, G. T. Leavens, and E. Poll. Beyond assertions: Advanced specification and verification with jml and esc/java2. In Formal Methods for Components and Objects (FMCO), volume 4111 of Lecture Notes in Computer Science, pages Springer. 5. E. Clarke, D. Kroening, N. Sharygina, and K. Yorav. SATABS: SAT-based predicate abstraction for ANSI-C. In Tools and Algorithms for the Construction and Analysis of Systems (TACAS 2005), volume 3440 of Lecture Notes in Computer Science, pages Springer Verlag, E. M. Clarke, D. Kroening, and F. Lerda. A tool for checking ansi-c programs. In K. Jensen and A. Podelski, editors, TACAS, volume 2988 of Lecture Notes in Computer Science, pages Springer, N. H. M. A. de Brugh, V. Y. Nguyen, and T. C. Ruys. Moonwalker: Verification of.net programs. In S. Kowalewski and A. Philippou, editors, TACAS, volume 5505 of Lecture Notes in Computer Science, pages Springer, D. Evans and D. Larochelle. Improving security using extensible lightweight static analysis. IEEE Software, 19(1):42 51, P. Godefroid, N. Klarlund, and K. Sen. Dart: directed automated random testing. In PLDI 05: Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation, pages , New York, USA, ACM. 10. E. L. Gunter and D. Peled. Unit checking: Symbolic model checking for a unit of code. In N. Dershowitz, editor, Verification: Theory and Practice, volume 2772 of Lecture Notes in Computer Science, pages Springer, T. A. Henzinger, R. Jhala, R. Majumdar, and G. Sutre. Lazy abstraction. SIG- PLAN Not., 37(1):58 70, L. D. Moura and N. Bjorner. Z3: An efficient smt solver. In Tools and Algorithms for the Construction and Analysis of Systems (TACAS), volume 4963 of Lecture Notes in Computer Science, pages Springer. 13. J. T. Mühlberg and G. Lüttgen. Blasting linux code. In L. Brim, B. R. Haverkort, M. Leucker, and J. van de Pol, editors, FMICS/PDMC, volume 4346 of Lecture Notes in Computer Science, pages Springer, N. Tillmann and J. de Halleux. Pexwhite box test generation for.net. In 2nd International Conference on Tests and Proofs, pages , April W. Visser, K. Havelund, G. Brat, S. Park, and F. Lerda. Model Checking Programs. Automated Software Engineering, 10(2): , W. Visser, C. S. Pǎsǎreanu, and S. Khurshid. Test input generation with java pathfinder. In Proceedings of the International Symposium on Software Testing and Analysis (ISSTA 04), pages , New York, USA, ACM. 17. T. Xie, D. Marinov, W. Schulte, and D. Notkin. Symstra: A framework for generating object-oriented unit tests using symbolic execution. In Tools and Algorithms for the Construction and Analysis of Systems (TACAS), volume 3440 of Lecture Notes in Computer Science, pages Springer.
Trace Server: A Tool for Storing, Querying and Analyzing Execution Traces
Trace Server: A Tool for Storing, Querying and Analyzing Execution Traces Igor Andjelkovic University of Belgrade Belgrade, Serbia [email protected] Cyrille Artho RCIS/AIST, Tsukuba, Japan [email protected]
Towards a Framework for Generating Tests to Satisfy Complex Code Coverage in Java Pathfinder
Towards a Framework for Generating Tests to Satisfy Complex Code Coverage in Java Pathfinder Matt Department of Computer Science and Engineering University of Minnesota [email protected] Abstract We present
Introduction of Virtualization Technology to Multi-Process Model Checking
Introduction of Virtualization Technology to Multi-Process Model Checking Watcharin Leungwattanakit [email protected] Masami Hagiya [email protected] Mitsuharu Yamamoto Chiba University
InvGen: An Efficient Invariant Generator
InvGen: An Efficient Invariant Generator Ashutosh Gupta and Andrey Rybalchenko Max Planck Institute for Software Systems (MPI-SWS) Abstract. In this paper we present InvGen, an automatic linear arithmetic
Model Checking: An Introduction
Announcements Model Checking: An Introduction Meeting 2 Office hours M 1:30pm-2:30pm W 5:30pm-6:30pm (after class) and by appointment ECOT 621 Moodle problems? Fundamentals of Programming Languages CSCI
Environment Modeling for Automated Testing of Cloud Applications
Environment Modeling for Automated Testing of Cloud Applications Linghao Zhang, Tao Xie, Nikolai Tillmann, Peli de Halleux, Xiaoxing Ma, Jian Lv {lzhang25, txie}@ncsu.edu, {nikolait, jhalleux}@microsoft.com,
Dsc+Mock: A Test Case + Mock Class Generator in Support of Coding Against Interfaces
Dsc+Mock: A Test Case + Mock Class Generator in Support of Coding Against Interfaces Mainul Islam, Christoph Csallner Computer Science and Engineering Department University of Texas at Arlington Arlington,
Formal Verification by Model Checking
Formal Verification by Model Checking Natasha Sharygina Carnegie Mellon University Guest Lectures at the Analysis of Software Artifacts Class, Spring 2005 1 Outline Lecture 1: Overview of Model Checking
The Advantages and Disadvantages of Using Natural Language Documentation
The Future of Library Specification Gary T. Leavens University of Central Florida Orlando, FL, USA [email protected] ABSTRACT Programming language technology has started to achieve one of the dreams
Generating Test Cases With High Branch Coverage for Web Applications
Generating Test Cases With High Branch Coverage for Web Applications Andrey Zakonov and Anatoly Shalyto National Research University of Information Technologies, Mechanics and Optics, Saint-Petersburg,
An Easier Way for Cross-Platform Data Acquisition Application Development
An Easier Way for Cross-Platform Data Acquisition Application Development For industrial automation and measurement system developers, software technology continues making rapid progress. Software engineers
The Course. http://www.cse.unsw.edu.au/~cs3153/
The Course http://www.cse.unsw.edu.au/~cs3153/ Lecturers Dr Peter Höfner NICTA L5 building Prof Rob van Glabbeek NICTA L5 building Dr Ralf Huuck NICTA ATP building 2 Plan/Schedule (1) Where and When Tuesday,
Advances in Programming Languages
Advances in Programming Languages Lecture 13: Certifying Correctness Ian Stark School of Informatics The University of Edinburgh Tuesday 4 November 2014 Semester 1 Week 8 http://www.inf.ed.ac.uk/teaching/courses/apl
Going Interactive: Combining Ad-Hoc and Regression Testing
Going Interactive: Combining Ad-Hoc and Regression Testing Michael Kölling 1, Andrew Patterson 2 1 Mærsk Mc-Kinney Møller Institute, University of Southern Denmark, Denmark [email protected] 2 Deakin University,
SOFTWARE TESTING TRAINING COURSES CONTENTS
SOFTWARE TESTING TRAINING COURSES CONTENTS 1 Unit I Description Objectves Duration Contents Software Testing Fundamentals and Best Practices This training course will give basic understanding on software
The LIME Interface Specification Language and Runtime Monitoring Tool
The LIME Interface Specification Language and Runtime Monitoring Tool Kari Kähkönen, Jani Lampinen, Keijo Heljanko, and Ilkka Niemelä Helsinki University of Technology TKK Department of Information and
Optimizing Generation of Object Graphs in Java PathFinder
Optimizing Generation of Object Graphs in Java PathFinder Milos Gligoric, Tihomir Gvero, Steven Lauterburg, Darko Marinov, Sarfraz Khurshid JPF Workshop 1.5.8 Bugs Six Decades Ago 1947: Harvard Mark II
Model-based Test Case Generation for (Dynamic) Software Product Lines
Model-based Test Case Generation for (Dynamic) Software Product Lines The 6th Meeting on Feature-oriented Software Development 2014, May 04-07 Schloss Dagstuhl, Germany DFG Priority Programme 1593 Design
Towards practical reactive security audit using extended static checkers 1
Towards practical reactive security audit using extended static checkers 1 Julien Vanegue 1 Shuvendu K. Lahiri 2 1 Bloomberg LP, New York 2 Microsoft Research, Redmond May 20, 2013 1 The work was conducted
Principles of integrated software development environments. Learning Objectives. Context: Software Process (e.g. USDP or RUP)
Principles of integrated software development environments Wolfgang Emmerich Professor of Distributed Computing University College London http://sse.cs.ucl.ac.uk Learning Objectives Be able to define the
Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification
Introduction Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification Advanced Topics in Software Engineering 1 Concurrent Programs Characterized by
Hybrid Concolic Testing
Hybrid Concolic Testing Rupak Majumdar CS Department, UC Los Angeles, USA [email protected] Koushik Sen EECS Department, UC Berkeley, USA [email protected] Abstract We present hybrid concolic testing,
Model Checking of Software
Model Checking of Software Patrice Godefroid Bell Laboratories, Lucent Technologies SpecNCheck Page 1 August 2001 A Brief History of Model Checking Prehistory: transformational programs and theorem proving
Integrating Formal Methods with Model-Driven Engineering
Integrating Formal Methods with Model-Driven Engineering Opeyemi O. Adesina School of Electrical Engineering and Computer Science University of Ottawa, Ottawa, Canada [email protected] Abstract This
The ProB Animator and Model Checker for B
The ProB Animator and Model Checker for B A Tool Description Michael Leuschel and Michael Butler Department of Electronics and Computer Science University of Southampton Highfield, Southampton, SO17 1BJ,
Software Model Checking Improving Security of a Billion Computers
Software Model Checking Improving Security of a Billion Computers Patrice Godefroid Microsoft Research Page 1 November 2009 Acknowledgments Joint work with Michael Levin (CSE) and others: Chris Marsh,
Building SMT-based Software Model Checkers: an Experience Report
Building SMT-based Software Model Checkers: an Experience Report Alessandro Armando [email protected] Artificial Intelligence Laboratory (AI-Lab) DIST - University of Genova, Italy Abstract. In this
µz An Efficient Engine for Fixed points with Constraints
µz An Efficient Engine for Fixed points with Constraints Kryštof Hoder, Nikolaj Bjørner, and Leonardo de Moura Manchester University and Microsoft Research Abstract. The µz tool is a scalable, efficient
VDM vs. Programming Language Extensions or their Integration
VDM vs. Programming Language Extensions or their Integration Alexander A. Koptelov and Alexander K. Petrenko Institute for System Programming of Russian Academy of Sciences (ISPRAS), B. Communisticheskaya,
UML-based Test Generation and Execution
UML-based Test Generation and Execution Jean Hartmann, Marlon Vieira, Herb Foster, Axel Ruder Siemens Corporate Research, Inc. 755 College Road East Princeton NJ 08540, USA [email protected] ABSTRACT
Boogie: A Modular Reusable Verifier for Object-Oriented Programs
Boogie: A Modular Reusable Verifier for Object-Oriented Programs M. Barnett, B.E. Chang, R. DeLine, B. Jacobs, K.R.M. Leino Lorenzo Baesso ETH Zurich Motivation Abstract Domains Modular Architecture Automatic
An Automated Testing Tool Using UI Structure
, March 12-14, 2014, Hong Kong An Automated Testing Tool Using UI Structure Nutharat Harnvorawong, Taratip Suwannasart, Member, IAENG Abstract Testers usually run a new version of software against existing
SEVIZ: A Tool for Visualizing Symbolic Execution
SEVIZ: A Tool for Visualizing Symbolic Execution Dávid Honfi, András Vörös and Zoltán Micskei Budapest University of Technology and Economics Budapest, Hungary Email: [email protected], [email protected],
Instrumentation Software Profiling
Instrumentation Software Profiling Software Profiling Instrumentation of a program so that data related to runtime performance (e.g execution time, memory usage) is gathered for one or more pieces of the
Automated Theorem Proving - summary of lecture 1
Automated Theorem Proving - summary of lecture 1 1 Introduction Automated Theorem Proving (ATP) deals with the development of computer programs that show that some statement is a logical consequence of
Model Checking of Concurrent Algorithms: From Java to C
Model Checking of Concurrent Algorithms: From Java to C Cyrille Artho 1, Masami Hagiya 2, Watcharin Leungwattanakit 2, Yoshinori Tanabe 3, and Mitsuharu Yamamoto 4 1 Research Center for Information Security
Usable Verification of Object-Oriented Programs by Combining Static and Dynamic Techniques
Usable Verification of Object-Oriented Programs by Combining Static and Dynamic Techniques Julian Tschannen, Carlo A. Furia, Martin Nordio, and Bertrand Meyer Chair of Software Engineering, ETH Zurich,
Software Development Kit
Open EMS Suite by Nokia Software Development Kit Functional Overview Version 1.3 Nokia Siemens Networks 1 (21) Software Development Kit The information in this document is subject to change without notice
Execution and Property Specifications for JPF-Android
Execution and Property Specifications for JPF-Android Heila van der Merwe, Brink van der Merwe and Willem Visser Dept. of Computer Science University of Stellenbosch, South Africa {hvdmerwe, abvdm, wvisser}@cs.sun.ac.za
The Eighth International Conference INCOSE_IL 2015. Formal Methods Security Tools in the Service of Cyber Security
The Eighth International Conference INCOSE_IL 2015 כלים ובדיקות Formal Methods Security Tools in the Service of Cyber Security Dr. Michael J. May Kinneret College on the Sea of Galilee 1 כלים ובדיקות /
Pipeline Orchestration for Test Automation using Extended Buildbot Architecture
Pipeline Orchestration for Test Automation using Extended Buildbot Architecture Sushant G.Gaikwad Department of Computer Science and engineering, Walchand College of Engineering, Sangli, India. M.A.Shah
Profiling and Testing with Test and Performance Tools Platform (TPTP)
Profiling and Testing with Test and Performance Tools Platform (TPTP) 2009 IBM Corporation and Intel Corporation; made available under the EPL v1.0 March, 2009 Speakers Eugene Chan IBM Canada [email protected]
Eliminate Memory Errors and Improve Program Stability
Eliminate Memory Errors and Improve Program Stability with Intel Parallel Studio XE Can running one simple tool make a difference? Yes, in many cases. You can find errors that cause complex, intermittent
Course Development of Programming for General-Purpose Multicore Processors
Course Development of Programming for General-Purpose Multicore Processors Wei Zhang Department of Electrical and Computer Engineering Virginia Commonwealth University Richmond, VA 23284 [email protected]
TEST AUTOMATION FRAMEWORK
TEST AUTOMATION FRAMEWORK Twister Topics Quick introduction Use cases High Level Description Benefits Next steps Twister How to get Twister is an open source test automation framework. The code, user guide
From Blackbox Fuzzing to Whitebox Fuzzing towards Verification
From Blackbox Fuzzing to Whitebox Fuzzing towards Verification 2000 2005 2010 2015 Blackbox Fuzzing Whitebox Fuzzing Verification Patrice Godefroid Microsoft Research Page 1 July 2010 Acknowledgments Joint
Software Engineering for LabVIEW Applications. Elijah Kerry LabVIEW Product Manager
Software Engineering for LabVIEW Applications Elijah Kerry LabVIEW Product Manager 1 Ensuring Software Quality and Reliability Goals 1. Deliver a working product 2. Prove it works right 3. Mitigate risk
Generating Test Suites with Augmented Dynamic Symbolic Execution
Generating Test Suites with Augmented Dynamic Symbolic Execution Konrad Jamrozik 1, Gordon Fraser 2, Nikolai Tillman 3, and Jonathan de Halleux 3 1 Saarland University, Saarbruecken-66123, Germany [email protected]
Testing, Debugging, and Verification
Testing, Debugging, and Verification Testing, Part II Moa Johansson 10 November 2014 TDV: Testing /GU 141110 1 / 42 Admin Make sure you are registered for the course. Otherwise your marks cannot be recorded.
Random Testing: The Best Coverage Technique - An Empirical Proof
, pp. 115-122 http://dx.doi.org/10.14257/ijseia.2015.9.12.10 Random Testing: The Best Coverage Technique - An Empirical Proof K Koteswara Rao 1 and Prof GSVP Raju 2 1 Asst prof, (PhD) @JNTUK, CSE Department,
Applying 4+1 View Architecture with UML 2. White Paper
Applying 4+1 View Architecture with UML 2 White Paper Copyright 2007 FCGSS, all rights reserved. www.fcgss.com Introduction Unified Modeling Language (UML) has been available since 1997, and UML 2 was
StaRVOOrS: A Tool for Combined Static and Runtime Verification of Java
StaRVOOrS: A Tool for Combined Static and Runtime Verification of Java Jesús Mauricio Chimento 1, Wolfgang Ahrendt 1, Gordon J. Pace 2, and Gerardo Schneider 3 1 Chalmers University of Technology, Sweden.
TEACHING MODEL CHECKING TO UNDERGRADUATES
STUDIA UNIV. BABEŞ BOLYAI, INFORMATICA, Volume LV, Number 3, 2010 TEACHING MODEL CHECKING TO UNDERGRADUATES A.VESCAN AND M. FRENŢIU Abstract. The way program verification is taught in our faculty is firstly
Comparing Four Static Analysis Tools for Java Concurrency Bugs
Comparing Four Static Analysis Tools for Java Concurrency Bugs Md. Abdullah Al Mamun, Aklima Khanam, Håkan Grahn, and Robert Feldt School of Computing, Blekinge Institute of Technology SE-371 79 Karlskrona,
FPGA area allocation for parallel C applications
1 FPGA area allocation for parallel C applications Vlad-Mihai Sima, Elena Moscu Panainte, Koen Bertels Computer Engineering Faculty of Electrical Engineering, Mathematics and Computer Science Delft University
WebRatio 5: An Eclipse-based CASE tool for engineering Web applications
WebRatio 5: An Eclipse-based CASE tool for engineering Web applications Roberto Acerbis 1, Aldo Bongio 1, Marco Brambilla 2, Stefano Butti 1 1 WebModels S.r.l. Piazzale Gerbetto, 6. I22100 Como, Italy
TTCN-3, Qtronic and SIP
TTCN-3, Qtronic and SIP 1 (8) TTCN-3, Qtronic and SIP The Model-Based Testing of a Protocol Stack a TTCN-3 Integrated Approach Technical Whitepaper EXECUTIVE SUMMARY TTCN-3 (Test and Test Control Notation
Design and Implementation of IaaS platform based on tool migration Wei Ding
4th International Conference on Mechatronics, Materials, Chemistry and Computer Engineering (ICMMCCE 2015) Design and Implementation of IaaS platform based on tool migration Wei Ding State Key Laboratory
Two Flavors in Automated Software Repair: Rigid Repair and Plastic Repair
Two Flavors in Automated Software Repair: Rigid Repair and Plastic Repair Martin Monperrus, Benoit Baudry Dagstuhl Preprint, Seminar #13061, 2013. Link to the latest version Abstract In this paper, we
Stream Processing on GPUs Using Distributed Multimedia Middleware
Stream Processing on GPUs Using Distributed Multimedia Middleware Michael Repplinger 1,2, and Philipp Slusallek 1,2 1 Computer Graphics Lab, Saarland University, Saarbrücken, Germany 2 German Research
How To Develop A Static Analysis System For Large Programs
Towards the Industrial Scale Development of Custom Static Analyzers John Anton, Eric Bush, Allen Goldberg, Klaus Havelund, Doug Smith, Arnaud Venet Kestrel Technology LLC 4984 El Camino Real #230 Los Altos,
A Thread Monitoring System for Multithreaded Java Programs
A Thread Monitoring System for Multithreaded Java Programs Sewon Moon and Byeong-Mo Chang Department of Computer Science Sookmyung Women s University, Seoul 140-742, Korea [email protected], [email protected]
Monitoring, Tracing, Debugging (Under Construction)
Monitoring, Tracing, Debugging (Under Construction) I was already tempted to drop this topic from my lecture on operating systems when I found Stephan Siemen's article "Top Speed" in Linux World 10/2003.
Software Engineering Reference Framework
Software Engineering Reference Framework Michel Chaudron, Jan Friso Groote, Kees van Hee, Kees Hemerik, Lou Somers, Tom Verhoeff. Department of Mathematics and Computer Science Eindhoven University of
Introduction to Automated Testing
Introduction to Automated Testing What is Software testing? Examination of a software unit, several integrated software units or an entire software package by running it. execution based on test cases
Object Instance Profiling
Object Instance Profiling Lubomír Bulej 1,2, Lukáš Marek 1, Petr Tůma 1 Technical report No. 2009/7, November 2009 Version 1.0, November 2009 1 Distributed Systems Research Group, Department of Software
Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture
Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts
Abstract Model Checking of Web Applications Using Java PathFinder
1 26 (2009 ) Abstract Model Checking of Web Applications Using Java PathFinder Vinh Cuong Tran Yoshinori Tanabe Masami Hagiya Due to the interleaving of clients and servers, verifying web applications
Experimental Comparison of Concolic and Random Testing for Java Card Applets
Experimental Comparison of Concolic and Random Testing for Java Card Applets Kari Kähkönen, Roland Kindermann, Keijo Heljanko, and Ilkka Niemelä Aalto University, Department of Information and Computer
Software safety - DEF-STAN 00-55
Software safety - DEF-STAN 00-55 Where safety is dependent on the safety related software (SRS) fully meeting its requirements, demonstrating safety is equivalent to demonstrating correctness with respect
Software Engineering Best Practices. Christian Hartshorne Field Engineer Daniel Thomas Internal Sales Engineer
Software Engineering Best Practices Christian Hartshorne Field Engineer Daniel Thomas Internal Sales Engineer 2 3 4 Examples of Software Engineering Debt (just some of the most common LabVIEW development
A Brief Introduction to Static Analysis
A Brief Introduction to Static Analysis Sam Blackshear March 13, 2012 Outline A theoretical problem and how to ignore it An example static analysis What is static analysis used for? Commercial successes
Integrated Development of Distributed Real-Time Applications with Asynchronous Communication
Integrated Development of Distributed Real-Time Applications with Asynchronous Communication Marc Schanne International Workshop on Java Technologies for Real-time and Embedded Systems (JTRES) 26-28 September
Pulse: Plural To EVMDD-SMC
Pulse: Plural To EVMDD-SMC Automated Verification of Specifications with Typestates and Access Permissions Ijaz Ahmed 1 Néstor Cataño 1 Radu I. Siminiceanu 2 1 Carnegie Mellon University - Portugal, The
Structure of Presentation. The Role of Programming in Informatics Curricula. Concepts of Informatics 2. Concepts of Informatics 1
The Role of Programming in Informatics Curricula A. J. Cowling Department of Computer Science University of Sheffield Structure of Presentation Introduction The problem, and the key concepts. Dimensions
CSCI E 98: Managed Environments for the Execution of Programs
CSCI E 98: Managed Environments for the Execution of Programs Draft Syllabus Instructor Phil McGachey, PhD Class Time: Mondays beginning Sept. 8, 5:30-7:30 pm Location: 1 Story Street, Room 304. Office
