Most software projects functional tests are sequentially executed and don't have intricate failure driven scenarios(not to the extent of a robot on mars). I mean the robot is prone to unpredictable damage on an uneven surface. There is also the issue of signal loss + delay in transmission.
If you are writing code for the transmission engine module for example, would you write test cases for all connected subsystems that might fail? If so, I imagine the dependency between systems probably gets really complicated and almost impossible to remember. So how do you ensure all systems respond and behave correctly in all possible known and unknown failure scenarios.
Edit: I just realized this is no different than writing code for cars. I guess there are protocols in place and as long as your parts conform to the standards, the complexity is reduced.