What is the main reason for testing software before releasing it?