Software testing, testowanie oprogramowania