Test framework