Short version: yes, the defending player can cast Test of Faith after damage assignment order is chosen, and yes, the attacking player can send enough damage at B1 to kill it.
This is fairly easy to answer once you know how the declare blockers and combat damage steps work. (Remember the steps of combat: beginning of combat, declare attackers, declare blockers, combat damage, and end of combat.) Focusing on the relevant bits, we have:
- declare blockers
- the defending player assigns blockers
- the attacking player announces damage assignment order
- the active player gets priority (your chance to cast spells or activate abilities)
- combat damage
- the active player announces how combat damage from attacking creatures will be assigned
- the blocking creatures assign their damage
- damage is actually dealt
(This is pretty much all in the basic rules, but if you want gory details, see 509 and 510 in the comprehensive rules.)
So the answer to (1) is easy. Yes, the defending player can wait until after the order is assigned to cast Test of Faith - in fact they pretty much have to, unless they want to cast it before they even declare blockers.
The answer to (2) and (3) depends on what the attacking player decides, but if they're smart, they can kill both B1 and B2. They've already chosen the order back in the declare blockers step, but now they can choose the amount to assign to each creature in order. They have to assign at least lethal damage* (1 damage, since it's a 1/1) to B1 before going on to B2, but otherwise they can split it however they want - 8 and 0, 7 and 1, and so on. Presumably they'll decide to assign 7 to B1 and 1 to B2, so that B1 ends up as a 4/4 with 4 damage marked on it and dies, and B2 takes 1 damage and dies as well.
Note that this isn't really terribly specific to Test of Faith. All that really matters is that you can deal any amount of damage to B1, as long as it's at least 1 (lethal damage). No matter what the weird effect is (prevention, redirection, +1/+1 counters appearing...) you choose the amount of damage and can send the necessary amount at it, so you'll never get weird cases where B1 somehow survives even though you could've killed it, or where the damage assignment amounts somehow change outside your control. You do have to consciously make the right decision (deal 7 damage even though 1 is "lethal"), but beyond that, nothing really fancy happens.
* Lethal damage doesn't have to take into account abilities and effects that might change the amount of damage that ends up being dealt, so Test of Faith doesn't matter here - if they wanted B1 to live for some reason, they could deal it just 1 damage.