Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Christoph Gladisch is active.

Publication


Featured researches published by Christoph Gladisch.


verified software theories tools experiments | 2014

The KeY Platform for Verification and Analysis of Java Programs

Wolfgang Ahrendt; Bernhard Beckert; Daniel Bruns; Richard Bubel; Christoph Gladisch; Sarah Grebing; Reiner Hähnle; Martin Hentschel; Mihai Herda; Vladimir Klebanov; Wojciech Mostowski; Christoph Scheben; Peter H. Schmitt; Mattias Ulbrich

The KeY system offers a platform of software analysis tools for sequential Java. Foremost, this includes full functional verification against contracts written in the Java Modeling Language. But the approach is general enough to provide a basis for other methods and purposes: (i) complementary validation techniques to formal verification such as testing and debugging, (ii) methods that reduce the complexity of verification such as modularization and abstract interpretation, (iii) analyses of non-functional properties such as information flow security, and (iv) sound program transformation and code generation. We show that deductive technology that has been developed for full functional verification can be used as a basis and framework for other purposes than pure functional verification. We use the current release of the KeY system as an example to explain and prove this claim.


tests and proofs | 2007

White-box testing by combining deduction-based specification extraction and black-box testing

Bernhard Beckert; Christoph Gladisch

We propose to use deductive program verification systems to generate specifications for given programs and to then use these specifications as input for black-box testing tools. In this way, (1) the black-box testing method can make use of information about the programs structure that is contained in the specification, and (2) we get a separation of concerns and a clear interface between program analysis on the one hand and test-case generation and execution on the other hand, which allows the combination of a wide range of tools. The method for specification extraction using a program verification calculus described in this paper has been successfully implemented in the KeY program verification system.


tests and proofs | 2008

Integrating verification and testing of object-oriented software

Christian Engel; Christoph Gladisch; Vladimir Klebanov; Philipp Rümmer

Formal methods can only gain widespread use in industrial software development if they are integrated into software development techniques, tools, and languages used in practice. A symbiosis of software testing and verification techniques is a highly desired goal, but at the current state of the art most available tools are dedicated to just one of the two tasks: verification or testing. We use the KeY verification system (developed by the tutorial presenters) to demonstrate our approach in combining both.We introduce an aspect-oriented reformulation of reference-counting that is particularly well-suited to Java applications and does not share the error-prone characteristic of manual, user-driven reference counting. We present our method in the context of the real-time specification for Java and demonstrate that it can recycle dead objects in bounded time. We apply partial evaluation to specialize the aspect-generated code, which substantially reduces the reference-counting overhead.


software engineering and formal methods | 2008

Verification-Based Test Case Generation for Full Feasible Branch Coverage

Christoph Gladisch

The goal of this work is to improve the testing of programs that contain loops and complex methods. We achieve this goal with verification-based testing, which is a technique that can generate test cases not only from source code but also from loop invariants and method specifications provided by the user. These test cases ensure the execution of interesting program paths that are likely to be missed by existing testing techniques that are based on symbolic program execution. These techniques would require an exhaustive inspection of all execution paths, which is hard to achieve in presence of complex methods and impossible if loops are involved. Verification-based testing takes a different approach.


brazilian symposium on formal methods | 2013

Specifying a Linked Data Structure in JML for Formal Verification and Runtime Checking

Christoph Gladisch; Shmuel S. Tyszberowicz

We show how to write a concise and elegant specification of a linearly linked data structure that is applicable for both verification and runtime checking. A specification of linked lists is given as an example. The concept of a list is captured by an observer method which is a functional version of a reachability predicate. The specification is written in the Java Modeling Language (JML) and does not require extensions of that language. This paper addresses a mixed audience of users and developers in the fields of formal verification, runtime checking, and specification language design. We provide an in-depth description of the proposed specification and analyze its implications both for verification and for runtime checking. Based on this analysis we have developed verification techniques that fully automate the verification process, using the KeY tool, and that are also described here.


tests and proofs | 2009

Could We Have Chosen a Better Loop Invariant or Method Contract

Christoph Gladisch

The method contract and loop invariant rules (contract rules ) are an important software verification technique for handling method invocations and loops. However, if a verification condition resulting from using a contract rule turns out to be falsifiable, then the user does not know if she could have chosen a stronger contract to verify the program or if the program is not verifiable due to a software bug. We approach this problem and present a novel technique that unifies verification and software bug detection.


Software and Systems Modeling | 2017

A novel model-based testing approach for software product lines

Ferruccio Damiani; David Faitelson; Christoph Gladisch; Shmuel S. Tyszberowicz

Model-based testing relies on a model of the system under test. FineFit is a framework for model-based testing of Java programs. In the FineFit approach, the model is expressed by a set of tables based on Parnas tables. A software product line is a family of programs (the products) with well-defined commonalities and variabilities that are developed by (re)using common artifacts. In this paper, we address the issue of using the FineFit approach to support the development of correct software product lines. We specify a software product line as a specification product line where each product is a FineFit specification of the corresponding software product. The main challenge is to concisely specify the software product line while retaining the readability of the specification of a single system. To address this, we used delta-oriented programming, a recently proposed flexible approach for implementing software product lines, and developed: (1) delta tables as a means to apply the delta-oriented programming idea to the specification of software product lines; and (2) DeltaFineFit as a novel model-based testing approach for software product lines.


nasa formal methods | 2014

JKelloy: A Proof Assistant for Relational Specifications of Java Programs

Aboubakr Achraf El Ghazi; Mattias Ulbrich; Christoph Gladisch; Shmuel S. Tyszberowicz; Mana Taghdiri

Alloy is a relational specification language with a built-in transitive closure operator which makes it particularly suitable for writing concise specifications of linked data structures. Several tools support Alloy specifications for Java programs. However, they can only check the validity of those specifications with respect to a bounded domain, and thus, in general, cannot provide correctness proofs. This paper presents JKelloy, a tool for deductive verification of Java programs with Alloy specifications. It includes automatically-generated coupling axioms that bridge between specifications and Java states, and two sets of calculus rules that 1 generate verification conditions in relational logic and 2 simplify reasoning about them. All rules have been proved correct. To increase automation capabilities, proof strategies are introduced that control the application of those rules. Our experiments on linked lists and binary graphs show the feasibility of the approach.


principles and practice of programming in java | 2013

Refinement-based testing of delta-oriented product lines

Ferruccio Damiani; Christoph Gladisch; Shmuel S. Tyszberowicz

We present an approach for specifying and testing delta-oriented software product lines (SPLs) of Java programs. To this end we extend FineFit---a tool and an approach for refinement-based testing of single products. The input to FineFit consists of an abstract model (i.e., the specification of the program) given as a set of tables, and a retrieve function which maps concrete states (of the program under test) to abstract states (of the model). To leverage FineFit for testing of SPLs we propose the concept of delta tables for specifying SPLs, and we use DeltaJ, a delta-oriented programming language, for implementing the retrieve functions of the various software products. Our preliminary investigations suggest that the new ideas can significantly reduce the amount of input, repetition, and mistakes done by the user.


international conference on testing software and systems | 2012

Model generation for quantified formulas with application to test data generation

Christoph Gladisch

We present a new model generation approach and technique for solving first-order logic (FOL) formulas with quantifiers in unbounded domains. Model generation is important, e.g., for test data generation based on test data constraints and for counterexample generation in formal verification. In such scenarios, quantified FOL formulas have to be solved stemming, e.g., from formal specifications. Satisfiability modulo theories (SMT) solvers are considered as the state-of-the-art techniques for generating models of FOL formulas. Handling of quantified formulas in the combination of theories is, however, sometimes a problem. Our approach addresses this problem and can solve formulas that were not solvable before using SMT solvers. We present the model generation algorithm and show how to convert a representation of a model into a test preamble for state initialization with test data. A prototype of this algorithm is implemented in the formal verification and test generation tool KeY.

Collaboration


Dive into the Christoph Gladisch's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar

Bernhard Beckert

Karlsruhe Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Wolfgang Ahrendt

Chalmers University of Technology

View shared research outputs
Top Co-Authors

Avatar

Mana Taghdiri

Karlsruhe Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Mattias Ulbrich

Karlsruhe Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Mihai Herda

Karlsruhe Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Vladimir Klebanov

Karlsruhe Institute of Technology

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Christian Engel

Chalmers University of Technology

View shared research outputs
Researchain Logo
Decentralizing Knowledge