2019-09-12——软件测试——牛客网
测试阶段
单元测试
单元测试的策略:
逻辑覆盖
循环覆盖
同行评审
桌前检查
代码走查
代码评审
景泰数据流分析
集成测试
系统测试
系统测试是指将通过集成测试的软件系统,作为计算机系统的一个重要组成部分,与计算机硬件、外设、某些支撑软件的系统等其他系统元素组合在一起所进行的测试,目的在于通过与系统的需求定义作比较,发现软件与系统定义不符合或矛盾的地方。
系统测试是对整个软件系统进行一系列的整体,有效性测试,测试依据软件需求说明书等,采用黑盒测试方法。
负载测试:
在一定的工作负荷下,系统的负荷及响应时间。
强度测试:
在一定的负荷条件下,在较长时间跨度内的系统连续运行给系统性能所造成的影响。
容量测试:
容量测试目的是通过测试预先分析出反映软件系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),系统在其极限值状态下没有出现任何软件故障或还能保持主要功能正常运行。容量测试还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。容量测试的目的是使系统承受超额的数据容量来发现它是否能够正确处理。
容量测试是面向数据的,并且它的目的是显示系统可以处理目标内确定的数据容量。
验收测试
黑盒测试
黑盒测试是指在没有软件源代码情况下,根据形式化或非形式化的需求文档来设计测试。
黑盒测试主要的方法有:等价类划分法、边界值分析法、错误推测法、因果图法、决策表法、场景法等。
白盒测试的主要方法有:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖等。
黑盒测试技术中,使用最广的用例设计技术是:等值分析测试
等值分析测试 = 等价类划分 + 边界值分析测试
白盒测试
因为白盒测试的方法主要有接口测试、路径测试,又因为在单元测试和继承测试中用到了白盒测试方法,所以在单元测试和集成测试中涉及到路径测试。
六种覆盖方法中,覆盖准则由弱到强依次是:
语句覆盖、判定覆盖(分支覆盖)、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。
image.png
语句覆盖SC
设计若干个测试用例,运行被测程序,使得程序中每一可执行语句至少执行一次。这里的“若干个”,意味着使用测试用例越少越好。
语句覆盖在测试中主要发现缺陷或错误语句。
判定覆盖
是使得程序中的每个分支至少都通过一次;
条件覆盖CC
设计足够多的测试用例,运行被测程序,使得每一判定语句中每个逻辑条件的可能取值至少满足一次。
条件覆盖率的公式:
条件覆盖率=被评价到的条件取值的数量/条件取值的总数X100%[1]
判定/条件覆盖CDC
设计足够多的测试用例,使得判定中的每个条件的所有可能(真****/****假)至少出现一次,并且每个判定本身的判定结果也至少出现一次。
判定条件覆盖率的公式:
条件判定覆盖率=被评价到的条件取值和判定分支的数量/(条件取值总数+判定分支总数)
判定条件覆盖的缺点:没有考虑单个判定对整体结果的影响,无法发现逻辑错误。
条件组合覆盖MCC
设计足够多的测试用例,使得每个判定中条件的各种可能组合都至少出现一次(以数轴形式划分区域,提取交集,建立最少的测试用例)。
这种方法包含了“分支覆盖”和“条件覆盖”的各种要求。
满足条件组合覆盖一定满足判定覆盖、条件覆盖、判定条件覆盖。
条件组合覆盖率的公式:条件组合覆盖率=被评价到的条件取值组合的数量/条件取值组合的总数条件组合覆盖的缺点:判定语句较多时,条件组合值比较多。
路径覆盖
总结:
1.语句覆盖每条语句至少执行一次。
2.判定覆盖每个判定的每个分支至少执行一次。
3.条件覆盖每个判定的每个条件应取到各种可能的值。
4.判定/条件覆盖同时满足判定覆盖条件覆盖。
5.条件组合覆盖每个判定中各条件的每一种组合至少出现一次。
6.路径覆盖使程序中每一条可能的路径至少执行一次。
其他
测试驱动开发的简称是(TDD Test Driven Development)
自底向上测试是从“原子”模块(即软件结构最低层的模块)开始组装测试,因测试到较高层模块时,所需的下层模块功能均已具备,所以不再需要桩模块。
自底向上集成方法不用桩模块,测试用例的设计亦相对简单,但缺点是程序最后一个模块加入时才具有整体形象,
游戏测试
在游戏或软件开发完成的初期,由游戏公司或软件公司发送限定的激活码或账号给玩家,由玩家测试并向游戏公司反馈使用情况和存在的问题,以促进游戏的进一步完善的环节称为(内测)
公测:公开测试。其实就是向广大玩家完全公开,注册的账号数量没有限制,到了公测阶段一般来讲初期是免费的,之后随着玩家数量的多少,游戏运营商会在一定时间之后对游戏开始收费。当然,永久免费的游戏除外。
内测:内部测试。经历了封测后,游戏进一步完善。发布出来,让大众玩家可以注册试玩,通过玩家玩后的反应和建议,进一步将游戏的BUG、设置、职业能力等等进行修订。
有的游戏的内测的账号是有限的,比较难注册。一般的游戏内测结束后就把玩家的游戏角色删掉,有的则保留或保留一部分。内测的游戏是免费的。
封测:封闭测试。其版本实为未成熟的,有很多的BUG。在里面玩和正常没分别。就是禁止用户注册,只提供了一些账号分给玩家试玩,如果发现BUG了就一定要告诉官方网站,官方才能进行补丁。 摘自百度知道:
风险暴露
(单选题) 风险暴露又称风险曝光度,测量的是资产的整个安全性风险。某公司软件团队计划项目中采用20个可复用的构件,每个构件平均是100LOC( Line of Code,源代码行数),本地每个LOC的成本是150元人民币。下面是该团队定义的一个项目风险: 1.风险识别:预定要复用的软件构件中只有50%将被集成到应用中,剩余功能必须定制开发; 2.风险概率:60%; 该项目风险的风险曝光度正确的是:(90 000)
风险曝光度等于风险发生的概率乘以风险发生时带来的项目成本:
(20100150)(1-0.5)0.6 = 90000
测试用例
测试用例( Test Case )是为测试设计的数据,由测试输入数据和与之对应的预期输出结构两部分组成
测试用例的八大要素:用例编号、测试项目、测试标题、重要级别、预置条件、测试输入、测试步骤、预期结果。
测试粒度
根据不同的测试阶段,测试可以分为单元测试、集成测试、系统测试和验收测试。
体现了测试由小到大、又内至外、循序渐进的测试过程和分而治之的思想。
单元测试的粒度最小,一般由开发小组采用白盒方式来测试,主要测试单元是否符合“设计”。
集成测试界于单元测试和系统测试之间,起到“桥梁作用”,一般由开发小组采用白盒加黑盒的方式来测试,既验证“设计”,又验证“需求”。
系统测试的粒度较大,一般由独立测试小组采用黑盒 方式来测试,主要测试系统是否符合“需求规格说明书”。
验收测试与系统测试相似,主要区别是测试人员不同,验收测试由用户执行。粒度最大
选择题
下面有关白盒测试和黑盒测试说法错误的有?C,D
A. 白盒测试也称结构测试或逻辑驱动测试,是指基于一个应用代码的内部逻辑知识,即基于覆盖全部代码、分支、路径、条件的测试。
B. 黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用。
C. 黑盒测试,也称作黑盒分析,是基于对程序内部细节有限认知上的软件调试方法。
灰盒测试,也称作灰盒分析,是基于对程序内部细节有限认知上的软件调试方法
D. 黑盒测试与白盒测试相比,更需要关心模块与模块之间的交互。
灰盒测试中,测试员可能知道系统组件之间是如何互相作用的,但缺乏对内部程序功能和运作的详细了解。对于内部过程,灰盒测试把程序看作一个必须从外面进行分析的黑盒。因此,假设测试对象有很多模块组成,
-
灰盒测试与黑盒测试相比,更关心模块与模块之间的交互
-
灰盒测试与白盒测试相比,灰盒测试无需关心内部模块实现细节,而白盒测试仍需更深入了解内部模块细节。
既可以用于黑盒测试,也可以用于白盒测试的方法
边界值法
集成测试计划在需求分析阶段末提交 (错误)
image.png以下对桩(stub)函数的描述正确的是?
B.在单元测试中被其它模块调用
c. 在自顶向下的集成过程中尤其有效
桩模块(Stub)是指模拟被测试的模块所调用的模块,而不是软件产品的组成的部分。在自顶向下的集成过程中尤其有效。
设计系统测试计划需要参考的项目文挡有哪些?
A. 软件测试计划
B. 可行性研究报告
C. 软件需求规范
D. 迭代计划
【软件需求】是软件开发之前做好的,软件开发是根据这个做的,那么软件测试自然也需要参考该文件
【迭代计划】是软件的某个周期的计划,自然也需要参考
【可行性】是软件开发前做好,用于证明该计划可行的,没有必要参考
编写测试用例前需要做哪些准备工作?()
A. 阅读产品规格书
B. 阅读已有的****bug****列表
C. 书写思维导图
D. 阅读已有的测试用例 (选不选存在争议)
以下哪些是服务器性能测试中的性能指标?
A. 吞吐量
B. 响应时间
C. 磁盘大小
磁盘大小是服务器的配置,换句话说,磁盘大和小都不是性能指标。
D. CPU****使用率
iOS单元测试框架有哪些?
A. OCUnit
B. GHUnit
C. OCMock
D. NSXML
OCUnit 是 OC 官方测试框架, 现在被 XCTest 所取代。
XCTest 是与 Foundation 框架平行的测试框架。
GHUnit 是第三方的测试框架。
OCMock都是第三方的测试框架。
自顶向下增量式集成测试的缺点
A. 驱动的开发工作量大
B. 底层验证被推迟
C. 底层组间测试不充分
D. 设计上的错误不能及时被发现
自顶向下测试:是从程序的初始模块开始测试。
(1)该方法会在早期发现顶层的错误。
(2)早期的程序框架可以进行演示
(3)需要开发桩模块辅助测试。有些甚至需要多个桩模块辅助,加大了桩模块本来的错误影响。
(4)测试完一个上层模块后,挑选哪个模块作为下一个测试模块,以及测试的顺序没有唯一的界定标准。
优点:较早地验证了主要控制和判断点;按深度优先可以首先实现和验证一个完整的软件功能;功能较早证实,带来信心;只需一个驱动,减少驱动器开发的费用;支持故障隔离。
缺点:柱的开发量大;底层验证被推迟;底层组件测试不充分。
注意;自底向上才需要驱动开发模块
下面哪些是测试用例设计方法?
A. 等价类划分
B. 边界值分析
C. 错误推断
D. 因果图法
[测试](javascript:;)<u>用例</u>常见的设计方法有:等价类划分法、边界值分析法、错误推测法、判定表法、正交实验法
一.等价类划分法
顾名思义,等价类划分,就是将测试的范围划分成几个互不相交的子集,他们的并集是全集,从每个子集选出若干个有代表性的值作为测试用例。
例如,我们要测试一个用户名是否合法,用户名的定义为:8位数字组成的字符。
我们可以先划分子集:空用户名,1-7位数字,8位数字,9位或以上数字,非数字。
然后从每个子集选出若干个有代表性的值:
空用户名:“” (无效等价类实例,指对于软件规格说明而言,没有意义的、不合理的输入)
1-7位数字:"234" (无效等价类实例)
8位数字:"00000000" (有效等价类实例,能检验程序是否实现了规格说明中所规定的功能和性能)
9位或以上数字:"1234567890" (无效等价类实例)
非数字:"abc&!!!" (无效等价类实例)
他们5个,就是用等价类划分选出的测试用例。实际上,对于1-7位数字的子集来说,选“234”和“11111”没有本质的区别。
等价类的划分,最关键的是子集的划分。实际上,非数字还可以继续划分子集:字母,特殊字符。
究竟要划分到何种程度才合适呢?我请教过做测试的朋友,他的意见是,看你有多少资源和时间,还有,看是否值得。
对此,我表示赞同,毕竟无论你怎么测试,总会有未发现的缺陷存在,所以,先解决容易被发现的问题再说。
二.边界值分析法
长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。选出的测试用例,应选取正好等于、刚刚大于、刚刚小于边界的值,例如,对于在区间min,max的值,测试用例可以记为min,min+,max,max-。
例如,假定 X 为整数,10≤X≤100,那么 X 在测试中应该取的边界值为:10,11,99,100。
注:上面只是说边界值,如果是完整的测试,除了边界值外,还需要一个正常值,即12-98之间的任意值。
三.错误推测法
错误推测法是指:在测试程序时,人们可以根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例的方法。
这种方法没有固定的形式,依靠的是经验和直觉,很多时候,我们都会不知不觉的使用到。
四.判定表法
又称为策略表,基于策略表的测试,是[功能测试](javascript:;)中最严密的测试方法。该方法适合于逻辑判断复杂的场景,通过穷举条件获得结果,对结果再进行优化合并,会得到一个判断清晰的策略表。
例如,某公司的对客户分类标准如下:
顾客每次订货额在 1000元以上(含1000元),信誉好的,订单设“优先”标志;
信誉不好,但是老客户的,订单设“优先”标志;
信誉不好,但是新客户的,订单设“正常”标志;
每次订货额在 1000元以下,订单设“正常”标志。
绘制的决策表如下:
image.png此表分两大行,两大列,分别用不同的颜色区别。
浅蓝:列出所有条件(或称为输入)
浅灰:列出所有结果(或称为输出,行动或决策)
浅黄:穷举所有条件的组合
浅绿:根据每一列的条件,判断出结果
因为穷举了所有条件,所以可以说这个判断是100%正确的。下一步是对这个表进行合并优化。
例如,从编号为1,2的列可以看出,顾客订单>=1000,信誉好,不管是新顾客还是老顾客,都设为优先,于是上面的表合并整理后,得到下表
image.png这样,我们就可以得到更清晰的逻辑判断,也可以更好的协助我们编写测试用例。而决策表,对于开发人员来说一样有用。
从上面的表格,我们就可以写出更简洁的判断语句。
五.正交实验法
用语言描述正交实验法会很抽象难懂,简单说,就是在各因素互相独立的情况下,设计出一种特殊的表格,找出能以少数替代全面的测试用例。
其中,上面所说的特殊表格就是正交表,是按照一定规则生成的表。
虽然说是特殊的表格,实际表现形式跟一般的表格没有什么区别,正交表的主要特征是,“均匀分布,整齐划一”,正是因为“均匀”的,所以才能以少数代替全部。
例如:
某所大学通信系共2个班级,刚考完某一门课程,想通过“性别”、“班级”和“成绩”这三个查询条件对通信系这门课程的成绩分布,男女比例或班级比例进行人员查询。
按照传统的方式,我们将会穷举所有的组合,来编写测试用例,组合个数是222=8。
排列组合参见下表
image.png当组合条件不多的时候,穷举暂时没问题,但是,一旦条件多了,组合个数就会以指数形式增长。
这个时候,就要用到正交表了,通过选出有代表性的测试实例,达到以少数代替全面的效果。
正交表如何设计呢,这个问题实际很复杂,涉及到组合统计的数学知识,有的正交表甚至到目前为止,还未得出算法。
我们只能通过已知的模型套上去。
例如,Dr. Genichi Taguchi 设计的正交表
https://www.york.ac.uk/depts/maths/tables/orthogonal.htm
Technical Support ( support.sas.com ) com 提供的
http://support.sas.com/techsup/technote/ts723_Designs.txt
首先,我们来看看基本的概念。
因素:被测的元素称为因素,例如上面的性别,班级,成绩,均为因素,因素的个数我们记为k,此处k=3
水平:因素的可能值,称为水平。例如班级的可能值为1或2。水平的个数我们记为m,此处正好每个因素的水平都是2,此处m=2。
那么正交表的行数n的计算公式为,n=k(m-1)+1,此处为n=3(2-1)+1=4。即共有4行。
我们通常用L表示这个正交表,完整的表示为Ln(mk)
如果每个因素的水平数相等,我们称之为单一水平正交表,例如本例子就是,L4(23)
各列水平数不完全相同的正交表称为混合水平正交表。如L8(4124),表示有一个因素的水平为4,有4个因素的水平为2。
按照这个表达式,我们可以去套用已知的正交表。例如本例子是L4(23),从上面提供的两个链接均可以查到例子,虽然表达方式略有不同,但实际是一样的,我们从http://support.sas.com/techsup/technote/ts723_Designs.txt 查到,其正交表的格式为:
23 n=4
000
011
101
110
此处0,1是对可能值的编号,例如,我们可以将(0,1)分别映射为(女,男)(1班,2班)(及格,不及格)
按照上面的格式,
000:女 1班 及格
011:女 2班 不及格
101:男 1班 不及格
110:男 2班 及格
这就是我们所得到的正交表。
六.总结
功能测试方法还有很多,例如因果图法,状态转换测试法等,他们都略为复杂,像正交实验法一样,有各自的一套东西,不过本质都是通过画图,让我们更好的思考,最后转化成判定表。
实际上常用的是前面五种方法,包括:等价类划分法、边界值分析法、错误推测法、判定表法、正交实验法。
会判断无效等价类
手机发送短信长度限定在70个汉字以内,若对该功能进行等价类测试,无效等价类为(A)
A. 短信内容长度为0
B. 短信内容长度为1
C. 短信内容长度为69
D. 短信内容长度为70
有效等价类:短信内容长度在70个汉字以内。无效等价类:短信内容长度为0、短信内容长度大于70。
输入一个字符串,长度不得大于6,第一个必须为字母,首字母必须大写,那么根据黑盒测试中的等价划分技术,得到的无效等价类是:(ABC)
A. {字符串第一个字符为大写,长度>6}
B. {字符串第一个字符为小写,1<=长度<<6}
C. {字符串第一个字符为数字,1<=长度<=6}
D. {字符串第一个字符为大写,1<=长度<=6}
何为压力测试
测试人员在Windows Server 2003系统下,通过逐步增加用户数对某购物网站进行测试,统计发现该平台在吞吐量超过300页每秒时,系统处于失效状态。该测试内容为哪种测试()
A. 性能测试
B. 负载测试
C. 压力测试
D. 系统测试
压力测试是测试软件的瓶颈和极限 负载测试是性能在极限情况下能坚持多久
压力测试可理解为找到一个阈值,而负载测试可理解为坚持的时间
适合用因果图法的情形
在一个软件测试用例中,有一个字符串数据,若首字符必须是C和D,其余字符必须是0-9的数字,在此情况下是正确的,若首字符不正确,则输出message1,若其余字符不正确,则输出message2。这种情况下最好采用( )
A. 边界值分析
B. 等价类划分
C. 因果图
D. 错误推测法
一、黑盒测试:
是一种常用的软件测试方法,它将被测软件看作一个打不开的黑盒,主要根据功能需求设计测试用例,进行测试。几种常用的黑盒测试方法和黑盒测试工具有,等价类划分法、边界值分析法、因果图法、决策表法。在实际运用中要选择合适的方法。
二、因果图法:
等价类划分法和边界值分析方法都是着重考虑输入条件,如果程序输入之间没有什么联系,采用等价类划分和边界值分析是一种比较有效的方法。如果输入之间有关系,例如,约束关系、组合关系,这种关系用等价类划分和边界值分析是很难描述的,测试效果难以保障,因此必须考虑使用一种适合于描述对于多种条件的组合,产生多个相应动作的测试方法,因果图正是在此背景下提出的。因果图法着重测试规格说明中的输入与输出间的依赖关系。
1、 因果图的符号的关系
image.png以下是符号的具体说明:
原因→结果
image.png image.png原因→原因
image.png
image.png
image.png
image.png
结果→结果
image.png
2、因果图法测试用例的设计步骤
(1)确定软件规格(需求)中的原因和结果
(2)确定原因和结果之间的逻辑关系
(3)确定因果图中的各个约束(constraints)
(4)画出因果图并转换为决策表
(5)根据决策表设计测试用例
三、实例分析
产品说明书:有一个处理单价为1元5角钱的盒装饮料的自动售货机软件。若投入1元5角硬币,按下“可乐”、“雪碧”、或“红茶”按钮,相应的饮料就送出来。若投入的是2元硬币,在送出饮料的同时退还5角硬币。
(1)确定需求中的原因与结果
image.png(2)确定原因与结果的逻辑关系
C1 与 C2 需要一个中间结果Cm1,
C3、C4、C5 需要一个中间结果Cm2.
(3)确定因果图中的约束
C1 与 C2 是或的关系, C3、C4、C5是或的关系。
(4)画出因果图并转化为决策表
image.png决策表
将原因C1、C2、C3、C4、C5按二进制由小到大分别取值,并分析中间结果的成立与否,进而得出下面的简化版(即中间结果Cm1、Cm2成立的情况)
image.png
image.png
简化版
image.png(5)根据决策表设计测试用例
image.png总结
等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。
如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字,因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,这就需要利用因果图(逻辑模型)。
地铁买票
2元地铁票售票软件:投币2元时,按下“2元”按钮,弹出相应地铁票;投币5元,则弹出地铁票同时退还3元,若对该功能进行测试用例设计最宜选择哪种方法D
A. 等价类划分法
B. 边界值法
C. 错误推测法
D. 因果图
因果图是从需求中找出因(输入条件)和果(输出或程序改变的状态),通过因果图转化为判定表。
-
输入条件之间的关系(组合、约束)
-
输入与输出的关系
-
输出条件的关系
JUnit主要用来完成什么?
单元测试
测试人员要坚持原则,缺陷未修复完坚决不予通过。错误
缺陷分两种:
1、 完全影响软件的正常运行或者影响客户的正常体验。这种当然不能予以通过
2、 不影响产品运行及客户正常体验且此软件急于使用。以公司利益为出发,应予以通过。但在时间不紧急的情况下应不予通过。
一个好的测试人员应该有很好的情况分析能力,并且要有担当
圈复杂度的计算
在软件测试中,圈复杂度(Cyclomatic complexity):代码逻辑复杂度的度量,提供了被测代码的路径数量。圈复杂度可通过系统控制流图的判断节点数目算出。 某人事管理系统能管理员工的基本信息、家庭信息、学历信息、职称信息等。其中,家庭信息管理模块导出的控制流图中包含9个判断节点,那么,该模块的圈复杂度为____<u>10__</u>____
基本路径通过程序中的条件语句来看,基本路径 = 谓词结点 + 1
下面说法正确的选项是(C)
A. β测试先于α测试执行
B. β测试是在受控环境下进行的测试
C. 模块测试完成之后开始α测试
D. β测试需要开发者在现场配合测试
alpha测试,Beta测试都需要用户参加。但是, alpha测试是用户在开发环境或者是公司内部模拟实际操作环境的测试。Beta是由最终用户来测试。
小李测试一款新开发的手机APP应用界面,那么,属于界面元素测试内容的是:()
界面元素测试包括:窗口测试、菜单测试、图标测试、文字测试、鼠标测试
软件验收测试的合格通过准则是:
1、 软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。
2、 所有测试项没有残余的一级二级三级的错误。
3、 立项审批表、需求分析文档、设计文档和编码实现一致。
4、 验收测试工件齐全(测试计划,测试用例,测试日志,测试通知单,测试分析报告)
使用软件测试工具的目的包括哪些?(ABD)
A. 帮助测试寻找问题
B. 协助问题的诊断
C. 提高设计质量
D. 节省测试时间
软件调试技术:
-
试探法(强行排错法),
-
回溯法:人工沿着程序的控制流程往跟踪代码,直到找出错误根源为止
-
对分查找法:缩小错误的范围,
-
归纳演绎
-
原因排除法
软件测试的对象包括:
源程序、目标程序、数据及相关文档。
软件测试你得明白测试什么,源程序不用说,基本的东西不能出错。目标程序是你最终成果因而更不能出错。当然这一切要保证软件在使用过程中不仅逻辑符合,更重要的是数据要保证正确性,相关文档没有错误保证正确无误。因而B正确。
Beta 测试
是验收测试的一种。请判断这句话的正确与否。——正确
Beta测试是一种验收测试。所谓验收测试是软件产品完成了功能测试和系统测试之后,在产品发布之前所进行的软件测试活动,它是技术测试的最后一个阶段,通过了验收测试,产品就会进入发布阶段。验收测试一般根据产品规格说明书严格检查产品,逐行逐字地对照说明书上对软件产品所做出的各方面要求,确保所开发的软件产品符合用户的各项要求。
通过综合测试之后,软件已完全组装起来,接口方面的错误也已排除,软件测试的最后一步——验收测试即可开始。验收测试应检查软件能否按合同要求进行工作,即是否满足软件需求说明书中的确认标准。
测试工程师小刘在对某软件项目进行疲劳强度测试过程中,最先发现以下哪些问题
内存泄漏
疲劳强度是指材料在无限多次交变载荷作用而不会产生破坏的最大应力,称为疲劳强度或疲劳极限。就像是寻找项目的极值,当到达极值后,会首先出现内存泄漏。
下面哪些属于动态分析()
A. 代码覆盖率
B. 模块功能检查
C. 系统压力测试
D. 程序数据流分析
动态程序分析是对计算机软件的分析,该计算机软件是通过在真实或虚拟处理器上执行从该软件构建的程序来执行的。
A代码覆盖是由测试需求和测试用例的覆盖或已执行代码的覆盖表示的。建立在对测试结果的评估和对测试过程中确定的变更请求(缺陷)的分析的基础上。
D选项数据流分析是一项编译时使用的技术,它能从程序代码中收集程序的语义信息,井通过代数的方法在编译时确定变量的定义和使用。
系统测试计划属于项目阶段性关键文档,因此需要同行评审。
对
在程序片中,所定义的变量未被使用可以通过哪种测试方法进行定位(C)
A. 条件测试
B. 控制流测试
C. 数据流测试
D. 循环测试
数据流测试按照程序中的变量定义和使用的位置来选择程序的测试路径
项目立项前测试人员不需要提交任何工件。
正确
针对程序段:IF(A||B||C)THEN W=W/X,对于(A,B,C)的取值,( )测试用例能够满足MCDC(修正条件逻辑判定)的要求。
(T,F,F) (T,T,F) (F,T,T) (F,F,F)
MCDC满足条件:
-
程序的每个入口和出口至少执行一次。也就是说要满足if条件为真,和if条件为假至少一次。
-
每个判定条件的可能值至少要转换一次,也就是说为真为假各一次至少。
MCDC要求既要满足判定覆盖,又要满足条件覆盖
回归测试
是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。它不是软件测试的步骤
假设我们每天80%的访问集中在20%的时间里(峰值),如果每天有300万的pv,而 我们的单台机器的QPS为58,那么大概需要几台这样的机器:3
QPS:每秒处理的查询数目
pv:页面浏览量
每天80%的访问集中在20%的时间里,即访问时间为0.224=4.8h=17280s,访问量为:3000.8=240万
单台机器处理的总的查询数目为:17280*58=1002240,约为100万
题目中说明每天总的访问量为240万,即至少需要3台处理器。
软件测试计划评审会需要哪些人员参加
SQA / 项目经理 / 客户(可选) / 配置管理员 / 测试经理 / 开发组长 / 系统分析员
软件质量保证(SQA-Software Quality Assurance)
测试设计员的职责有哪些?
A. 制定测试计划
测试经理
B. 设计测试用例
C. 设计测试过程、脚本
D. 评估测试活动
测试经理组织召集开发和测试的相关人员
测试分类
image.png测试阶段依赖的文档
单元测试,详细设计文档
集成测试,概括设计文档
系统测试,系统设计文档
集成测试和系统测试都需要用到黑盒测试
测试阶段的主要技术手段
- 单元测试:
mock:对代码中某些不容易获取的对象创建虚拟对象来测试
stub:桩函数是代替某些被调用了但是没有编写代码,一般再增量迭代自底向上的过程中不用编写。再自顶向下的过程中需要编写
驱动函数:调用被测函数,给被测函数传参 </div></div> - 集成测试
- GUI测试手段
- 系统测试: 黑盒测试
- 验收测试:黑盒测试
软件测试的目的是尽可能多的找出软件的错误。请判断这句话的正确与否。
正确
1、测试的目的是为了发现尽可能多的缺陷,不是为了说明软件中没有缺陷。
2、成功的测试在于发现了迄今尚未发现的缺陷。所以测试人员的职责是设计这样的测试用例,它能有效地揭示潜伏在软件里的缺陷。
测试工程师小刘在对某软件项目进行疲劳强度测试过程中,最先发现以下哪些问题( )。
A.并发用户数
B.内存泄漏
C.系统安全性
D.功能错误
答案:
疲劳强度是指材料在无限多次交变载荷作用而不会产生破坏的最大应力,称为疲劳强度或疲劳极限。就像是寻找项目的极值,当到达极值后,会首先出现内存泄漏。
B
图书管理系统主要包括系统维护模块、工作人员借还管理模块和读者查询模块。在软件测试过程中,测试人员首先对三个模块进行测试,测试完成后再将系统所有模块集成起来进行集成测试。该测试策略为( )
A.非增量集成测试
B.增量集成测试
C.三明治集成测试
D.其他几项都不对
答案:
非增量是每一个模块全部测试完后连接在一起
增量就是测一个连接一个
三明治是
A