This paper describes Juzi, a tool for automatic repair of complex data structures. Juzi takes a Java class representing the data structure as well as a predicate method that speci...
Algebraic testing is an automated software testing method based on algebraic formal specifications. It tests if a program correctly implements an algebraic specification by checki...
Nominal and structural subtyping each have their own strengths and weaknesses. Nominal subtyping allows programmers to explicitly express design intent, and, when types are associa...
Network protocol design is usually an informal process where debugging is based on successive iterations of a prototype implementation. The feedback provided by a prototype can be...
Networking course projects are usually described by an informal specification and a collection of test cases. Students often misunderstand the specification or oversimplify it t...