软件测试面试题整理(三)之工作/项目流程篇

https://blog.csdn.net/weixin_45912307/article/details/109459134
一、介绍一下测试流程

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

二、介绍一下测试方法

  • 按阶段: 单元测试、集成测试、系统测试、验收测试
  • 按手段: 黑盒测试、白盒测试、灰盒测试
  • 其他: 冒烟测试、回归测试

三、举例说明项目推进的能力(针对个人评价的举例说明)
(例)推动开发解决菜单权限需退出登录才可应用的问题。

  • 描述: XX项目上线后,由于权限更新导致用户无法使用旧界面+用户不懂得自己退出登录以应用新菜单权限,线上多个用户反馈平台相关功能无法使用。
  • 处理: 远程操作+线上指导出现问题的用户退出登录,凌晨脚本批量强制用户退出登录。
  • 推进: 在下一次版本中,推动开发处理菜单权限更新问题,以防每次更新菜单都出现用户使用不了功能的问题。
  • 结果: 处理为用户登录期间仍可使用旧界面,直到用户退出重新登录后,才应用新菜单权限;
  • 推动冒烟测试: 冒烟不通过,测试召开会议罗列项目不通的模块、存在的问题,一一对应到每个人去跟进,得到解决的时间,后续项目群说明并艾特每个人跟进。测试准时验收。
  • 推动文档质量: 在日常工作中遇到需求文档、设计文档、接口文档不规范或不详细的在绝大多数,这个时候就要通过沟通或以bug的形式,促使各个岗位将各自的文档完善。
  • 结合自己的个人经验,从问题描述+处理过程+推进表现+结果,一一说明。

三、测试中遇到的比较难的一个项目是?(掌握自己简历上的项目)

  • XX项目:这个项目是一个新项目、需要对接第三方、从协助测试产品模块到转手负责整个项目加强了一定的需求理解难度、订单逻辑不熟悉、其中需求的问题推进比较困难。
  • 针对这些困难,测试方面:先快速了解需求,并与原先的测试负责人了解具体的进度和需要注意的测试点。
  • 开发方面: 迅速与开发人员了解订单逻辑,以及与第三方对接的过程。
  • 产品方面: 遇到某个需求问题产品不接受、最后汇报领导+开会讨论了较好的处理方案。
  • 虽然过程问题比较多,但是通过项目组的集体努力,最后项目得以按时上线
  • 描述有难度的地方+如何处理+结果

四、印象深刻的一个bug?

  • 隐藏得比较深的bug、影响比较大的bug、处理过程比较曲折的bug。
  • 如何发现的、如何处理、影响、结果、反思。
  • 举例说明:
    • 升级版本兼容性问题、
    • 接口安全性问题、
    • 数据库安全性问题、
    • 服务器资源占用溢出问题、
    • 代码逻辑问题等

五、你们公司是不是敏捷开发?介绍一下敏捷开发?

  • 是,敏捷快速迭代、多版本同时迭代
  • 敏捷开发属于增量式开发,对于需求范围不明确、需求变更较多的项目而言可以很大程度上响应和拥抱变化、主张简单、拥抱变化、可持续性、递增的变化、高质量的工作、快速反馈、软件是你的主要目标

六、复盘会议的主要内容有哪些?

  • 这点需要结合自己平时参与的项目会议举例说明。如线上bug分析、优化改进策略、bug优先级等等

七、你们原来项目的测试流程是怎么样的?

  • 我们的测试流程主要有三个阶段:需求了解分析,测试准备和测试执行

  • 1需求了解分析阶段

    • 我们的SE会把需求文档给我们自己先去了解一到两天这样,之后我们会有一个需求澄清会议,我们会把不明白不理解的需求在会议上说出来,包含需求的合理性、还有需求的可测性等,产品这边解答,目的是让我们测试这边和开发对需求的理解达到一致;
  • 2测试准备阶段

    • 会议结束之后我们开始准备测试工作,我们测试这边会写一个测试计划,分配每个人负责的模块,然后我们就根据自己负责的模块用xmind(思维导图)进行测试需求分析,分析测试点,以及编写测试用例。之后我们会在自己的组内先进行评审,评审修改之后还会在我们的项目组评审。评审完后进行修改测试用例
  • 3测试执行阶段

    • 开发人员编写好代码之后,我们会把代码包部署到测试环境中进行SIT测试,在正式测试之前我们会先做一个冒烟测试,冒烟测试通过之后我们才转测。在执行测试的过程中,我们如果重现有bug就会用禅道记录并且提交bug ,也会进行回归测试,一直到没有重现bug达到上线为止,每一轮测试结束之后我们都会写一个测试报告。一般情况下,测试2-3轮之后会达到上线要求。上线前我们会做UAT测试,当达到上线的标准后,测试报告会认为测试通过,由项目组与产品决定时间上线,上线完成,一周左右我们会写一个项目总结测试报告,总结我们在上一个版本中遇到的问题以及今后有哪些地方需要改进。产品迭代几次后,我们会跑自动化用例来测试所有的功能模块;

八、你介绍下,你最熟悉的项目?

  • 根据自己项目来

九、你们原来项目的主要的功能模块有哪些,你主要负责哪些模块?

  • 根据自己实际项目说

十、产品是怎么上线的?

  • 一般我们会选择晚上上线,开发测试还有客户产品全部到场,进行上线测试。
  • 1)首先,开发将代码打包到生产环境的服务器中,把代码包替换到服务器的目录中。如果数据表有变化,开发就会运行sql脚本,创建表,修改表的操作;
  • 2)接着,我们测试就开始先测试主体业务功能以及新增的功能模块;测试通过之后,我们会在界面上把上线测试的数据删除,在规定的日期正常上线。
  • 3)如果发现bug,开发人员当场修复bug,修复成功之后我们测试再复测,通过就可以正常上线。
  • 4)如果发现了bug开发人员在上线规定时间之前都还没有修复好的话,就看问题的严重性,如果严重就延期上线,或者迭代到下一个版本中。如果我们是迭代版本的话我们还需要版本回滚。如果不严重,产品跟客户觉得可以上线,就正常上线。

十一、你提交的bug,开发不认可怎么办?

  • 首先我会再看需求文档,是不是我的理解有误,如果是我对需求理解错的话我就去关闭bug;
  • 如果是bug再去让身边的同看看听下他们的意见,然后自己先再三确去复测,并且保存好截图和日志,确定这是一个bug之后我就去跟开发说明白,并且给他看bug重现的截图以及日志。
  • 如果开发还是不认可的话我就跟产品或项目经理说明白情况,

十二、在linux系统如何搭建测试环境?
1. 对于linux云服务器的tomcat容器:

  • 安装jdk并配置jdk环境变量
  • 安装mysql/oracle 数据库
  • 安装tomcat服务器
  • 根据开发提供的项目war包、数据库初始化脚本、配置文件,把war包放到tomcat的webapps目录下
  • 配置数据库和项目关联
  • 初始化sql脚本,建立好数据库的表结构
  • 最后重启tomcat服务

十二、对于无法重现bug,应该怎么处理?

  • 首先,我会多测几次,测了好多次都无法重现的话我就先把bug挂起。并且留意一下,看看往后的测试中会不会重现类似代码的bug,因为有些是偶现bug。如果在后面的测试中重现bug就激活。如果经过几个版本都还没发现的话就关闭bug

十三、 原来项目有遇到哪些经典的bug,你是怎么发现的,最后怎么解决的?

  • 1、经典bug:1.在理财中心的赚取小金库中,投资人投资收益为负数

    • 发现途径:我是在模拟投资人,输入投资金额的时候,显示出来的收益为负数
    • 解决:首先我去数据库查找到对应的表,比对结果跟界面显示的数据是否一样,一样我就把数据库的记录和界面显示截图都保存好。之后提交这个bug,开发人员通过修改代码,我再复测,没有重现bug
  • 2、还有一个就是在借款流程中,我们通过修改数据库中的数据,把借款时间修改了,制造出一个逾期未还款的数据,结果显示还款的金额比借款金额还少,而且管理费收得特别高,存在不合理性。

  • 3、还有一个是在产品上线后,运维人员在统计数据时发现少了一条数据,我们去数据库检查发现0分0秒的数据没有统计,后来开发人员修改了代码之后就解决了

十四、linux你是怎么用的?

  • (1)在测试执行的过程中,我们发现的bug,有时候需要定位bug,协助开发修复bug时
    • tail -200tail -500查看当天的日志的后面多少行或者前面多少行定位bug,
    • tail -f来查看日志里的关键字exception(异常)、error(错误)或用重定向(ls -la > ls.txt)把信息保存起来再用vi命令进入信息里然后打开搜索命令shift + :/进入文件定位模式搜索error,fatal(致命),或者exception等
  • (2)后台程序运行久了会对系统造成卡顿等诸多隐患或我们做性能测试的时候。
    • Ps -ef(显示所有进程)
    • top(监控程序执行状况)
    • free -m(显示内存使用情况)来查看系统资源
    • 如果服务器出现故障时我们也会用(service httpd status)看下服务器是否启动
    • ps -ef|grep httpd 查看apache进程是否启动
    • ps -ef | grep java查看jdk进程是否启动。
    • 如果服务器起不来,常见的问题有端口可能被占用,用netstat -an | grep 8080 查看端口是否已被占用。
  • (3)搭建测试环境的时候我们在是在linux下进行的
    • 搭建LAMP时在线用命令yum install安装apache,php以及mysql;
    • 或通过xshell来导入需要的环境包来搭建LTMJ(Tomcat、Mysql、jdk)

十五、数据库原来工作当中是怎么用的?
原来我们数据库用的比较多的,就是数据结果检查,测试一些数据准备,性能测试造大量数据

  • (1)测试执行到的结果,我们需要通过sql语句select来查找数据库对应的表,看看数据库信息跟我们执行的结果是否一致;

    • 比如:生成申请订单后,我们会去数据库里面去检查下,数据库中数据是否跟申请订单数据一致。
  • (2)我们在测试执行时需要做一些测试数据准备,我们就用insert into输入数据或(者 update set 修改数据),我们需要到数据库查看有没有相关记录保存,保存的数据跟我们输入或者修改的记录是否一致;

    • 比如:原来我们一个初审功能里面有个分页功能,测试分页功能,需要100条数据,我们就通过数据库操作添加100,可以用insert into。
  • (3)还有在做性能测试时,模拟用户场景时需要用到大量的数据,这时就需要我们到数据库中制造大量的数据出来。

    • 比如说,测试充值,需要大量用户数据,充值表中大量数据,比如10W条数据,我们就用存储过程去造。
delimiter //
create procedure 存储过程名(n int)
BEGIN
declare  i int default 0;
while i <= n do 
Insert into 表名 values(值1,值2,.......);
set i=i+1;
end while;
end //
delimiter ;
call 存储过程名(数据量(n));

十六、你想问什么问题?

  • 1,公司现在做什么项目
  • 2,公司目前做哪方面测试
  • 3,公司这边测试人员分配比例
  • 4,进入公司,我这边大概的工作安排
  • 5,公司这么后续发现机会还有培养

十七、自我介绍(参考)

  • 从业时间 、教育背景、工作经验 、项目经验 、擅长技能、你的性格,尽量与个人简历相一致
  • 你好,我叫XX,来自XXXX,在XXX学院计算机专业毕业,从毕业至今在XXX公司从事软件测试工作1年半。
  • 我们做的项目主要是XXX,是一个XXX的系统平台,涉及模块主要是XXX。项目中我负责过web及app功能测试、接口测试、压力稳定性测试。(跟简历项目一致)、能独立搭建测试环境。
  • 熟悉测试工具jmeter、soapui、loadrunner Fiddler Appium Monkey Postman…等的使用。
  • 也有过开发的经验,擅长shell、python编程语言(有该项经验就补充)
  • 我是一个耐心认真的人,有很大的信心做好测试的工作(可说可不说,影响不大)。

十八、说一下你项目的测试流程?

  • 首先会召开需求分析会议,参加人员有产品、开发和测试,主要是探讨需求主要的一些功能点。
  • 完了之后,开发就排期进行开发,主管开始编写测试计划,对我们进行任务分配
  • 我们参考需求规格说明书及原型图编写测试用例,写完之后会进行用例评审,有评审修改的就修改整理形成最终的用例版本,之后开发人员版本编译完成后,我们会先进行预测,主要对主功能业务进行测试
  • 如果主业务流程不通过,直接返回给开发进行修改。预测通过,依据测试用例进行系统测试,测试过程中,提交bug,跟踪bug,进行回归测试直至不存在严重bug,满足用户需求,测试完后编写测试报告,发布上线后,关注web是否正常运行。

十九、介绍下你最近做的一个项目?

  • 项目陈述可以先整体后局部,整体可量化(项目规模、时间成本、人力成本),然后测试环境(知道的就说)、然后是角色职责。
  • 这个XXX项目,是一个XXX的系统平台,主要业务范围是XXX。项目模块主要是XXX。项目从今年3月份(时间按简历时间更改)开始进入立项、设计开发,到6月底(时间按简历时间更改)完成测试发布上线。
  • 我们测试这边是3个人负责这个项目,需求评审完成后老大给我们测试任务,编写测试用例。我主要负责哪些模块(按你具体的情况说明)。
  • 第一轮测试用了一周的时间执行完,整个项目测试了将近1个多月,总共测试了4轮,前1轮发现了将近100个左右的bug.(项目上线前遗留了几个Bug是什么程度的,最后是怎么处理的(这句有准备就说))

二十、对于复现率不高的bug怎么处理?

  • 先在出现问题的环境上尽量重现,保持浏览器环境、出现问题的特定账号等的一致,多次尝试仍然不能重现,也要记录到bug平台。
  • 将出现问题的特征步骤尽量描述清楚,附带问题截图及日志截图,注明偶现;如果项目时间允许,bug等级高,需要开发协助重现;如果时间不允许,记录到bug平台后续再跟进。

二十一、您在以往的测试工作中都曾经具体从事过哪些工作?其中最擅长哪部分工作?

  • 我曾经做过web测试,后台测试,客户端软件,其中包括功能测试,性能测试,用户体验测试。
  • 最擅长的是功能测试 、自动化测试用例的编写和执行,自动化测试框架的搭建和维护

二十二、你觉得bugzilla在使用的过程中,有什么问题?

  • 界面不稳定;
  • 根据需要配置它的不同的部分,过程很烦琐。
  • 流程控制上,安全性不好界定,很容易对他人的Bug进行误操作;
  • 没有综合的评分指标,不好确认修复的优先级别。

二十三、对一个不熟悉的功能进行设计用例,该如何做?

  • 确认业务需求
  • 熟悉业务说明文档
  • 不明白之处找对应开发、产品 沟通

你可能感兴趣的:(#,软件测试工程师面试合集,软件测试)