I suggest breaking the problem down to the smallest possible components.
Start with a program that turns an LED on if the left bumper is touched, else turns it off. That's all it does.
Now, run the program, and verify that the LED matches the bumper.
Now, do the same thing with the right bumper, and try again.
Now, do something that just runs each motor when the bumper is not touched, and turns the motor off when the bumper is touched.
Put your robot on a pedestal (so it doesn't run around the floor) and verify that the behavior is as expected -- motors run, except when you push the bumpers.
Keep working forward in very small steps like this, until it doesn't do what you want it to do -- at that point, you did understand the system in the previous step, but not in the new step, so you can study the difference between the two steps to find out where you go wrong.
I know that this may sound like the slow way of doing things, but it's actually the fast way, and how professionals do it. Also, for each test case, don't just turn it on, poke the bumper, seems to work, done. Spend a minute with each test case, poking in various ways, hold it in for a long time, switch on/off several times quickly, etc. Try to break the actual behavior you expect, and see if you can break it, or if it's robust. This will let you become more sure of what you understand, and what you don't understand.