软件测试复习题.docx
《软件测试复习题.docx》由会员分享,可在线阅读,更多相关《软件测试复习题.docx(23页珍藏版)》请在冰豆网上搜索。
软件测试复习题
名词解释题
1.软件生命周期
从软件项目提出直至不再使用、需要重新开发的生命周期。
包括需求、概要设计、详细设计、代码实现、软件测试、维护等阶段。
2.软件质量
软件质量就是指软件系统或系统中的软件部分的质量,即满足用户需求,包括功能需求和性能需求的程度。
3.软件测试
软件测试是一种作为主体的人通过各种手段对客体软件的某种固有属性进行的一种以认知,和改造为目的的活动
4.软件错误
也称故障,导致失效的原因,或者程序内部的一个错误。
5.软件缺陷
在程序中存在的,有可能诱发软件故障或导致软件失效的潜在因素。
6.动态测试
动态测试是在抽样测试数据上执行程序并分析输出以及发现错误的过程。
包括白盒测试技术和黑盒测试技术
7.静态测试
静态测试是不执行程序代码而寻找文档、程序代码中可能存在的错误的过程。
8.黑盒测试
黑盒测试也称功能测试或数据驱动测试,前提是已知产品所具有的功能,通过测试来检测每个功能是否都正常使用。
黑盒测试法常用的技术包括:
功能分解法、等价类划分法、边界值解析法、因果图法、随机测试、猜错法等。
9.白盒测试
白盒测试是吧测试对象看做一个打开的盒子。
利用白盒测试法进行动态测试时,除了要验证软件的功能特性之外,还特别需要测试软件产品内部结构和处理过程。
白盒测试法的覆盖标准由逻辑覆盖测试、基本路径测试和循环结构覆盖测试。
10.单元测试
单元测试的对象是程序系统中的最小单元---模块。
单元测试的依据是详细设喵叔,单元测试应对模块内所有重要的控制路径测试测试用例,以便发现模块内部的错误。
单元测试多采用白盒测试技术,对系统内多个模块可以进行并行测试。
11.集成测试
集成测试,也称组装测试、联合测试、子系统测试,在单元测试的基础上,将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的模块之间问题。
两种集成方式:
一次性集成方式和增殖式集成方式。
12.系统测试
系统测试是将软件放在整个计算机环境下,包括软硬件平台、某些支持软件、数据和人员等,在实际运行环境下进行一系列的测试,包括恢复测试、安全测试、强度测试和性能测试等。
13.验收测试
验收测试在系统测试通过后开始,在某种意义上是由用户/客户进行的系统测试,但又不是体统测试的重复。
14.桩模块
又称桩单元。
用以仿真被测试单元工作过程中所调用的单元,由被测试单元调用,一般只进行很少的数据处理,以便于检车被测试单元与其下级单元的接口。
15.驱动模块
也称驱动单元,用以仿真被测试单元的上级单元,驱动单元在单元测试中接受测试数据,把相关的数据传给被测试单元。
简答题
1.简述软件生命周期有哪些阶段。
软件生存周期包括可行性分析与开发项计划、需求分析、概要设计、详细设计、代码实现、软件测试、维护等活动
2.简述按照测试目标划分的软件测试分类
1.验收测试
2.功能测试
3.性能测试
4.强度测试
5.安全性测试
6.确认测试
3.简述按照测试对象划分的软件测试分类
1.单元测试
2.不见测试
3.系统测试
4.代码审查
5.文档审查
4.简述软件测试的阶段划分
分为初期阶段、发展阶段和成熟阶段三个阶段。
初期阶段1957~1971:
测试通常被认为是对产品进行事后检验,缺乏有效的测试方法。
发展阶段1972~1982:
1972年第一次关于软件测试的正式会议,促进软件测试的发展。
成熟阶段1983年至今:
国际标准Std829-1983,形成一门独立的学科和专业,成为软件工程学科中的一个重要组成部分。
5.简述软件缺陷的等级划分
分为重要缺陷和一般缺陷。
重要缺陷是指该缺陷若被激发会对设计文档/需求文档中规定的主要功能的完成产生不利/潜在不利影响,从而导致功能降级的代码问题。
一般缺陷是指该缺陷若被激发,不会影响设计文档/需求文档中规定的主要功能的完成,但对运行或操作会产生/潜在产生轻微影响的代码问题。
6.简述测试用例的要素及其含义。
测试目标:
测试的目的结果
测试用例:
测试时输入的测试数据
预期结果:
输入测试用例的预期结果
7.简述黑盒测试技术方法种类
四种基本方法为:
等价类划分法、边界值分类法、因果图法、猜错法。
等价类划分法:
分为有效等价类,即合理的,有意义的输入数据构成的集合;无效等价类,即不合理的、没有意义的输入数据构成的集合。
边界值分类法:
选择等价类的边缘值作为测试用例,让每个等价类的便捷都得到测试。
因果图法:
把输入条件视为“因”,把输出条件视为“果”,采用逻辑图的形式来表达功能说明书中输入条件的各种组合与输出的关系。
猜错法:
拖过列出可能有的错误和一撮情况表,对每种情况都进行测试用力的设计。
8.简述代码走查和代码审查的区别
代码审查可以被看成是一种特殊的审查方式,审查小组选取典型代码进行检查并修改其中的缺陷。
代码走查与代码审查很详细,都是以小组为单位进行代码阅读,是一系列规程和错误检查技术的集合。
代码走查是以小组为单元进行代码阅读,也是一系列规程和错误检查技术的集合。
9.简述单元测试的步骤
1)自顶向上
从最顶层开始,把顶层调用的单元做成桩模块。
对第二层测试,使用上面已测试的单元做驱动模块。
依次类推,直到全部单元测试结束。
2)自底向上
先对模块调用图上的最底层模块开始测试,模拟调用该模块的模块为驱动模块。
其次,对上一层模块进行单元测试,用已经被测试过的模块做桩模块。
依次类推,直到全部单元测试结束。
3)孤立测试
步骤:
无需考虑每个模块与其他模块之间的关系,分别为每个模块单独设计桩模块和驱动模块,逐一完成所有单元模块的测试。
4)综合测试
在单元测试中,为了有效地减少开发桩模块的工作量,可以考虑综合自底向上测试策略和孤立测试策略。
10.简述软件集成策略。
1.基于分解的集成(大爆炸集成、自定行下、自底向上集成)
2.三明治集成
3.基于调用同的集成
4.基于路径的集成
5.分层集成
6.基于功能的集成
7.高频集成
8.基于进度的集成
9.基于风险的集成
10.基于事件的集成
11.基于使用的集成
11.简述集成测试和系统测试的区别
1、测试对象
集成测试:
是由通过了单元测试的各个模块所集成起来的组件。
系统测试:
除了软件之外,还有计算机硬件及相关的外围设备、数据采集和传输机构、计算机系统操作人员等的整个系统。
2、测试时间
先进行集成测试,再进行系统测试。
3、测试方法
集成测试通常会采用灰盒测试。
而系统测试通常使用黑盒测试。
4、测试内容
集成测试:
是各个单元模块之间的接口,以及各个模块集成后所实现的功能。
系统测试:
是整个系统的功能和性能。
5、测试目的
集成测试:
发现单元之间接口的错误,以及集成后的软件同软件概要设计说明不一致的地方。
系统测试:
通过与系统需求定义相比较之后发现软件与系统定义不符合或矛盾的地方。
6、测试角度
集成测试:
是站在测试工作人员的角度上。
系统测试:
是站在用户的角度来进行。
12.简述至少6种系统测试的策略
1)功能测试(FunctionalTest)
功能测试属于黑盒测试技术范畴,是系统测试中要进行的最基本的测试,它不用考虑软件内部的具体实现过程。
2)性能测试(PerformanceTest)
应用在网络方面和客户端方面的测试
3)压力测试
压力测试又称强度测试,是在各种资源超负荷情况下观察系统的运行情况。
4)容量测试
容量测试是面向数据的,在系统正常运行的范围内测试并确定系统能够处理的数据容量。
也就是观察系统承受超额的数据容量的能力。
5)安全性测试
要验证系统内的保护机制能否抵御入侵者的攻击。
6)恢复性测试
恢复性测试的目标就是验证系统从软件或者硬件失败中恢复的能力。
在测试过程中会采取各种人工干预方式使软件出错,而不能正常工作,进而检验系统的恢复能力。
7)备份测试
是为了验证系统在软件或者硬件失败的事件中备份其数据的能力,属于恢复性测试。
8)GUI测试
GUI即图形化用户接口,GUI测试分为两个部分,一方面要能使得界面实现与最初设计的情况相符合;另一方面是要确认界面能够正确处理事件。
9)健壮性测试
又称容错性测试。
测试系统在出现故障时,是否能够自动恢复或者忽略故障继续运行。
10)兼容性测试
目的就是检验被测应用对其他应用或者系统的兼容性。
11)可用性测试
可用性测试是面向用户的系统测试。
12)可安装性测试
就是要验证成功安装系统的能力。
13)文档测试
文档测试是对系统提交给用户的文档进行验证,并不是一般性的审查活动。
通过文档测试保证用户文档的正确性并使得操作手册能够准确无误。
14)在线帮助测试
在线帮助测试给用户提供一种实时的咨询服务。
15)数据转换测试
主要是为了验证已存在的数据转换并载入一个新的数据库是否有效。
16)验收测试
验收测试是将程序与其最初的需求及最终用户当前的需要进行比较的过程。
13.简述测试项目管理的三维模型
(全方位、全过程、多层次)
时间维—全过程管理:
对软件测试项目的全过程进行控制。
空间维—全方位管理:
对与软件测试质量有关的关键因素实施全方位管理。
组织维—人员管理:
构建从测试热源、测试小组到测试机构的多层次的管理模式。
论述题
1.什么是软件测试,请谈谈为什么要进行软件测试?
软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。
执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。
因为软件缺陷的存在。
因为只有通过测试,才可以发现软件缺陷。
也只有发现了缺陷,才可以将软件缺陷从软件产品或软件系统中清理出去。
软件中存在的缺陷给我们带来的损失是巨大的,这也说明了软件测试的必要性和重要性
2.请谈谈什么是自动化测试及其好处并举例说明。
自动化测试(automatedtest)是相对手工测试(manualtest)而存在的一个概念,由手工逐个地运行测试用例的操作过程被测试工具自动执行的过程所代替。
测试工具的使用是自动化测试的主要特征,其特点:
自动运行的速度远快于手工、测试结果准确、高复用性、永不疲劳、可靠、独特的能力。
好处:
测试周期缩短、更高质量的产品、软件过程更规范、高昂的团队士气、节省人力资源,降低企业成本、充分利用硬件资源,降低企业成本。
3.试述软件测试的概念模型,并解释。
在开发过程中,从需求阶段到编码阶段,主要是采用验证手段进行测试,如需求评审、设计评审、代码走查以及代码审查等,从而完成对开发的中间结果的正确性的评估。
编码完成并经过代码审查等测试之后,此时的测试主要在软件的可执行模式下进行,即利用确认手段进行测试,确认测试包括单元测试、集成测试、系统测试以及用户验收测试等,其相应的关系。
4.试述软件测试的V型模型,并说明优缺点
优点:
采用V模型可使软件的测试活动与其他开发工作并行进行。
缺点:
缺乏灵活性,不能提出完整和正确的软件需求。
(没找到。
。
。
。
很抱歉--|||)
5.请谈谈你认为一个优秀的测试工程师应该具备哪些素质
作为一名优秀的测试工程师,首先要对测试工作有兴趣:
测试工作很多时候都是显得有些枯燥的,因此热爱测试工作,才更容易做好测试工作。
因此,除了具有前面的专业技能和行业知识外,测试人员应该具有一些基本的个人素养,即下面的“五心”。
1.专心:
主要指测试人员在执行测试任务的时候要专心,不可一心二用。
高度集中精神不但能够提高效率,还能发现更多的软件缺陷,业绩最棒的往往是团队中做事精力最集中的那些成员。
2.细心:
主要指执行测试工作时候要细心,认真执行测试,不可以忽略一些细节。
某些缺陷如果不细心很难发现,例如一些界面的样式、文字等。
3.耐心:
很多测试工作有时候显得非常枯燥,需要很大的耐心才可以做好。
如果比较浮躁,就不会做到“专心”和“细心”,这将让很多软件缺陷从你眼前逃过。
4.责任心:
责任心是做好工作必备的素质之一,测试工程师更应该将其发扬光大。
如果测试中没有尽到责任,甚至敷衍了事,这将会把测试工作交给用户来完成,很可能引起非常严重的后果。
5.自信心:
自信心是现在多数测试工程师都缺少的一项素质,尤其在面对需要编写测试代码等工作的时候,往往认为自己做不到。
要想获得更好的职业发展,测试工程师们应该努力学习,建立能“解决一切测试问题”的信心
“五心”只是做好测试工作的基本要求,测试人员应该具有的素质还很多。
例如测试人员不但要具有团队合作精神,而且应该学会宽容待人,学会去理解“开发人员”,同时要尊重开发人员的劳动成果——开发出来的产品。
综合题
1.输入三个正整数,这三个值分别表示三角形三条边的长度,请判断这个三角形是等边三角形、等腰三角形还是一般的三角形并打印相应的结果。
入口
①
a
N
②
③
Y
⑤
a==bandb=c
④
N
Y
a!
=borb!
=cora!
=c
⑦
⑥
Y
N
这是一个等边三角形
这是一个等腰三角形
这不是一个等边三角形
输出“这不是一个三角形”
结束
1)设计测试用例满足语句覆盖
1.语句覆盖测试用例:
输入
期望输出
覆盖对象
测试结果
Case1
a=1,b=2,c=3
这不是一个三角形
①,③
这不是一个三角形
Case2
a=3,b=4,c=5
这是一个不等边三角形
①,②,④,⑥
这是一个不等边三角形
Case3
a=3,b=3,c=4
这是一个等腰三角形
①,②,④,⑦
这是一个等腰三角形
Case4
a=3,b=3,c=3
这是一个等边三角形
①,②,⑤
这是一个等边三角形
2.判定覆盖测试用例
输入
期望输出
覆盖对象
测试结果
Case1
a=1,b=2,c=3
这不是一个三角形
①,③
这不是一个三角形
Case2
a=3,b=4,c=5
这是一个不等边三角形
①,②,④,⑥
这是一个不等边三角形
Case3
a=3,b=3,c=4
这是一个等腰三角形
①,②,④,⑦
这是一个等腰三角形
Case4
a=3,b=3,c=3
这是一个等边三角形
①,②,⑤
这是一个等边三角形
3.条件覆盖测试用例
输入
期望输出
覆盖对象
测试结果
Case5
a=1,b=6,c=7
这不是一个三角形
T1,T2,F3
这不是一个三角形
Case6
a=7,b=1,c=6
这不是一个三角形
F1,T2,T3
这不是一个三角形
Case7
a=1,b=7,c=6
这不是一个三角形
T1,F2,T3
这不是一个三角形
Case8
a=3,b=3,c=4
这是一个等腰三角形
T1,T2,T3,T4,
F5,F6,T7,T8
这是一个等腰三角形
Case9
a=3,b=4,c=3
这是一个等腰三角形
T1,T2,T3,F4,
F5,T6,T7,F8
这是一个等腰三角形
Case10
a=4,b=3,c=3
这是一个等腰三角形
T1,T2,T3,F4,
T5,T6,F7,T8
这是一个等腰三角形
4.条件-判定覆盖测试用例
输入
期望输出
覆盖对象
测试结果
Case15
a=1,b=6,c=7
这不是一个三角形
T1,T2,F3
(①,③)
这不是一个三角形
Case16
a=7,b=1,c=6
这不是一个三角形
F1,T2,T3
(①,③)
这不是一个三角形
Case17
a=1,b=7,c=6
这不是一个三角形
T1,F2,T3
(①,③)
这不是一个三角形
Case18
a=3,b=3,c=4
这是一个等腰三角形
T1,T2,T3,T4,
F5,F6,T7,T8
(①,②,④,⑦)
这是一个等腰三角形
Case19
a=3,b=4,c=3
这是一个等腰三角形
T1,T2,T3,F4,
F5,T6,T7,F8
(①,②,④,⑦)
这是一个等腰三角形
Case20
a=4,b=3,c=3
这是一个等腰三角形
T1,T2,T3,F4,
T5,T6,F7,T8
(①,②,④,⑦)
这是一个等腰三角形
Case21
a=3,b=3,c=3
这是一个等边三角形
T1,T2,T3,T4,T5
(①,②,⑤)
这是一个等边三角形
Case22
a=3,b=4,c=5
这是一个不等边三角形
T1,T2,T3,F4,
F5,T6,T7,T8
(①,②,④,⑥)
这是一个不等边三角形
2.某一8位微机,其八进制常数定义为:
以零开头的数是八进制数,其值的范围是-177~177,如05,0127,-065。
解:
(1)划分等价类并编号
输入数据
合理等价类
不合理等价类
八进制整数
①2~4位以0开头的数字串
④以非0非一开头的串
②3~5位以-0开头的数字串
⑤0开头含有非数字字符串
⑥-0开头含有非数字字符串
⑦0开头多于4个字符
⑧-后非0的多位串
⑨-0开头多于5个数字
八进制数范围
③在-177~177之间
⑩小于-177
大于177
(2)为合理等价类设计测试用例
测试数据
期望结果
覆盖范围
023
显示有效输入
1,3
-0156
显示有效输入
2,3
(3)为不合理等价类设计测试用例
测试数据
期望结果
覆盖范围
102
显示无效输入
4
0f23
显示无效输入
5
-03x3
显示无效输入
6
01765
显示无效输入
7
-124
显示无效输入
8
-01246
显示无效输入
9
-0200
显示无效输入
10
0223
显示无效输入
11
3.某城市电话号码组成规则是:
地区码+前缀+后缀。
地区码:
空白或者3位数字;前缀:
非0或者1开头的3位数字:
后缀:
4位数字。
某程序接受符合以上条件的电话号码,拒绝所有不符合规定的号码。
对该程序使用等价类划分法设计测试用例。
解:
第一步:
划分等价类,建立输入等价类表并编号(见表9-1)。
表9-1电话号码组成规则的等价类表
输入条件
有效等价类
无效等价类
地区码
(1)空白
(2)3位数字
(5)有非数字字符(6)少于3位数字(7)多于3位数字
前缀
(3)200到999之间的
3位数字
(8)有非数字字符(9)起始位为0(10)起始位为1
(11)少于3位数字(12)多于3位数字
后缀
(4)4位数字
(13)有非数字字符(14)少于4位数字(15)多于4位数字。
第二步:
设计测试用例,为有效等价类
(1),(3),(4)共同设计一个测试数据,为有效等价类
(2),(3),(4)共同设计一个测试数据,同时为每一个无效等价类设计相应测试数据。
见表9-2。
表9-2等价类划分法测试用例表
测试数据
测试范围
期望结果
测试数据
测试范围
期望结果
(1)()398-7735
等价类
(1),(3),(4)
有效
(8)(123)123-4567
等价类(10)
无效
(2)(391)398-7711
等价类
(2),(3),(4)
有效
(9)(123)73-4567
等价类(11)
无效
(3)(2A0)456-5678
等价类(5)
无效
(10)(123)7345-6789
等价类(12)
无效
(4)(34)234-5678
等价类(6)
无效
(11)(123)734-13A4
等价类(13)
无效
(5)(1234)567-6789
等价类(7)
无效
(12)(123)734-234
等价类(14)
无效
(6)(123)23C-4567
等价类(8)
无效
(13)(123)734-23456
等价类(15)
无效
(7)(123)010-2345
等价类(9)
无效
4.为以下流程图所示的程序段设计一组测试用例,要求分别满足语句覆盖、分支覆盖、条件覆盖、分支-条件覆盖。
1、语句覆盖
语句:
s1:
x=x/5s2:
x=x+1
测试用例输入
覆盖语句
A=3,B=3,X=3,Y=3
S1,s2
2.判断(分支)覆盖
B1:
(A<5)and(B=5)ANDY>5
B2:
(A=2)or(x>2)ANDY>5
测试用例输入
覆盖分支
A=3,B=3,X=3,Y=3
B1不满足,B2不满足
A=2,B=5,X=3,Y=6
B1满足,B2满足
3.条件覆盖
D1:
A<5D2:
B=5D3:
Y>5D4:
A=2D5:
X>2
测试用例输入
覆盖分支
A=3,B=5,X=3,Y=6
D1T,D2T,D3T,D4T,D5T
A=6,B=3,X=1,Y=3
D1F,D2F,D3F,D4F,D5F
4.分支/条件覆盖
测试用例输入
覆盖分支
A=3,B=5,X=3,Y=6
D1T,D2T,D3T,D4T,D5T
A=6,B=3,X=1,Y=3
D1F,D2F,D3F,D4F,D5F
5.为以下流程图所示的程序段设计一组测试用例,要求分别满足语句覆盖、分支覆盖、条件覆盖、分支-条件覆盖。
2、语句覆盖
语句:
s1:
引用语句1s2:
引用语句2s3:
引用语句3
测试用例输入
覆盖语句
X=17,Y=11
S3
X=4,Y=4
S2
X=-1,Y=-1
S1
2.判断(分支)覆盖
B1:
X>8ANDY>5B2:
X>0ORY>0B3:
X>16ORY>10
测试用例输入
覆盖分支
X=9,Y=6
B1T,B3F
X=3,Y=4
B1F,B2T
X=-1,Y=-1
B1F,B2F
X=17,Y=11
B1T,B3T
3.条件覆盖
D1:
X>8D2:
Y>5D3:
X>0D4:
Y>0D5:
X>16D6:
Y>10
测试用例输入
覆盖分支
X=17,Y=11
D1T,D2T,D5T,D6T
X=3,Y=4
D1F,D2F,D3T,D4T
X=-1,X=-1
D1F,D2F,D3F,D4F
X=9,Y=6
D1T,D2T,D5F,D6F
4.分支/条件覆盖
测试用例输入
覆盖分支
X=17,Y=11
D1T,D2T,D5T,D6T,B1T,B3T
X=3,Y=4
D1F,D2F,D3T,D4T,B1F,B2T
X=-1,X=-1
D1F,