Hi Jan,
I think this should be pretty simple in TJ3. However, it isn't clear from your question whether tSpec needs to be finished for tTest to start or if it's a finish-finish relationship. I'll assume the first one (tSpec finishes to start tTest). The key to getting the End-End relationship is the precedes keyword and a gapduration (your extra day after Implementation). See this page from the docs to explain a little further.
I haven't tested this, and it is not a full example anyway, but I hope this illustrates the flow and the principles.
task tSpec "" {
start, allocate, effort, etc...
}
task tTest "" {
depends !tSpec{onend}
<other specifications as needed>
}
task tImplementation "" {
precedes !tTest{onend gaplength 1d}
<other specifications as needed>