1、软件测试流程是什么?
①需求分析,需求评审②编写测试计划③编写测试用例,用例评审④执行测试,提交bug,回归测试⑤编写测试总结报告
2、讲一下最近的一个项目?
3、开发说你的bug不是bug时,你怎么处理?
3.①.首先确认是不是因为自己对BUG的描述不清晰,导致开发人员难以理解;
②.其次确认开发环境与测试环境是否一致;
③. 确认是否是偶现的难以复现的BUG;
④. 若开发人员说BUG就是设计如此,则要与产品经理确认需求是否发生变化,若需求有变化,则将BUG关闭,并及时更新测试用例;
⑤. 若意见还不一致,就和开发人员、产品经理一起开会讨论BUG是否需要修改,若不修改,则将BUG关闭,最好保留相关记录,便于后续追溯。
4、你印象最深刻的bug是什么?
5.给你一个功能,你会测试哪些点?
①输入框②搜索功能③增添改删功能④密码功能⑤注册登录功能⑥文件测试⑦界面测试⑧按钮检查⑨兼容性问题
6、接口测试怎么做的
①查看协议类型 HTTP或者HTTPS还是其它
②确定请求方式 GET、POST
③确定请求地址:IP:PORT
④确定请求接口路径/api/xxx/xxx
⑤确定请求报文格式json、form-data或其它
⑥依据接口文档入参,拼装报文
7、bug定位有哪些方法?
①抓包分析法②当前现象放大③当前现象放小④类比法⑤报错原因分析法⑥偶现问题处理
8、如何区分前后端的bug
前后端BUG的特点:前端bug(界面相关、布局相关、兼容性相关)后端BUG(业务逻辑相关、性能相关、数据相关、安全性相关)
①经验法②日志查看法③接口查看法
9、Linux常用的一些命令
(cat tail find grep ps kill top),一般主要回答查看文件(cat、tail、more、grep),查看进程(ps),查看内存(top、free)、cpu(top)以及杀掉进程(kill)等相关命令
10、公司测试流程?
我们公司的话,首先会参与需求评审会议,产品经理会介绍产品业务及功能细节。需求会议之后,我们老大会制定测试计划。之后我们会按照计划先进行用例的编写,用例编写完成后进行测试用例的评审。等开发产品编译完毕,提测会,我们测试组就介入测试。先进行预测,再进入到正式的测试。测试过程中发现的缺陷,全部提交到缺陷管理平台,并对bug进行跟踪,进行回归测试,直至缺陷率满足用户需求。这里一般测试3轮到5轮。测试结束后,对测试结果进行分析,编写测试报告。之后就是运维发布上线,上线后,关注线上产品是否正常运行。
11、发布上线的流程是什么?
项目测试报告确认通过之后,这个项目会按时上线,如果上线后,出现重大bug的话,就会看短时间内能不能修复,如果这个bug不能修复的话,就会延期上线。如果能够修复的话,就按时上线,上线之后会交由运维进行负责。
12、怎么保证提交一个高质量的bug
如果这个bug可以对我们项目有一个用户体验比较大的提升的方面的话,我觉得它就是一个好的bug或者说是一些安全等级比较重的比如用户权限错乱
13、介绍一下你的项目?
(尚医通一站式预约挂号平台)
该项目旨在缓解看病难、挂号难的就医难题,给用户提供的一个网上预约挂号系统。项目主要分为后台医院管理系统以及前台用户系统。我主要是负责医院详情显示、预约挂号、微信支付等功能模块。
(离线数仓)
基于谷粒商城项目搭建的离线数据仓库,旨在做数仓和离线指标计算。该数仓主要分为ODS、DWD、DWS、ADS等四
层,采用维度建模的思想,并主要分析了日活、月活、点赞、区域订单、下单量、订单总额等指标。
14、对于复现率不高的bug怎么处理?
首先对于偶现bug的提交。只要是出现了bug都必须记录到缺陷管理平台。bug出现的步骤环境帐号等信息尽量描述清楚。包括操作系统、浏览器版本,app写明机型型号;附带问题截图及日志截图,且标题注明偶现。提交后对于bug的跟踪。每一轮回归测试,都会尽可能去重现这个bug;多轮回归测试中仍然不能重现,会依据这个bug的严重程度决定是否继续跟踪。严重程度低,一般就关闭;bug严重程度高,在上线前需要开发一起协助复现,如果还是复现不了,记录到bug平台后续版本再跟进。
15、给你一个行李箱,你怎么测试?
从功能测试角度看的话,拉杆箱大小、厚度、容量、各个面承重、拉杆承重是否质检标准;超出容量、超出承重会有什么影响;拉杆的伸缩收回是否灵活,开锁解锁是否方便安全。
界面测试,我会考虑箱子的材质、颜色、花纹、形状是否符合要求,箱子吊牌logo是否正确。
易用性方面,箱子拉杆手把是否易握防滑、箱子开合的拉链是否易拖动。
兼容性方面,箱子脚轮滚动是否支持平底、沙地、泥土地、楼梯使用,还有不同温度下使用情况。
安全测试方面,材质是否安全无毒,遇高温,淋雨是否释放有害物质。
压力测试方面,负重30公里是否有磨损,负重从1米左右落下是否有磨损,拉杆来回展开收回是否正常。
16、给你一个新项目,你怎么测试?
拿到项目后,先熟悉需求、原型图,了解被测功能和各个功能的业务逻辑,支持哪些平台,有哪些不同的应用场景,是否需要考虑带稳定性,性能等等。针对以上需要测试的内容进行大概的测试规划,然后逐个细化去设计测试用例。整个过程中存在疑问的及时跟开发产品沟通确认。拿到被测软件后,按照用例执行测试,提交bug,并有效进行回归测试完成bug跟踪;测试完毕后,及时汇报测试结果,输出测试报告。
17、如何成为一名软件测试工程师?
硬技能方面:第一计算机知识,包括操作系统,数据库,通信协议,熟悉一门编程语言,第二软件测试知识,包括各种测试理论,测试方法,测试用例编写,缺陷跟踪流程,软件质量评估等;第三产品业务分析能力,熟悉所测产品的一些隐藏需求或者功能。
软技能方面,像沟通能力,做事严谨耐心,富有责任心,对被测产品具有怀疑与破坏的精神,另外还要善于自我总结,自我督促,以上就是我认为需要具备的素质及技能。
18、如何制定测试计划?
测试计划包括测试的目标,测试的范围,还有测试环境的说明,以及测试类型的说明。另外还有测试工具模块的划分,测试的负责人,测试执行轮次的时间安排,测试的风险等,其中测试模块的划分需要根据测试人员对业务的熟悉程度以及个人能力进行分配,工作量的估算需要结合以往的经验和本项的需求情况进行评估
19、接口测试的流程是什么?
ui测试的流程是先需求分析和评审,测试计划的编写,测试用例的评审和设计,用例的执行,缺陷的管理和回归,测试报告。
接口测试流程也一样,只不过多了接口文档分析环节,分析响应的数据格式,信息头,异常的响应信息以及错误代码,还有多个接口之间彼此的依赖关系。最后一个就是测试脚本构建环节
20、测试点和测试用例的区别
测试点是测试人员在测试的时候需要关注的地方,而测试用例包含前置条件、操作步骤、测试数据和期望的结果等等很多要素。测试用例是在测试点的基础上加工得到的,一个测试点可以延伸多个测试用例去覆盖他,常见的测试用例方法有等价类,边界值,流程图,错误推断等
21、get和post的区别?
一、get请求参数是放在url的,post请求参数是放在请求体里面
二、get请求可以被浏览器缓存,post请求不能被缓存
三、get请求参数长度是受限的,post没有限制
四、get请求可以通过浏览器访问,它支持刷新和后退,pst请求不能直接使用浏览器,刷新之后数据需要重新发送。
22、http和https的区别
http传输的是明文,未加密的,无需证书,端口号 80
http支持加密传输,是由ssl\tls协议+http 构建的,需要ca证书 端口号为443
23、如何做app兼容性测试
app的兼容性测试主要包含硬件设备的兼容性、操作系统的兼容性,分辨率兼容性,网络兼容性。
硬件的兼容性,需要覆盖市面上的主要厂商以及各型号的产品,一般需要考虑厂商型号来组合挑选,如果不想买真机测试,可以测试云测平台,测试点主要集中在app的安装和卸载以及app的正常运行方面
操作系统兼容性测试需要覆盖市面上主流的操作系统以及其他的版本
分辨率兼容性测试需要覆盖市面上主流的各种屏幕分辨率,屏幕的尺寸。这里主要关注的是UI上对各种分辨率,屏幕尺寸的适配情况,以及需要对app的界面展示等各类ui进行测试。
网络兼容性就是在不同的网络知识运营商下app能够正常工作
24、漏测了bug,项目上线后才发现怎么办
发现bug后,项目组应该快速地响应和处理,记录bug产生的过程,第一时间将缺陷修复,然后就要总结反思,以及如何规避,降低后面再出现类似问题的概率。
常见bug漏测原因:
一、需求不明确导致测试用例编写过于粗略
二、需求变更,测试用例没有及时更新
三、测试用例覆盖不全面,测试场景出现遗漏
四、测试过程中没有按照测试用例执行
五、测试时间不充足,导致一些功能点在测试时被忽略
六、测试环境或数据受限,导致缺陷漏测
七、开发人员修复bug的时候引入新的bug
25、linux环境下,如何结束一个进程
ps -ef | grep Tomcat 查找出tomcat的端口号
kill -9 端口号 杀死进程
26、如何提交一份高质量的缺陷跟踪单
在禅道里提交一个bug,写上缺陷描述,所属模块,版本,操作步骤,截图等
27、linux中几周最常用的查看文件的命令
cat:可以一次显示整个文件,适用于内容较少的情况
more:适用于查看内容较多的文件,可以使用空格键翻页看后面的内容
less:适用于查看内容较多的文件,less比more更为灵活,可以往上或者往下翻页
head:用于查看文件的前n行
tail:用于查看文件的后n行
28、为什么要做接口测试?
现在大部分项目都是前后端分离的,在前端开发还未完成的情况下,只要后端接口开发完,我们就可以提前做接口测试,结合自动化技术能极大的提高测试的效率。第二个呐就是基于安全的考虑,只依赖前端的限制,已经完全不能满足系统安全需求,毕竟绕过前端验证比较容易,也就是说还要从接口的层面进行验证。
29、在浏览器里面输入url会发生什么?
一、DNS解析
二、建立TCP连接
三、发送HTTP请求
四、服务器处理请求
五、服务器响应返回结果
六、浏览器解析HTML
七、浏览器布局渲染
30、常见的抓包工具
fiddler和charles比较适合抓http和https的协议报文,还有抓底层报文的wireshark
31、持续集成和自动化测试?
持续集成是软件开发的一种实践,就是团队开发经常集成他们的工作,每天可能会发生很多次集成,每次集成都是通过自动化构建,包括编译,发布,自动化测试的方式来验证。
32、自动化测试如何处理验证码?
方法一:在产品没上线之前,可以找开发把验证码先注释掉
方法二:让开发预留一个万能验证码
方法四:使用验证码的识别技术ocr 比如java里的test4j库
33、常见的测试工具
测试管理类:禅道、jira、testlink
接口测试工具:jmeter,postman、fiddler
自动化测试工具:selenium,appium
性能测试工具:loadrunner、jmeter
34、你知道什么是自动化的po模式?
PO模式就是PageObject,它的主要作用就是为了减少代码的重复,让代码可读性更强,更容易维护
PO设计模式是怎样进行设计的?
PO设计模式主要包含三层,对象层,操作层,业务层
35、万能的测试用例设计方案?
我们设计用例主要从功能、性能、安全、网络兼容性、ui界面、专项测试等几大块
功能是从我们的软件产品有没有实现具体的功能是通过各种测试方法论设计测试用例来进行测试的
性能是我们重点考虑的是操作的响应时间,以及服务端的cpu,内存,网络,磁盘io的消耗情况
安全上看敏感信息是否加密,sql注入等一些简单的安全测试
ui界面上主要是关注一些测试点,如按钮是否可用,界面之间是否能正常跳转布局等
36、一个接口请求不通,该如何排查?
可能是ip端口号或者url写错了,客户端和服务端的网络不通,服务端项目没有部署起来,或者是服务端的防火墙拦截了,客户端是否设置了网络代理
37、UI自动化中定位不到元素的原因
一 定位器选择错误
二 定位字符串错误
三 页面元素没有及时加载
38、如何分析定位bug
必须要借助工具才能完成,比如说我们可以使用fiddler抓包,获取接口信息,如果是前端的问题,那么在前端输入信息和fiddler抓包的请求就会不一样,如果是接口的响应数据有问题,那就属于后端bug,那么深入定位后端bug,就需要借助日志来完成。根据开发提供的日志文件,使用关键字搜索对应日志文件产生错误日志,根据日志的描述来判断,到底哪个地方出了问题。
39、你知道测试用例的编写流程吗?
首先考虑流程,主要流程首先要跑通,然后考虑因果图,最后才是等价和边界,换句话说,需求会议完成后,你先二次熟悉产品,然后根据模块分析出业务逻辑,按照业务逻辑梳理主要流程,保证主要流程没问题,然后就是反向推理配合因果图,判断异常场景是否达成处理目标,然后才是针对输入框的等价和边界