Fixing paths and decoupling
getTestFile to not return null

If file does not exists. Use file.exists or file.isFile
to check it's existence (as already done everywhere except
on one place). On many other affected places, the code
is not even prepared for nulls, being NPE prone, so this
change is not affecting them.
Using new builder iface
Fixing props