Take the job and attempt to grow within the company. Best case: you reach the position you want at a great company. Worst case: you leave in ~ 1 year and you have a great company on your resume.
A better option might be to take a higher position/pay at a lousy company. At least then he will have a savings cushion to fall back on. There is no sense in trying to "climb the ladder"; some positions are so low that you can't possibly climb out of them. Try to grow from testing into lead dev, if you don't believe me.