building test generation framework