标题: 软件测试试题(下) [打印本页] 作者: nnancy 时间: 2010-3-3 14:38 标题: 软件测试试题(下) 常用的功能测试方法
功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。常用的测试方法如下:
1. 页面链接检查:每一个链接是否都有对应的页面,并且页面之间切换正确。
2. 相关性检查:删除/增加一项会不会对其他项产生影响,如果产生影响,这些影响是否都正确。
3. 检查按钮的功能是否正确:如update, cancel, delete, save等功能是否正确。
4. 字符串长度检查: 输入超出需求所说明的字符串长度的内容, 看系统是否检查字符串长度,会不会出错.
5. 字符类型检查: 在应该输入指定类型的内容的地方输入其他类型的内容(如在应该输入整型的地方输入其他字符类型),看系统是否检查字符类型,会否报错.
6. 标点符号检查: 输入内容包括各种标点符号,特别是空格,各种引号,回车键.看系统处理是否正确.
7. 中文字符处理: 在可以输入中文的系统输入中文,看会否出现乱码或出错.
8. 检查带出信息的完整性: 在查看信息和update信息时,查看所填写的信息是不是全部带出.,带出信息和添加的是否一致
9. 信息重复: 在一些需要命名,且名字应该唯一的信息输入重复的名字或ID,看系统有没有处理,会否报错,重名包括是否区分大小写,以及在输入内容的前后输入空格,系统是否作出正确处理.
10. 检查删除功能:在一些可以一次删除多个信息的地方,不选择任何信息,按”delete”,看系统如何处理,会否出错;然后选择一个和多个信息,进行删除,看是否正确处理.
11. 检查添加和修改是否一致: 检查添加和修改信息的要求是否一致,例如添加要求必填的项,修改也应该必填;添加规定为整型的项,修改也必须为整型.
12. 检查修改重名:修改时把不能重名的项改为已存在的内容,看会否处理,报错.同时,也要注意,会不会报和自己重名的错.
13. 重复提交表单:一条已经成功提交的纪录,back后再提交,看看系统是否做了处理。
14. 检查多次使用back键的情况: 在有back的地方,back,回到原来页面,再back,重复多次,看会否出错.
15. search检查: 在有search功能的地方输入系统存在和不存在的内容,看search结果是否正确.如果可以输入多个search条件,可以同时添加合理和不合理的条件,看系统处理是否正确.
16. 输入信息位置: 注意在光标停留的地方输入信息时,光标和所输入的信息会否跳到别的地方.
17. 上传下载文件检查:上传下载文件的功能是否实现,上传文件是否能打开。对上传文件的格式有何规定,系统是否有解释信息,并检查系统是否能够做到。
18. 必填项检查:应该填写的项没有填写时系统是否都做了处理,对必填项是否有提示信息,如在必填项前加*
19. 快捷键检查:是否支持常用快捷键,如Ctrl+C Ctrl+V Backspace等,对一些不允许输入信息的字段,如选人,选日期对快捷方式是否也做了限制。
20. 回车键检查: 在输入结束后直接按回车键,看系统处理如何,会否报错.【5-1】从供选择的答案中选出应填入下列( )中的字句。
软件测试的目的是( A )。为了提高测试的效率,应该( B )。使用白盒测试方法时,确定测试数据应根据( C )和指定的覆盖标准。与设计测试数据无关的文档是( D )。
软件的集成测试工作最好由( E )承担,以提高集成测试的效果。
供选择的答案:
A. ①
评价软件的质量
②
发现软件的错误
③
找出软件中的所有错误
④
证明软件是正确的
B. ①
随机地选取测试数据
②
取一切可能的输入数据作为测试数据
③
在完成编码以后制定软件的测试计划
④
选择发现错误的可能性大的数据作为测试数据
C. ①
程序的内部逻辑
②
程序的复杂程度
③
使用说明书
④
程序的功能
D. ①
该软件的设计人员
②
程序的复杂程度
③
源程序
④
项目开发计划
E. ①
该软件的设计人员
②
该软件开发组的负责人
③
该软件的编程人员
④
不属于该软件开发组的软件设计人员
【5-2】请从供选择的答案中选出应填入下列(
)中的字句。
程序的三种基本控制结构是( A )。它们的共同点是( B )。结构化程序设计的一种基本方法是( C )。软件测试的目的是( D )。软件调试的目的是( E )。
供选择的答案:
A. ①
过程,子程序,分程序
②
顺序,条件,循环
③
递归,堆栈,队列
④
调用,返回,转移
B. ①
不能嵌套使用
②
只能用来写简单的程序
③
已经用硬件实现
④
只有一个入口和一个出口
C. ①
筛选法
②
递归法
③
归纳法
④
逐步求精法
D. ①
证明程序中没有错误
②
发现程序中的错误
③
测量程序的动态特性
④
检查程序中的语法错误
E. ①
找出错误所在并改正之
②
排除存在错误的可能性
③
对错误性质进行分类
④
统计出错的次数
【5-3】从下列关于软件测试的叙述中,选出5条正确的叙述。
(1) 用黑盒法测试时,测试用例是根据程序内部逻辑设计的。
(2) 尽量用公共过程或子程序去代替重复的代码段。
(3) 测试是为了验证该软件已正确地实现了用户的要求。
(4) 对于连锁型分支结构,若有n个判定语句,则有2n条路径。
(5) 尽量采用复合的条件测试,以避免嵌套的分支结构。
(6) GOTO语句概念简单,使用方便,在某些情况下,保留GOTO语句反能使写出的程序更加简洁。
(7) 发现错误多的程序模块,残留在模块中的错误也多。
(8) 黑盒测试方法中最有效的是因果图法。
(9) 在做程序的单元测试时,桩(存根)模块比驱动模块容易编写。
(10) 程序效率的提高主要应通过选择高效的算法来实现。
【5-4】从供选择的答案中选出同下列关于软件测试的各条叙述关系最密切的字句。
(1) 对可靠性要求很高的软件,例如操作系统,由第三者对源代码进行逐行检查。
(2) 已有的软件被改版时,由于受到变更的影响,改版前正常的功能可能发生异常,性能也可能下降。因此,对变更的软件进行测试是必要的。
(3) 在意识到被测试模块的内部结构或算法的情况下进行测试。
(4) 为了确认用户的需求,先做出系统的主要部分,提交给用户试用。
(5) 在测试具有层次结构的大型软件时,有一种方法是从上层模块开始,由上到下进行测试。此时,有必要用一些模块替代尚未测试过的下层模块。
供选择的答案:
E:
①
仿真器
②
代码审查
③
模拟器
④
桩
⑤
驱动器
~A
⑥
域测试
⑦
黑盒测试
⑧
原型
⑨
白盒测试
⑩
退化测试
【5-5】对小的程序进行穷举测试是可能的,用穷举测试能否保证程序是百分之百正确呢?
【5-6】在任何情况下单元测试都是可能的吗?都是需要的吗?
【5-7】从供选择的答案中选出应填入下面有关软件测试的叙述的(
)内的正确答案。
软件测试方法可分为黑盒测试法和白盒测试法两种。
黑盒测试法是通过分析程序的( A )来设计测试用例的方法。除了测试程序外,它还适用于对( B )阶段的软件文档进行测试。
白盒测试法是根据程序的( C )来设计测试用例的方法。除了测试程序外,它也适用于对( D )阶段的软件文档进行测试。
白盒法测试程序时常按照给定的覆盖条件选取测试用例。( E )覆盖比( F )覆盖严格,它使得每一个判定的每一条分支至少经历一次。( G )覆盖既是判定覆盖,又是条件覆盖,但它并不保证使各种条件都能取到所有可能的值。( H )覆盖比其他条件都要严格,但它不能保证覆盖程序中的每一条路径。
单元测试一般以( I )为主,测试的依据是( J )。
供选择的答案:
A, C:①
应用范围
②
内部逻辑
③
功能
④
输入数据
B, D:①
编码
②
软件详细设计
③
软件总体设计
④
需求分析
E, F, G, H:①
语句
②
判定
③
条件
④
判定/条件
⑤
多重条件
⑥
路径
I:①
白盒法
②
黑盒法
J:①
模块功能规格说明
②
系统模块结构图
③
系统需求规格说明
【5-8】从供选择的答案中选出应该填入下列关于软件测试的叙述的( )内的正确答案。
软件测试中常用的静态分析方法是( A )和( B )。( B )用于检查模块或子程序间的调用是否正确。分析方法(白盒方法)中常用的方法是( C )方法。非分析方法(黑盒方法)中常用的方法是( D )方法和( E )方法。( E )方法根据输出对输入的依赖关系设计测试用例。
供选择的答案:
B:
①
引用分析
②
算法分析
③
可靠性分析
④
效率分析
~A
⑤
接口分析
⑥
操作分析
C ~ E:
①
路径测试
②
等价类
③
因果图
④
归纳测试
⑤
综合测试
⑥
追踪
⑦
深度优先
⑧
调试
⑨
相对图
【5-9】下面是选择排序的程序,其中datalist是数据表,它有两个数据成员:一是元素类型为Element的数组V,另一个是数组大小n。算法中用到两个操作,一是取某数组元素V的关键码操作getKey ( ),一是交换两数组元素内容的操作Swap( )::
void SelectSort ( datalist & list ) {
//对表list.V[0]到list.V[n-1]进行排序, n是表当前长度。
for ( int i = 0; i < list.n-1; i++ ) {
int k = i; //在list.V.key到list.V[n-1].key中找具有最小关键码的对象
for ( int j = i+1; j < list.n; j++)
if ( list.V[j].getKey ( ) < list.V[k].getKey ( ) ) k = j; //当前具最小关键码的对象
if ( k != i ) Swap ( list.V, list.V[k] ); //交换
}
}
(1) 试计算此程序段的McCabe复杂性;
(2) 用基本路径覆盖法给出测试路径;
(3) 为各测试路径设计测试用例。
【5-10】根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。
“一个程序读入三个整数。把此三个数值看成是一个三角形的三个边。这个程序要打印出信息,说明这个三角形是三边不等的、是等腰的、还是等边的。”
【5-11】设要对一个自动饮料售货机软件进行黑盒测试。该软件的规格说明如下:
“有一个处理单价为1元5角钱的盒装饮料的自动售货机软件。若投入1元5角硬币,按下“可乐”、“雪碧”或“红茶”按钮,相应的饮料就送出来。若投入的是2元硬币,在送出饮料的同时退还5角硬币。”
(1) 试利用因果图法,建立该软件的因果图;
(2) 设计测试该软件的全部测试用例。
【5-12】对一个长度为100,000条指令的程序进行测试,记录下来的数据如下:
测试开始, 发现错误个数为0;ú
经过160小时的测试, 累计改正100个错误, 此时, MTTF = 0.4小时;ú
又经过160小时的测试, 累计改正300个错误, 此时, MTTF = 2小时;ú
(1) 估计程序中固有的错误总数;
(2) 为使MTTF达到10小时, 必须测试和调试这个程序多长时间?
(3) 给出MTTF与测试时间t之间的函数关系。
【5-13】应该由谁来进行确认测试?是软件开发者还是软件用户?为什么? 作者: cathyouyang 时间: 2010-3-3 15:14
辛苦了啊作者: 沙漠和巴黎 时间: 2012-12-4 11:05
很棒啊作者: libingyu135 时间: 2012-12-5 11:05
有么有答案啊作者: lsekfe 时间: 2012-12-5 11:38
有么有答案啊
libingyu135 发表于 2012-12-5 11:05
答案在下面有的哦!作者: fengerapple 时间: 2013-1-25 18:01
Thank you very much for sharing!The good man!The good life of peace!