Available methods for a/b testing the content

I don’t think it is common enough task for there to be generic recommendations in WordPress area.

Taking the more specific part of your question — manipulating template is certainly possible and quite common.

  1. Any template (being loaded in native fashion) will have to go through template_include filter
  2. Results of single template specifically will go through single_template filter before that.

At either point you could check for URL parameter and override the choice made.