Here's show to piss me off:
Refuse to update your software so that it uses a Makefile. Yes, I know you're not only 'way smarter than I am but you've got a source tree going back to 1977. I don't care; editing six different shell scripts is not the way to do things.
Sprinkle those six scripts with assumptions about which software is present and where the source code is being compiled. Document most of them.
Run tests but carefully delete all the results; don't include an option to save them. That way I have to edit your scripts to figure out what the hell went wrong.
Assume the presence of csh for everything, rather than POSIX-standard sh.
Put configurable options inside shell scripts, rather than in a configuration file or allowing them to be set by arguments to those scripts.
Include directions like "Perhaps change foo, bar and baz", without explaining why or what they're set to. When tests later fail because you didn't properly set foo, bar and baz, don't explain where these are set or how they affect the tests.
Set a hard-coded location for temporary output. Die silently when those locations aren't present, rather than explaining why or offering to create them or using /tmp. Refuse to overwrite already-present files, but don't explain this anywhere; instead, say that they might be useful next time.
Have important variables, like the hard-coded location for temporary output, set in two or more different places. Suggest editing some of them.
Have test failure indicated by "!!FAILED", ensuring a moment's confusion about whether that means "FAILED!", "NOT FAILED!" or "NOT NOT FAILED".