3 research outputs found
Automatic Program Verification and Test Case Generation of Ruby Programs
The Ruby programming language is typically not seen as a language that can be
formally verified. Our research attempts to bridge this gap by introducing novel
techniques to annotate Ruby programs with type specifications, contracts, and translate
them to statically verifiable components. We introduce a novel tool, RubyCorrect,
which uses these techniques to perform extended static checking (ESC) on Ruby
programs, as well as to generate executable test cases through symbolic execution.
These analyses serve to improve code quality and development productivity. We aim
to show that Ruby programs can benefit from existing static verification tools and
techniques if they are simply made available to Ruby developers