您好,欢迎来到爱够旅游网。
搜索
您的当前位置:首页软件测试期末考试A卷

软件测试期末考试A卷

来源:爱够旅游网
西华师范大学计算机学院2013年度期末测试

软件测试 A卷

一、单项选择

1、 执行函数测试时,当多次调用底层函数,底层模拟器的\"模拟值\"输入栏可设定多个模拟值,一次最多可设置( )个模拟值。 A、1 B、3 C、6 D、11

2、 当函数测试存在失败断言时,在白盒覆盖率信息窗口中VU会显示一个( )的条块来提示,没有失败断言时,会显示一个( )的条块来显示;在逻辑结构窗口中,未覆盖的路径用( )画出,已覆盖的路径用( )画出,未覆盖的分支是()的条块。

A、深绿色 B、深红色 C、浅蓝色 D、粉红色 E、浅绿色 3、 VU导出的测试报告文件格式为:(),表格化测试用例数据导出的文件格式为:() A、*.pdf B、*.txt C、*.htm D、*.csv E、*.xls F、*.doc

4、 在软件生命周期中的任何一个阶段,只要软件发生了改变,就可能给该软件带来新的问题。软件的改变可能是源于发现错误并做好了修改,可能是因为在集成或维护阶段加入了新的模块,为了验证软件修改后的正确性需要进行()。

A、白盒测试 B、黑盒测试 C、单元测试 D、性能测试 E、回归测试 F、验收测试

5、 当用底层模拟器去模拟被测单元调用的底层函数的输出函数,并且此输出参数为指针数据类型,应该设置此参数的模拟值为()。 A、指针值 B、引用的地址 C、指针指向的数据类型的值 D、NULL 6、 当用底层模拟器去模拟被测单元调用的底层函数的返回值,并且此输出参数为指针数据类型,应该设置此参数的模拟值为()。 A、指针值 B、引用的地址 C、指针指向的数据类型的值 D、NULL 二、多项选择

1、 底层模拟能很好的解决()。

A、集成测试问题 B、装代码和数据失真 C、测试不可控

D、性能测试问题 E、内部输出的模拟

F、模拟参数为复杂数据类型,单元测试时难以初始化 2、底层模拟器能够模拟( )。 A、底层函数的参数 B、底层函数的返回值 C、全局变量

D、函数改写文件中的数据 E、成员变量 F、函数改写数据库中的数据 G、内部输出 H、调用次数

3、执行函数测试后,源代码窗口能够标识出未覆盖的()。逻辑结构图窗口能够标识出未覆盖的()。

A、路径 B、条件 C、MC/DC D、语句 E、C/DC F、分支 4、VU与按自动的边界测试,用于边界测试的边界值是由菜单项\"数据\"→定义边界值来维护的。VU提供的int类型的默认值有(),bool类型的默认边界值有(),double类型的默认类型边界值有()。

A、0 B、99999.9 C、0x80000000 D、0.0 E、-99999.9

F、1.0 G、9999.99 H、1 I、true J、0x7FFFFFFF K、-9999.99 L、false M、-1 N、-1.0 O、0x80000000 P、0x7FFFFFFF

5、在利用VU进行单元测试的过程中,针对同一个测试用例集合,以下()类的白盒覆盖情况是可能会出现的。

A、语句覆盖:100% 分支覆盖:100% 路径覆盖:100% B、语句覆盖:32% 分支覆盖:100% 路径覆盖:98% C、语句覆盖:100% 分支覆盖:18% 路径覆盖:100% D、语句覆盖:30% 分支覆盖:50% 路径覆盖:47% E、语句覆盖:100% 分支覆盖:95% 路径覆盖:15%

6、在利用VU单元测试()的过程中,可能会出现\"语句:95%,分支:100%,路径:15%\"的情况。 A、_01_pow() B、_11_Mcdc1() C、_12_Mcdc2() 三、判断题

注:正确的打钩,错误的打叉,并说明错误原因

1、一个测试用例只允许有一个底层模拟,而一个函数可以有多个底层模拟。( ) 错误原因:

2、底层模拟器可用于控制测试。() 错误原因:

3、底层模拟器模拟的内部输入能够实现用例数据的表格化。() 错误原因:

4、包含有空指针的测试用例能够实现用例数据的表格化。() 错误原因:

5、VU在单元测试时,设计的每个测试用例都必须设置其预期输出。() 错误原因:

6、在测试用例集中,测试用例的数量等于断言的数量。 错误原因: 四、简述题

1、简述在VU的单元测试中,提高路径覆盖率的3种方法。

2、简述在VU的源代码窗口中,当前测试用例未覆盖的语句,VU如何标识测试用例集未覆盖的语句。VU如何标识测试用例集未覆盖的条件和Mc/Dc,VU如何标识。

3、简述C/Dc和Mc/Dc的定义。

4、分别设计出最少数量的测试用例,构成两套测试用例集,使CMyClass2的成员函数_11_Mcdc1(BOOL,BOOL,BOOL)被100% C/DC和Mc/Dc,使

_12_Mcdc2(BOOL,BOOL,BOOL,BOOL,BOOL,BOOL,BOOL,BOOL,BOOL,BOOL,BOOL)被100% C/DC,并为每个测试用例列出它在函数执行时所覆盖的条件的判定。

int CMyClass2::_11_Mcdc1(BOOL A,BOOL B,BOOL C){ if(A && (B || C)) return 1; return 0; }

int CMyClass2::_12_Mcdc2(BOOL A,BOOL B,BOOL C,BOOL D,BOOL E,BOOL

F,BOOL G,BOOL H,BOOL I,BOOL J,BOOL K){

if(A && ( (B||C) && (D&&E) ) && ((F||G) && (H||I||J)||K) ) return 1; return 0; }

5、为成员函数_01_Pow()设计测试用例,使其被100%语句,条件和C/DC覆盖,统计出失败断言数,如果存在失败断言,列出失败断言(即测试用例的输入,预期输出和实际输出),指出软件曲线位置,并修复缺陷,保证测试结束,失败断言为0。

unsigned int CMyClass::_01_Pow(unsigned int g,unsigned int e){ unsigned int result = 0; if(g==0) result = 0; else if(g==1) result = 1; else if(e==0) result = 1; else if(e==1) result = g; else{ for(unsigned int i=0; ireturn result; }

五、程序测试题

1、单元测试CMyClass2的成员函数_07_DeleteComment(char *,char *),补充给定的测试用例集的预期输出和实际输出,统计失败断言的数量,如果失败断言数大于0,则说明软件存在缺陷,找到缺陷的具体位置,并修复它。/*函数说明: 名称:CMyClass2::_07_DeleteComment 功能:删除C++代码中的注释 参数:pSrc:源代码 pDes:保存删除注释后的代码 返回:无*/

void CMyClass2::_07_DeleteComment(char * pSrc,char * pDes){ int len = strlen(pStr); if(len == 0) return;

bool cmmSin = false;//由//开始\\n结束的单行注释 bool cmmMul = false;//由/*开始*/结束的多行注释 char ch = *pSrc++; char next = 0; while(ch){ if(!cmmSin && (cmmMul)){//非注释

} } Name pSrc if(ch=='/'){//注释开始的第一个字符 next = *pSrc; if(next =='\\0')//结束 break; else if(next=='/') cmmSin = true; if(cmmMUl || cmmSin){ pSrc++;//忽略/后的一个字符 ch = *pStr++; continue; } }

*pDes++ = ch; ch = *pSrc++;

}else if(cmmSin){//单行注释 if(ch=='\\n'){//单行注释结束 cmmSin = false; *pDes++ = ch;//\\n是不能丢的 } ch = *pSrc++;

}else if(cmmMul){//多行注释 if(ch=='*'){//开始多行注释 next = *pSrc; if(next=='/'){ cmmMul = false; *pSrc++;//忽略后面的/ } } ch = *pSrc++; }

pDes 实际输出 Name pSrc pDes 实际输出 Case1 \"int a;//comment\\n\" Case4 \"int a;/\" Case2 \"int a:/*comment*/\\n\" Case6 \"int a;/*a = b*c*/\\n\" Case3 \"int /*Comment*/a;//comment\\n\" Case7 \"\" Case8 \"int a\" Case5 \"int a=c/d;\" Case9:输入(char *pSrc = 0;char *pDes = 0;)(注:Case9不能表格化) 2、 单元测试triml()C函数,设计测试用例集(包括能表格化的普通测试用例和不能表格化的特殊测试用例),使语句、分支、条件、C/DC、MC/DC和路径的覆盖率达到100%,统计出失败断言的数量,列出包含失败断言的测试用例的实际输出,找出软件缺陷的位置,并修复它,使失败断言数为0。 /*

体验可视化编程:删除字符串左边的空格 参数:str,源字符串

返回:返回结果字符串指针 */

char *triml(char *str){ char *i,*j; i = str; j = str;

while(*i==32) ++i;

while(*i!='\\0'){ *j = *i; ++i; ++j; }

*j = '\\0'; return str; }

3、 单元测试findr()C函数,设计出测试用例集(包括能表格化的普通测试用例和不能表格化的特殊测试用例),使语句覆盖、C/DC覆盖和路径覆盖的覆盖率达到100%。统计失败断言的数量,列出包含失败断言的测试用例的实际输出,找出软件缺陷的位置,并修复它,使失败断言数为0。 /*

体验可视化编程:在一个字符串中反向查找子串 参数:str,源字符串 stub,需查找的子串

返回:如果找到返回子串的位置,否则返回-1 */

int findr(char *str,char *sub){ char *i,*j,*k,*n; int l,m;

int len_str,len_sub; len_str = 0; len_sub = 0; i = str; j = sub;

while(*i!='\\0'){ i++;

len_str++; } i--;

while(*j!='\\0'){ j++; len_sub++; } j--; n = j;

for(l=len_str;l>len_str - len_sub+1; l--){ k = i; for(m=l;m<=len_sub;m++){ if(*k==*j){ k--; j--; }else break; } if(m>len_sub) break; i--; j = n; }

if(lreturn (l-len_sub+1); }

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igbc.cn 版权所有 湘ICP备2023023988号-5

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务