A fundamental problem with software testing is that testing under all combinations of inputs and preconditions (initial state) is not feasible, even with a simple product. What other non-functional dimensions can cause software to underperform and cause other problems