一、测试基础概念相关问题
软件测试的基本概念是面试中的常见考点。例如,需要清楚什么是软件测试,它是为了发现程序中的错误而执行程序的过程。关于软件测试的目的,不仅仅是找出软件产品中的错误,更是要使软件尽可能符合用户的要求,不过要知道软件测试不可能找出全部错误。
测试分为多个阶段,像单元测试、集成测试、系统测试、验收测试、回归测试等。单元测试的对象是模块内部的程序错误,目的是消除局部模块逻辑和功能上的错误和缺陷,依据是模块的详细设计,采用白盒测试方法;集成测试主要检查软件单位之间的接口是否正确;系统测试是基于系统整体,对功能、性能以及软件所运行的软硬件环境进行测试;验收测试是部署软件之前的最后一个测试操作,确保软件准备就绪;回归测试则是在软件修改后重新进行测试,以确认修改没有引入新的错误。
对于不同类型的测试,如功能测试(黑盒测试)和性能测试等也要有深入理解。功能测试侧重于测试软件各个功能模块是否正确,逻辑是否正确,主要参考功能说明书之类的文档;性能测试验证软件的性能是否满足系统规格给定的性能指标,还可衍生出负载测试、强度测试、压力测试、稳定性测试等。
二、测试用例设计相关问题
测试用例设计方法是面试的重点内容。黑盒测试有等价类划分法、边界分析法、因果图法和错误猜测法;白盒测试有逻辑覆盖法、循环测试路径选择、基本路径测试等。
以等价类划分法为例,在设计测试用例时,将输入域划分为若干个等价类,从每个等价类中选取一个代表性的数据作为测试用例。比如测试一个输入框接受1 - 100之间的整数,就可以划分出有效等价类(1 - 100之间的整数)和无效等价类(小于1、大于100以及非整数)。边界分析法是对等价类划分法的补充,重点关注输入或输出的边界值,因为边界值往往容易出现错误。因果图法适用于分析输入条件之间的各种组合情况,根据因果关系来设计测试用例。错误猜测法是基于测试人员的经验和直觉,推测程序中可能存在错误的地方,从而设计测试用例。
面试官还可能会问到做好测试用例设计工作的关键,这包括对可行和不可行的情况都要考虑,明确输入、详细的操作步骤、预期输出以及实际输出等要素。
三、缺陷管理相关问题
在以往的工作中,一条软件缺陷(Bug)记录包含的内容是常见问题。通常有检测时间、系统环境、硬件环境、严重程度、程式版本、确认人、功能模板、问题描述、详细操作步骤、是否会重现等。其中,问题描述和详细操作步骤要尽可能详细,Bug报告尽量使用书面语,对于严重程度比较高的缺陷要在相同环境下测试一遍,在C/S模式下,如果条件满足可以使用替换法来确认是client端还是server端的问题。
另外,是否使用工具进行软件缺陷管理也可能被问到。例如一些常用的缺陷管理工具的使用情况等。
四、性能测试相关问题
如果有性能测试的工作经验,面试官会对性能测试工作的完整过程感兴趣。这可能涉及到是否使用过性能测试工具,如LoadRunner。LoadRunner能够录制测试人员的操作步骤,然后模拟出多个用户来播放这些操作。具体操作包括Visural User Genertor创建脚本、选择协议、录制操作、编辑操作;中央控制器(Controller)调度虚拟用户、创建场景、选择脚本、建立虚拟用户、设计shedual、设置ip spoofer;运行脚本、分析shedual;分析测试结果等步骤。
还会问到性能测试工作的目的,主要是检查系统是否满足在需求说明书中规定的性能,性能测试常常需要和强度测试结合起来,并且要求同时进行软件和硬件的检测,关注对象有响应时间、吞吐量、占用内存大小(辅助存储区)、处理精度等。
五、测试工具相关问题
对于软件测试工程师来说,熟练掌握各种测试工具是很重要的。除了上述提到的性能测试工具LoadRunner,还有自动化测试工具如Selenium、Postman、Appium等。
面试官可能会问是否熟悉这些工具的使用,例如Selenium用于Web应用程序的自动化测试,可以模拟用户在浏览器上的操作;Postman常用于接口测试,能够方便地发送各种类型的HTTP请求并查看响应结果;Appium用于移动应用(如Android和iOS)的自动化测试。对这些工具的掌握程度、使用场景以及在实际项目中的应用经验都是面试中的考察点。
六、测试流程相关问题
整个软件测试流程也是面试常问的内容。从需求评审开始,测试人员要参与其中,理解需求并转化为可测试的需求。接着制定测试计划,这需要有一个明确的目标,详细阅读需求文档说明,对测试人员、测试时间、测试进度进行预估并预先管理,同时设定整个测试流程的规范。然后是测试用例的设计与执行,根据测试结果提交缺陷报告,跟踪缺陷的解决情况,最后进行测试总结报告等环节。在这个过程中,如何与开发人员、项目经理等进行有效的沟通协调也是重要的考察方面。
声明:本文网友投稿,观点仅代表作者本人,不代表鲸选型赞同其观点或证实其描述。