1. Zhu, H., Hall, P. A., & May, J. H. (1997). Software unit test coverage and adequacy. ACM Computing Surveys (CSUR), 29(4), 366–427. In Section 3.2.1, "Control-flow-based criteria," the paper defines branch coverage as requiring "that each branch of each decision be executed at least once" (p. 391), supporting option B. The paper also establishes the subsumption hierarchy where branch coverage subsumes statement coverage, confirming option A. https://doi.org/10.1145/267580.267592
2. Ammann, P., & Offutt, J. (2016). Introduction to Software Testing (2nd ed.). Cambridge University Press. Chapter 2, Section 2.3, "Data Flow Coverage," explains that "Branch Coverage (BC) requires that each branch in the graph be taken" (p. 38). The text also clarifies that "Branch Coverage is stronger than Edge Coverage, which is stronger than Node Coverage (and Statement Coverage)" (p. 39), validating that branch coverage satisfies statement coverage.
3. Ghezzi, C., Jazayeri, M., & Mandrioli, D. (2003). Fundamentals of Software Engineering (2nd ed.). Prentice Hall. In Chapter 6, "Testing," the relationship is described: "If a set of test cases satisfies the branch-coverage criterion, it also satisfies the statement-coverage criterion" (p. 253). This directly supports option A.