if(t!
=i){ t=j;
temp=a[t]; }elseif(t!
=i){
a[t]=a[i]; temp=a[t];
a[i]=temp a[t]=a[i];
} a[i]=temp;
} }
}
}
12.什么是黑盒测试,主要方法有哪些?
什么是白盒测试,主要方法有哪些?
答:
黑盒测试:
测试人员不用考虑程序内部的逻辑结构和内部特性,指依据程序父需求规格说明书,检查程序的功能是否符合它的功能。
主要方法有:
等价类划分、边界值分析、错误推测,因果图和综合策略。
白盒测试:
逻辑覆盖是以程序内部的逻辑结构为基础的设计测试用例技术,属于白盒测试。
白盒测试方法分为两大类:
静态测试方法和动态测试方法:
静态测试方法:
检查软件的表示和描述是否一致没有冲突或者没有歧义。
动态测试方法:
语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。
13.软件测试包括哪些步骤?
说明这些步骤的测试对象是什么?
答:
(1)单元测试,测试对象对单元模块;集成测试,测试对象为组装后的程序模块;确认测试,测试对象为可运行的目标软件系统。
二、论述题(2*7分)
1、“软件就是程序,软件开发就是编写代码”,这种观点对不对,为什么?
答:
“软件就是程序,软件开发就是编写程序”这个观点是错误的。
软件是计算机系统中与硬件相互依存的另一部分,包括程序,数据及其相关文档的完整集合。
其中,程序是使程序能够正确的处理信息的数据结构;文档是与程序开发。
维护和使用有关的图文材料。
2、“从软件生命周期的角度来看,测试是编码的下一个阶段,因此测试工作应该在编码完成后才开始”,这种观点对不对,为什么?
答:
软件测试应贯穿于软件定义与开发的整个期间。
因此,需求分析,概要设计。
详细设计以及程序编码等各阶段所得到的文件资料,包括需求规格说明,概要设计说明,详细设计规格说明以及源程序,都应成为软件测试的对象。
软件测试不应局限在程序的狭小范围内。
事实上,到程序的测试为止,软件开发工作已经经历了许多环节,每个环节都可能发生问题。
为了把握各个环节的正确性,在每个过程都需要测试,而不仅仅是只在编码的下一个阶段进行测试。
3、“在软件开发过程中,因为模块分解可以简化要解决的问题,所以模块分解应该越小越好”,这种观点对不对,为什么?
答:
不对,在软件开发过程中,尽管模块分解可以简化要解决的问题,但模块分析并不是越小越好。
当模块数目增加时,每个模块的规模将减小,开发单个模块的成本确实减少了;但是,随着模块数目增加,模块之间关系的复杂程度也会增加,设计模块间接口所需要的工作量也将增加。
4、“在测试过程中,根据测试用例,若实际输出结果等于预期输出结果,则说明该程序一定没有错误”,这种观点对不对,为什么?
答:
观点是错误的。
通过收集和分析测试结果数据,开始对软件建立可靠的模型。
如果在测试过程中,根据测试用例,若实际输出结果等于预期输出结果。
也就是说测试发现不了错误,不能证明软件不存在问题。
可能是软件配置考虑的不够细致充分,错误仍然潜伏在软件中。
这些错误最终不得不由用户发现并在维护时改正。
5、“由于程序最终是交由计算机来执行,因此不需要注释”,这种观点对不对,为什么?
答:
正确的注释能够帮助读者理解程序,为测试和维护提供明确的指导,注释绝不是可有可无的。
大多数程序设计语言允许使用自然语言来写注释,一些正规的程序文本中注释行的数量占到整个源程序的1/3到1/2。
注释分为序言性注释和功能性注释,序言性注释通常置于每个程序模块的开头部分,它应当给出程序的整体说明,对于程序本身具有指导作用。
有些软件开发部门对序言性注释作了明确而严格的规定,要求程序编制者逐项列出。
功能性注释嵌在源程序体中,用以描述其后的语句或程序段,也就是解释下面的语句会怎么样,而不要解释下面怎么做,因为程序怎么做与程序本身常常是重复的,而且对阅读者理解程序没什么帮助。
因此注释是必需的。
三、应用题(2*8分)
1、假设汽车的车牌号可由车主人在规定范围内自选,若其规定为:
(1)车牌上应有7个字符;
(2)为首的字符限定为汉字“京”;
(3)第2字符可任选一字母(A-Z);
(4)第3-7字符可选任意数字。
请为该处理程序根据等价类方法设计测试用例。
(参考245页的(3))
输入数据
有效等价类
无效等价类
字符个数
7个
(1)
0-6个
(2),>7个(3)
首字符
京(4)
非“京”(5)
第2个字符
字母(6)
非字母(7)
第3-7个字符
数字(8)
非数字(9)
测试用例如下:
1)京H87774
(1)(4)(6)(8)
2)京H8777
(2)
3)京H877745 (3)
4)冀H87774 (5)
5)京987774 (7)
6)京BA7774 (9)
2、根据白盒测试,给出这段代码的语句覆盖测试用例?
判定覆盖测试用例?
条件覆盖测试用例?
条件组合测试用例?
1)输入a,b,x;
2)If(a≥2andb==1)
x=x/a;
else
x=x+1;
3)If(a==4orx≥4)
x=x+2;
4)输出a,b,x.
(参考235页的例子),画出流程图,给路径、条件标号、设计测试用