《软件测试基础》期末复习题
1. 下面的哪一项测试步骤中需要进行局部数据结构测试( )
A. 单元测试 B. 集成测试 C. 验收测试 D. 系统测试
2. 测试ATM取款功能,已知取款数只能输入正整数,每次取款数要求是100的倍数且不能大于500,下面哪个是正确的无效等价类( )
A. (0,100)、(100,200)、(200,300)、(300,400)、(400,500)、(500,+∞)
B. (500,+∞)
C. (500,+∞)、任意大于0小于500的非100倍数的整数
D. (-∞,100)、(100,200)、(200,300)、(300,400)、(400,500)、(500,+∞)
3. 下列选项中,哪一项不属于安全测试( )
A. 静态分析 B. 漏洞扫描 C. 渗透测试 D. 集成测试
4. 单元测试主要的测试技术不包括( )
A. 白盒测试 B. 功能测试 C. 静态测试 D. 以上都不是
5. ( )的目的是对最终软件系统进行全面的测试,确保最终软件系统满足产品需求并且遵循系统设计。
A. 系统测试 B. 集成测试 C. 单元测试 D. 功能测试
6.下面哪一项不是软件缺陷产生的原因( )。
A. 需求不明确 B. 测试用例设计不好
C. 软件结构复杂 D. 项目周期短
7.按照是否执行程序划分,测试类型可以分为( )
A. 黑盒测试、白盒测试和灰盒测试 B. 单元测试和集成测试
C. 手工测试和自动化测试 D. 静态测试和动态测试
8.测试一个程序的时候,不可能穷举所有的输入,而只能选择一个子集进行测试,那么最好的方法是()
A. 随机选择 B. 划分等价类 C. 根据接口进行选择 D. 根据数据类型进行选择
9.( )方法是根据输出对输入的依赖关系来设计测试用例的?
A.边界值分析法 B.等价类划分法 C. 因果图法 D. 错误推测法
10. 下列选项中适合自动化测试的是()
A. 需求不确定且变化频繁 B. 产品设计完成后测试过程不够准确
C. 项目开发周期长而且重复测试部分较多D. 项目开发周期短,测试比较单一
11. 软件的六大质量特性包括( )
A. 功能性、可靠性、可用性、效率、可维护、可移植
B. 功能性、可靠性、可用性、效率、稳定性、可移植
C. 功能性、可靠性、可扩展性、效率、稳定性、可移植
D. 功能性、可靠性、兼容性、效率、稳定性、可移植
12. 下列属于黑盒测试方法的有( )
A. 等价类划分法 B. 边界值法 C. 错误推测法 D. 以上都是
13. 根据是否查看源代码执行测试,测试可以分为( )
A. 黑盒测试. 白盒测试和灰盒测试 B. 单元测试和集成测试
C. 手工测试和自动化测试 D. 功能测试和性能测试
14. 下列选项中,哪一项是跨站脚本攻击漏洞( )
A. XSS B. CSRF C. SQL D. Buffer Overflow
15. 下列适用于性能测试的工具是( )
A. Jmeter B. Appium C. Robotium D. monkeyrunner
16. 将三角形每边边长的取值范围设定为【1-100】,下面哪个是正确的边界值测试数据( )
A. 任意大于1小于100的整数 B. (1,2,3). (-∞,+∞)
C. (0,1,,2). (99,100,,101) D. 小于1或者大于100的整数
17.下列属于黑盒测试方法的有( )
A. 等价类划分法 B. 边界值法 C. 错误推测法 D. 以上都是
18.关于安全测试,下列说法中错误的是( )
A. 安全测试主要是验证产品是否符合安全需求定义和产品质量标准
B. 风险分析也属于安全测试的一种
C. 与功能、性能缺陷不同,安全缺陷可以完全避免
D. 安全测试要尽早测试、经常测试
19.下列选项中,哪一项不是软件开发模型( )
A. V模型 B. 快速模型 C. 螺旋模型 D. 敏捷模型
20.下列选项中,哪一项不属于逻辑覆盖( )
A. 语句覆盖 B. 条件覆盖 C. 判定覆盖 D. 判定-语句覆盖
1. 从下列关于软件测试的叙述中,选出正确的叙述( )
A. 用黑盒法测试时,测试用例是根据程序内部逻辑设计的
B. 测试的目的是验证该软件已正确的实现了用户的要求
C. 发现错误多的程序块,残留在模块中的错误也多
D. 测试设计时,应充分考虑异常的输入情况
2. 软件验收测试的合格通过准则是( )
A. 软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。
B. 所有测试项没有残余一级、二级和三级错误。
C. 立项审批表、需求分析文档、设计文档和编码实现一致。
D. 验收测试工件齐全。
3. 下列选项中,说法正确的是( )
A. 单元测试主要测试的是函数功能、接口
B. 在单元测试中主要使用的是白盒测试方法
C. 接口测试中使用白盒测试和黑盒测试结合的方式进行测试
D. UI测试时不能修改界面布局进行测试
4. 下面关于软件测试,描述正确的是?( )
A. 软件测试是使用人工操作或者软件自动运行的方式来检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别的过程。
B. 软件测试的测试目标是发现一些可以通过测试避免的开发风险。
C. 软件测试的原则之一是测试应该尽早进行,最好在需求阶段就开始介入。
D. 软件测试主要工作内容是验证和确认软件功能. 性能等是否达到需求说明书的要求。
5. 下列选项中是软件测试模型的有?( )
A. V模型 B. 瀑布模型 C. W模型 D. 敏捷模型
6. 通常把符合下列哪几项特征的软件错误认为是软件缺陷( )
A. 软件未达到软件产品需求说明书中指明的要求
B. 软件出现了软件产品需求说明书中指明不应该出现的错误
C. 软件功能超出了软件产品需求说明书中指明的范围
D. 软件未达到软件产品需求说明书中虽未指明但应达到的要求
E. 测试人员认为软件可能造成用户难以理解. 不易使用. 运行速度缓慢或者其他用户认为不好的问题
7. 关于软件测试,说法正确的有:( )
A. 测试是为了发现错误而执行程序的过程
B. 测试是为了证明程序有错误,而不是为了证明程序无错误
C. 一个好的测试用例在于它能发现至今未发现的错误
D. 一个成功的测试是发现了至今未发现的错误的测试
8. 关于性能测试,下列说法中正确的是( )
A. 软件响应慢属于性能问题
B. 性能测试就是使用性能测试工具模拟正常、峰值及异常负载状态,对系统的各项性能指标进行测试的活动
C. 性能测试可以发现软件系统的性能瓶颈
D. 性能测试是以验证功能完整实现为目的
E. 系统测试经常由开发人员负责
9. 下列选项中,属于安全测试的是()
A. 静态分析 B. 漏洞扫描 C. 渗透测试 D. 集成测试
10. 划分等价类的原则有( )
A. 按区间划分 B. 按数值划分 C. 按数值集合划分 D. 按限制条件或规则划分
11. 软件执行自动化测试的前提条件是( )
A. 项目需求变动不频繁 B. 项目周期足够长
C. 自动化测试脚本可重复执行 D. 项目开发周期短,测试比较单一
12. 选出属于黑盒测试方法的选项( )
A. 测试用例覆盖 B. 输入覆盖 C. 输出覆盖
D. 分支覆盖 E. 语句覆盖 F. 条件覆盖
13.将三角形每边边长的取值范围设定为【1-100】,下面哪个是正确的边界值测试数据( )
A. 任意大于1小于100的整数
B. (99,100,,101)
C. (0,1,,2)
D. 小于1或者大于100的整数
14. 按照是否执行程序划分,测试类型可以分为( )
A. 黑盒测试 B. 灰盒测试 C. 白盒测试 D. 静态测试
15. 软件的缺陷通常集中在( )阶段。
A. 需求分析 B. 系统设计 C. 编写代码 D. 软件测试
16. 用边界值分析法写出NextDate函数的测试用例,在NextDate函数中,隐含规定了变量month和变量day的取值范围为1<=month<=12,1<=day<=31,并设定变量year的取值范围为1912<=year<=2050下面哪个是正确的边界值测试数据( )
A. year边界值可以为:1911,1912,1913,2049,2050,2051
B. month的边界值可以为0,1,2,11,12,13
C. day的边界值可以为0,1,2,30,31,32
D. year、 month和day可以任意取值
17.软件测试流程包括( )
A. 测试计划 B. 测试用例 C. 测试执行 D. 测试总结
18.软件验收测试包括哪些?( )
A. 正式验收测试 B. 白盒测试 C. alpha测试 D. beta测试
19. 测试脚本的编写规范强调( )
A. 可读行 B. 可重用性 C. 可维护性 D. 可移植性
20. 编写测试计划的目的是( )
A. 使测试工作顺利进行 B. 使项目参与人员沟通更舒畅
C. 使测试工作更加系统化 D. 软件工程以及软件过程的需要
E. 软件过程规范化的要求 F. 控制软件质量
很好奇,就使用rubyonrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提
我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当
我有一个围绕一些对象的包装类,我想将这些对象用作散列中的键。包装对象和解包装对象应映射到相同的键。一个简单的例子是这样的:classAattr_reader:xdefinitialize(inner)@inner=innerenddefx;@inner.x;enddef==(other)@inner.x==other.xendenda=A.new(o)#oisjustanyobjectthatallowso.xb=A.new(o)h={a=>5}ph[a]#5ph[b]#nil,shouldbe5ph[o]#nil,shouldbe5我试过==、===、eq?并散列所有无济于事。
我有一些Ruby代码,如下所示:Something.createdo|x|x.foo=barend我想编写一个测试,它使用double代替block参数x,这样我就可以调用:x_double.should_receive(:foo).with("whatever").这可能吗? 最佳答案 specify'something'dox=doublex.should_receive(:foo=).with("whatever")Something.should_receive(:create).and_yield(x)#callthere
Sinatra新手;我正在运行一些rspec测试,但在日志中收到了一堆不需要的噪音。如何消除日志中过多的噪音?我仔细检查了环境是否设置为:test,这意味着记录器级别应设置为WARN而不是DEBUG。spec_helper:require"./app"require"sinatra"require"rspec"require"rack/test"require"database_cleaner"require"factory_girl"set:environment,:testFactoryGirl.definition_file_paths=%w{./factories./test/
我遵循MichaelHartl的“RubyonRails教程:学习Web开发”,并创建了检查用户名和电子邮件长度有效性的测试(名称最多50个字符,电子邮件最多255个字符)。test/helpers/application_helper_test.rb的内容是:require'test_helper'classApplicationHelperTest在运行bundleexecraketest时,所有测试都通过了,但我看到以下消息在最后被标记为错误:ERROR["test_full_title_helper",ApplicationHelperTest,1.820016791]test
我已经构建了一些serverspec代码来在多个主机上运行一组测试。问题是当任何测试失败时,测试会在当前主机停止。即使测试失败,我也希望它继续在所有主机上运行。Rakefile:namespace:specdotask:all=>hosts.map{|h|'spec:'+h.split('.')[0]}hosts.eachdo|host|begindesc"Runserverspecto#{host}"RSpec::Core::RakeTask.new(host)do|t|ENV['TARGET_HOST']=hostt.pattern="spec/cfengine3/*_spec.r
我在app/helpers/sessions_helper.rb中有一个帮助程序文件,其中包含一个方法my_preference,它返回当前登录用户的首选项。我想在集成测试中访问该方法。例如,这样我就可以在测试中使用getuser_path(my_preference)。在其他帖子中,我读到这可以通过在测试文件中包含requiresessions_helper来实现,但我仍然收到错误NameError:undefinedlocalvariableormethod'my_preference'.我做错了什么?require'test_helper'require'sessions_hel
只是想确保我理解了事情。据我目前收集到的信息,Cucumber只是一个“包装器”,或者是一种通过将事物分类为功能和步骤来组织测试的好方法,其中实际的单元测试处于步骤阶段。它允许您根据事物的工作方式组织您的测试。对吗? 最佳答案 有点。它是一种组织测试的方式,但不仅如此。它的行为就像最初的Rails集成测试一样,但更易于使用。这里最大的好处是您的session在整个Scenario中保持透明。关于Cucumber的另一件事是您(应该)从使用您的代码的浏览器或客户端的角度进行测试。如果您愿意,您可以使用步骤来构建对象和设置状态,但通常您
我有:When/^(?:|I)follow"([^"]*)"(?:within"([^"]*)")?$/do|link,selector|with_scope(selector)doclick_link(link)endend我打电话的地方:Background:GivenIamanexistingadminuserWhenIfollow"CLIENTS"我的HTML是这样的:CLIENTS我一直收到这个错误:.F-.F--U-----U(::)failedsteps(::)nolinkwithtitle,idortext'CLIENTS'found(Capybara::Element