一、软件测试基本概念相关问题

软件测试是什么?这是一个基础且关键的问题。软件测试是通过执行预定的步骤和使用指定的数据,以确定软件系统在特定条件下是否满足预期的行为 。其目的在于以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正这些错误和缺陷提高软件质量,回避软件发布后由于潜在的软件问题带来的风险 。
关于测试驱动开发(TDD)也可能被问到。测试驱动开发是一种开发方法,它要求在编写代码之前先编写测试用例,然后再编写代码使测试通过,这种开发方式有助于提高代码的质量和可维护性,同时也让开发人员在编写代码时更关注功能需求和预期结果 。
二、测试用例设计相关问题
面试中常常会问到熟悉的测试用例设计方法。主要有黑盒和白盒两种测试种类。黑盒测试用例设计方法包括等价类划分法、边界分析法、因果图法和错误猜测法;白盒测试用例设计方法有逻辑覆盖法、循环测试路径选择、基本路径测试等。例如在一次输入多个条件的完整性查询中,可以利用等价类划分法则和边界分析法则,首先利用等价划分法,可以一个或多个结果是OK的测试用例,然后确认多个NG的测试用例,然后利用边界值分析法,可以对结果分别是OK和NG的测试用例进行扩展和补充 。
同时,做好测试用例设计工作的关键是什么也是常见问题。答案是对可行的和不可行的都要考虑,要明确输入、详细的操作步骤、预期输出以及实际输出等内容 。
三、性能测试相关问题
对于性能测试工作的目的是面试的常考点。性能测试工作的目的是检查系统是否满足在需求说明书中规定的性能,性能测试常常需要和强度测试结合起来,并常常要求同时进行软件和硬件的检测。性能测试主要的关注对象是响应时间、吞吐量、占用内存大小(辅助存储区)、处理精度等 。
如果有性能测试工作经验,是否使用过一些测试工具也会被问到。例如LoadRunner,它能够录制测试人员的操作步骤,然后对这个操作步骤模拟出多个用户来播放出来。具体操作包括Visural User Genertor创建脚本,选择协议,录制操作,编辑操作;中央控制器(Controller)调度虚拟用户,创建场景,选择脚本,建立虚拟用户,设计shedual,设置ip spoofer;运行脚本、分析shedual以及分析测试结果等 。
四、软件缺陷相关问题
在以往的工作中,一条软件缺陷(或者叫Bug)记录包含哪些内容以及如何提交高质量的软件缺陷(Bug)记录是常见问题。一条软件缺陷记录包含检测时间、系统环境、硬件环境、严重程度、程式版本、确认人、功能模板、问题描述、详细操作步骤、是否会重现等内容。问题描述和详细操作步骤要尽可能详细,Bug应该尽量用书面语,对于严重程度比较高的缺陷要在相同环境下测试一遍,在C\S模式下,如果条件满足可以使用替换法来确认是client端的问题还是server端的问题 。
五、测试流程相关问题
例如软件测试的流程是什么。通常包括需求测试计划制定和评审、测试用例编写、测试用例执行、bug管理、测试报告输出等阶段 。
还有测试计划工作的关键是什么。首先要有一个明确的目标,详细阅读需求文档说明;其次要对整个测试人员、测试时间、测试进度进行一个预估,并预先进行管理;最后要对整个测试流程设定一个规范,所有测试人员都按着规范做事,不能随心所欲地测试 。
六、文档测试相关问题
软件测试的文档测试应当贯穿于软件生命周期的全过程,其中用户文档是文档测试的重点。软件系统的用户文档包括用户安装文档、用户配置文档、用户使用手册、联机指导等。而用户文档的测试要点包括完整性(功能描述要完整,不能让用户产生疑问)、一致性(功能描述要与实际软件中的功能一致,不能描述过盛)、易使用性(内容要方便用户阅读并且能够让用户很清楚地知道如何操作),有的时候用图表描述会很明了 。
七、其他相关问题
还可能会问到如系统瓶颈是什么。系统瓶颈就是软件在一定的并发量、访问量下无法达到用户的需求,比如说用户需要在10s内完成一个访问,但实际每一次都要12s才能完成,这个就是性能瓶颈,有可能是程序本身的问题,也有可能和操作系统、软件相关 。
没有产品说明书和需求文档地情况下能否进行黑盒测试也是一个考点。这种情况下可以进行探索性测试,把软件当成用户需求,一步步进行测试,凭借经验判断功能正确与否,有的时候还可以与项目经理、开发人员一起进行交流沟通,从而进行更好的测试 。
声明:本文网友投稿,观点仅代表作者本人,不代表鲸选型赞同其观点或证实其描述。