When players' characters actively oppose each other they're both just making regular skill rolls that we handle as normal:
- Say what you do and roll a number of d6s.
In this case the thing Alice is trying to do is something that opposes the thing Bob's trying to do. This could include trying to find something out: Bob's rolling for "Bob is a bear" vs Alice rolling for "Bob is a robot."
Whoever succeeds does the thing. Whoever fails gets 1 XP. Whoever rolls all 6's gets to pick a new skill based on a subset of what happened to them in that action, and either one of them can spend XP toward getting a new skill from this action. (If Alice loses she can spend XP and get "Confused About Robots" or something like that, at a skill level one higher than the skill she used to oppose Bob.)
To your bullet points:
- If Alice wins, does Bob get exp?
- If Alice fails, does only Alice get exp?
- If Bob rolls all 6s, does Bob get a new skill?
Yes to all three. Spot on.
There could also be a tie: when we tie player-vs-player rolls, the rules say nothing happens, and everyone rolling fails and gets XP. I find that unsatisfactory though and tend to have players win ties against opposition; in this case that would mean Bob's thing happens and Alice gets 1 XP.
Some groups opt to use a difficulty opposition that just says "roll X dice as opposition to tasks", where X depends on the difficulty or complexity of the task. A couple such methods get described in How many dice does the GM roll when challenging the players?. In this scenario if Alice just happens to be the one rolling the dice, she's not doing anything via her character so there's no XP or skills involved for her.