刷题补漏记录集 软件测试专业技能篇(一)

刷题补漏记录集

1、关于测试驱动开发,描述错误的是 C

A、测试驱动开发式是一种敏捷开发方法
B、TDD需求开发人员学习测试相关知识
C、测试驱动开发不适合使用CMM/CMMI方法
D、测试驱动开发可以和结对编程结合使用
(1) 测试驱动开发,英文全称Test-Driven Development,简称 TDD ,是一种不同于传统 软件开发流程 的新型的开发方法。它要求在编写某个功能的代码之前先编写测试代码,然后只编写使测试通过的功能代码,通过测试来推动整个开发的进行。这有助于编写简洁可用和高质量的代码,并加速开发过程。测试驱动开发式是一种敏捷开发方法。TDD需求开发人员学习测试相关知识。测试驱动开发可以和结对编程结合使用。
(2) CMM是指“ 能力成熟度模型 ”,其英文全称为Capability Maturity Model for Software,英文缩写为SW-CMM,简称CMM。它是对于 软件 组织在定义、实施、 度量 、控制和改善其 软件过程 的实践中各个发展阶段的描述。CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以使其更加科学化、 标准化 、使企业能够更好地实现商业目标。此外还是化妆品的名字。CMMI(Capability Maturity Model Integration, 能力成熟度模型集成 )将各种能力成熟度模型(即:Software CMM、Systems Eng-CMM、People CMM和Acquisition CMM)整合到同一架构中去,由此建立起包括软件工程、系统工程和软件采购等在内的诸模型的集成,以解决除软件开发以外的软件系统工程和软件采购工作中的迫切需求。这两种方法属于测试驱动开发的方式。

2、压力测试和负载测试的区别

(1) 负载测试:是模拟实际软件所承受的负载条件的系统负荷,通过不断加载(如逐渐增加模拟用户的数量)或其他加载方式来观察不同负载下系统的响应时间和数据吞吐量、系统占用的资源(CPU、内存等),以检验系统的行为和特性,以发现系统可能存在的性能瓶颈,内存泄漏,不能实时同步等问题,负载测试更多的体现了一种方法或一种技术。
例子:登录接口,我们先10个用户访问,然后100个用户访问,然后1000个用户访问,关注程序的响应时间,所耗资源,直到超时或关键资源耗尽。
(2) 压力测试:在强负载(大数据量、大量并发用户等)下的测试,查看应用系统在峰值使用情况下的操作行为,从而有效地发现系统的某项功能隐患,系统是否具有良好的容错能力和可恢复能力。压力测试可分为高负载下的长时间(如24小时以上)的稳定性压力测试和极限负载情况下导致系统奔溃的破坏性压力测试。
例子:程序,在运行1天,1个月,一年关注他们的各项指标是否都在正常指标内,是否会内存溢出,是否出现功能性故障等等,压力测试分为稳定性测试和破坏性测试。
(3) 区别:负载测试是不关注稳定性的,压力测试是关注稳定性的。通过负载测试,也是为了获得系统正常工作时所能承受的最大负载,这时的负载测试就成为了容量测试。通过压力测试,可以知道在什么极限情况下系统会奔溃、系统是否具有自我恢复性等,但更多的是为了确定系统的稳定性。

3、非增量式集成测试与增量式集成测试的区别

(1)非增量式集成测试:采用一步到位的方法来构造测试:对所有模块进行个别的单元测试后,按照程序结构图将各模块连接起来,把连接后的程序当作一个整体进行测试。
(2)增量式集成测试 :集成是逐步实现的,即逐次将未曾集成测试的模块和已经集成测试的模块(或 子系统)结合成程序包,再将这些模块集成为较大系统,在集成的过程中边连接边测试,以发现连接过程中产生的问题。(分为:自顶向下增量式测试、自底向上增量式测试、混合增量式测试)

4、静态测试与动态测试的区别

(1)静态测试:所谓静态测试(static testing)就是不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误的过程。
(2)动态测试:指的是实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程,所以判断一个测试属于动态测试还是静态的,唯一的标准就是看是否运行程序。

5、测试设计人员的职责

(1) 测试设计人员:设计测试用例以及设计测试过程、脚本;
(2) 制定测试计划由测试经理完成,评估测试活动由测试经理组织召集开发和测试相关的人员来做。

6、Junit单元测试知识点

ssert提供了多个断言方法. 主用于比较测试传递进去的两个参数.
Assert.assertEquals();及其重载方法: 1. 如果两者一致, 程序继续往下运行. 2. 如果两者不一致, 中断测试方法

  • @before 在每个测试方法之前都会运行一次,只需声明成public
  • @beforeclass 在类中只运行一次,必须声明成public static

每运行一个@Test方法,就会为该测试类新建一个新的实例。
所以@BeforeClass和@AfterClass必须是static的,因为运行他们的时候,测试类还没有实例化呢。

7、增量式集成测试的两个方式

自顶向下测试:是从程序的初始模块开始测试。
(1)该方法容易在早期发现顶层的错误。
(2)早期的程序框架可以进行演示
(3)需要开发桩模块辅助测试。有些甚至需要多个桩模块辅助,加大了桩模块本来的错误影响。
(4)测试完一个上层模块后,挑选哪个模块作为下一个测试模块,以及测试的顺序没有唯一的界定标准。
优点:较早地验证了主要控制和判断点;按深度优先可以首先实现和验证一个完整的软件功能;功能较早证实,带来信心;只需一个驱动,减少驱动器开发的费用;支持故障隔离。
缺点:柱的开发量大;底层验证被推迟;底层组件测试不充分。
自底向上测试:是从程序的底层模块开始测试。
(1)I/O操作可以提前测试,更好提交测试用例。
(2)测试后比较容易观察输出。
(3)需要开发驱动模块。
(4)直到最后一个模块提交,程序才能完整的系统测试。
优点:对底层组件行为较早验证;工作最初可以并行集成,比自顶向下效率高;减少了桩的工作量;支持故障隔离。
缺点:驱动的开发工作量大;对高层的验证被推迟,设计上的错误不能被及时发现。

8、测试方法

软件测试可以是人工测试:如个人复查,抽查和会审等
也可以是机器自动测试,又有不同的分类:
按照否关软件内部结构具体实现角度划
A.白盒测试B.黑盒测试 C.灰盒测试
按照软件发程按阶段划
A.单元测试 B.集成测试 C.确认测试 D.系统测试 E.验收测试

9、对手机可以施加的压力测试类型主要有:存储压力、边界压力、 响应能力压力、网络流量压力

你可能感兴趣的:(软件测试刷题集)