Software Open Access
This data set contains the implementation of the automatic test generation approach for information flow properties based on the KeY theorem prover.
The approach is described in http://dx.doi.org/10.1145/3297280.3297500
The folder "key" contains a modified version of the KeY theorem prover (https://www.key-project.org/) which can generate tests for a specified noninterference property.
Unzip and run
java -jar KeY.jar
to start KeY.
Check out http://dx.doi.org/10.1007/978-3-319-49812-6_12 for an explanation on how to use KeY for generating functional tests. Noninterference tests are generated in a similar fashion.
It is important that the settings for runtimeExceptions are set on "allow".
This is done by going to the "Options" menu, then "Taclet Options", then "runtimeExceptions", then select "runtimeExceptions:allow".
The z3 SMT solver (https://github.com/Z3Prover/z3), version 4.4.2 was used in the evaluation. Other versions should also work.
The objenesis library (http://objenesis.org/index.html) version 2.2, must be used to generate tests for classes without default constructors or with private fields.
The programs on which the implementation was evaluated can be found here: https://doi.org/10.1145/3297280.3297500