解:不可以。因为没有经过单元测试的模块会遗留大量的缺陷到集成测试阶段,而在集成测试阶段对这些缺陷定位困难,导致后续工作展开困难,修复缺陷成本成指数级增长。
7.什么是驱动模块和桩模块?为下面的函数构造一个驱动模块。 int divide(int a, int b) {
int c;
if (b==0) {printf(\除数不能为0\ c=a/b; return c; }
解:驱动模块是用以模拟被测模块的上级模块,它接收测试数据,传送数据给被测模块,启动被测模块,最后输出实测结果。
桩模块用以模拟被测模块工作过程中所调用的子模块。 函数驱动模块: void main( ) {
int x,y,z;
scanf(“%d%d”,&x,&y); z=divide(x,y); printf(“%d”,z); } 8.什么是回归测试?什么时候进行回归测试?
解:回归测试就是重新运行现有测试用例测试原有功能,以便确定变更是否达到了预期的目的,检查变更是否损害了原有的正常功能。每当软件发生变化时就应进行回归测试。
9.集成测试有哪些不同的集成方法?简述不同方法的特点。
解:集成测试通常有一次性集成、自顶向下集成、自底向上集成和混合集成4种集成方法。
一次性集成方法需要的测试用例数目少,测试方法简单、易行。但是由于不可避免存在模块间接口、全局数据结构等方面的问题,所以一次运行成功的可能性不大;如果一次集成的模块数量多,集成测试后可能会出现大量的错误,给程序的错误定位与修改带来很大的麻烦;即使集成测试通过,也会遗漏很多错误进入系统测试。
自顶向下集成在测试的过程中,可以较早地验证主要的控制和判断点;一般不需要驱动程序,减少了测试驱动程序开发和维护的费用;可以和开发设计工作一起并行执行集成测试,能够灵活的适应目标环境;容易进行故障隔离和错误定位。但是在测试时需要为每个模块的下层模块提供桩模块,桩模块的开发和维护费用大;桩模块不能反映真实情况,重要数据不能及时回送到上层模块,导致测
5
试不充分;涉及复杂算法和真正I/O的底层模块最易出问题,在后期才遇到导致过多的回归测试。
自底向上集成可以尽早的验证底层模块的行为;提高了测试效率;一般不需要桩模块;容易对错误进行定位。但是直到最后一个模块加进去之后才能看到整个系统的框架;驱动模块的设计工作量大;不能及时发现高层模块设计上的错误。
混合集成具有自顶向下和自底向上两种集成策略的优点,但是在被集成之前,中间层不能尽早得到充分的测试。 10.系统测试主要包括哪些内容?
解:系统测试主要包括强度测试、性能测试、恢复测试、安全测试、可靠性测试、安装测试、容量测试和文档测试。
11.验收测试是由谁完成的?通常包含哪些过程?
解:验收测试是以用户为主的测试,软件开发人员和QA(质量保证)人员也应参加。通常包含α测试和β测试过程。
12.分析比较面向对象的软件测试与传统的软件测试的异同。
解:传统的单元测试的对象是软件设计的最小单位——模块。当考虑面向对象软件时,单元的概念发生了变化,此时最小的可测试单位是封装的类或对象,而不再是个体的模块。传统单元测试主要关注模块的算法实现和模块接口间数据的传递,而面向对象的单元测试主要考察封装在一个类中的方法和类的状态行为。
面向对象软件没有层次的控制结构,因此传统的自顶向下和自底向上集成策略就不再适合,它主要有以下两种集成策略: 基于类间协作关系的横向测试;基于类间继承关系的纵向测试。
系统测试一般不考虑内部结构和中间结果,因此面向对象软件系统测试与传统的系统测试差别不大。
面向对象软件测试的整体目标和传统软件测试的目标是一致的,即以最小的工作量发现尽可能多的错误,但是面向对象测试的策略和战术有很大不同。测试的视角扩大到包括复审分析和设计模型,此外,测试的焦点从过程构件(模块)移向了类。
6
第3章 黑盒测试
1.分析黑盒测试方法的特点。
解:黑盒测试又称为功能测试或数据驱动测试,主要针对软件界面、软件功能、外部数据库访问以及软件初始化等方面进行测试。
优点:1)比较简单,不需要了解程序内部的代码及实现;2)与软件的内部实现无关;3)从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;4)基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;5)在做软件自动化测试时较为方便。
缺点:1)不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30%;2)自动化测试的复用性较低。
2.健壮等价类测试与标准等价类测试的主要区别是什么? 解:主要区别在于健壮等价类测试在标准等价类的基础上还要进行有效取值范围之外的输入(无效输入)的测试。
3.试用等价分类法测试党政管理系统中党员出生年月的输入设计是否符合要求,假设出生年月格式为yyyymmdd。 解:
输入数据 出生年月日
无效等价类 ①8位数字字符
有效等价类
②有非数字字符
③少于8个数字符 ④多于8个数字符
对应数值 ⑤在19090101-19900101之间 ⑥<19090101
⑦>19900101
月份对应数⑧在1-12之间 ⑨等于\ 值 ⑩>12 日期对应值 11○1,3,5,7,8,10,12月在1-31之15○等于\
16间 ○>31
1217○4,6,9,11月在1-30之间 ○2,4,6,9,11月等于\1318○闰年2月在1-29之间 ○2月等于\1419○非闰年2月在1-28之间 ○非闰年2月等于\4.找零钱最佳组合:假设商店货品价格(R)皆不大于100元(且为整数),若顾
客付款在100元内(P),求找给顾客之最少货币个(张)数?(货币面值50元(N50),10元(N10),5元(N5),1元(N1)四种。试根据边界值法设计测试用例。 解:1)分析输入的边界情况: R > 100 0 < R < = 100 R <= 0 P > 100 R<= P <= 100 P < R
7
2)分析零钱最佳组合的输出情况: N50 = 1 N50 = 0 4>N10>= 1 N10 = 0 N5 = 1 N5 = 0 4>N1>= 1 N1 = 0
3)分析规格中每一决策点之情形,以RR1,RR2,RR3表示计算要找50,10,5
元货币数时的剩余金额。 R > 100 R <= 0 P > 100 P < R
RR1 >= 50 RR2 >= 10 RR3 >= 5
4)根据上述的输入/输出条件组合出可能的情况:
R > 100 R <= 0
0 < R <= 100, P > 100 0 < R <= 100, P < R
0 < R <= 100, R <= P <= 100, RR = 50 0 < R <= 100, R <= P <= 100, RR = 49 0 < R <= 100, R <= P <= 100, RR = 10 0 < R <= 100, R <= P <= 100, RR = 9 0 < R <= 100, R <= P <= 100, RR = 5 0 < R <= 100, R <= P <= 100, RR = 4 0 < R <= 100, R <= P <= 100, RR = 1 0 < R <= 100, R <= P <= 100, RR = 0
5)为满足以上各种情形,测试用例设计如下:
测试用例 货品价格R 付款金额P test1 101 - test2 0 - test3 -1 - test4 100 101 test5 100 99 test6 50 100 test7 51 100 test8 90 100 test9 91 100 test10 95 100 test11 96 100 test12 99 100 test13 100 100
5.试为三角形问题中的直角三角形开发一个决策表和相应的测试用例。注意,
会有等腰直角三角形。
解:判断构成的是否为直角三角形的问题的决策表设计如下:
c1:a
F T T T
8
T T T T T T T