一、软件测试基础概念相关面试题

- 什么是软件测试? 软件测试是指在预定的环境中运行程序,为了发现软件存在的错误、缺陷以及其他不符合要求的行为的过程。它通过运行程序、检查代码、评估性能等手段,发现软件中的错误和缺陷,以便及早发现并解决这些问题,保证软件的质量和可靠性。
- 软件测试的目的是什么? 软件测试的目的在于以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正这些错误和缺陷提高软件质量,回避软件发布后由于潜在的软件问题带来的风险。此外,软件测试还可以对软件的功能、性能等方面进行评估,确保软件满足用户的需求和期望。
- 软件测试有哪些基本原则? 常见的软件测试基本原则包括:测试应尽早介入,越早发现问题修复成本越低;穷尽测试是不可能的,应根据风险和优先级进行测试用例的选择;所有的测试都应可追溯到用户需求;测试应从“小规模”开始,逐步转向“大规模”;避免测试自己编写的程序,以减少主观偏见等。
二、软件测试流程相关面试题
- 软件测试的流程是什么?
- 需求调查:全面了解系统概况、应用领域、软件开发周期、软件开发环境、开发组织、时间安排、功能需求、性能需求、质量需求及测试要求等。根据系统概况进行项目所需的人员、时间和工作量估计以及项目报价,制定初步的项目计划。
- 测试准备:组织测试团队、培训、建立测试和管理环境等。
- 测试设计:按照测试要求进行每个测试项的测试设计,包括测试用例的设计和测试脚本的开发等。
- 测试实施:按照测试计划实施测试。
- 测试评估:根据测试的结果,出具测试评估报告。
三、测试用例设计相关面试题
- 您所熟悉的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。
- 等价类划分法:将输入数据域划分为有效等价类和无效等价类,从每个等价类中选取代表性数据进行测试。例如,对于一个输入框要求输入1 - 100之间的整数,那么1 - 100就是有效等价类,小于1和大于100就是无效等价类,可以分别选取典型值如50(有效)、0(无效)、101(无效)来设计测试用例。
- 边界值分析法:关注输入或输出的边界情况。比如上述输入1 - 100整数的例子,边界值就是1、100、0、101,针对这些边界值设计测试用例能更有效地发现错误。
- 因果图法:适用于描述输入条件和输出结果之间的因果关系。例如在一个登录功能中,用户名和密码正确(因)则登录成功(果),如果用户名错误或者密码错误则登录失败,根据这种因果关系可以设计出各种组合的测试用例。
- 错误猜测法:凭借测试人员的经验和直觉猜测可能出现错误的地方来设计测试用例。比如在一个文件上传功能中,可能会猜测如果上传超大文件、格式不支持的文件或者网络不稳定时会出现错误,针对这些情况设计测试用例。
四、软件缺陷相关面试题
- 在您以往的工作中,一条软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录? 软件缺陷记录通常包含检测时间、系统环境、硬件环境、严重程度、程式版本、确认人、功能模板、问题描述、详细操作步骤、是否会重现等内容。要提交高质量的软件缺陷记录,问题描述和详细操作步骤要尽可能详细,Bug应该尽量用书面语,对于严重程度比较高的缺陷要在相同环境下测试一遍。在C\S模式下,如果条件满足可以使用替换法来确认是client端的问题还是server端的问题。
- 如果您提的BUG开发不认为是BUG怎么办?
- 测试人员要确保这确实是个bug(如果是误测,那只能测试人员自己背锅了)。
- 在测试环境将BUG复现出来,保存好截图、相关测试数据,发给开发人员,或直接给开发人员演示一遍。
- 如果开发人员还认为不是BUG,或者是由于技术问题很难修改的BUG,可以叫上产品经理、开发负责人,一起讨论一下。
- 对于等级比较低的建议性BUG,可以先记录到BUG管理系统,暂时不用说服开发去修改,后续再进行跟进。
五、性能测试相关面试题
- 您认为性能测试工作的目的是什么?做好性能测试工作的关键是什么? 性能测试工作的目的是检查系统是否满足在需求说明书中规定的性能,性能测试常常需要和强度测试结合起来,并常常要求同时进行软件和硬件的检测。性能测试主要的关注对象是响应时间、吞吐量、占用内存大小(辅助存储区)、处理精度等。做好性能测试工作的关键包括准确确定性能测试的需求和目标、选择合适的性能测试工具、合理设计性能测试场景、准确分析性能测试结果等。
- 您在从事性能测试工作时,是否使用过一些测试工具?如果有,请试述该工具的工作原理,并以一个具体的工作中的例子描述该工具是如何在实际工作中应用的。 例如LoadRunner,该工具能够录制测试人员的操作步骤,然后对这个操作步骤模拟出多个用户来播放出来。具体工作流程如下:
- Visural User Genertor创建脚本:选择协议,录制操作,编辑操作。
- 中央控制器(Controller)调度虚拟用户:创建场景,选择脚本,建立虚拟用户,设计shedual,设置ip spoofer。
- 运行脚本,分析shedual。
- 分析测试结果。
六、不同类型测试区别相关面试题
- 比较负载测试、压力测试,容量测试和强度测试区别。
- 负载测试:通过逐步增加系统负载,测试系统性能指标的变化情况,确定系统在各种工作负载下的性能表现,例如系统在不同用户数量并发访问时的响应时间、吞吐量等指标的变化。
- 压力测试:是在超过正常负载的情况下,对系统持续施加压力,观察系统在极限或接近极限负载条件下的运行情况,目的是确定系统的稳定性和可靠性,如测试系统在大量并发用户访问时是否会崩溃或者出现性能急剧下降的情况。
- 容量测试:主要关注系统能够承受的最大负载量,例如数据库能够存储的最大记录数、网络能够处理的最大流量等,确定系统的容量边界。
- 强度测试:是在一种特殊的条件下(如高并发、大数据量、恶劣的网络环境等)对系统进行测试,检查系统在极端条件下的功能和性能是否满足要求,强度测试更强调环境的恶劣性和条件的极端性。
声明:本文网友投稿,观点仅代表作者本人,不代表鲸选型赞同其观点或证实其描述。