Minimizing failing test cases is an important preprocessing step on the path of debugging. If much of a test case that triggered a bug does not contribute to the actual failure, then the time required to fix the bug can increase considerably. However, test case reduction itself can be a time consuming task, especially if done manually. Therefore, automated minimization techniques have been proposed, the minimizing Delta Debugging (DDMIN) and the Hierarchical Delta Debugging (HDD) algorithms being the most well known. DDMIN does not need any information about the structure of the test case, thus it works for any kind of input. If the structure is known, however, it can be utilized to create smaller test cases faster. This is exemplified by HDD, which works on tree-structured inputs, pruning subtrees at each level of the tree with the help of DDMIN.In this paper, we propose to extend HDD with a reduction method that does not prune subtrees, but replaces them with compatible subtrees further down the hierarchy, called hoisting. We have evaluated various combinations of pruning and hoisting on multiple test suites and found that hoisting can help to further reduce the size of test cases by as much as 80% compared to the baseline HDD. We have also compared our results to other stateof-the-art test case reduction algorithms and found that HDD extended with hoisting can produce smaller output in most of the cases.Index Terms-test case minimization, hierarchical delta debugging, hoisting * '(' ')' compoundStatement '{' selectionStatement 'if' '(' primaryExpression Constant '1' ')' statement compoundStatement '{' * expressionStatement postfixExpression Identifier 'printf' * '(' StringLiteral '"Hello world!\n"' ')' ';' '}' '}'