Cogent is a framework that provides a way to describe your application in terms of activity and page definitions. Those definitions can then be referenced by test libraries using the DSL that Cogent provides. The DSL provides a fluent interface that can be used for constructing test execution logic. This fluent interface promotes the idea of compressibility of your test logic, allowing for more factoring, more reuse, and less repetition. You can use Cogent directly as an automated testing solution or you can use it with other tools such as RSpec, Cucumber, or my own Lucid tool.