1. ISTQB® Certified Tester Foundation Level Syllabus, Version 4.0 (2023). Section 4.2.2, "Decision Coverage," states: "Decision coverage exercises the decision outcomes. To do this, the test cases are designed to execute both the true and false outcomes of each decision." This principle confirms that all three decisions in the code must have both their true and false outcomes exercised.
2. Ammann, P., & Offutt, J. (2016). Introduction to Software Testing (2nd ed.). Cambridge University Press. Chapter 2, "Graph Coverage," explains that decision coverage is equivalent to edge coverage on a control flow graph. The control flow graph for the given code fragment has two primary branches, each containing a further two sub-branches. To cover all edges, each of these four distinct logical paths must be traversed, requiring four tests. (DOI: https://doi.org/10.1017/CBO9781316091243)
3. Myers, G. J., Sandler, C., & Badgett, T. (2011). The Art of Software Testing (3rd ed.). Wiley. Chapter 4, "Test Case Design," discusses decision/branch coverage. The logic presented shows that for nested conditional structures, test cases must be created to independently exercise the outcomes of each decision. The mutually exclusive nature of the if-else structure in the example necessitates separate sets of tests for the nested conditions, leading to a total of four tests.