阅读下列说明,回答问题1至问题3。[说明] 基本路径法设计出的测试用例能够保证在测试中程序的每一条可执行语句至少执行一次。以下代码由C++语言书写,请按要求回答问题。 void ReadPara(CString temp) { if(temp==">=") m_oper.SetCurSel(0); else { if(temp==">") m_oper.SetCurSel(1); else { if(temp=="==") m_oper.SetCurSel(2); else { if(temp=="<=") m_oper.SetCurSel(3); else { if(temp=="<") m_oper.SetCurSel(4); else m_oper.SetCurSel(5); } } } } return; }
问答题 请画出以上代码的控制流图。
【正确答案】正确答案:
【答案解析】解析:绘制模块控制流图。 模块控制流图是与程序流程图相类似的由许多结点和连接结点的边组成的一种图形,其中一个结点代表一条语句或数条语句,边表示结点间的控制流向,它显示了一个函数的内部逻辑结构。
问答题 请计算上述控制流图的环路复杂度V(G)。
【正确答案】正确答案:V(G)=6
【答案解析】解析:计算控制流图的环路复杂性V(G)。 V(G)=(区域数)=5(判断结点数)+1=6
问答题 请使用基本路径测试法为变量temp设计测试用例,使之满足基本路径覆盖要求。
【正确答案】正确答案:
【答案解析】解析:采用基本路径测试法,满足基本路径覆盖的要求。 在进行程序的基本路径测试时,从程序的环路复杂性可导出程序基本路径集合中的独立路径条数,这是确保程序中每个可执行语句至少执行一次所必需的测试用例数目的上界。独立路径是指包括一组以前没有处理的语句或条件的一条路径。例如针对本题所对应的控制流图中,一组独立的路径是: .pathl:temp为>= .Path2:temp为> .path3:temp为== .path4:temp为<= .path5:temp为< .path6:temp为除上述5种之外的字符串 路径path1、path2、path3、path4、path5和path6组成一个基本路径集。只要设计出的测试用例能够确保这些基本路径的执行,就可以使得程序中的每个可执行语句至少执行一次。