3.某飞行器供油阀控制软件通过控制左右两边的油箱BL、BR 向左右发动机 EL、ER 供油,既要保证飞行器的安全飞行,又要保证飞行器的平衡,该软件主要完成的功能如下:
(1)无故障情况下,控制左油箱 BL 向左发动机 EL 供油,右油箱BR向右发动机 ER供油,不上报故障;
(2)当左油箱 BL 故障时,控制右油箱BR分别向左、右发动机EL和 ER供油,并上报二级故障——左油箱故障;
(3)当右油箱 BR故障时,控制左油箱BL 分别向左、右发动机EL 和 ER 供油,并上报二级故障——右油箱故障;
(4)当左发动机BL 故障时,根据左右油箱的剩油量决定(如果左右油箱剩油量之差大于等于 50 升,则使用剩油量多的油箱供油,否则同侧优先供油)左油箱BL 还是右油箱 BR 向右发动机 ER 供油,并上报一级故障——左发动机故障;
(5)当右发动机ER故障时,根据左右油箱的剩油量决定(如果左右油箱剩油量之差大于等于 50 升,则使用剩油量多的油箱供油,否则同侧优先供油)左油箱且还是右油箱 BR 向左发动机BL 供油,并上报一级故障——右发动机故障;
(6)当一个油箱和一个发动机同时故障时,则无故障的油箱为无故障发动机供油, 并上报一级故障——故障油箱和发动机所处位置;
(7)当两个油箱或两个发动机同时故障或存在更多故障时,则应进行双发断油控制, 并上报特级故障——两侧油箱或两侧发动机故障;
(8)故障级别从低级到高级依次为二级故障、一级故障和特级故障,如果低级故障和高级故障同时发生,则只上报最高级别故障。
【问题1】 (6 分)
覆盖率是度量测试完整性的一个手段,也是度量测试有效性的一个手段。在嵌入式软件白盒测试过程中,通常以语句覆盖率、条件覆盖率和 MC/DC 覆盖率作为度量指标。
在实现第 6 条功能时,设计人员采用了下列算法:
if ((BL==故障) && ( EL==故障))
{BR供油ER;BL断油;EL断油;}
if ((BL==故障) && ( ER==故障))
{BR供油EL;BL断油;ER断油;}
if ((BR==故障) && ( EL==故障))
{BL供油ER;BR断油;EL断油;}
if ((BR==故障) && ( ER==故障))
{BL供油EL;BR断油;ER断油;}
请指出对上述算法达到 100%语句覆盖、100%条件覆盖和 100%MC/DC 覆盖所需的最少测试用例数目,填写表 5-1 中的空(1)~(3)。
【问题2】(12分)
为了测试此软件功能,测试人员设计了表5-2所示的测试用例,请填写该表中的空(1)~(12)。
表 5-2
【问题3】
常见的黑盒测试的测试用例设计方法包括等价类划分、决策表、因果图、边界值分析等。测试人员在针对本题设计测试时,使用哪种测试用例设计方法最恰当