Testing noninterference, quickly
Paper in proceeding, 2013

Information-flow control mechanisms are difficult to design and labor intensive to prove correct. To reduce the time wasted on proof attempts doomed to fail due to broken definitions, we advocate modern random testing techniques for finding counterexamples during the design process. We show how to use QuickCheck, a property-based random-testing tool, to guide the design of a simple information-flow abstract machine. We find that both sophisticated strategies for generating well-distributed random programs and readily falsifiable formulations of noninterference properties are critically important. We propose several approaches and evaluate their effectiveness on a collection of injected bugs of varying subtlety. We also present an effective technique for shrinking large counterexamples to minimal, easily comprehensible ones. Taken together, our best methods enable us to quickly and automatically generate simple counterexamples for all these bugs.

Author

C. Hritcu

University of Pennsylvania

John Hughes

Chalmers, Computer Science and Engineering (Chalmers), Software Technology (Chalmers)

Benjamin C. Pierce

University of Pennsylvania

A. Spector-Zabusky

University of Pennsylvania

D. Vytiniotis

Microsoft Research

A.A.D. Amorim

University of Pennsylvania

L. Lampropoulos

University of Pennsylvania

Proceedings of the ACM SIGPLAN International Conference on Functional Programming, ICFP

Vol. 2013 455-468
978-145032326-0 (ISBN)


Boston, MA, USA,

Subject Categories

Software Engineering

DOI

10.1145/2500365.2500574

More information

Latest update

10/14/2022