软件测试面试题最新整理

1. 自动化测试如何处理验证码?

方法一:找开发去掉验证码或者使用万能验证码

方法二:使用OCR自动识别

方法三:记录cookie,通过向浏览器中添加cookie,可以绕过登录的验证码

2. 说一下接口测试的流程?

1) 分析接口文档和需求文档

2) 编写接口测试计划

3) 编写接口测试用例

4) 接口测试执行

5) 生成接口测试报告

3. 如何制定软件测试计划?

按照5w1h的原则进行分析和完善测试计划,测试计划内容有:

1) 测试项目简介

2) 需要测试的特征

3) 不需要测试的特征

4) 测试的方法 (测试人员、测试工具、测试流程)

5) 测试环境(软件、硬件、网络)

6) 测试开始条件和结束条件

7) 测试者的任务、培训

8) 测试进度与跟踪

9) 测试风险与解决

10) 本测试计划的审批与变更方式

4. cookie和session之间有什么区别?

1) 安全性: Session 比 Cookie 安全,Session 是存储在服务器端的,Cookie 是存储在客户端的。

2) 存取值的类型不同:Cookie 只支持存字符串数据,Session 可以存任意数据类型。

3) 有效期不同: Cookie 可设置为长时间保持,比如我们经常使用的默认登录功能,Session 一般失效时间较短,客户端关闭(默认情况下)或者 Session 超时都会失效。

4) 存储大小不同: 单个 Cookie 保存的数据不能超过 4K,Session 可存储数据远高于 Cookie,但是当访问量过多,会占用过多的服务器资源。

5. 你之前项目的测试流程是什么?

1) 测试需求分析

2) 测试计划

3) 测试设计(用例)

4) 测试执行

5) 测试评估(报告)

6. http与https的区别是什么?

1) "http"和"https"都是超文本传输协议,但不同的是"https"是加安全协议,所以跟多用于敏感的通信,比如交易场景。

2) https主要由两部分组成:http+ SSL / TLS,也就是在 http上又加了一层处理加密信息的模块。

3) https协议是由SSL+http构建的可进行加密传输、身份认证的网络协议,要比 http安全,可防止数据在传输过程中被窃取、改变,确保数据的完整性。

7. get与post的区别是什么?

1) 传送方式:get通过地址栏传输,post通过报文传输。

2) 传送长度:get参数有长度限制(受限于url长度),post无限制。

3) TCP数据包:GET产生一个TCP数据包;POST产生两个TCP数据包。

4) 请求方式的区别: POST请求会把请求所携带的数据放在http请求的请求体里边,get会把请求的数据暴露于请求的地址栏里边,相较于get请求,post的请求相对安全一些

5) 安全性:POST的安全性比GET的高。

8. 提交的bug跟开发起冲突应该怎么办?

1、看自己的bug描述是否清楚

2、检查bug的定级是否符合公司的标准(不能将一般级别的bug定义为崩溃啊级别的)

3、从用户的角度去说服开发人员(作为用户,遇到类似的bug会咋样,让开发人员意识到bug的存在以及会引发的一些问题)

4、不断提高自己的业务水品和技术水平(这样不仅可以发现问题,还能自己提供一些解决方案,时间久了,说话就有分量了,别人也会尊重你的看法)

5、和开发人员,产品经理一起开会,商量解决bug的解决方案(不要和开发人员产生较严重冲突)

9. 你是如何做app的兼容性测试的?

在不同的真机上进行相应的测试,一般选择主流品牌和机型,⾮主流机型是否需要覆盖则需要权衡。根据项目的具体内容进行区分, 普遍的兼容性测试考察点,包含设备型号, 系统版本, 屏幕尺寸, 屏幕分辨率, 网络类型及软硬件兼容性等。

10. 测试过程中使用数据库的场景?

1) 搭建测试环境,需要⽤到数据库

2) ⽇常测试过程中需要sql语句对数据进⾏验证(如页⾯的增删改查)

3) 性能测试时,通过脚本连接数据库批量造数据

4) 异常数据测试需要修改数据库某条数据,主要是页⾯⽆法短时间内造出来的数据(⽐如⽤户过期时间,图⽚过期时间,任务开始或结束时

5) 间等等)

6) 环境升级(⽐如升级的sql语句,增删改查了⼀些表)

7) 数据迁移(⽐如新版本⽆法兼容旧数据,迁移旧版本的⽤户等数据)

11. 发现了一个bug,如何定位是app端还是服务端的?

方法一:可以通过抓包分析,通过对客户端进行抓包分析服务端返回的数据是否符合预期,如果服务端的数据是正确的,那就是客户端的问题。

方法二:可以用日志分析,通过查看客户端、服务端的日志,分析有没有异常日志信息,从而确定具体的原因。

12. app测试和web测试的区别在哪里?

从功能测试方面的来看,在流程和功能测试上是没有区别的。系统测试和一些细节可能会不一样。

不同点:

1) 系统结构方面

web项目:一般都是b/s架构,基于浏览器的;web测试只要更新了服务器端,客户端就会同步会更新,并且保证每一位用户的客户端完全一致。

app项目:c/s结构的,必须要有客户端;更新了服务器端,是不能保证每一位用户的客户端一致,除非用户更新了客户端;app 修改了服务端,则客户端用户所有核心版本都需要进行回归测试一遍。

2) 性能测试

web项目:只需要监测响应时间、CPU、Memory

app项目:除了监测响应时间、CPU、Memory外,还需监测流量测试、耗电量测试等

3) 兼容性测试

web是基于浏览器的,所以更倾向于浏览器和电脑硬件,电脑系统的方向的兼容(Windows7、Windows10、 Linux等),不过一般还是以浏览器的为主。而浏览器的兼容测试一般是选择不同的浏览器内核进行测试(IE、chrome、Firefox)。

app的则是兼容的手机设备,不同品牌,不同分辨率,不同的Android版本,甚至不同的操作系统的兼容测试。系统总的来说也就分为Android和iOS,使用Testin这样的商业工具也可以做测试。

4) 测试工具方面

自动化工具:APP 一般使用 Appium; Web 一般使用 Selenium

性能测试工具:APP 一般使用 JMeter; Web 一般使用 LR、JMeter

5) 相对于 Web项目,APP有专项测试

①  安装测试

app需要安装测试,需要考虑安装时的中断、安装后删除安装的文件等情况

②  卸载测试

APP需考虑卸载后是否删除app相关的文件

③  更新测试

分强制更新、非强制更新、增量包更新、断点续传、弱网状态下更新

④  交叉事件测试

app则是在操作软件的时候来电,短信,电量提醒等外部事件的测试

⑤  操作类型测试

app需要对横版、手势、多点触控,前后台切换等进行测试

⑥  网络测试

app需要进行弱网和网络切换测试,终点时进行回退和刷屏是否会造成二次提交

⑦  升级测试

app是需要设置升级测试的提醒机制,升级取消是否影响原有的功能,升级之后用户的数据是否被清楚

⑧  边界测试

app可用存储空间少、没有SD卡/双SD卡、飞行模式、系统时间有误、第三方依赖(QQ、微信登录)等

⑨  权限测试

设置某个App是否可以获取该权限,例如是否可访问通讯录、相册、照相机、语音等

13. 如果漏测了bug,项目上线以后该怎么办?

应尽快相应并作处理,记录BUG产生的过程,判断漏测的原因,并第一时间联系开发人员将BUG修复,紧接着是总结,反思漏测原因和后面的规避方案,降低再次出现类似的问题。

14. 在浏览器中输入一个url会发生什么?

1) 浏览器查找域名的IP地址

2) 浏览器给web服务器发送一个HTTP请求

3) 对应服务的永久重定向响应

4) 浏览器跟踪重定向地址

5) 服务器“处理”请求

6) 服务器发回一个HTML响应

7) 浏览器开始显示HTML

8) 浏览器发送获取嵌入在HTML中的对象

9) 浏览器发送异步(AJAX)请求

15. 为什么要做接口测试?

1) 发现底层的Bug,降低修复成本。

2) 只要接⼝测试完了,后端就不变了,前端的变化也不会影响后端。

3) 检查系统的安全性、稳定性。

4) 系统的复杂度不断上升,传统测试⽅法的成本急剧增加且测试效率不断下降,针对这些情况,接⼝测试可以提供好的解决⽅案。

5) 接⼝测试不同于传统的单元测试,接⼝测试是站在⽤户的⾓度对系统接⼝进⾏全⾯、⾼效、持续的测试。

6) 通过接⼝⾃动化测试可以实现⾃动化持续集成,且相对UI⾃动化测试来讲,其稳定性⼤幅度增加,可以减少⼈⼯回归测试成本,缩短测试周期,满⾜后端快速发布的需求。

7) 现在很多系统的前后端架构是分离的,从安全层⾯来说进⾏接⼝测试有以下好处:

i. 只在前端限制访问已经不能满⾜系统的安全要求,需要在后端进⾏控制,因此需要从接⼝层⾯进⾏⽤户访问验证。

ii. 前后端传输、⽇志打印等信息是否加密传输需要验证,特别是涉及⽤户的隐私信息,如⾝份证、银⾏卡等,也需要进⾏接⼝测试。

16. 什么是内存溢出和内存泄漏?

1、 内存溢出:(Out Of Memory---OOM)

指程序在申请内存时,没有足够的内存空间供其使用。(就是内存不够用了)

2、内存泄漏: (Memory Leak)

指一个不再被程序使用的对象或变量还在占用着内存空间无法被回收。

17. 进程和线程的区别在哪里?

1) 线程在进程下行进

2) 一个进程可以包含多个线程

3) 不同进程间数据很难共享

4) 同一进程下不同线程间数据很易共享

5) 进程要比线程消耗更多的计算机资源

6) 进程间不会相互影响,一个线程挂掉将导致整个进程挂掉

7) 进程可以拓展到多机,进程最多适合多核

8) 进程使用的内存地址可以上锁,即一个线程使用某些共享内存时,其他线程必须等它结束,才能使用这一块内存。如:"互斥锁"。

9) 进程使用的内存地址可以限定使用量。如:“信号量”。

18. 如何提交一份高质量的缺陷跟踪单?

1. 尽早提交缺陷报告。

2. 清楚地说明此问题对用户价值的危害。

3. 提供尽可能多的技术信息(如包含复现该缺陷需要的环境变量或测试所用的数据文 件),方便程序员调试。

4. 报告的软件缺陷进行了必要的隔离,报告的缺陷信息具体、准确。

5. 易于搜索软件测试报告的缺陷。

6. 一个缺陷报告中只报告了一种缺陷。

7. 缺陷报告中不要提问题。

8. 避免常见的错误

a. ü 我(I)、你(You)、他/她(He/She)

b. ü 情绪化的语言和强调符号!!!

c. ü 似乎(Seems)、看上去可能(Appears to be)

d. ü 认为比较幽默的内容

e. ü 不确定的测试问题(Issues)

19. 你之前项目的测试用例怎么设计的?

需求分析→提取测试点→测试用例的编写→测试用例评审

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

20. 在项目中如何保证软件的质量?

1) 熟练掌握测试理论

2) 尽早介入需求,熟悉产品各个模块的功能和业务,提出不合理的需求,补充未被考虑进去的备选流

3) 制定测试计划,且计划要和项目整体计划协调进行

4) 编写测试用例,明确优先级,测试执行阶段严格按照测试用例进行

5) 功能,性能,易用性,兼容性等功能性和非功能性需求都要考虑进行测试

6) 每天重复执行的测试可以考虑用自动化测试来提高效率

21. token和seesion的区别是什么?

1) Session 是一种记录服务器和客户端会话状态的机制,使服务端有状态化,可以记录会话信息。而 Token 是令牌,访问资源接口(API)时所需要的资源凭证。Token 使服务端无状态化,不会存储会话信息。

2) 作为身份认证 Token 安全性比 Session 好,因为每一个请求都有签名还能防止监听以及重复攻击,而 Session 就必须依赖链路层来保障通讯安全了。如果你需要实现有状态的会话,仍然可以增加 Session 来在服务器端保存一些状态。

3) 如果你的用户数据可能需要和第三方共享,或者允许第三方调用 API 接口,用 Token 。如果永远只是自己的网站,自己的 App,用什么就无所谓了。

22. 什么是持续集成和自动化测试?

1) 持续集成指的是,频繁地(一天多次)将代码集成到主干。

2) 自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。

23. 常见的抓包工具有哪些?

Fiddler、Firebug、Charles、httpwatch、Wireshark、SmartSniff、Proxyman、HttpCanary、tcpdump、浏览器自带的“开发者工具”

24. udp协议和tcp协议有哪些?

1) 运行于TCP协议之上的协议:

①  HTTP协议:超文本传输协议,用于普通浏览

②  HTTPS协议:安全超文本传输协议,身披SSL外衣的HTTP协议

③  FTP协议:文件传输协议,用于文件传输

④  POP3协议:邮局协议,收邮件使用

⑤  SMTP协议:简单邮件传输协议,用来发送电子邮件

⑥  Telent协议:远程登陆协议,通过一个终端登陆到网络

⑦  SSH协议:安全外壳协议,用于加密安全登陆,替代安全性差的Telent协议

2) 运行于UDP协议之上的协议:

①  DHCP协议:动态主机配置协议,动态配置IP地址

②  NTP协议:网络时间协议,用于网络时间同步

③  BOOTP协议:引导程序协议,DHCP协议的前身,用于无盘工作站从中心服务器上获取IP地址

25. linux中几种常用的查看文件内容的命令?

1) file查看⽂件类型

2) cat命令

3) more命令

4) less命令

5) tail 命令查看最后⼏⾏的⽂件内容

6) head命令

26. linux环境下如何查找一个文件的路径?

find path -name filename

27. 在linux环境下如何查看和结束进程?

一、查看进程信息相关命令

1、ps aux 和 ps -ef 命令

2、使用top命令跟踪包括CPU、内存等系统资源占用情况

3、pstree命令以树状图的方式展现进程关系

二、结束进程操作

1、使用查看ps -ef进程ID信息

2、使用kill / killall 结束进程

28. 数据库中的having和where有什么区别?

1) 作⽤的对象不同。WHERE ⼦句作⽤于表和视图,HAVING ⼦句作⽤于组。

2) WHERE 在分组和聚集计算之前选取输⼊⾏(因此,它控制哪些⾏进⼊聚集计算), ⽽ HAVING 在分组和聚集之后选取分组的⾏。

3) having⼀般跟在group by之后,执⾏记录组选择的⼀部分来⼯作的。where则是执⾏所有数据来⼯作的。

4) having可以⽤聚合函数,而where不可以。

29. 主键、外键、索引的区别在哪里?、

主键外键索引
定义:唯一标识一条记录,不能有重复的,不允许为空表的外键是另一表的主键, 外键可以有重复的, 可以是空值该字段没有重复值,但可以有一个空值
作用:用来保证数据完整性用来和其他表建立联系用的是提高查询排序的速度
个数:主键只能有一个一个表可以有多个外键一个表可以有多个惟一索引

30. 怎么样才能做好测试工作?

1) 了解需求,进行需求分析

2) 编写测试计划和设计

3) 测试执行

4) 测试报告

5) 总结

31. 用monkey的时候,发现过什么问题吗?

日志无法记录

32. 性能测试场景怎么设计?一般都有哪些场景?

场景设计:分析涉及业务,分配业务占比和运行时间,分配并发数。

场景:基准测试场景、单接口负载测试、综合性能测试场景、容量测试场景、浪涌测试、异常性能测试、稳定性性能测试

33. 测试用例如何设计才能更加全面呢?

测试用例按照九个基本项设计,分别为:

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

34. web自动化中如何处理js的alert的弹窗问题?

先使用switch_to.alert切换到浏览器弹出框

再使用alert类的操作方法:

dismiss():取消

accept():确定

text():获取弹框中的文本信息

send_keys():往弹框中输入文本信息

35. app的push推送需要考虑哪些测试点?

push消息测试主要从以下⼏个⽅⾯考虑:

push消息针对不同的⽤户群体:

全部⽤户、部分⽤户、特定⽤户

1、push消息能否按照正确的业务流程进⾏推送

2、push消息针对特定的⽤户时,后台检测是否推送正确给特定⽤户

3、当⽤户离线时,能否接收到push消息

4、当⽤户离线3天时,能否接收到最早之前的消息

5、当⽤户选择不接收消息推送时,那么是否还有消息推送

36. 测试工作使用fiddler来做什么?

用于抓包,fiddler抓的是HTTP、HTTPS协议。

37. 测试用例的编写流程?

需求分析→提取测试点→测试用例的编写→测试用例评审

38. 常见的测试工具?

禅道、Bugfree、bugzilla、Testlink、mantis、QTP、selenium、weblnject、maxq、jmeter、undefined

39. 接口测试到底能测试什么?

一、 可用性测试:根据约定的协议、方法、格式内容,传输数据到接口经处理后返回期望的结果:

1、接口功能是否正确实现

2、返回值测试-返回值除了内容要正确,类型也要正确,保证调用方能够正确的解析

3、参数值边界值、等价类测试;错误和异常处理测试

4、输入异常值(空值、特殊字符、超长约定长度等),接口能正确处理,且按预期响应

5、输入错误的参数,接口能正常处理,按预期响应

6、多输入、少输入参数,接口能正常处理,按预期响应

7、错误传输数据格式(如json格式写成form格式)测试

二、 安全性测试:主要指传输数据的安全性:

1、敏感数据(如密码、秘钥)等是否加密传输

2、返回数据是否含有敏感数据,如用户密码、完整的用户银行账号信息等

3、接口是否对传入的数据做安全校验,如身份ID加token类似校验

4、接口是否防止恶意请求(如大量伪造请求接口致使服务器崩溃)

三、 性能测试:如接口的响应时间、并发处理能力、压测处理情况:

1、并发请求相同的接口(特别为POST请求),接口的处理情况(如插入了相同的记录导致数据出错,引发系统故障)

2、接口响应时长在用户可忍受的范围内

3、对于请求量大的瓶颈点是否满足当前业务需要

40. bug的生命周期都有哪些阶段?

Bug的生命周期,就是一个bug被发现到这个bug被关闭的过程,生命周期中一般缺陷状态:新建、指派、已解决、待验、关闭。

如果待验证的bug在验证是没有解决好,需要重新打开(激活)→指派→已解决→待验,循环这个过程,中间其他状态:重新打开、拒绝、延期等。

41. 如何处理iframe元素的定位?

1. 确定要操作的元素是否在iframe上。

2. 切换,切换之后,就可以对iframe上的元素进行操作。

3. switch_to_iframe方法上的横线。当我们调用switch_to_iframe时,编译器会在方法上划一条线

4. 返回主页面。我们切换到iframe上之后,就无法对iframe以外的元素进行操作,如果需要,我们需要退出iframe

42. pytest和unittest有什么区别?

1.uninttest是python的官⽅库,兼容性稍好。pytest在安装时可能会出现和python版本不匹配的问题

2.uninttest在编写⽤例时是以类的形式编写的,并且都要继承testCase,pytest当中⽀持函数和类两种编写形式,并且pytest有conftest.py这个⽂件来⽀持全局的共享前置后置

3.在⽤例收集上,uninttest要利⽤testloader和testsuite来主动收集和加载⽤例,⽽pytest能够⾃动识别⽤例。

4.在⽤例分类筛选上uninttest稍显⿇烦,⽽python可以通过打标签轻松筛选⽤例。

5.如果运⾏失败的话,uninttest官⽅没有提供失败重启的机制,⽽pytest⾃带失败重启的机制。

6.在运⾏结构⽅⾯,uninttest没有⽀持插件,⽽pytest中有700多个插件可以⽀持。

43. 显示等待与隐式等待有什么区别?

1) 显示等待是针对某个元素,隐式等待是全局的是针对所有元素。

2) 显⽰等待必须在每个需要等待的元素前⾯进⾏声明,隐式等待只需要声明⼀次。

44. 如何判断一个接口是否有bug?

第一步:检查一下做接口测试时上传的这些接口的地址、参数、头部信息、还有请求体信息等等是不是正确的。

第二步:看一下响应消息有没有问题,响应消息是不是跟接口文档是一致的。

第三步:同步的检查一下数据库里的数据是不是正确的。

如果这三个都没有问题的话,一般来说接口测试是OK的。如果接口返回值跟接口文档是不一样的,或者说数据库里的数据存储是有问题的,那么这个接口可能会有bug了。

45. 性能测试一般关注哪些指标?

1) 需满足的并发数

2) TPS(每秒处理事务的能力)

3) 响应时间(平均响应时间、90%响应时间)

4) 错误率

5) 线程对CPU占用

6) 对内存占用

7) 磁盘I/O

8) 网络情况

46. ui自动化测试中,定位不到元素的原因有哪些?

1) 没有打开正确的网址

2) 定位器选择错误

3) 定位表达式错误

4) 元素嵌套在iframe中

5) 元素在新窗口中

6) 页面元素没有及时加载

7) 页面元素不可见或不可点击

8) 页面元素是动态的

9) 脚本流程与实际不符

47. 测试时间比较紧张的时候,如何保证测试质量?

1、对需求要明确,对需求的优先级也要明确,在项目的过程中就可以少做变更的工作。减少测试的工作量。

2、由资深测试工程师对测试用例进行设计,并进行用例评审。

3、用例要重点覆盖主要功能和主要流程,重点关注存在的严重死机或数据严重丢失等BUG。尽量把所有最严重的问题都能找出来。

4、对以往的BUG进行分析,关注容易出现BUG的模块。

5、与开发团队合用,督促开发尽快关闭已知BUG,加快BUG的收敛。

48. webdriver中quit和close有哪些区别?

1、使用close()方法关闭浏览器后,并不会清除临时文件中的webdriver临时文件。

2、使用quit()关闭浏览器后,会自动删除临时文件夹。

49. 测试报告中都包含有哪些测试的内容?

包括:项目背景、需求分析、测试时间、测试环境、评审记录、测试范围、测试用例、功能实现清单、缺陷统计、测试统计(包含资源、执行、问题统计)、测试总结是否通过、测试的风险。

50. 在公司中,测试的环境如何划分?

软件测试环境包括硬件环境和软件环境,硬件环境指测试必需的服务器、客户端、网络连接设备,以及打印机/扫描仪等辅助硬件设备所构成的环境;软件环境指被测软件运行时的操作系统、数据库以及其他应用软件构成的环境。

51. 网络的七层模型是那七层?

应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。

52. 怎么根据线上环境评估线上环境的性能?

可以根据:

1) 响应时间

2) 服务器资源使用情况是否合理

3) 应用服务器和数据库资源使用是否合理

4) 系统最多支持多少用户访问、系统最大业务处理量是多少

5) 系统性能可能存在的瓶颈在哪里

6) 更换哪些设备可以提高性能

7) 系统能否支持7×24小时的业务访问

这些因素进行判断评估。

53. 自动化如何处理app的不定时弹窗?

可以利用try...catch...异常处理机制:当正常元素定位不到时捕获异常,进入到异常处理场景,再然后定位弹窗元素,存在则点掉。

54. 接口请求不通,该如何排查?

一、接口没有任何响应

1检查接口IP地址是否正确,ping一下接口地址。

2检查被测接口端口号是否正确,可以在本机Telnet接口的IP和端口号,检查端口号能否连通

3检查项目是否启动或部署成功,可以找研发确认,或者自己登录到服务器上,通过ps检查项目的进程是否存在,然后用tail命令查看部署日志

4检查服务器的防火墙是否关闭,如果是以为安全或者权限问题不能关闭,需要找运维进行策略配置,开放对应的IP和端口。

5检查你的客户端(浏览器、测试工具),是否设置了网络代理,网络代理可以造成请求失败。

6检查操作系统的host文件,映射的地址是否正确。

二、接口有相应但是返回了错误状态码。

1) 400:客户端请求错误,比如请求参数格式错误

2) 401:未授权,比如请求header里,缺乏必要的信息头。(token,auth等)

3) 403:禁止,常见原因是因为用户的账号没有对应的URL权限,还有就是项目中所用的中间件,不允许远程连接(Tomcat)

4) 404:资源未找到,导致这种情况的原因很多,比如:

a) URL地址正确

b) URL中有不可见字符空格

c) 项目没有启动成功

d) 请求协议不对,如http/https

5) 405:方法不允许,常见的原因是请求方式不正确,比如GET类型接口,使用post方法请求。

6) 415:不支持的媒体类型,常见原因请求数据的类型和服务器支持的类型不匹配,比如Json接口,需要添加一个信息头content-type:application/json

7) 500:服务器内部错误,出现这种情况,说明服务器内部报错了 ,需要登录服务器,检查错误日志,根具体的提示信息在进行排查

8) 502/503/504(错误的网关、服务器无法获得、网关超时)

a) 如果单次调用接口就报该错误,说明后端服务器配置有问题或者服务不可用,挂掉了。

b) 如果是并发压测时出现的,说明后端压力太大,出现异常,此问题一般是后端出现了响应时间过长或者是无响应造成的。

55. python中元祖和列表有什么区别?

一、相同点:

1. 列表与元组都是容器,都能存储数据。

2. 列表与元组的数据可以进行互相转化。

二、不同点:

1. 列表属于动态数据,不可变但可以对元素进行增、删、改来改变元素的长度。

2. 元组属于静态数据,不可变类型。

3. 元组被定义不允许修改。

4. 列表定义后用户可以使用for或者while对列表中的数据进行遍历,能对列表中的元素进行增、删、改。

5. 一般用于存储同一类型同语义的数据的集合。

6. 列表与元组保存数据的格式不同,列表使用[]括号存储数据,元组使用()存储数据。

7. 列表和元组查询速度,元组优于列表,安全性元组比列表安全性高

56. 在公司如何定位和分析bug?

可以用charles或者fiddler来抓包进行分析,如果抓包分析后,前端没有发起请求,然后前端页面有问题的话,那么肯定是前端的bug了,如果说前端发起了请求,然后请求的url和参数都没有问题,一般就不是前端问题了。

如果后端返回的数据有问题,那么肯定是后端问题,如果说后端返回数据没问题,前端拿到数据渲染有问题,那就是前端问题了。如果说后端接口报错了,那一般都是后端问题了,此时得去服务器上分析日志,初步定位下什么原因导致的报错。

57. 什么是长连接和短连接?

长连接:指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接;一般需要自己做在线维持。

短连接:指通信双方有数据交互时,就建立一个TCP连接,发送数据完成后,则断开此TCP连接。

58. 遇到偶发性的bug时候,应该怎么办?

1) 先记录下来,接口请求参数,响应参数,日志log,截图或录屏等等

2) 尝试复现,大概定位范围,记录出现频次,并评估重要程度

3) 提Bug,将1、2步骤的所有有用信息全都附在Bug上

4) 找开发同学,加log,并分析出现的过程,有时候开发同学会提供一些很有用的信息

5) 再次出现时,保留现场,让开发同学解决,修复之后开开心心上线

6) 如果在上线之前无法解决,需要向项目的负责人抛出风险,评估之后决定是否上线

59. 什么是自动化测试中的po模式?

通过对界面元素的封装减少冗余代码, 同时在后期维护中, 若元素定位发生变化, 只需要调整页面元素封装代码, 提高测试用例的可维护性, 可读性。

60. 项目中的bug都有哪些类型?

1) 功能缺陷

2) 界面缺陷

3) 文档缺陷

4) 代码缺陷

5) 算法错误

6) 性能缺陷

61. drop、delete、truncate三者有什么区别?

1) 数据恢复方面:delete 可以恢复删除的数据,而 truncate 和 drop 不能恢复删除的数据。

2) 执行速度方面:drop > truncate > delete。

3) 删除数据方面:drop 是删除整张表,包含行数据和字段、索引等数据,而 truncate 和 drop 只删除了行数据。

4) 添加条件方面:delete 可以使用 where 表达式添加查询条件,而 truncate 和 drop 不能添加 where 查询条件。

5) 重置自增列方面:在 InnoDB 引擎中,truncate 可以重置自增列,而 delete 不能重置自增列。

62. 单独负责一个项目的时候,需要注意什么?

1、需要做需求评审,编写测试计划和方案,评估项目的范围和中心是否可以单独完成。

2、根据产品的需求文档加自己对当前行业的了解,拆分测试点,尽量保证每个点按时完成。

3、如果遇到自己解决不了的问题或者技术方面不懂的,要及时向外求帮助,问产品或者开发。

4、尽量采取一些技术的手段来提升测试效率,对于用力设置好优先级,对照优先级来执行。

5、测试过程当中,问题提交bug,系统对提交的报额要进行及时跟进和回归。

6、把控好上线标准,关注风险和延期,以及质量和进度的平衡,及时反馈。

63. 如何开展新项目的测试?

首先需求评审后,制定测试计划(不同时间段要测试哪些模块)、设计测试用例,前后端接口联调后测试接口,接口测试结束后开始功能测试(先走一遍核心功能,确保主流程没问题,然后再各个模块进行测试,这样做确保第一时间发现重大问题,方便开发及时修复)

64. 为什么新颁本上线会选择晚上和深夜?

对用户影响最小、维榜时间长

65. 项目中到底有多少个环境?

三个,硬件环境、软件环境、网络环境

66. 随便给你一个物件,该怎么测试?

需求分析→测试计划→测试设计→测试执行→测试评估

67. 说一下工作中印象最深刻的一个bug?

1、选择的Bug不能太低级例如UI级别的,也不能太严重例如⽣产⼤事故

2、清晰描述Bug的前世今⽣

按照步骤,⼀步⼀步地描述Bug,做到思路清晰。

(1)Bug是什么

结合平时提Bug的经验,⽤简短清晰的语⾔描述清楚这个Bug是什么,需要包含步骤,结果,期望等等。

(2)Bug产⽣的原因

根据Bug的表现进⾏分析,定位,抓包,查看请求参数,查看响应参数,查看数据库表信息,查看服务器Log,排查过程中⽤到的知识或⼯具都可以提⼀提,⼀定要有排查思考过程,⽽不是直接提给开发同学,万事⼤吉。

(3)Bug是怎么解决的

开发同学解决后,测试可以问下开发同学解决的⽅法,多学点总归没错。

(4)Bug带来的启发

分析Bug产⽣的原因,对后续的测试有哪些启发?是否因为场景太复杂,或者因为测试漏掉了测试点等等,这些测试点是否可以补充在后续的项⽬中。

68. 测试为什么要抓包?

1) 从功能测试角度,通过抓包查看隐藏字段

2) 通过抓包工具了解协议内容,方便开展接口和性能测试

3) 需要通过抓包工具,检查数据加密

4) 处理前后端 bug 归属之争

5) 通过抓包分析,可以更好的理解整个系统

69. 什么是测试环境?

测试环境是为了完成软件测试工作所必需的计算机硬件、软件、网络设备、历史数据的总称。

70. 常见的开发模型?

1) 瀑布模型

2) V模型

3) 快速原型模型

4) 迭代模型

5) 螺旋模型

71. 什么是开发环境?

软件开发环境是指在基本硬件和宿至软件的基础上,为支持系统软件和应用软件的工程化开发和维护而使用的一组软件,简称SDE。

72. 用例的评审流程?

1) 需要评审的原因

2) 进行评审的时机

3) 参与评审人员

4) 评审内容

5) 评审的方式

6) 评审结束标准

73. 什么是埋点测试?

埋点测试是数据采集的一种术语,应用系统(网站、App等)在设计和实现时主要关注核心业务功能,投入运营后,在做用户行为分析时发现核心业务系统的数据远远不够,需要采集更多用户行为等相关数据,这样就需要在应用的代码中添加一些额外的代码来采集数据,这就是所谓的“埋点”。

74. 什么是敏捷测试?

敏捷测试是一种遵循敏捷软件开发规则和原则的测试实践,可以在项目开始时就开始进行,而开发和测试之间会不断进行集成。

75. 什么是CS/BS架构?

C/S又称Client/Server或客户/服务器模式。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或 SQL Server。客户端需要安装专用的客户端软件。

B/S 是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。浏览器通过Web Server 同数据库进行数据交互。

76. 小程序测试和app测试最大的区别是什么?

1) 在兼容方面,小程序测试是基于浏览器的,所以更倾向于浏览器和电脑硬件,而浏览器的兼容则是一般是选择不同的浏览器内核进行测试(IE、chrome、Firefox)。App测试则必须依赖phone或者是pad,不仅要看分辨率,屏幕尺寸,还要看设备系统。

2) 在性能方面,小程序测试页面可能只会关注响应时间,而app则还需要测试流量、电量、CPU、GPU、Memory这些了。

3) 小程序是基于浏览器的所以不必考虑这些。app是客户端的,则必须测试安装、更新、卸载。除了常规的安装、更新、卸载还要考虑到异常场景。包括安装时的中断、弱网、安装后删除安装文件。

4) 相对于web测试,手机软件测试,除了要考虑基本的功能测试、性能等,还要考虑手机本身固有的属性特征。所以对比web测试和手机测试,手机测试过程中还需要注意如下几个方面特性:手机作为通信工具,来电、去电、接收短信等操作都会对app应用程序产生影响。

5) 从系统架构来看的话,小程序测试只要更新了服务器端,客户端就会同步会更新。但是app端是不能够保证完全一致的,除非用户更新客户端。如果是app下修改了服务端,意味着客户端用户所使用的核心版本都需要进行回归测试一遍。

77. 浏览器的兼容性如何开始测试?

1) 分析需求文档,分析测试点有哪些

2) 编写测试计划

3) 编写测试用例

4) 接口测试执行

5) 生成测试报告

78. 接口测试常见的类型有哪些?

1) 基于http协议的接口,具体分为get、post、put、delete类型的接口

2) 基于web service的接口,具体有如下3种:

Ⅰ. SOAP类型

Ⅱ. RMI类型

Ⅲ. RPC类型

79. 如何定位判断是前端bug还是后端bug?

通常可以利用抓包工具来进行分析。可以从三个方面进行分析:请求接口,传参,响应。

1. 请求接口url是否正确。如果请求的接口url错误,为前端的bug

2. 传参是否正确。如果传参不正确,为前端的bug

3. 请求接口url和传参都正确,查看响应是否正确。如果响应内容不正确,为后端bug

4. 也可以在浏览器控制台输入js代码调试进行分析。如果定位为后端的bug,可以进一步通过以下方法精确定位是哪里出bug:

1. 查看报错日志,通过日志分析问题点

2. 查看数据库确认数据的正确性

3. 查看缓存是否正确

80. linux系统下面常见的监控命令?

1) Linux进程监控:TOP

2) 虚拟内存统计 : vmstat

3) 列出打开的文件:lsof

4) 网络包分析器:tcpdump

5) 网络状态统计:netstat

6) 进程监控:Htop

7) 监控Linux磁盘I/O :iotop

8) 输入/输出统计:iostat

9) 实时局域网IP监控:IPTraf

81. Tcp协议和udp协议的区别?

1、基于连接与无连接;

2、对系统资源的要求(TCP较多,UDP少);

3、UDP程序结构较简单;

4、流模式与数据报模式 ;

5、TCP保证数据正确性,UDP可能丢包;

6、TCP保证数据顺序,UDP不保证。

82. wireshark抓包工具主要使用的场景是什么?

Wireshark 工具主要是用来去分析一些测试过程中遇到的一些网络问题,以及去分析一些网络协议的时候会用到。

83. tcp三次握手、四次挥手的过程是什么?

一、 三次握手

刚开始客户端处于 Closed 的状态,而服务端处于 Listen 状态:

CLOSED:没有任何连接状态LISTEN:侦听来自远方 TCP 端口的连接请求

1)第一次握手:客户端向服务端发送一个 SYN 报文(SYN = 1),并指明客户端的初始化序列号 ISN(x),即图中的 seq = x,表示本报文段所发送的数据的第一个字节的序号。此时客户端处于 SYN_Send 状态。

SYN-SENT:在发送连接请求后等待匹配的连接请求

2)第二次握手:服务器收到客户端的 SYN 报文之后,会发送 SYN 报文作为应答(SYN = 1),并且指定自己的初始化序列号 ISN(y),即图中的 seq = y。同时会把客户端的 ISN + 1 作为确认号 ack 的值,表示已经收到了客户端发来的的 SYN 报文,希望收到的下一个数据的第一个字节的序号是 x + 1,此时服务器处于 SYN_REVD 的状态。

SYN-RECEIVED:在收到和发送一个连接请求后等待对连接请求的确认

3)第三次握手:客户端收到服务器端响应的 SYN 报文之后,会发送一个 ACK 报文,也是一样把服务器的 ISN + 1 作为 ack 的值,表示已经收到了服务端发来的的 SYN 报文,希望收到的下一个数据的第一个字节的序号是 y + 1,并指明此时客户端的序列号 seq = x + 1(初始为 seq = x,所以第二个报文段要 +1),此时客户端处于 Establised 状态。服务器收到 ACK 报文之后,也处于 Establised 状态,至此,双方建立起了 TCP 连接。

ESTABLISHED:代表一个打开的连接,数据可以传送给用户

二、 四次握手

刚开始双方都处于ESTABLISHED 状态,假设是客户端先发起关闭请求。四次挥手的过程如下:

1)第一次挥手:客户端发送一个 FIN 报文(请求连接终止:FIN = 1),报文中会指定一个序列号 seq = u。并停止再发送数据,主动关闭 TCP 连接。此时客户端处于 FIN_WAIT1 状态,等待服务端的确认。

FIN-WAIT-1 - 等待远程TCP的连接中断请求,或先前的连接中断请求的确认;

2)第二次挥手:服务端收到 FIN 之后,会发送 ACK 报文,且把客户端的序号值 +1 作为 ACK 报文的序列号值,表明已经收到客户端的报文了,此时服务端处于 CLOSE_WAIT状态。

CLOSE-WAIT - 等待从本地用户发来的连接中断请求;

此时的 TCP 处于半关闭状态,客户端到服务端的连接释放。客户端收到服务端的确认后,进入FIN_WAIT2(终止等待 2)状态,等待服务端发出的连接释放报文段。

FIN-WAIT-2 - 从远程TCP等待连接中断请求;

3)第三次挥手:如果服务端也想断开连接了(没有要向客户端发出的数据),和客户端的第一次挥手一样,发送 FIN 报文,且指定一个序列号。此时服务端处于 LAST_ACK 的状态,等待客户端的确认。

LAST-ACK - 等待原来发向远程TCP的连接中断请求的确认;

4)第四次挥手:客户端收到 FIN 之后,一样发送一个 ACK 报文作为应答(ack = w+1),且把服务端的序列值 +1 作为自己 ACK 报文的序号值(seq=u+1),此时客户端处于 TIME_WAIT(时间等待)状态。

TIME-WAIT - 等待足够的时间以确保远程TCP接收到连接中断请求的确认;

这个时候由服务端到客户端的 TCP 连接并未释放掉,需要经过时间等待计时器设置的时间 2MSL(一个报文的来回时间) 后才会进入 CLOSED状态(这样做的目的是确保服务端收到自己的 ACK 报文。如果服务端在规定时间内没有收到客户端发来的 ACK 报文的话,服务端会重新发送 FIN 报文给客户端,客户端再次收到 FIN 报文之后,就知道之前的 ACK 报文丢失了,然后再次发送 ACK 报文给服务端)。服务端收到 ACK 报文之后,就关闭连接了,处于 CLOSED 状态。

84. app测试中ios和android测试的区别是什么?

1、Android长按home键呼出应用列表和切换应用,然后右滑则终止应用;

2、多分辨率测试,Android端20多种,ios较少;

3、机操作系统,Android较多,ios较少且不能降级,只能单向升级;新的ios系统中的资源库不能完全兼容低版本中的ios系统中的应用,低版本ios系统中的应用调用了新的资源库,会直接导致闪退(Crash);

4、操作习惯:Android,Back键是否被重写,测试点击Back键后的反馈是否正确;应用数据从内存移动到SD卡后能否正常运行等;

5、push测试:Android:点击home键,程序后台运行时,此时接收到push,点击后唤醒应用,此时是否可以正确跳转;ios,点击home键关闭程序和屏幕锁屏的情况(红点的显示);

6、安装卸载测试:Android的下载和安装的平台和工具和渠道比较多,ios主要有app store,iTunes和testflight下载;

7、升级测试:可以被升级的必要条件:新旧版本具有相同的签名;新旧版本具有相同的包名;有一个标示符区分新旧版本(如版本号),对于Android若有内置的应用需检查升级之后内置文件是否匹配(如内置的输入法)

85. xftp和ftp的区别是什么?

FTP是一种文件传输协议,用于互联网双向传输,控制文件下载空间在服务器复制文件从本地计算机或本地上传文件复制到服务器上。

而xftp是一款主要用于SFTP、FTP 文件传输的软件,能够帮助用户安全地在 UNIX/Linux 和 Windows PC 之间传输文件。 尽管它是为工作在Windows系统上而设计的,用户还可以安全地传输文件到使用UNIX和LINUX系统的主机。

86. 给你一个购物车,应该如何来测试?

分析需求

从界面、基本功能、性能、兼容性、网络环境、异常等方面考虑设计用例

测试计划

测试执行

测试报告

87. 页面为什么会出现404?

1) DNS设置阻止:DNS设置阻止,就中文环境而言,国外有一些被禁网站在中国浏览同样会出现404 not found的现象。

2) 资源被删:一些社区的帖子或者其他资源被删除,当这些资源页面被删除之后,访问就会出现404了,可以检查一下该页面是否还存在。

88. 什么是对称加密和非对称加密?

1、加密和解密过程不同:对称加密的加密过程和解密过程使用的同一个密钥,加密过程相当于用原文+密钥可以传输出密文,同时解密过程用密文-密钥可以推导出原文。但非对称加密采用了两个密钥,一般使用公钥进行加密,使用私钥进行解密。

2、加密解密速度不同:对称加密解密的速度比较快,适合数据比较长时的使用。非对称加密和解密花费的时间长、速度相对较慢,只适合对少量数据的使用。

3、传输的安全性不同:对称加密的过程中无法确保密钥被安全传递,密文在传输过程中是可能被第三方截获的,如果密码本也被第三方截获,则传输的密码信息将被第三方破获,安全性相对较低。非对称加密算法中私钥是基于不同的算法生成不同的随机数,私钥通过一定的加密算法推导出公钥,但私钥到公钥的推导过程是单向的,也就是说公钥无法反推导出私钥。所以安全性较高。

89. jmeter到底怎么测试接口?

(一) 添加线程组:

在testplan(测试计划)上右键--add-threads(users)--thread group

(二) 添加http请求:

1.用户发起接口请求

2.在线程组thread group上右键--add--sample--http request

(三) 添加json取样器:

1.用户获取响应数据

2.在http请求上右键Add--post processors--json extractor

(四) 添加调试工具:

1.用于获取变量

2.在http请求上右键Add-post processors--debug postprocessor

(五) 添加监听器:

1.用于查看自动化结果日志(测试报告)

2.在线程组thread group上右键Add--listener--view result tree

(六) 点击按钮,执行脚本。

90. 如何查看服务器上面的日志?

登陆服务器后进入控制面板→管理工具→事件查看器日志按照内容被分为三类,双击每条日志即可查看详情。

91. 什么是网络协议?有哪些网络协议?

网络协议(network procol)是为在计算机网络中进行各类不同数据交换而建立的各项规则、标准或约定的集合。

网络协议分别有:

TCP/IP协议:Telnet、HTTP、FTP、SMTP、UDP、NFS。

NetBEUI协议

IPX/SPX协议

92. 怎么样去识别H5?

方法1:手机开发者选项开启显示布局边界,页面有布局的是native否则为h5页面(仅针对安卓手机试用)

方法2:长按页面,如果出现文字选择、粘贴功能的是H5页面,否则是native页面,我在我们自己的App里面试了一下是可以判断的。但是有一种情况,如果H5页面就是一张图片,那么是不能通过这个方法验证的。

方法3:抓包抓到url或者html的代码肯定是 「H5」;

方法4:网络环境一致的情况下,h5页面渲染是需要调取服务器的,但是app的渲染在本地,所以h5页面跳转更费力,不稳定感会强一些。(所以断网也是一个方法)

93. 如何获取app崩溃的日志?

1) 控制台查看日志;

2) 重定向 NSLog 日志;

3) 通过 Xcode下载 Container 查看日志;

4) 通过 PAirSandbox:AirSandbox 查看 Documents 中的内容;

5) 通过 文件 App 查看 Documents 中的日志文件;

6) 自定义捕获普通日志及崩溃日志等;

7) QiLogTool Demo地址、使用方式及效果演示。

94. 注册的短信验证码是怎么来的?

1、生成短信内容,调用发送接口,传入APIKEY、手机号、内容等参数发送短信。 短信内容需和通过审核的模板匹配上才能发送,如不匹配接口会返回报错信息,报错记录在 后台失败请求页可以看到。 如不确定内容是否匹配,后台 模板报备页有测试匹配功能。

2、如短信验证接口用于web、移动网页版,需在注册页增加图形验证码避免恶意轰炸消耗账户余额。 iOS及Android APP无需在注册页添加图形验证码。

95. 微信发红包的测试点有哪些?

收红包;发红包:个人红包:输入金额,编辑文字,编辑表情

群聊拼手气红包:输入金额,编辑文字,编辑表情

96. 测试工作最怕什么?

与人交流不通,意思理解错误。

97. anr日志如何获取?

方法一:使用adb指令获取

方法二:手机自带-开发者选项

98. 回归测试在项目中是如何做的?

(1)和项目中的开发以及项目负责人沟通确认。

(2)对关键点进行重点测试

(3)软件开发人员的经验能力评估

(4)完善软件测试用例

99. git和svn的区别是什么?

1、SVN是集中化的版本控制系统,而Git是分布式版本控制系统;

2、SVN是按照原始文件存储的,体积较大,而Git是按照元数据方式存储的,体积很小;

3、Git的分支操作不会影响其他开发人员,而SVN会影响。

100. 页面突然空白了该如何排查问题?

(一) 从网络方面检测:

先确保网络连接顺畅

再检查URL地址是否错误

打开控制台查看是否有报错信息

查看接口访问 是否有请求

查看 路由 是否有 path错误,导致加载了不存在的页面

(二) 从js和css方面检测:

排除了 网络问题 以后,如果还是白屏,那一般都是 css和js 加载造成的;css和js 会造成阻塞渲染。比如不正确的引入css和js , 就会导致它们的加载速度过长,从而导致白屏现象。

正确的引入方式是:

在 <head> 标签中引入css:因为在加载HTML 前不先渲染css 的话,整个页面会乱掉;

在 </body> 标签之前、body 标签中html 内容的后面 ,引入 js:因为浏览器加载script 标签时,处理内部代码的顺序都是从上到下 依次执行的,如果在 html 内容前就引入js 的话,那么就会导致,在所有的代码处理完毕之前,会阻塞其他资源的加载;会导致页面的其他内容都无法显示,因此如果不规范引入js的话,会对页面的其他内容带来影响。

101. 请描述一下Jmeter中的关联?

方法一:正则表达式提取器

方法二:jp@gc - JSON Path Extractor提取器

方式三:Json Extractor提取器

方式四:边界提取器

方式五:beanshell后置处理器

102. 你们的测试数据存放在哪里?

1.对于账号密码,这种管全局的参数,可以用命令行参数,单独抽出来,写的配置文件里(如ini)

2.对于一些一次性消耗的数据,比如注册,每次注册不一样的数,可以用随机函数生成

3.对于一个接口有多组测试的参数,可以参数化,数据放yaml,text,json,excel都可以

4.对于可以反复使用的数据,比如订单的各种状态需要造数据的情况,可以放到数据库,每次数据初始化,用完后再清理

5.对于邮箱配置的一些参数,可以用ini配置文件

6.对于全部是独立的接口项目,可以用数据驱动方式,用excel/csv管理测试的接口数据

7.对于少量的静态数据,比如一个接口的测试数据,也就2-3组,可以写到py脚本的开头,十年八年都不会变更的。

103. 面试者中如何介绍自己的项目?

一. 对项目进行基本介绍

二. 说明自己负责测试的模块

三.针对部分模块展开进行说明

104. 关系型数据库和非关系型数据库的区别?

1. 关系型数据库支持多个表之间连接查询(join),非关系型数据库不支持连接查询

2. 关系型强调数据之间的强关联型,并支持事物来确保数据的增删改查的强一致性,而非关系型数据库对数据的事物则支持的不是很好

3. 关系型数据库不灵活,是一种二维的数据结构,而且对一行的数据格式类型要求很高,非关系型数据库数据格式则更灵活,数据字段类型也很灵活

4. 非关系型数据库比关系型数据库更容易扩展

5. 非关系型数据库对大量的并发读写支持的更好,性能更高,而关系型由于IO瓶颈,高并发读写速度慢,支持不好

6.非关系型数据库有Mongdb,Redis,Hbase,关系型数据库有Mysql,Oracle

7.传统关系型数据库在数据库高并发读写,对海量的数据存储,对数据库的高可扩展性应用场景性能不好

105. 软件质量的特性有什么?

一、功能性:

1、适合性

2、准确性

3、互操作性

4、保密安全性

5、功能性的依从性

二、可靠性:

1、成熟性

2、容错性

3、易恢复性

4、可靠性的依从性

三、易用性:

1、易理解性

2、易学性

3、易操作性

4、吸引性

5、易用性的依从性

四、效率性:

1、时间特性

2、资源利用性

3、效率依从性

五、软件维护性:

1、易分析性

2、易改变性

3、稳定性

4、易测试性

5、维护性的依从性

六、软件可移植性:

1、适应性

2、易安装性

3、共存性

4、易替换性

5、可移植性的依从性

106. 如何提高测试用例的覆盖率问题?

代码走查

使用代码分析工具

使用一些基本测试方法排查

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值