1. 首页 > 人力资源 > 在线面试

软件测试面试常见问题及回答技巧

在软件测试面试中,有一些常见的技术问题经常被问到。
面试

测试用例相关

  • 基础设计方法:面试官可能会问熟悉哪些测试用例设计方法,像黑盒测试中的等价类划分法、边界值分析法、因果图法和错误猜测法,白盒测试中的逻辑覆盖法、循环测试路径选择、基本路径测试等都是重点。例如在测试登录功能时,等价类划分法可将输入的用户名和密码分为合法和非法的等价类,如合法用户名是字母数字组合,非法的可能包含特殊字符等;边界值分析则关注输入范围的边界情况,比如密码长度要求6 - 12位,那就要测试5位、6位、12位、13位等边界情况。还可能衍生出如何评判测试用例好坏的问题,这就需要从完整性、准确性等多方面结合项目实际情况回答,例如好的测试用例要全面覆盖需求,操作步骤清晰,预期输出明确等。

Bug定位相关

  • 定位流程:会问到如何定位bug,一般先分析是用户问题还是产品问题,再看是前端还是后端问题,通用思路是按照现象 - 原因 - 验证手段 - 结论 - 现象来进行。比如一个网页显示错误,现象是页面部分图片无法加载,原因可能是网络问题或者图片资源路径错误,验证手段可以检查网络连接、查看图片资源的请求地址是否正确等,得出结论确定是网络问题或者代码错误导致。也可能会问使用哪些bug定位工具,像fiddler就是常用的工具。

项目职责与测试流程相关

  • 项目中的角色:关于在项目里负责的工作内容以及测试流程也是常考的。例如可能回答主要负责功能测试,兼顾一部分自动化测试。测试流程通常是先进行需求分析,依据需求做测试用例,有时间就进行用例评审,否则直接开始测试,最后产出测试报告并提交给主管。还可能进一步被问到测试报告包含哪些部分等衍生问题。

计算机协议相关

  • 协议知识:对计算机协议的了解也是一个考点,如OSI七层模型,包括物理层、数据链路层、网络层、传输层、会话层、表示层、应用层,其中第四层完成数据传送服务,上面三层面向用户。除了OSI七层模型,还有TCP/IP四层协议以及TCP/IP五层协议等相关知识也需要掌握。

兼容性测试相关

  • 测试策略:兼容性测试的策略包括操作系统/平台兼容性测试、应用软件之间的兼容性测试、不同浏览器之间的兼容性测试、不同类型数据库兼容性测试以及软硬件配合的兼容性测试等方面的内容。

测试方案设计相关

  • 方案构成:简单说一下测试方案的设计,包括需求说明(如需求汇总、需求变更)、总体计划安排和负责人(像测试计划进度表)、测试方案(如测试重点、联测方案、测试策略方法、测试工具平台)、环境搭建部署及数据准备(如环境拓扑、应用部署、数据准备)、测试执行计划(如测试计划、正向用例、反向用例、用例评审)、测试工单(如冒烟工单、单侧工单、联测工单、预发布验证工单、灰度验证工单、线上验证工单)、测试限制及无法测试功能列表、测试情况日汇总&风险点,待确认列表等内容。

性能测试相关

  • 测试目的与常见类型:会问为什么进行性能测试,其目的包括稳定运营(长时间、高负载测试下交易成功率、资源稳定性)、成本的优化配置(确定最优CPU数量、内存数量、服务器数量、专线带宽)、在用户眼中塑造良好形象(系统运行“快”)、节省成本(根据性能测试结果精确判断服务器、CPU、内存、带宽数量)、判断目前系统的性能瓶颈以及使系统应用能够适应未来的业务增长等。常见的性能测试有负载测试、压力测试等。

测试工具相关

  • 常用命令与工具:例如让说几个常用的Linux命令,像ls、cd、mkdir等。在自动化测试工具方面,APP一般使用Appium,Web一般使用Selenium;性能测试工具方面,APP一般使用JMeter,Web一般使用LR、JMeter等。

测试类型相关

  • 黑盒测试概念:解释黑盒测试的概念,黑盒测试是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。
  • 移动端和Web端测试区别:移动端和web端测试的区别,单纯从功能测试层面上流程和功能测试无区别,但因载体不同存在很多差异。如系统结构方面,web项目是b/s架构基于浏览器,只要更新服务器端客户端就同步更新,app项目是c/s结构必须有客户端,app修改服务端后客户端核心版本需要回归测试;性能监测方面,web项目需监测响应时间、CPU、Memory,app项目除这些还需监测流量、电量等;测试工具方面,自动化工具APP用Appium、Web用Selenium,性能测试工具APP用JMeter、Web用LR、JMeter等,并且APP有专项测试如干扰测试、弱网络测试、安装更新卸载测试、界面操作测试、安全测试、边界测试、权限测试等。


软件测试面试回答技巧

充分准备项目经验相关内容

  • 在讲述自己的项目经验时,要清晰明确地说出自己在项目中的角色、负责的具体工作内容以及取得的成果。例如,如果在一个项目中负责功能测试,可以详细说明如何通过有效的测试用例设计提高了测试覆盖率,发现了多少个关键的bug等。对于项目中的重点和难点,要有深入的理解和应对措施的阐述。比如在测试一个复杂业务逻辑的功能时,遇到了数据量大且逻辑复杂的情况,自己是如何通过合理的测试策略和工具来解决测试效率和准确性的问题。

深入理解基本概念

  • 对于软件测试的基本概念,如各种测试类型(黑盒测试、白盒测试、功能测试、性能测试等)、测试用例设计方法、计算机协议等,要能够准确、清晰地表述其含义、特点和应用场景。以黑盒测试为例,不仅要说出它的定义,还要能举例说明在实际项目中如何运用黑盒测试方法进行有效的测试。在解释概念时,可以结合实际工作中的案例,这样会让回答更加生动和有说服力。

熟练掌握测试流程

  • 对测试流程的每一个环节都要非常熟悉,从需求分析、测试计划制定、测试用例设计、测试执行到缺陷跟踪与管理等。在回答问题时,可以按照流程的顺序详细阐述每个环节的工作内容、重点和注意事项。例如在需求分析环节,要强调如何准确理解需求文档,与相关人员(如开发人员、产品经理等)进行有效的沟通以确保需求的准确性和完整性;在测试用例设计环节,要提及如何根据需求选择合适的测试用例设计方法等。

展示解决问题的能力

  • 当被问到遇到问题(如难以定位的bug、项目中的突发状况等)时如何解决,要展现出自己的逻辑思维和解决实际问题的能力。可以采用先分析问题产生的可能原因,然后列出多种解决措施,最后根据实际情况选择最优方案的回答方式。比如在定位一个间歇性出现的bug时,可以先从环境因素、数据因素、代码逻辑等多方面分析可能的原因,然后说明采用日志分析、数据监测、代码调试等方法来定位问题,最终解决bug的过程。

强调团队协作和沟通能力

  • 在软件测试工作中,团队协作和沟通是非常重要的。在回答问题时,可以提及在项目中如何与开发人员、产品经理、其他测试人员等进行有效的沟通和协作。例如在发现bug后,如何与开发人员进行友好、高效的沟通,准确地描述bug的现象、重现步骤、严重程度等信息,以促进bug的快速解决;在需求评审阶段,如何与产品经理沟通需求的合理性和可测试性等。

掌握测试工具的使用

  • 熟练掌握各种测试工具(如测试管理工具、自动化测试工具、性能测试工具等)的使用是很有必要的。在回答中要能够说出工具的主要功能、工作原理、适用场景以及自己在实际项目中的使用经验。例如对于JMeter这个性能测试工具,要能阐述如何创建脚本、设置场景、分析结果等操作,并且分享在项目中使用JMeter进行性能测试所获得的一些成果,如发现系统性能瓶颈、优化性能等方面的成果。

声明:本文网友投稿,观点仅代表作者本人,不代表鲸选型赞同其观点或证实其描述。

联系我们

在线咨询:点击这里给我发消息

微信号:

工作日:9:30-18:30,节假日休息