We apply Markov chain Monte Carlo methods to time series data on S&P 500 index returns, and to its option prices via a term structure of VIX indices, to estimate 18 different affine and non-affine stochastic volatility models with one or two variance factors, and where jumps are allowed in both the price and the instantaneous volatility. The in-sample fit to the VIX term structure shows that the second (stochastic long-term volatility) factor is required to fit the VIX term structure. Out-of-sample tests on the fit to individual option prices, as well as in-sample tests, show that the inclusion of jumps is less important than allowing for non-affine dynamics. The estimation and testing periods together cover more than 21 years of daily data.