测试类型
1. 请列出你所知道的软件测试种类,至少 5 项?
2. 黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系?
- 黑盒测试:把测试对象当成一个黑盒子,测试人员完全不考虑逻辑结构和内部特性, 只依据程式的需求说明书来检查程序的功能是否满足它的功能说明。
- 白盒测试:把测试对象当成一个透明的盒子,允许测试人员利用程序内部逻辑结构及 相关信息, 设计或选择测试用例,对程序所有逻辑路径进行测试。
- 单元测试:白盒测试的一种,对软件设计中的单元模块进行测试。
- 集成测试:在单元测试的基础上,对单元模块之间的连接和组装进行测试。系统测试:在所有都考虑的情况下,对系统进行测试。
- 验收测试:第三方进行的确认软件满足需求的测试。
3. 黑盒测试和白盒测试常用的测试方法有哪些,举个例子?
黑盒有等价类划分法,边界分析法,因果图法和错误猜测法。
白盒有逻辑覆盖法,循环测试路径选择,基本路径测试。
例子:在一次输入多个条件的完整性查询中。利用等价类划分法则和边界分析法则,首 先利用等价类划分法,可以一个或多个结果是 OK 的测试用例,然后确认多个 NG 的测试用例, 然后利用边界值分析法,可以对结果分别是 OK 和 NG 的测试用例进行扩展和补充。
4. 简述黑盒测试和白盒测试的优缺点?
黑盒测试的优点有:
- 比较简单,不需要了解程序内部的代码及实现;
- 与软件的内部实现无关;
- 从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;
- 基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;
- 在做软件自动化测试时较为方便。
黑盒测试的缺点有:
- 不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的 30%;
- 自动化测试的复用性较低。
白盒测试的优点有:
- 帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐藏的问题。
白盒测试的缺点有:
- 程序运行会有很多不同的路径,不可能测试所有的运行路径;测试基于代码,只能测试开发人员做的对不对,而不能知道设计的正确与否,可能会漏掉一些功能需求;系统庞大时,测试开销会非常大。
5. 在没有产品说明书和需求文档的情况下能够进行黑盒测试的设计吗?
能,可以通过其他工作内容去替代产品说明书和需求文档根据客户的功能点整理测试需求追溯表
根据开发人员的软件规范列表整理功能测试点开展项目跨部门讨论会,主要整理对功能点的理解和认识测试人员整理用例需求疑问提交项目组或者产品项目内部的用例,邮件客户代表确认部分争议问题
项目的 Demo 和部分已经开发的系统参考同行业和竞争对手的类似产品交叉模块之间的测试
咨询客户或相关者
6. 单元测试的策略有哪些,主要内容有哪些?
逻辑覆盖,循环覆盖,同行评审,桌前检查,代码走查,代码评审,静态数据流分析
7. 简述集成测试的过程
系统集成测试主要包括以下过程:
- 构建的确认过程。
- 补丁的确认过程。
- 系统集成测试测试组提交过程。
- 测试用例设计过程。
- 测试代码编写过程。
- Bug 的报告过程。
- 每周 / 每两周的构建过程。
- 点对点的测试过程。
- 组内培训过程。
8. 集成测试进入的准则?退出的准则?
集成测试由开发工程师完成
进入准则:集成完成、报告完成之后
退出准则:按照集成构件计划及增量集成策略完成了整个系统的集成测试 达到了测试计划中关于集成测试所规定的覆盖率的要求 集成工作版本满足设计定义的各项功能、性能要求;在集成测试中发现的错误已经得到修改,各级缺陷修复率达到标准
9. 集成测试通常都有那些策略?
- 在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失;
- 各个子功能组合起来,能否达到预期要求的父功能;
- 一个模块的功能是否会对另一个模块的功能产生不利的影响;
- 全局数据结构是否有问题;
- 单个模块的误差积累起来,是否会放大,从而达到不可接受的程度。
10. 设计系统测试计划需要参考哪些项目文挡?
软件测试计划,软件需求工件和迭代计划。系统测试计划的依据是:软件需求规格说明书
11. 系统测试计划是否需要同行审批,为什么
需要,系统测试计划属于项目阶段性关键文档,因此需要评审。
12. Alpha 测试与 beta 的区别
Alpha 测试 在系统开发接近完成时对应用系统的测试;测试后仍然会有少量的设计变更。这种测试一般由最终用户或其它人员完成,不能由程序或测试员完成。
Beta 测试 当开发和测试根本完成时所做的测试,最终的错误和问题需要在最终发行前找到。这种测试一般由最终用户或其它人员完成,不能由程序员或测试员完成。
Alpha 测试:用户在接近正式环境下的测试,开发人员在用户旁记录错误情况和使用中的问题。
Beta 测试:多个用户在实际使用环境下的测试,开发人员不在测试现场,用户通过发送报告的形式把发现的问题反馈给开发人员。
α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进 行的测试。
β测试是由软件的多个用户在实际使用环境下进行的测试。这些用户返回有关错误信息给开发者。 测试时,开发者通常不在测试现场。因而,β测试是在开发者无法控制的环境下进行的软件现场应用。
13. 系统测试阶段低级缺陷较多 怎么办?
公司有预测试这个流程 会在开展测试活动之前对主要功能点的正常流程做一个测试以判断这个版本是不是可测试版本 如果低级缺陷比较多 严重阻碍测试执行的话 我们会打回开发部 不执行测试
14. 系统测试的进入和退出准则?
进入:(产品集成完成,打成安装包,纳入配置库)需求确认完后
退出:
- 系统功能与用户需求说明书一致测试计划规定的时间结束
- 所有确认缺陷都已修复
- 功能性测试用例通过率达到 100%
- 非功能性测试用例通过率达到 95%
15. 系统测试阶段低级缺陷较多怎么办?
公司有预测试这个流程 会在开展测试活动之前对主要功能点的正常流程做一个测试以判断这个版本是不是可测试版本 如果低级缺陷比较多 严重阻碍测试执行的话 我们会打回开发部 不执行测试
16. 系统测试包含哪些方面?
- 恢复测试
- 安全测试
- 强度测试
- 性能测试
17. 什么是验收测试?
验收测试的目的是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软 件的有效性,这就是验收测试的任务,即软件的功能和性能如同用户所合理期待的那样。
18. 软件验收测试具体包括哪些测试?
正式验收测试,alpha 测试,beta 测试。
19. 什么是功能测试?
功能测试是在规定的一段时间内运行软件系统的所有功能,以验证这个软件系统有无严重错误
20. 请问功能测试和性能测试的区别是什么?(只总结了两个方面,有其他的自己补充)
测试目的:
- 功能测试:检查实际软件的功能是否符合用户的需求,测功能是不是全部实现,某个实现是不是有 BUG。主要为了发现以下几类错误:A、是否有不正确或遗漏的功能?B、功能实现是否满足用户需求和系统设计的隐藏需求? C、能否正确接收输入?能否正确输出结果?
- 性能测试:验证软件质量的三个质量特性,可靠性,正确性和效率。主要是测试产品的健壮性
测试方式:
- 功能测试:按照系统需求说明书和测试用例,对产品的功能一步步进行测试。找出产品功能是否全部 实现
- 性能测试:一般都使用性能工具对产品的健壮性进行评估。 通过创建场景和虚拟用户来模拟真是环境, 进行压力测试和负载测试。
21. 兼容性测试
这类测试主要想验证软件产品在不同环境之间的兼容性 主要有操作系统和浏览器
22. 什么是易用性测试?
可使用性测试主要从使用的合理性和方便性等角度对软件系统进行检查,发现人为因素或使用上 的问题。 要保证在足够详细的程度下,用户界面便于使用;对输入量可容错、响应时间和响应方式合理可行、输出信息有意义、正确并前后一致;出错信息能够引导用户去解决问题;软件文档全面、正 规、确切。
23. 什么是文档测试
这种测试是检查用户文档(如用户手册)的清晰性和精确性。用户文档中所使用的例子必须在测试中一一试过,确保叙述正确无误。
24. 怎么做好文档测试
仔细阅读,跟随每个步骤,检查每个图形,尝试每个示例。
检查文档的编写是否满足文档编写的目的
内容是否齐全,正确内容是否完善
标记是否正确
25. 文档测试要注意什么?
文档的读者群、文档的术语、文档的正确性、文档的完整性、文档的一致性、文档的 易用性、样例与示例、文档的语言
26. 什么是安全测试?
安全性测试是要检验在系统中已经存在的系统安全性、保密性措施是否发挥作用, 有无漏洞。
力图破坏系统的保护机构以进入系统的主要方法有以下几种: 正面攻击或从侧面、背面攻击系统中易受损坏的那些部分; 以系统输入为突破口,利用输入的容错性进行正面攻击
27. 什么时候适用自动化测试?
- 可重复的、不知疲倦地运动,对于数据能进行精确的大批量的比较的;
- 回归测试
- 在机械化的执行和比较
28. 什么时候不宜使用自动化的情况
- 周期短并且一次性的项目
- 进度非常紧张的项目
- 需求非常不稳定的项目
- 界面尚未确定
- 使用了很多第三方或自定义控件的项目
29. 什么是性能测试?
性能测试是要检查系统是否满足在需求说明书中规定的性能。特别是对于实时系统 或嵌入式系统。 性能测试常常需要与强度测试结合起来进行,并常常要求同时进行硬件和软件检测。 通常,对软件性能的检测表现在以下几个方面:响应时间、吞吐量、辅助存储区,例如缓冲区,工作区的大小等、处理 精度,等等。
30. 您在从事性能测试工作时,是否使用过一些测试工具?如果有,请试述该工具的工作原 理,并以一个具体的工作中的例子描述该工具是如何在实际工作中应用的
有使用过 LoadRunner, 该工具能够录制测试人员的操作步骤,然后对这个操作步骤模拟出多个用户来播放出来。
- VUG 创建脚本,选择协议,录制操作,编辑操作。
- 控制器(Controller)调度虚拟用户。创建场景,选择脚本,建立虚拟用户,设计 shedual,设置 ip spoofer。
- 运行脚本。
- 分析测试结果。
31. 您认为性能测试工作的目的是什么?做好性能测试工作的关键是什么?
性能测试工作的目的是检查系统是否满足在需求说明书中规定的性能,性能测试常常需要和强度 测试结合起来,并常常要求同时进行软件和硬件的检测。性能测试主要的关注对象是响应时间,吞吐 量,占用内存大小(辅助存储区),处理精度等。
32. 性能测试什么时候开始最合适
一般在功能测试的最后阶段执行 因为功能走通了 性能才有意义 总之性能测试要根据用户的实际性能指标来操作 是一个很重要的测试活动 要根据软件的属性以及它的实际情况来制定策略
33. 并发性能测试的目的主要体现在三个方面?
以真实的业务为依据,选择有代表性的、关键的业务操作设计测试案例,以评价系统的当前性能;当扩展应用程序的功能或者新的应用程序将要被部署时,负载测试会帮助确定系统是否还能够处理期望 的用户负载,以预测系统的未来性能;通过模拟成百上千个用户,重复执行和运行测试,可以确认性 能瓶颈并优化和调整应用,目的在于寻找到瓶颈问题。