Every Type of Software Testing Explained — And Where AI Fits In