Testing noninterference, quickly
Paper in proceedings, 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.


Catalin Hritcu

University of Pennsylvania

John Hughes

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

Benjamin C. Pierce

University of Pennsylvania

Antal Spector-Zabusky

University of Pennsylvania

Dimitrios Vytiniotis

Microsoft Research

Arthur Azevedo de Amorim

University of Pennsylvania

Leonidas Lampropoulos

University of Pennsylvania

SIGPLAN Notices (ACM Special Interest Group on Programming Languages)

0362-1340 (ISSN)

Vol. 48 9 455-468

Areas of Advance

Information and Communication Technology

Subject Categories

Computer Science





More information

Latest update

9/6/2018 1