Worst-Case Execution Time Testing via Evolutionary Symbolic Execution