Automated hierarchical testable design by Kraak