system testing challenges