软件测试工程师面试题20道

1.简述一下缺陷的生命周期

New:发现bug,未经评审决定是否指派给开发人员进行修改

Open:确认bug,并且认为需要进行修改,指派给相应的开发人员。

Fixed:开发人员进行修改后标识成修改状态,有待测试人员的回归测试验证。

Rejected:如果认为不是Bug,则拒绝修改。

Delay:如果认为暂时不需要修改或暂时不能修改,则延后修改。

Closed:修改状态的Bug经测试人员的回归测试验证通过,则关闭Bug

Reopen:如果经验证Bug仍然存在,则需要重新打开Bug开发人员重新修改。

2.缺陷的严重程度有几种

Severity(严重程度)如下:

Blocker(有妨碍的):即系统无法执行、崩溃或严重资源不足、应用模块无法启动或异常,退出无法测试,造成系统不稳定

critical(紧要的):即影响系统功能或操作,主要功能存在严重缺陷,但不会影响到系统稳定性

Major(严重的):即界面、性能缺陷、兼容性。

Minor/Trival(次要的/不严重的)即易用性及建议性问题

Priority(优先级):Immediate(立刻)Urgent(紧要、优先)

High(高度重视)Normal(正常)Low(稍缓)

3.软件缺陷的类型有哪些?简单描述

功能缺陷:影响了各种系统功能、逻辑的缺陷

用户界面缺陷;影响了 用户界面、人机交互特性,包括屏幕格式、用户输入灵活性、结果输出格式等方面的缺陷

文档缺陷:影响发布和维护,包括注释、用户手册、设计文档

软件包缺陷:由于软件配置库、变更管理或版本控制引起的错误

性能缺陷:不满足系统可测量的属性值,如执行时间、事务处理速率等

系统/模块接口缺陷:与其他组件、模块或设备驱动程调用函控制块或参数列表等不匹配、冲突

代码缺陷算法错误性能缺陷

4.你熟悉的软件测试类型有哪些?请分别比较这些不同测试类型的区别与联系

Compatibility Testing(兼容性测试),也称“Configuration testing(配置测试)”,测试软件是否和系统的其它与之交互的元素之间兼容,如:浏览器、操作系统、硬件等。验证测试对象在不同的软件和硬件配置中的运行情况。

Functional testing (功能测试),也称为behavioral testing(行为测试),根据产品特征、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求。本地化软件的功能测试,用于验证应用程序或网站对目标用户能正确工作。使用适当的平台、浏览器和测试脚本,以保证目标用户的体验将足够好,就像应用程序是专门为该市场开发的一样。

Performance testing(性能测试),评价一个产品或组件与性能需求是否符合的测试。包括负载测试、强度测试、数据库容量测试、基准测试等类型。

5.软件测试流程是什么

需求评审、测试计划、测试用例、用例评审、冒烟测试、测试执行、验收测试、风险评估、上线/观察、问题跟进、测试报告、复盘会议

6.什么时候可以测试停止?判断的标准是?

软件测试停止标准

1.软件系统经过单元、集成、系统测试,分别达到单元、集成、系统测试停止标准。

2.软件系统通过验收测试,并已得出验收测试结论。

3.软件项目需暂停以进行调整时,测试应随之暂停,并备份暂停点数据。

4.软件项目在其开发生命周期内出现重大估算,进度偏差,需暂停或终止时,测试应随之暂停或终止,并备份暂停或终止点数据。

7.测试用例包括哪些内容?编写测试用例的方法有哪些?

测试用例包括:用例编号、测试项目、用例名称、重要级别、前置条件、测试数据、操作步骤、预期结果、实际结果

方法:等价类划分方法;边界值方法;错误推测方法;因果图方法;判定表驱动分析方法;正交分解法; 全局深索式测试方法;

场景分析法。

8.详细描述一个测试活动完整的过程

完整的测试过程包括:需求与计划->测试用例->测试执行->测试总结。

需求与测试需求:产品经理通过和客户的交流,完成需求文档,并与开发人员和测试人员共同完成需求文档的评审。项目经理通过综合开发人员,测试人员以及客户的意见,完成项目计划。

测试计划:制定测试计划是借助测试计划模板,规划项目的时间、人员、任务安排的文档。在项目中,测试计划一般由测试负责人来做。

用例设计和写作:使用等价类、边界值、场景法等用例设计方法设计合适的测试用例对系统进行验证。

测试执行:测试执行我们会先做功能测试。功能测试的做法就是在系统上输入用例指定数据,然后提交,再检查结果是否与期望一致。

功能测试的本质是就是数据测试,即验证数据处理是否正确。测试人员进行测试,发现BUG后提交给禅道管理系统。

测试总结:编写测试日报,定期向团队汇报测试进展以及问题及风险,编写测试总结报告,向团队汇报测试结果和上线风险。

9.自动化测试碰到比较难解决的问题是什么?如果出现这些问题,给出你的解决方案

难点1:接口文档的不完整性

当开始设计接口自动化测试用例时,发现接口文档不完整,有些必要的字段没有说明,有些接口没有文档。

解决方案:与开发人员进行沟通,尽可能补充接口文档中的缺陷,或者让开发人员提供对应的接口示例用于测试。

难点2:接口返回数据结构的复杂性

有些接口返回的数据结构非常复杂,需要拆解后才能进行测试。

解决方案:根据实际情况,编写相应的工具或脚本进行数据拆解。

难点3:接口依赖问题

有些接口的测试需要依赖其他接口的数据,这给测试带来了很大的难度。

解决方案:在接口自动化测试框架中加入接口依赖功能,以保证测试的顺序和正确性。

难点4:接口返回数据的延迟问题

有些接口返回数据的延迟非常大,无法在短时间内完成测试。

解决方案:在接口自动化测试框架中加入异步请求和超时处理功能,以保证测试的正确性。

难点5:接口请求参数的多样性问题

有些接口的请求参数非常多样,需要进行大量的测试。

解决方案:使用数据驱动测试的方式,对请求参数进行自动化测试。

难点6:接口自动化测试的稳定性问题

在接口自动化测试中,有些测试用例会出现不稳定的情况,这可能与网络、数据库、服务器等因素有关。

解决方案:在接口自动化测试框架中加入重试机制、日志记录功能,以保证测试的正确性和稳定性。

难点7:接口性能测试问题

在进行接口自动化测试时,需要进行性能测试。

解决方案:使用性能测试工具,如JMeter等,对接口进行压力测试和性能测试。

10.你认为判断BUG的依据是什么

软件未达到产品说明书标明的功能;

软件出现了产品说明书指明不会出现的错误;

软件功能超出产品说明书指明范围;  

软件未达到产品说明书要求,但未指出但应达到的目标;

软件测试员认为软件难以理解、不易使用、运行速度缓慢,或者最终用户认为不好。

11.一条详细的bug描述应该包含哪些内容
1.和BUG对应的软件版本

2.开发的借口人员,测试人员

3.BUG的优先级

4.BUG的严重程度

5.BUG可能属于的模块

6.BUG的标题

7.BUG的描述

8.BUG的截图

9.BUG的状态

10.BUG的错误类型

12.如何将已经发现的缺陷(BUG)进行最完整的记录并提交?

标题简洁明了,步骤条理清晰。还需考虑缺陷的完备性,比如缺陷等级、所属功能模块、版本、复现步骤、预期结果、实际结果、产生原因、日志截图等。

13.程序可能会在哪些方面存在缺陷

功能缺陷、用户界面缺陷、文档缺陷、软件包缺陷:由于软件配置库、变更管理或版本控制引起的错误、性能缺陷、系统/模块接口缺陷、代码缺陷算法错误性能缺陷

14.如何理解软件应该具有容错性,并举例说明

容错性是指在正常运行过程中,系统或组件发生各种意外情况时能够适当地处理或切换运行的能力。容错技术是对故障的“容忍”,但并非是“无视”故障的处在。它首先能自动地实时检测并诊断出系统的故障,然后对故障进行决策、处理。容错性测试是检查软件在异常条件下自身是否具有防护性的措施或某种灾难性恢复的手段。当系统出错时,能否在指定时间间隔内修正错误并重新启动系统。容错性测试包括两个方面:

输入异常数据或进行异常操作:以检验系统的保护性。如果系统的容错性好,系统只给出提示或内部消化掉,而不会导致系统出错甚至崩溃。
灾难恢复性测试:通过各种手段,让软件强制性地发生故障,然后验证系统已保存的用户数据是否丢失,系统和数据是否能尽快恢复。
对于自动恢复需验证重新初始化、检查点、数据恢复和重新启动等机制的正确性;对于人工干预的恢复系统,还需估测平均修复时间,确定其是否在可接受的范围内。容错性好的软件能确保系统不发生无法意料的事故。

15.请对一个普通的杯子设计测试用例

功能度:用水杯装水看漏不漏;水能不能被喝到

安全性:杯子有没有毒或者细菌

可靠性:杯子从不同高度落下来的损坏程度

可移植性:杯子在不同的地方、温度等环境下是否都可以正常使用

兼容性:杯子是否能够容纳果汁、白水、酒精、汽油等

易用性:杯子是否烫手、是否有防滑措施、是否方便饮用

用户文档:使用手册是否对杯子的使用方法、限制、使用条件等有详细的描述

疲劳测试:将杯子盛上水24小时检查泄露时间和情况;盛上汽油放24小时检查泄露事件

和情况等

压力测试:用根针并在针上面不断加重,看压强多大时会穿透

16.提供一个注册模块,怎样设计与执行测试?
.账号:必填,11位手机号进行注册
验证码:必填,系统生成4位验证码
用户名:可以为空,4-16位字符串(可以重复)
密码:必填,6-12位,由(字母、数字)组成,允许含特殊符号

17.请简述集成测试的主要内容,集成测试和系统测试的关系是什么?

集成测试的内容包括模块之间接口以及集成后的功能。它主要使用黑盒测试方法测试继承的功能,并对以前的集成进行回归测试。集成测试的内容包括:

1.将各个具有相互调用关系的模块组装起来时,检查穿越模块接口的数据是否会丢失。

2.判断各个子功能组合起来是否能够达到预期要求的父功能。

3.检查一个模块的功能是否对其他模块的功能产生不良影响。

4.检查全局数据结构是否正确,以及在完成模块功能的过程中是否会被异常修改。

18.Web测试和app测试有哪些不同之处?

Web端测试和移动端测试类型基本相似,都需要进行功能测试、性能测试、安全性测试,

他们的主要区分—— Web端一般是b/s架构,基于浏览器,Appc/s架构,是有客户端的。

从系统架构来看的话:Web测试只要更新了服务器端,客户端就会同步更新;

而如果是app端下修改了服务端,意味着客户端用户所有使用的核心版本都需要进行回归

测试一遍。

客户端性能方面:Web端可能只关注响应时间;App则还要关心流量、电量、cpu、等;

兼容方面:Web是基于浏览器的,所以更倾向于浏览器(IEChromefirefox)和电脑硬

件,电脑系统方向的兼容;

App测试则必须依赖于手机或者pad,不仅要看分辨率、屏幕尺寸、重要看设备系统。

19.编写测试计划和测试报告时需要关注哪些内容

1.测试的范围和目标 2.测试的方法和策略 3.测试的资源和进度安排 4.测试的风险评估和管理 5.测试的质量标准和评估方法6.测试的执行情况和结果 7.测试的问题和缺陷 8.测试的建议和改进措施 12

20.性能测试的原理以及测试过程中需要关注哪些参数?举例说明并发性能测试的详细开展过程

原理:1.基于协议,前后端交互机制,性能核心。基于界面决定和前端用户交互,基于代码决定了后端。2.网络分布式架构。3.单机应用,主要判断io读写,以及对资源的消耗。4.多线程,模拟多个虚拟用户量同时访问系统。5.模拟真实的场景。场景的设计合理直接决定了得出的性能数据,从而影响对系统的性能判断。

需要关注的参数有:事务平均响应时间、最大响应时间、最少响应时间、最大并发数、长时间运行最大负载、CPU负载、内存使用率、网络IO。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值