下面几种白盒测试技术,哪种是最强的覆盖准则()。
D:条件组合覆盖
六种覆盖方法中,覆盖准则由弱到强依次是语句覆盖、判定覆盖(分支覆盖)、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。
其中,
语句覆盖是使得程序中每个语句至少被执行一次;
判定覆盖是使得程序中的每个分支至少都通过一次;
条件覆盖是使得判定中的每个条件获得各种可能的结果;
判定/条件覆盖是使得判定中的每个条件取到各种可能的值,并使每个判定取到各种可能的结果;
条件组合覆盖是使得每个判定中条件的各种可能组合都至少出现一次;
参考链接:
白盒测试用例设计方法(语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖、路径覆盖、基本路径覆盖)
单元测试
单元测试能发现约80%的软件缺陷。请判断这句话的正确与否。
是对的
。
单元测试(unit testing):是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,
一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。
总的来说,单元就是人为规定的最小的被测功能模块。
单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。
这是软件工程长期的历史数据统计和测试经验总结得来的。
当然要发现这80%的缺陷也是要依靠设计出良好的测试用例。
另外顺便提下,软件测试行业有个二八原则,就是软件80%的缺陷存在与20%的代码中。
用于判断“新引入的变化没有给现有软件造成破坏”的测试方法是___。
D:回归测试
产品修正了bug或增加了功能,生成新的版本,对这个版本进行测试,就叫做回归测试。
保证变化没有对产品原有功能造成破坏,最可靠的方式是对产品进行全面的测试。还有一个方法是只对修改部分的相关部分进行测试,这是一种折中的方法,因为进度、成本的原因,这也是经常被采用的方法,这个方法有一定的风险,因为准确的确定产品修改部分的相关部分往往很有难度,范围不好确定。具体采用哪种回归方式,要由这个产品的质量要求、人力资源、时间进度等因素来决定。
α测试:是由一个用户在开发环境下进行的测试。
β测试:是由软件的多个用户在一个或多个用户的实际使用环境下进行的测试。
封测,内测,公测
在游戏或软件开发完成的初期,由游戏公司或软件公司发送限定的激活码或账号给玩家,由玩家测试并向游戏公司反馈使用情况和存在的问题,以促进游戏的进一步完善的环节称为()
B:内测
公测:公开测试。其实就是向广大玩家完全公开,注册的账号数量没有限制,到了公测阶段一般来讲初期是免费的,之后随着玩家数量的多少,游戏运营商会在一定时间之后对游戏开始收费。当然,永久免费的游戏除外。
内测:内部测试。经历了封测后,游戏进一步完善。发布出来,让大众玩家可以注册试玩,通过玩家玩后的反应和建议,进一步将游戏的BUG、设置、职业能力等等进行修订。 有的游戏的内测的账号是有限的,比较难注册。一般的游戏内测结束后就把玩家的游戏角色删掉,有的则保留或保留一部分。内测的游戏是免费的。
封测:封闭测试。其版本实为未成熟的,有很多的BUG。在里面玩和正常没分别。就是禁止用户注册,只提供了一些账号分给玩家试玩,如果发现BUG了就一定要告诉官方网站,官方才能进行补丁。
封测只有技术人员针对技术方面进行测试;
内测的参与人员大部分是游戏制作人员,运营***商和与制作及运营游戏的商家,及一部分普通玩家,普通玩家的账号需要特殊申请或者邀请,而且不保存id等数据;
公测游戏处于免费阶段 一般人都可以玩 帐号不限量,公测一般不删号;公测完后就要收费正式运营了。
内侧是开发人员与用户、测试人员一起进行的,而公测是仅有用户参与的
测试的关键问题是()
D:如何选择测试用例
黑盒测试的测试方法
最常见的是
边界值、等价类、错误推测法、场景法、因果图法、判定表组成法、正交实验设计
因果图法:
等价类划分法和边界值分析方法都是着重考虑输入条件,如果程序输入之间没有什么联系,采用等价类划分和边界值分析是一种比较有效的方法。
如果输入之间有关系,例如,约束关系、组合关系,这种关系用等价类划分和边界值分析是很难描述的,测试效果难以保障,因此必须考虑使用一种适合于描述对于多种条件的组合,产生多个相应动作的测试方法,因果图正是在此背景下提出的。因果图法着重测试规格说明中的输入与输出间的依赖关系。
在一个软件测试用例中,有一个字符串数据,若首字符必须是C和D,其余字符必须是0-9的数字,在此情况下是正确的,若首字符不正确,则输出message1,若其余字符不正确,则输出message2。这种情况下最好采用( )
C:因果图
一. 方法简介
1.定义:是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。
2.因果图法产生的背景:
等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。
如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字,因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,这就需要利用因果图(逻辑模型)。
自底向上集成需要测试员编写驱动程序。
这句话是正确的
驱动模块和桩模块的概念和区别
假设现在项目组把任务分给了7个人,每个人负责实现一个模块。你负责的是B模块,你很优秀,第一个完成了编码工作,现在需要开展单元测试工作,先分析结构图:
1、由于B模块不是最顶层模块,所以它一定不包含main函数(A模块包含main函数),也就不能独立运行。
2、B模块调用了D模块和E模块,而目前D模块和E模块都还没有开发好,那么想让B模块通过编译器的编译也是不可能的。
那么怎样才能测试B模块呢?需要做:
1、写两个模块Sd和Se分别代替D模块和E模块(函数名、返回值、传递的参数相同),这样B模块就可以通过编译了。Sd模块和Se模块就是桩模块。
2、写一个模块Da用来代替A模块,里面包含main函数,可以在main函数中调用B模块,让B模块运行起来。Da模块就是驱动模块。
知识点:
桩模块的使命除了使得程序能够编译通过之外,还需要模拟返回被代替的模块的各种可能返回值(什么时候返回什么值需要根据测试用例的情况来决定)。
驱动模块的使命就是根据测试用例的设计去调用被测试模块,并且判断被测试模块的返回值是否与测试用例的预期结果相符
无效等价类
无效等价类是指对于软件规格说明而言,是没有意义的、不合理的输入数据集合。
利用无效等价类可以找出程序异常说明情况,检查程序的功能和性能的实现是否有不符合规格说明要求的地方。
有效等价类是指输入数据完全满足程序输入的规格说明,是有效、有意义的输入数据所构成的集合。
利用有效等价类可以检验程序是否满足规格说明所规定的功能和性能。
下列哪些不是自顶向下增量式集成测试特点( )
答案:B
A:需要开发桩模块
B:需要开发驱动模块
C:模块集成时首先集成主控模块B
D:能及时发现设计上的错误
自顶向下测试:是从程序的初始模块开始测试。
(1)该方***在早期发现顶层的错误。
(2)早期的程序框架可以进行演示
(3)需要开发桩模块辅助测试。有些甚至需要多个桩模块辅助,加大了桩模块本来的错误影响。
(4)测试完一个上层模块后,挑选哪个模块作为下一个测试模块,以及测试的顺序没有唯一的界定标准。
优点:较早地验证了主要控制和判断点;按深度优先可以首先实现和验证一个完整的软件功能;功能较早证实,带来信心;只需一个驱动,减少驱动器开发的费用;支持故障隔离。
缺点:柱的开发量大;底层验证被推迟;底层组件测试不充分。
自底向上测试:是从程序的底层模块开始测试。
(1)I/O操作可以提前测试,更好提交测试用例。
(2)测试后比较容易观察输出。
(3)需要开发驱动模块。
(4)直到最后一个模块提交,程序才能完整的系统测试。
优点:对底层组件行为较早验证;工作最初可以并行集成,比自顶向下效率高;减少了桩的工作量;支持故障隔离。
缺点:驱动的开发工作量大;对高层的验证被推迟,设计上的错误不能被及时发现。
标题大于、小于、等于、不等于、真、假比较和判断错误很可能是边界条件问题,比较判断与控制流常常紧密相关,设计测试用例时考虑是否出现问题不包括( )
B:正确使用逻辑运算符和优先级
比较判断与控制流常常紧密相关,测试时注意下列错误:
1. 不同数据类型的对象之间进行比较;
2. 错误地使用逻辑运算符或优先级;
3. 因计算机表示的局限性,期望理论上相等而实际上不相等的两个量相等;
4. 比较运算或变量出错;
5. 循环终止条件或不可能出现;
6. 迭代发散时不能退出;
7. 错误地修改了循环变量。
软件验收测试
软件验收测试包括哪些?
答案:ACD
A:正式验收测试
B:白盒测试
C:alpha测试
D:beta测试
软件验收测试分为三类:
正式验收测试;
非正式验收测试其中包括α测试(由用户、测试人员、开发人员共同参与的内部测试。)和β测试(内测后的公测,即完全交给最终用户测试。)
单元测试、确认测试、系统测试、集成测试
系统测试是基于软件需求说明书的黑盒测试,是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等满足其规约所指定的要求,检查软件的行为和输出是否正确。
集成测试的主要目的是检查软件单位之间的接口是否正确,主要是针对程序内部结构进行测试,特别是对程序之间的接口进行测试。
单元测试:各个模块单独测试
确认测试:确认软件需求是否都达成的测试
系统测试:软件系统测试
集成测试:程序接口测试
测试设计员的职责有哪些?
答案:BC
A:制定测试计划
B:设计测试用例
C:设计测试过程、脚本
D:评估测试活动
解释:制定测试计划应是测试经理来做的,评估测试活动测试经理组织召集开发和测试的相关人员来做。
制定测试计划是测试经理来做的;评估测试活动是测试经理组织开发人员来进行的。
白盒和黑盒的测试方法
黑盒测试方法:因果图、错误推测、边界值分析、等价类划分。
白盒测试法主要有逻辑覆盖、基本路径测试等。逻辑覆盖测试包括语句覆盖、路径覆盖、判定覆盖、条件覆盖、判断—条件覆盖。
黑盒测试在设计测试用例时,主要需要研究( )。
B:需求规格说明与概要设计说明
需求分析对应验收测试
需求规格说明对应系统测试
概要设计对应集成测试
详细设计对应单元测试
黑盒测试:源代码对测试人员不可见。主要对产品的功能性进行测试
测试驱动开发的简称是()
C:TDD
TDD:Test Driven Development
压力测试和强度测试
侧重于观察资源耗尽情况下的软件表现的系统测试称为?
B:压力测试
在测试计划阶段需要根据( )完成测试进度的制定
A:SOW
SOW:statement of work,工作任务说明书
HLD: High Level Design,概要设计说明书
LLD: Low Level Design,详细设计说明书
UTC: Unit Testing Cases,单元测试用例
单元测试-详细设计 集成测试-概要设计 确认测试,系统测试-需求文档 验收测试-用户需求
确认测试和系统测试
1、确认测试的目的是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是确认测试的任务,即软件的功能和性能如同用户所合理期待的那样。
2、系统测试是将经过集成测试的软件,作为系统计算机的一个部分,与系统中其他部分结合起来,在实际运行环境下对计算机系统进行的一系列严格有效地测试,以发现软件潜在的问题,保证系统的正常运行。
可以这样认为,这2个测试重点与方向不一样,因此没有明确的哪个在前哪个在后的说法,具体实施要看既定的测试策略。
测试工程师小刘在对某软件项目进行疲劳强度测试过程中,最先发现以下哪些问题( )。
B:内存泄漏
性能测试中的疲劳强度测试。
疲劳强度测试:
通常是采用系统稳定运行情况下能够支持的最大并发用户数或者日常运行用户数,持续执行一段时间业务,通过综合分析交易执行指标和资源监控指标来确定系统处理最大工作量强度性能的过程。
因为疲劳强度测试强调持续执行一段时间业务,故对于软件系统来讲,最容易暴露的性能故障是内存泄漏,以及内存是否不足。
下图用基本路径法测试需要覆盖几条路径?( )
B:4
可以通过计算谓词节点来做,公式为 基本路径=谓词节点+1 ;
谓词节点是指程序中的条件语句,该题中依次有while,if,if三个条件语句,故有四条基本路径。
接口测试是集成测试的内容。
系统测试:安全,性能,压力,功能。
软件测试主要包括单元测试、集成测试、系统测试、确认测试
可能的测试有恢复测试、压力测试、回归测试、验收测试
下面不属于软件测试步骤的是
B:回归测试
如果某测试用例集实现了某软件的路径覆盖,那么它一定同时实现了该软件的
D:判定覆盖
解释:
路径覆盖一定包含判定覆盖,与条件并没有直接关系;
判定条件覆盖一定包含判定覆盖和条件覆盖 ;
条件覆盖与判定覆盖并不等同并且没有直接的关系,只是关注点不同,一个关注判定分支,一个关注条件的真假。
判定条件唯一时(如if (a) {}),可以认为两者是相同的。
以下对桩(stub)函数的描述正确的是?
B:在单元测试中被其它模块调用
C:在自顶向下的集成过程中尤其有效
哪种测试模型把测试过程作为需求分析、概要设计、详细设计及编码之后的阶段( )
A:V模型
A——V模型把测试作为软件开发的一个阶段,在编码之后才进行测试
参考链接:
软件测试入门——测试模型(V型 W型 H型)
黑盒测试在设计测试用例时,主要需要研究( )。
B:需求规格说明与概要设计说明
集成测试与系统测试会使用到黑盒测试。集成测试是根据概要设计说明,系统测试是根据需求涉及说明。
需求分析对应验收测试 需求规格说明对应系统测试 概要设计对应集成测试 详细设计对应单元测试 黑盒测试:源代码对测试人员不可见。主要对产品的功能性进行测试
单元测试能发现约80%的软件缺陷。请判断这句话的正确与否。
是正确的
这是软件工程长期的历史数据统计和测试经验总结得来的。当然要发现这80%的缺陷也是要依靠设计出良好的测试用例。
另外顺便提下,软件测试行业有个二八原则,就是软件80%的缺陷存在与20%的代码中。
单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含。
一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。
总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。
软件测试类型按开发阶段划分是?
(1)单元测试:
单元测试又称为模块测试,是针对软件设计的最小单位程序模块进行正确性检查的测试工作,单元测试需要从程序内部结构出发设计测试用例,多个模块可以平行地独立进行单元测试。
(2)集成测试
又称为组装测试或联合测试,在单元测试的基础上,需要将所有模块按照概要设计说明书和详细设计说明书的要求进行组装。
(3)确认测试
确认测试的目标是验证软件的功能和性能以及其他特性是否与用户的要求一致。确认测试一般包括有效性测试和软件配置复查。一般有第三方测试机构进行。
(4)系统测试
软件作为计算机系统的一部分,与硬件、网络、外设、支撑软件、数据以及人员结合在一起,在实际或模拟环境下,对计算机系统进行测试,
目的在于与系统需求比较,发现问题
(5)验收测试
以用户为主的测试,软件开发人员和质量保证人员参加,由用户设计测试用例。
不是对系统进行全覆盖测试,而是对核心业务流程进行测试。
所以软件测试类型按开发阶段分为单元测试,集成测试,确认测试,系统测试,验收测试。
在软件测试中,圈复杂度(Cyclomatic complexity):代码逻辑复杂度的度量,提供了被测代码的路径数量。圈复杂度可通过系统控制流图的判断节点数目算出。
某人事管理系统能管理员工的基本信息、家庭信息、学历信息、职称信息等。其中,家庭信息管理模块导出的控制流图中包含9个判断节点,那么,该模块的圈复杂度为__________
C:10
基本路径通过程序中的条件语句来看,基本路径=谓词结点+1
基本路径V(G)
1、V(G)=P+1 (P是判定节点)
2、V(G)=D (D是区域数)
3、V(G)=E-N+2(E是边的条数,N是节点数)
使用语句覆盖对下列代码进行测试用例设计时,需要设计( )个测试用例
public static void Test(int a, int b, int c)
{
if ((a > 1) && (c == 0))
b = b / a;
if ((a == 1) && (b > 1))
b = b + 1;
}
B:2
注意审题, 是使用语句覆盖.
语句覆盖:选择足够的测试用例,使程序中的每条语句至少执行一次。所谓足够的指的是越少越好
由于a>1和a==1不可能同时成立,因此两个执行语句无法通过一组取值而同时执行,因此,需要两次。
白盒测试的语句覆盖:测试代码的每个可执行语句是否被执行到了
介绍一下非增量式集成测试和增量式集成测试?
对手机软件的压力测试通常可以包括【多选】( )
答案:ABC
A:存储压力
B:响应能力压力
C:网络流量压力
D:并发压力
并发压力是针对服务器的,因为每次并发是一个客户端
研发需要对自己的代码审核, 检查代码的正确性,这个过程我们成为?()
C:代码走查
代码走查:只检查代码中是否有错误。
单元测试:是指对软件中的最小可测试单元进行检查和验证。
某网站系统性能需求中要求“系统可以连续稳定运行 12 小时”,若系统连续运行 12 小时完成的总业务量为1000笔,系统能够提供的最大交易执行吞吐量为200笔/小时,试设计测试周期可以缩短为( )
B:5小时
本题是性能测试中的疲劳强度测试,通过增加短时间的交易量,而缩短测试时间来达到既定的测试目标,故此需要在尽可能短的时间内完成规定的所有的交易量;即:需要在尽可能短的时间内完成1000笔交易量。
而本题中系统的最大并发数/吞吐量为200笔/小时,那么最少需要的时间为:1000/200=5小时
单元测试,详细设计文档
集成测试,概括设计文档
系统测试,系统设计文档
下述( )不属于单元测试
答案:A
A:全局数据结构是否有问题
B:逻辑覆盖、循环覆盖
C:代码评审、代码走查
D:静态数据流分析
单元测试的策略:
逻辑覆盖、
循环覆盖、
同行评审、
桌前检查、
代码走查、
代码评审、
景泰数据流分析
黑盒测试技术 ,使用最广的用例设计技术是 ( )
答案A:等值分析测试
等值分析测试=等价类划分+边界值分析测试
项目立项前测试人员不需要提交任何工件。请判断这句话的正确与否。
这句话是正确的
工件是加工过程中的生产对象。项目立项前,测试人员是不需要提供任何工件的。
白盒测试是基于代码的测试,通过程序代码或者通过开发工具找出软件的缺陷。白盒测试总体上分为两大类为( )
答案BC
B:静态方法
C:动态方法
白盒测试的方法:总体上分为静态方法和动态方法两大类。
静态分析是一种不通过执行程序而进行测试的技术。静态分析的关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义。
动态分析的主要特点是当软件系统在模拟的或真实的环境中执行之前、之中和之后 , 对软件系统行为的分析。
动态分析包含了程序在受控的环境下使用特定的期望结果进行正式的运行。它显示了一个系统在检查状态下是正确还是不正确。
在动态分析技术中,最重要的技术是路径和分支测试。
下面哪些属于静态分析()
答案:ABC
A:编码规则检查
B:程序结构分析
C:程序复杂度分析
D:内存泄漏
动态分析:运行软件代码之后
静态分析:运行软件代码之前
内存泄漏是一个动态的过程
静态分析不涉及被测软件的动态执行,并且可以在运行程序之前的早期阶段检测可能的缺陷。内存泄漏是在程序运行之后才能得出来。所以D错误。
静态分析可以由机器完成,以自动“遍历”源代码并检测不合规规则。经典的例子是一个编译器,它可以找到词汇,句法甚至一些语义错误。静态分析也可以由审查代码的人执行,以确保使用正确的编码标准和约定来构建程序。这通常称为代码审查,由同行开发人员(编写代码的开发人员以外的人)完成。所以A正确。
当开发人员分析代码时,分析代码行、适当的嵌套、函数调用次数、循环复杂性……所以B、C正确。
小李测试一款新开发的手机APP应用界面,那么,属于界面元素测试内容的是:( )
答案:ABC
A:文字测试
B:菜单测试
C:窗口测试
D:功能点测试
界面元素测试包括:窗口测试、菜单测试、图标测试、文字测试、鼠标测试
功能点是属于性能方面的测试
从测试技术角度,正确的选择是(),给出各自的含义?
答案:黑盒测试、白盒测试
测试技术的角度应该偏重的是测试过程,对软件运行结果(动态)和运行原理(静态)都应了如指掌。
而黑盒、白盒偏重的是结果多一点,黑盒是整个系统的功能结果,白盒诸如单元测试分布式结构的功能结果。
静态测试:静态测试是指不运行被测程序本身,通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。
静态测试主要包括各阶段的评审、代码检查、程序分析、软件质量度量等,用于对被测程序进行特性分析。
动态测试:通过运行被测程序来检查运行结果与预期结果的差异,并分析运行效率和健壮性等指标;
这种方法包括三部分:构造测试用例、执行程序、分析程序的输出结果。
黑盒测试:(也称功能测试)是基于规格说明(需求文档)的测试。
测试人员不考虑/不关心软件内部结构,只关心程序的功能是否符合他的功能说明。
白盒测试:(也称结构测试或逻辑驱动测试)基于设计文档(结构)的测试。
关注软件内部结构和程序的设计实现。
按照是否执行被测程序代码分为静态测试与动态测试。
按照测试技术分为黑盒和白盒测试。
设计系统测试计划需要参考的项目文挡有哪些?
软件测试计划
可行性研究报告
软件需求规范
迭代计划