软件测试笔试题Word下载.docx
《软件测试笔试题Word下载.docx》由会员分享,可在线阅读,更多相关《软件测试笔试题Word下载.docx(17页珍藏版)》请在冰豆网上搜索。
预测系统行为和性能的负载测试工具。
二、套题
一、选择:
1.从是否需要被执行测试软件的角度,软件测试可分为哪两种?
(B)
A.黑、白盒(软件测试用例设计方法角度)B.静、动态C.单、集(策略和过程)
2.下列哪一项不是白盒测试?
(C)
A.单元测试B.集成测试C.系统测试D.回归测试
3.计算机环路复杂度(计算方法)(重点:
选择简答)
V(G)=简单判定节点数+1;
V(G)=E-N+2;
V(G)=封闭区域数+1(记住这三个公式)
4.属于黑盒测试的方法?
A.基于基本路径B.控制流C.基于用户需求测试D.逻辑覆盖
(基于用户需求的测试,功能图分析方法,等价类划分方法,边界值分析方法,错误推测方法,因果图方法,判定表驱动分析方法,正交实验设计方法和功能图分析方法等。
)
5.测试的报告由五部分。
答:
首页、引言部分、测试概要、测试结果及缺陷分析、测试结论与建议。
6.单元测试环境由三部分构成?
所测模块和与它相关的驱动模块及桩模块共同构成了一个“测试环境”
7.单元测试中综合测试主要是考虑哪些方式?
自顶向下的单元测试策略、自底向上的单元测试策略。
8.不是软件实施活动的进入准则?
(D)
A.需求工件已经被基线化B.详细设计工件已经被基线化C.构架工件已经被基线化D.项目阶段成果及被基线化
9.确定单元测试指导的基本方针?
()(3个,选择其中不是的)
能够自身编译的最小程序块,单一过程/函数(独立),由一个人完成的小规模工作
10.对于自动化测试成本从高到底的排序,下列描述正确的是?
(A)(PPT6七章)(进行排序)
A.GUI,编译器,用户图形
11.软件测试是软件开发的重要环节之一。
按照软件开发过程可分为:
单元测试、集成测试、系统测试、域测试等。
12.软件测试的任务发现、改正软件错误(找错,修正)
13.下面哪一项测试步骤中需要进行局部数据结构测试?
(A)
A.单元测试B.集成测试C.确认测试D.系统测试
14.白盒测试是根据程序的(C)来选设计测试用例?
A.功能B.性能C.内部逻辑D.内部数据
15.单元测试的终止的标准(3个)(PPT47三章)
1.硬件资源不足或故障造成软件运行无法运行;
2.软件运行后无法正确显示;
3.所有功能测试均已经完成。
16.软件测试是对系统逆向求证的过程,集成测试对应的过程中单元测试的过程
A.需求设计B.概要设计C.详细设计D.编码实现
17.单元测试主要测试技术不包括?
(B)(PPT12三章)
A.白盒B.功能C.静态D.以上都不是
18.环路复杂度公式哪个不是?
()
19.如果一个产品中次严重缺陷基本完成修复并且通过了复测,这个阶段的产品是(B)
A.阿尔法版B.beta版C.正版D.以上都不是
20.自底向上方法需要写(A)
A.驱动程序 B.桩程序 C.驱动程序和桩程序 D.两个都不是
21.(A)的目的是对最终软件系统进行全面的测试确保最终软件系统产品满足需求。
A.系统测试 B.集成测试 C.单元测试 D.功能测试
22.测试用例的4个关键元素。
(1)被测单元模块初始状态声明,即测试用例的开始状态(仅适用于被测单元维持了调用中间状态的情况);
(2)被测单元的输入,包含由被测单元读入的任何外部数据值;
(3)该测试用例实际测试的代码,用被测单元的功能和测试用例设计中使用的分析来说明,如:
单元中哪一个决策条件被测试;
(4)测试用例的期望输出结果(在测试进行之前的测试说明中定义)。
23.目前主要的单元测试的方法(A.基本路径测试B.等价类划分/边界值分析测试C.覆盖测试D.循环测试E.数据流测试F.程序插桩测试G变异测试)从中选。
24.哪个方法根据输出输入依赖关系设计的测试用例?
(C)?
?
A.路径B.等价类C.因果图D.归纳
25.有一组测试用例使得每一个被测试用例的分支覆盖至少被执行一次,它满足的覆盖标准(B)。
(PPT22二章)
A.语句覆盖B.判定覆盖C.条件覆盖D.路径覆盖
二、填空:
1.单元测试中对类进行测试有3个“定义—引用对”(方法内部定义-引用对方法间定义-引用对类内部定义-引用对)。
(PPt37三章)
2.测试的主要目标,不再只是找出其缺陷,而是证明其(性能)。
3.压力测试又称强度测试,是在(各种资源超负荷)情况下,观察系统的运行情况。
4.(缺陷跟踪工具)是管理工具使用最多的。
5.集成测试划分为5个阶段(制定集成测试的计划、设计集成测试、实施集成测试、执行集成测试、评估集成测试)。
6.根据软件生命周期中的定义,可以把自动化测试工具划分3大类(白盒测试工具、黑盒测试工具、测试管理工具)。
7.对类进行测试时,类之间的关系6类(关联泛化实现依赖聚合组合)。
每种不同符号来表示,并分别用(私有的“-”、公有的“+”、保护的“#”)三个关键字来修饰类。
8.白盒测试工具针对代码进行的工具,测试中发现的缺陷可以定义到代码级,根据测试工具原理的不同,又可以分为静态测试工具和动态测试工具。
9.黑盒测试工具包括(功能测试工具、性能测试工具)。
10.软件开发的基本过程(需求分析、设计、实现、测试、维护)。
11.单元测试的策略(自顶向下的单元测试策略、自底向上的单元测试策略和孤立的单元测试策略)。
12.集成测试的工作开展更多站在测试工作人员的角度上;
系统测试站在用户的角度上。
13.对面向对象来说,按照集成的粒度不同,可把集成测试分为(类间集成测试、类内集成测试)。
14.类测试用例中,基于3个标准(基于状态的覆盖率、基于限制的覆盖率和基于代码的覆盖率)。
(PPT13六章)
15.哪一个不属于增量式集成?
答案:
大爆炸集成
17.单元测试中对类进行三级测试(方法内部测试、方法间测试、类内部测试)PPT36三章
18.目前单元测试主要的方法:
基于路径测试,等价类划分/边界值分析测试,覆盖测试,循环测试,数据流测试,程序插桩测试,变异测试。
三、判断:
1.发现错误是软件测试的目的。
(错)
2.白盒测试可以找出软件遗漏功能和代码错误功能。
(PPT47二章)(错)
3.在设计测试用例时,应包括合理的应用条件和不合理的应用条件。
(对)
4.软件缺陷一定是由编码引起的错误。
5.Bata测试是软件多个用户在实际。
。
多个测试。
6.系统测试属白盒测试。
(黑盒)(错)
7.手工测试可以达到好的系统化测试。
8.功能测试属于白盒测试的技术范畴。
9.文档测试是对系统提交给用户的文档进行验证,并不是一般性的审查活动。
P355(对)
四、大题
1.计算环路复杂度方法哪些?
(要求写成3个公式,一个公式2分)
V(G)=封闭区域数+1
2.基于状态测试的主要步骤?
(PPT32三章)
①依据设计文档,或者通过分析对象数据成员的取值空间(笛卡尔积),得到被测试类的状态转移图;
②给被测试的类加入用于设置和检查对象状态的新方法,导出对象的逻辑状态;
③对于状态转移图中的每个状态,确定该状态是哪些方法的合法起始状态,即在该状态时,对象允许执行哪些操作;
④在每个状态,从类中方法的调用关系图最下层开始,逐一测试类中的方法;
⑤测试每个方法时,根据对象当前状态确定出对方法的执行路径有特殊影响的参数值,将各种可能组合作为参数进行测试。
3.Bug的种类有哪些?
需求阶段的BUG,分析设计阶段的BUG,设计阶段的BUG,实现阶段的BUG,配置阶段的BUG,短视将来的BUG,静态文档的BUG。
4.自动化测试的缺点?
(5点)
1、自动化测试不能取代手工测试,测试主要还是要靠人工的。
2、新缺陷越多,自动化测试失败的几率就越大。
3、工具本身不具有想象力
4、技术问题、组织问题、脚本维护
5、测试工具与其他软件的互操作性
5.选择手动和自动化测试,为了作出一个合理的决定,需要做哪些方面假设?
(7个)
1.拥有稳定的自动化测试技术支持。
2.两种极端的可能性:
一种就是无需人工干预的完全自动化测试,另一种就是只运行一次就废弃的人工测试。
3.自动化测试和手工测试都可行(但事实并非如此)。
4.测试是通过外部接口完成的(黑盒测试)。
5.不要求必须进行自动化测试。
6.测试已经设计好之后,再决定是否进行自动化测试。
7.有一定的时间用于完成测试,并且在这段时间里完全有可能把测试做好。
6.集成测试分析方法有哪些?
体系结构分析模块分析接口分析风险分析可测试性分析集成测试策略分析
7.编写类测试驱动程序的方法有很多种,以Java语言为例来说明,测试驱动程序设计的结构,并简要说明其优缺点。
(PPT15六章)
1.在main方法中写入需要运行的测试用例,即实现main方法,然后编译、执行该类。
缺点:
不利于维护和复用,交付时,逐个剔除代码
2.在类中实现一个静态测试方法,通过调用该测试方法来收集每个测试用例的执行结果。
同1.
3.实现独立的测试类,它的职责是执行并收集每个测试用例的结果。
优点:
可复用,支持回归测试
必须创建新类,关注被测试类的变化
8.增量式集成和非增量式集成的概念和举例。
非增量式测试:
就是分别对系统中每个模块进行单元测试,然后将所有模块按照层次结构组装到一起进行测试,最终得到所要求的软件。
例如:
增量式集成(或组装):
先对一个个模块进行模块测试,然后在组装过程中边连接边测试,以发现连接过程中产生的问题。
自顶向下集成和自底向上集成
9.制定集成测试计划时间,一般安排在概要设计评审通过后大约一个星期的时候
一、计划阶段
制定集成测试计划时间:
一般安排在概要设计评审通过后大约一个星期的时候,参考需求规格说明书、概要设计文档、产品开发计划时间表来制定。
二、设计阶段
制定集成测试设计时间:
一般在详细设计开始时,就可以着手进行。
可以把需要规格说明书、概要设计、集成测试计划文档作为参考依据。
10.列举出图中三个模块,写出全部模块执行路径,最后给出其MM路径(书162页)
1.源节点:
程序中的源节点是指程序执行开始或重新开始处的语句片断。
A:
1,5节点B:
1,3节点C:
1节点
2.汇节点:
汇节点是程序执行结束处的语句片断。
这里转移控制到其它单元的节点也是汇节点。
A:
4,6节点B:
2,4节点C:
5节点
3.模块执行路径
模块执行路径是以源节点开始、以汇节点结束的一系列语句,中间没有插入汇节点。
在图4-12中有七条模块执行路径:
图4-12跨三个单元的MM-路径
模块执行路径如下:
MEP(A,1)=〈1,2,3,6〉
MEP(A,2)=〈1,2,4〉
MEP(A,3)=〈5,6〉
MEP(B,1)=〈1,2〉
MEP(B,2)=〈3,4〉
MEP(C,1)=〈1,2,4,5〉
MEP(C,1)=〈1,3,4,5〉
4.消息
消息是一种程序设计语言机制,通过这种机制可以把控制从一个单元转移到另一个单元。
5.MM-路径(MethodMessagePath)是穿插出现模块执行路径和消息的序列。
如图4-12中的粗线所示,代表模块A调用模块B,模块B调用模块C,这就是一个MM-路径,可用图4-13表示。
对于传统软件来说,MM-路径永远是从主程序开始,在主程序中结束。
MM-路径如下:
11.设一个控制图如下,请给出其环路复杂度和基本路径。
环路复杂度:
5
基本路径:
路径1:
1—2—3—5—6—12—13—15
路径2:
1—2—4—5—6—12—13—15
路径3:
1—2—3—5—7—8—13—15
路径4:
1—2—4—5—7—8—13—15
路径5:
1—2—3—5—7—9—10—14—13—15
路径6:
1—2—4—5—7—9—10—14—13—15
路径7:
1—2—3—5—7—9—11—14—13—15
路径8:
1—2—4—5—7—9—11—14—13—15
12.软件测试活动的生命周期
测试周期分为计划、设计、实现、执行、总结。
其中:
计划:
对整个测试周期中所有活动进行规划,估计工作量、风险,安排人力物力资源,安排进度等;
设计:
完成测试方案,从技术层面上对测试进行规划;
实现:
进行测试用例和测试规程设计;
执行:
根据前期完成的计划、方案、用例、规程等文档,执行测试用例。
总结:
记录测试结果,进行测试分析,完成测试报告。
13.三明治集成方法
1.确定以哪一层为界来决定使用三明治集成策略(在4-7中,我们确定以B模块为界);
2.对模块B及其所在层下面的各层使用自底向上的集成策略;
3.对模块B所在层上面的层次使用自顶向下的集成策略;
4.把模块B所在层各模块同相应的下层集成;
5.对系统进行整体测试。
14.集成测试可看着是体系结构分析工作基础之上的细化。
可从哪几个角度进行模快分析。
1)确定本次要测试的模块;
2)找出与该模块相关的所有模块,并且按优先级对这些模块进行排列;
3)从优先级别最高的相关模块开始,把被测模块与其集成到一起;
4)然后依次集成其他模块。
三、性能测试需要注意的问题
∙性能测试即测试软件处理事务的速度,一是为了检验性能是否符合需求,二是为了得到某些性能数据供人们参考(例如用于宣传)。
∙有时人们关心测试的“绝对值”,如数据送输速率是每秒多少比特。
有时人们关心测试的“相对值”,如某个软件比另一个软件快多少倍。
∙在获取测试的“绝对值”时,我们要充分考虑并记录运行环境对测试的影响。
例如网络环境、计算机主频,总线结构和外部设备都可能影响软件的运行速度。
∙性能测试的一些注意事项:
–不要试图让人拿着钟表去测时间,应当编写一段程序用于计算时间以及相关数据。
–应当测试软件在标准配置和最低配置下的性能。
–为了排除干扰,应当关闭那些消耗内存、占用CPU的其它应用软件(如杀毒软件)。
–不同的输入情况会得到不同的性能数据,应当分档记录。
例如传输文件的容量从100K到1M可以分成若干等级。
–由于环境的波动,同一种输入情况在不同的时间可能得到不同的性能数据,可以取其平均值。
四、健壮性测试是什么?
目的是什么?
健壮性是指在异常情况下,软件还能正常运行的能力。
健壮性有两层含义:
一是容错能力,二是恢复能力。
容错性测试通常构造一些不合理的输入来引诱软件出错,例如:
(1)输入错误的数据类型。
如“猴”年“马”月。
(2)输入定义域之外的数值。
如上海人常说的“十三点”
粗暴一些方式俗称“大猩猩”测试法。
除了不能拳打脚踢嘴咬外,什么招术都可以使出来。
例如在测试客户机-服务器模式的软件时,把网络线拔掉,造成通信异常中断。
恢复测试重点考察一下几项:
(1)系统能否重新运行;
(2)有无重要的数据丢失;
(3)是否毁坏了其它相关的软件硬件。
五、接口与路径测试都包括哪些内容?
∙数据一般通过接口输入和输出,所以接口测试是白盒测试的第一步。
每个接口可能有多个输入参数,每个参数有“典型值”、“边界值”、“异常值”之分,所以输入的组合数可能并不少。
根据接口的定义,可以推断某种输入应当产生什么样的输出。
输出包括函数的返回值和输出参数。
如果实际输出与期望的输出不一致,那么说明程序有错误。
白盒方式的接口测试和黑盒方式的功能测试,其方法十分相似。
∙一个函数体内的语句可能只有十几条,但逻辑路径可能有成千上万条。
想遍历测试几乎是不可能的,不测试或者胡乱找几条路径测试却又不行。
∙对于非严格系统而言,在分析路径方面化费很多精力是不值得的。
我认为在构造接口测试的同时已经建立了测试路径。
因为每一种输入将产生唯一的输出,输入与输出之间的路径也是唯一的。
由于接口测试中的输入是有代表性的,因此相应的路径也具有代表性,不用得着费煞苦心地去找测试路径。
∙路径测试的检查表
∙数据类型、变量值、逻辑判断、循环、内存管理、文件I/O、错误处理
∙由于接口测试是枚举的,有可能漏掉某些状况,导致一些重要的路径没有被测试。
预防措施有:
∙观察是否有程序语句从来没有被执行过。
如果发生在这种情况,要么是程序有错误,存在无用的代码;
要么是接口测试不充分,漏掉了一些路径。
∙要特别留意函数体内的错误处理程序块(如果存在的话),这是最易被人疏忽的路径,隐患最多。
六、有了“黑盒”测试,为什么还要白盒测试呢?
黑盒测试只能观察软件的外部表现,即使软件的输入输出都是正确的,却并不能说明软件就是正确的。
因为程序有可能用错误的运算方式得出正确的结果,例如“负负得正,错错得对”,只有白盒测试才能发现真正的原因。
–白盒测试能发现程序里的隐患,象内存泄漏、误差累计问题。
在这方面,黑盒测试存在严重的不足。
七、alpha测试和beta测试的区别
定义:
alpha测试是在用户组织模拟软件系统的运行环境下的一种验收测试,由用户或第三方测试公司进行的测试,模拟各类用户行为对即将面市的软件产品进行测试,试图发现并修改错误。
Beta测试是用户公司组织各方面的典型终端用户在日常工作中实际使用beta版本,并要求用户报告异常情况,提出批评意见。
区别:
两者的主要区别是测试的场所不同。
Alpha测试是指把用户请到开发方的场所来测试,beta测试是指在一个或多个用户的场所进行的测试。
Alpha测试的环境是受开发方控制的,用户的数量相对比较少,时间比较集中。
而beta测试的环境是不受开发方控制的,谁也不知道用户如何折磨软件,用户数量相对比较多,时间不集中。
一般地,alpha测试先于beta测试执行。
通用的软件产品需要较大规模的beta测试,测试周期比较长。
如果产品通过了beta测试,那么就可以正式发行了。
八、回归测试的概念及过程
回归测试:
是指软件系统被修改或扩充(如系统功能增强或升级)后重新进行的测试,是为了保证对软件所做的修改没有引入新的错误而重新进行的测试。
回归测试过程:
识别出软件中被修改的部分
从原基线测试用例库T中,排除所有不再适用的测试用例,确定对新版本依然有效的测试用例,建立新的基线测试用例库TN
依据一定的策略从TN中选择测试用例测试被修改的软件
如果必要,生成新的测试用例集T1,用于测试TN无法充分测试的软件部分
用T1执行修改后的软件
第2和第3步测试验证修改是否破坏了现有的功能,第4和第5步测试验证修改工作本身
回归测试的一些观念:
回归测试是指重复以前的全部或部分的相同测试。
新加入测试的模组,可能对其他模组产生副作用,故须进行某些程度的回归测试。
回归测试的重心,以关键性模组为核心。
九、系统验收测试的内容
1)系统验收测试是在在系统测试完成后,项目最终交付前进行。
2)系统验收测试不是对系统的全面覆盖,而是针对用户的核心业务流程进行测试。
3)验收测试的执行人员不是开发方的测试组成员,是由用户方的使用人员完成。
4)验收可以由第三方专业化全覆盖型技术测试团队测试。
十、系统测试的定义及内涵
系统测试定义:
系统测试是将通过集成测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际或者模拟运行(使用)环境下,对计算机系统进行一系列测试。
系统测试包含:
功能测试、性能测试、压力测试、容量测试、安全性测试、GUI测试、可用性测试(也叫易用性测试)、安装测试、配置测试、异常测试,备份测试、健壮性测试、文档测试、在线帮助测试、网络测试、稳定性测试。
十一、测试人员在软件开发过程中的任务?
软件测试目的
1、测试的最终目的是为了避免错误的发生,确保应用程序能够正常高效的运行;
2、好的测试用例在于发现至今未发现的错误;
3、成功的测试是发现了至今未发现的错误的测试;
4、好的测试工程师应该做到不仅发现问题,还能够帮助开发人员分析问题;
测试人员在软件开发过程中的任务:
1、尽可能早的找出系统中的Bug;
2、避免软件开发过程中缺陷的出现;
3、衡量软件的品质,保证系统的质量;
4、关注用户的需求,并保证系统符合用户需求。
软件测试的原则:
1、应把“尽早和不断地进行软件测试”作为软件开发者的座右铭,实践证明单元测试能够尽早发现问题,减少后期测试的错误量。
2、测试用例应由测试输入数据、测试执行步骤和与之对应的预期输出结果三部分组成。
3、应当避免由程序员检查自己的程序。
(指后期系统测试阶段,不包括单元测试)
4、测试用例的设计要确保能覆盖所有可能路径。
在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。
不合理的输入条件是指异常的,临界的,可能引