Robust design optimization aims to find solutions that are competent and reliable under given uncertainties. While such uncertainties can emerge from a number of sources (imprecise variable values, errors in performance estimates, varying environmental conditions, etc.), this paper focuses on problems where uncertainties emanate from design variables. In commercial designs, being reliable is often of more practical value than being globally best (but unreliable). Robust optimization poses three key challenges: 1) appropriate formulation of the problem; 2) accurate estimation of the "robustness" measure; and 3) efficient means to identify the set of tradeoff robust solutions with an affordable computational cost. In this paper, four different problem formulations for robust optimization are presented and analyzed. The proposed formulations offer a set of tradeoff solutions with robustness from two perspectives-feasibility robustness, i.e., robustness against failure and performance robustness, i.e., robustness assuring good performance. The approach also provides means to identify critical constraints or performance functions that affect the overall robustness. The problem is posed as a many-objective optimization problem and a decomposition-based evolutionary approach is used for solving it. The performance of the proposed approach and the consequences of using different formulations are illustrated using two numerical examples and four engineering problems.