Смотрим:
for(int i = 0;i<test.length;i++){
for(int k = 0;k<test.length-1;k++){
int x = i+1;
if(test[i]>test[x]){
.....
}
}
}
на последней итерации внешнего цикла test[x] будет выходить за границы массива.
Т.к. i — это индекс последнего элемента test, а x = i+1 — индекс следующего за последним…