For unit testing you can look at
http://j2meunit.sourceforge.net/
Ultimately your best bet is to test across the different carriers that you wish to support. The main reason is some carriers have MDS functionality built into their gateways and some do not (basically its TCP vs WAP). This may affect your browser component.
In terms of OS versions:
What we do is baseline a minimum OS version - 4.0.0. Anything compiled with respect to 4.0.0 is forward compatible (look out for deprecated things). There are really 3 families of device apis - 4.0.0, 4.0.2, and 4.1.0. My opinion is that if you are claiming it is compatible with the 3 families you should complie and test across the 3 families.
The RIM simulators are actually quite good at representing real device operation (compared to say the WTK simulators). But you can never be sure until it is actually tested on live devices.