1. A system for testing software, comprising: a software application that is to be tested; a glossary containing a keyword and a specification of a first and a second state of the software to be tested; a test script containing a reference to a keyword; and a test platform that retrieves the test script, identifies a keyword referenced by the test script, and performs a step that causes the software application to move from the first state to the second state.