2021-04-17

面试题

1.OSI 七层模型:
应用层
OSI参考模型中最靠近用户的一层,是为计算机用户提供应用接口,也为用户直接提供各种网络服务。我们常见应用层的网络服务协议有:HTTP,HTTPS,FTP,POP3、SMTP等。
实际公司A的老板就是我们所述的用户,而他要发送的商业报价单,就是应用层提供的一种网络服务,当然,老板也可以选择其他服务,比如说,发一份商业合同,发一份询价单,等等。
表示层
表示层提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。如果必要,该层可提供一种标准表示形式,用于将计算机内部的多种数据格式转换成通信中采用的标准表示形式。数据压缩和加密也是表示层可提供的转换功能之一。
由于公司A和公司B是不同国家的公司,他们之间的商定统一用英语作为交流的语言,所以此时表示层(公司的文秘),就是将应用层的传递信息转翻译成英语。同时为了防止别的公司看到,公司A的人也会对这份报价单做一些加密的处理。这就是表示的作用,将应用层的数据转换翻译等。
会话层
会话层就是负责建立、管理和终止表示层实体之间的通信会话。该层的通信由不同设备中的应用程序之间的服务请求和响应组成。
会话层的同事拿到表示层的同事转换后资料,(会话层的同事类似公司的外联部),会话层的同事那里可能会掌握本公司与其他好多公司的联系方式,这里公司就是实际传递过程中的实体。他们要管理本公司与外界好多公司的联系会话。当接收到表示层的数据后,会话层将会建立并记录本次会话,他首先要找到公司B的地址信息,然后将整份资料放进信封,并写上地址和联系方式。准备将资料寄出。等到确定公司B接收到此份报价单后,此次会话就算结束了,外联部的同事就会终止此次会话。
传输层
传输层建立了主机端到端的链接,传输层的作用是为上层协议提供端到端的可靠和透明的数据传输服务,包括处理差错控制和流量控制等问题。该层向高层屏蔽了下层数据通信的细节,使高层用户看到的只是在两个传输实体间的一条主机到主机的、可由用户控制和设定的、可靠的数据通路。我们通常说的,TCP UDP就是在这一层。端口号既是这里的“端”。
传输层就相当于公司中的负责快递邮件收发的人,公司自己的投递员,他们负责将上一层的要寄出的资料投递到快递公司或邮局。
网络层
本层通过IP寻址来建立两个节点之间的连接,为源端的运输层送来的分组,选择合适的路由和交换节点,正确无误地按照地址传送给目的端的运输层。就是通常说的IP层。这一层就是我们经常说的IP协议层。IP协议是Internet的基础。
网络层就相当于快递公司庞大的快递网络,全国不同的集散中心,比如说,从深圳发往北京的顺丰快递(陆运为例啊,空运好像直接就飞到北京了),首先要到顺丰的深圳集散中心,从深圳集散中心再送到武汉集散中心,从武汉集散中心再寄到北京顺义集散中心。这个每个集散中心,就相当于网络中的一个IP节点。
数据链路层
将比特组合成字节,再将字节组合成帧,使用链路层地址 (以太网使用MAC地址)来访问介质,并进行差错检测。
数据链路层又分为2个子层:逻辑链路控制子层(LLC)和媒体访问控制子层(MAC)。

物理层

2.测试流程:
编写测试计划 — 评审测试计划 – 编写测试用例 – 评审测试用例 – 执行测试阶段(冒烟测试,系统测
试) – 分析和总结测试结果 – 完成测试

产品提出需求后,开立项会进行讨论需求制定需求文档,开发根据需求文档进行编
码,测试人员需要根据需求文档进行编写测试计划,以及对应的测试用例编写,用
例编写结束后,进行用例评审,开发提交代码后执行冒烟测试,冒烟测试通过后执
行过程中出现bug进行提交bug,并对bug进行追踪。bug关闭后我们做测试总
结,提交对应的测试报告

3.用例评审都哪方参与了/strong>
1:评审的过程
A:开始前做好如下准备
1、确定需要评审的原因
2、确定进行评审的时机
3、确定参与评审人员
4、明确评审的内容
5、确定评审结束标准
6、提前至少一天将需要评审的内容以邮件的形式发送给评审会议相关人员。并注明详审时间、地点及偿参与人员等。
7、 在邮件中提醒评审会议相关人员至少简读一遍评审内容,并记录相关的疑问,以便在评审会议上提出。
8、 会议主持者(一般为用例编写人员)应在会议前整理相关疑问,以便在会议上提出。
B:开始评审
1、 召开评审会议。与会者在设计人员讲解之后给出意见和建议,同时进行详细的评审记录。
2、 通用邮件与相关人员沟通
3、 通用IM工具直接与相关人员交流
4、根据评审内容进行评审

2:评审内容
1、 用例设计的结构安排是否清晰、合理,是否利于高效对需求进行覆盖。
2、 优先极安排是否合理。
3、 是否覆盖测试需求上的所有功能点。
4、 用例是否具有很好可执行性。例如用例的前提条件、执行步骤、输入数据和期待结果是否清晰、正确;期待结果是否有明显的验证方法。
5、 是否已经删除了冗余的用例。
6、 是否包含充分的负面测试用例。充分的定义,如果在这里使用2&8法则,那就是4倍于正面用例的数量,毕竟一个健壮的软件,其中80%的代码都是在“保护”20%的功能实现。
7、 是否从用户层面来设计用户使用场景和使用流程的测试用例。
8、 是否简洁,复用性强。例如,可将重复度高的步骤或过程抽取出来定义为一些可复用标准步骤。

3:参与评审人员(这里会分为多个级别进行评审)
1、 部门评审,测试部门全体成员参与的评审。
2、公司评审,这里包括了项目经理、需求分析人员、架构设计人员、开发人员和测试人员。
3、 客户评审,包括了客户方的开发人员和测试人员。这种情况在外包公司比较常见
————————————————

4.功能测试与接口测试的区别/strong>

一、什么是功能测试
功能测试 就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。Functionaltesting(功能测试),也称为behavioral testing(行为测试)、黑盒测试或数据驱动测试 黑盒测试(Black-box Testing,又称为功能测试或数据驱动测试)是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。

二、功能测试怎么做
功能测试如何进行的:编写测试用例,测试用例当中最主要的是测试步骤和预期结果;测试人员根据测试用例执行操作步骤,然后通过眼睛和思考判断实际结果与预期结果是否相等。如果相等,测试通过;如果不相等,测试失败。

三、什么是接口测试
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

四、接口测试怎么做
接口测试可以通过接口测试工具或者接口测试脚本来进行测试。 接口测试工具:apipost、jmeter、laodrunner等 使用apipost进行接口测试示例:
python脚本进行接口测试示例:

五、功能测试和接口测试的区别
功能测试和接口测试的区别在于,功能测试侧重点在于前端ui界面,数据展示,图形界面,业务逻辑操作等,接口测试侧重点在于,后端返回的数据是否正确,接口是否正常。

5.测试环境是在什么系统
软件测试环境包含硬件环境和软件环境,硬件换进主要是PC机,软件环境包括软件运行的操作系统(主流的操作系统:windows、Linux、Unix),数据库(Oracle、MySQL、SqlServer、DB2等)、web应用服务器(Apache、IIS、tomcat、Nginx等)和集群环境(如负载均衡)

6.用例怎么保证覆盖全面
1)测试需求的覆盖:保证所有需求都已经设计用例
2)测试特性的覆盖:保证所有不同类型已覆盖,如:功能测试,性能测试等
3)平台与层次的覆盖:保证所有平台有用例覆盖,不同层次都有设计用例,如业务层、接口层等

7.编写用例从哪方面考虑

  1. 软件或项目的名称

  2. 软件或项目的版本(内部版本号)

  3. 功能模块名

  4. 测试用例的简单描述,即该用例执行的目的或方法

  5. 测试用例的参考信息(便于跟踪和参考)

  6. 本测试用例与其他测试用例间的依赖关系

  7. 本用例的前置条件,即执行本用例必须要满足的条件,如对数据库的访问权限

  8. 用例的编号(ID),如可以是 软件名称简写-功能块简写-NO.。

  9. 步骤号、操作步骤描述、测试数据描述

10.预期结果(这是最重要的)和实际结果(如果有BUG管理工具,这条可以省略)

11.开发人员(必须有)和测试人员(可有可无)

12.测试执行日期

首先你的用例来源于需求分析,那么项目或者产品是否有功能性及非功能性需求呢。比如说系统可用性需求,网络带宽需求,系统响应性能需求等等。如果存在这些需求,那么用例设计时就需要考虑这些角度。

其次功能性需求在设计用例时也需要考虑诸如大用户量并发的情况之类的。

再次,测试用例包含容错用例。

最后,测试用例编写的同时,是有等级区分的,有的用例是关键流程或者功能点,那么等级就高;有的用例很少使用,就会低。这样便于你进行回归或者重复使用。

8.测试报告编写过吗,包括什么/strong>
测试报告包括哪些内容: 测试模块(每个模块里需要记录测试的开始时间、结束时间、设计多少用例、通过多少、失败多少、有多少BUG、遗留多少BUG、解决多少BUG、追后对这个模块总结一下)
BUG的统计,根据时间轴来统计BUG的数量,例如:XXXX年X月X日,发现BUG多少,关闭BUG多少,剩余BUG多少,高级的BUG有多少,中级的BUG有多少,低级和建议的BUG有多少,一直罗列到项目完结
项目总结,汇报一下测试的大致结果。
遗留和风险,该软件还有什么遗留问题,还有什么风险,都要一一说明
最后评判该软件是否符合上线标准,日期,签字,加盖章等

9.接口测试怎么做/strong>
1在测试过程中,测试接口的时候,需要对接口进行测试数据的填充。通过返回结果来看接口是否能返回正确的值,并且具有容错的能力。
2简单的说和普通的测试过程中,进行不同值进行测试没有太大的区别。
3首先在测试的过程中会选择postman的测试工具,

10.Bug的生命周期
新建,确认,解决,重新验证,关闭,重新打开

一个Bug由测试人员发现并提交,我们将状态标注为新建;开发人员接收了该Bug,将Bug的状态修改为已分配(Assigned),表示已经认可;开发人员解决了该Bug后,就将Bug的状态修改为解决,并发给测试人员回归测试;测试人员对Bug进行同归测试,如果确实已经解决,就将Bug的状态修改为关闭,否则的话则发给开发人员重新修改。还要说明的是,Bug是可以“死而复生”的,以前版本已经关闭的Bug,如果新版本中重新出现,我们就需要将其状态修改为重新打开。

11.软件测试的目的/strong>
1)软件测试是为了发现错误而执行程序的过程。

2)测试是为了证明程序有错,而不是证明程序无错。(发现错误不是唯一目的)

3)一个好的测试用例在于它发现至今未发现的错误。

4)一个成功的测试是发现了至今未发现的错误的测试。

12.性能测试怎么做/strong>
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。步骤如下:

1、制定目标和分析系统;

2、选择测试度量的方法;

3、学习的相关技术和工具;

4、制定评估标准;

5、设计测试用例;

6、运行测试用例;

7、分析测试结果。

13.性能测试关注的指标/strong>
(1)连接超时

这个是App关闭的首要问题,而在移动应用中网络错误数据比例报错中最高的就是连接超时错误。想象一下当花重金好不容易把你的App推广到用户手机上,而在用户初次尝试时发生连接超时无法正常使用,多数用户会选择再也不会打开应用第二次。

(2)崩溃

这个已无需多言。APP的崩溃,就是用户的崩溃。当用户使用你的App出现闪退或崩溃时,他们很有可能跑去App Store赠送你一个“一星”差评。

(3)系统交互(电话短信干扰,低电量提醒,push提醒,usb数据线插拔提醒,充电提醒等)

在APP使用过程中,可能会遇到各种中断场景,那么一旦发生这些场景,APP就卡死或者闪退,想必也没有多少用户愿意持续使用你的APP。

(4)弱网下的运行情况

电梯里、地铁上,网络信号差时,APP页面的菊花转不停,界面卡死,同时错误提示一堆,这样的情况怎能不让用户抓狂。

(5) CPU使用问题

CPU频率设置过高时会导致过热,过热导致耗电更严重,CPU频率设置过低导致手机滞后,应用处理缓慢同样会导致耗电。更多时候,用户解决CPU超载问题只能关闭甚至卸载App,App就被Kill了!
————————————————

14…性能测试的指标是根据什么对比的(响应时间是跟谁对比的)
响应时间:用户从客户端发出请求,并得到响应,以及展示出来的整个过程的时间。

加载速度:通俗的理解为页面内容显示的快慢。

电量:APP的耗电量。

流量:APP所消耗的流量

加载速度

通俗的理解,可以将加载速度视为页面内容显示的快慢。拿Google搜索的例子来说,从用户输入搜索内容按下enter键,到看到搜索出来的内容,这个过程的快慢就是加载速度。假设选中一个内容点击,跳转到一个网页,网页的内容显示出来能让用户看见的过程,也是加载速度。

早些年Amazon曾经做过一个统计:网页加载时间每延长1秒钟,一年将减少16亿美元的营收。

一般有哪些方式可以改善加载速度带来的用户体验呢/p>

l 减少HTTP重复请求

性能黄金法则:只有10%20%的最终用户响应时间花在了下载HTML文档上,其余的80%90%时间花在了下载页面中的所有组件上。因此,改善响应时间最简单的途径就是减少HTTP请求的数量,并且去除不必要的重复请求。

l 使用CDN

HTTP请求和响应的时间会受到离 web 服务器距离的影响。如果用户离应用程序的web服务器离用户更近,那么多个HTTP请求的响应时间将缩短。

CDN(内容发布网络)是一组分布在多个不同地理位置的Web服务器,可以选择网络阶跃数最小的服务器,或者具有最短响应时间的服务器,用于更加有效地向用户发布内容。

l 减少下载的资源

比如通过压缩图片的方式,减少图片的大小,缩短下载的时间。另外可以通过比对客户端与服务端差异的方式,快速展示本地的缓存资源,减少同样内容的重复下载。

电量
Android的很多特性都比较耗电(屏幕、GPS、唤醒机制、CPU、连网等的使用)。

流量
目前的网络类型包含2G3G4Gwifi,其中还有不同运营商的区分。APP 使用过程中,常见的网络流量严重消耗的原因主要有,,调用响应慢,调用失败等各种情况。

15.Linux
–查看进程
第一种:ps aux
第二种:ps -elf

–查看指定进程号

–查看80端口号

–vi用过吗,怎么用

基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:

  1. 命令行模式command mode)

控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。

  1. 插入模式(Insert mode)

只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。

  1. 底行模式(last line mode)

将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。

不过一般我们在使用时把vi简化成两个模式,就是将底行模式(last line mode)也算入命令行模式command mode)。

–说你自己知道的常用目录

存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里。

/etc

存放系统管理和配置文件

/home

存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示

/usr

用于存放系统应用程序,比较重要的目录/usr/local 本地系统管理员软件安装目录(安装系统级的应用)。这是最庞大的目录,要用到的应用程序和文件几乎都在这个目录。

/usr/x11r6 存放x window的目录

/usr/bin 众多的应用程序

/usr/sbin 超级用户的一些管理程序

/usr/doc linux文档

/usr/include linux下开发和编译应用程序所需要的头文件

/usr/lib 常用的动态链接库和软件包的配置文件

/usr/man 帮助文档

/usr/src 源代码,linux内核的源代码就放在/usr/src/linux里

/usr/local/bin 本地增加的命令

/usr/local/lib 本地增加的库

/opt

额外安装的可选应用程序包所放置的位置。一般情况下,我们可以把tomcat等都安装到这里。

/proc

虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息。

/root

超级用户(系统管理员)的主目录(特权阶级o

/sbin

存放二进制可执行文件,只有root才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如ifconfig等。

/dev

用于存放设备文件。

/mnt

系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统。

/boot

存放用于系统引导时使用的各种文件

/lib

存放跟文件系统中的程序运行所需要的共享库及内核模块。共享库又叫动态链接共享库,作用类似windows里的.dll文件,存放了根文件系统程序运行所需的共享文件。

/tmp

用于存放各种临时文件,是公用的临时文件存储点。

/var

用于存放运行时需要改变数据的文件,也是某些大文件的溢出区,比方说各种服务的日志文件(系统启动日志等。)等。

/lost+found

这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里

16.设计用例

一、搜索功能实现:

1.搜索按钮功能是否实现;2.点搜索后,原先的搜索条件是否清空;
3.注意验证搜索框的功能是否与需求一致,即是模糊搜索,还是完全搜索。如果支持模糊查询,搜索名称中任意一个字符,要能搜索到;如果支持完全搜索,点击“搜索”,查询结果正确;中%国,查询结果是不是都包含中国两个字的信息

4.比较长的名称是否能查到,输入过长查询数据,看其有没判断,报错;系统是否会截取允许的长度来检索结果;只能输入允许的字符串长度/p>

5.空;默认查询条件结果集6.空格;7.是否有忽略空格的功能,有的搜索框是需要有忽略前置空格和后置空格的功能,但不能把中间空格忽略;
8.输入各种字符,譬如输入范围是0 9,A Z的看输入中文是什么效果,字符(尤其是英文单引号),数字,特殊符号以及组合情况(特殊符号就是键盘上的那些);中文值,字母大、小写值、数字类型值、全角、半角值,

9.输入系统中存在的与之匹配的条件,看其的查询后数据的完整性;显示记录条数正确、文字折行显示正确、页面布局美观,列标题项、列显示内容、排序方式符合需求定义;搜索出的结果页面是否与其他页面风格一致;

10.焦点放置搜索框中,搜索框默认内容是否自动被清空;

11.输入系统中不存在的与之匹配的条件;本站内搜索输入域中不输入任何内容,是否搜索出的是全部信息或者给予提示信息

12.用快捷键或鼠标粘贴内容看,测试搜索框是否能执行;

13.查询结果超过一页可以下滑,并选中;

14.注意在光标停留的地方输入信息时,光标和所输入的信息会否跳到别的地方;

15.用户进行查询操作时,一般情况是不进行查询条件的清空,除非需求特殊说明。

16.反复输入相同的数据(5次以上)看是否报错

17.在输入结束后直接按回车键,看系统处理如何,会否报错

18.敏感词汇,提示用户无权限等信息

二、组合测试:

1.不同查询条件之间来回选择,是否出现页面错误(单选框和多选框最容易出错)

2.测试多个查询条件时,要注意查询条件的组合测试,可能不同组合的测试会报错。

3.组合各个文本域查询条件,点击“搜索”,查询结果正确

4.多个关键词中间加入空格,tab,逗号后,验证系统的结果是否正确

其他苛刻要求:1、于输入框处双击鼠标是否出现下拉菜单记忆已搜索过的内容
2、特殊数字的判定,如输入”10101010″二进制字符系统的判断与报错

3、于输入框单击鼠标左键,是否有光标出现

4、承上,光标出现后使用”Tab”键后,”搜索”按钮是否出现选定TIP

5、于输入框点击鼠标右键是否出现Menu,Menu内容依次为”撤消”、“复制”、“粘贴”、“删除”、“全选”(具体情况视实际情况而定)

6、检查以上Menu出现的选择模块是否可正常使用

7、于输入框输入任意长度字母、数字、文字,双击鼠标左键,观察输入项目能否被全部选中

8、输入正则表达式

9、写段select查询语句,插入语句等,看看执行结果ctrl+z,+x,+c,+v快捷键操作等是否可行

10、特殊字符,转义符,html脚本等需作处理

11、键盘回车键、Tab键12、边界值验证,在允许的字符串范围内外,验证系统的处理

点赞

【UI】
①、点击操作栏,是否正常弹出气泡,是否正常收回、是否流畅
②、样式是否与需求保持一致
③、未赞时,点击【点赞】,样式变为已赞
④、已赞时,点击【取消】,样式变为未赞

【功能】
①、给某一朋友的朋友圈进行点赞(检查接口)

点赞数+1,点赞栏显示具体点赞用户的昵称
被赞人的消息中心新增一条点赞消息,消息体显示是否正常
共同好友视角,点赞栏显示该用户昵称
非共同好友视角,点赞栏不显示该用户昵称
点击点赞栏昵称跳转至该用户用户信息页面
数据库写入是否正常

②、多人给某一朋友的朋友圈进行点赞

点赞数+N。被赞人的消息中心收到多条点赞信息,消息体是否显示正常
自己已赞过该朋友圈,N个点赞中,有M个是共同好友,自己的消息中心收到M条点赞消息
自己未赞过该朋友圈,N个点赞中,有M个是共同好友,自己的消息中心不收到点赞消息
自己已赞过该朋友圈,后取消点赞,自己的消息中心不再收到来自该条朋友圈的点赞消息
点赞栏显示N个用户的昵称,并用顿号分割,且按照点赞时间降序排列
N个用户全部取消赞后,是否同步
数据库写入是否正常

②、给自己的朋友圈进行点赞(检查接口)

点赞数+1,自己不收到信息
点赞栏显示自己的昵称

④、取消点赞

点赞数-1,点赞栏该用户的昵称消失,昵称展示左移
被赞人的消息中心不会发送取消赞消息

⑤、反复点赞:点赞–>取消点赞–>点赞

点赞数+1,点赞栏正常展示用户昵称,不会重复显示
消息中心不会重新发送点赞通知

⑥、朋友圈下拉刷新,点赞栏刷新(接口)

⑦、消息中心加载(分页加载是否正常)

⑧、从消息中心进入朋友圈详情

点赞栏显示的是用户头像

操作点赞、取消赞、点击用户头像等操作

⑨、查看别人的朋友圈,点开大图

已赞过,左下角已赞样式+文字

未赞,左下角未赞样式+文字

点赞/取消点赞操作,右下角点赞数+1/-1

各个视角点赞数同步

【异常】
①、给某一朋友的朋友圈点赞后,昵称变更,点赞栏的昵称是否同步变更
②、点赞人数过多时,点赞栏的昵称最多展示多少,超过如何展示
③、昵称中含有特殊字符时,如 ④、弱网时,反复点击点赞按钮,数据库是否有redis控制(事务)
⑤、当前页面,朋友圈已被删除,点击【点赞】或【取消赞】,客户端是否合理反馈
⑥、模拟弱网,是否正常点赞,响应时间
⑦、断网,点赞

【兼容】
①、android、ios
②、不同android机型、分辨率、系统兼容

【压力】
①、多人点赞边界,检查一条朋友圈最多可以有多少点赞(接口模拟),手动模拟
②、模拟多人同时点赞

红包功能

1.在红包钱数,和红包个数的输入框中只能输入数字
2.红包里最多和最少可以输入的钱数 200 0.01
3.拼手气红包最多可以发多少个红包 100
3.1超过最大拼手气红包的个数是否有提醒
4.当红包钱数超过最大范围是不是有对应的提示
5.当发送的红包个数超过最大范围是不是有提示
6.当余额不足时,红包发送失败
7.在红包描述里是否可以输入汉字,英文,符号,表情,纯数字,汉字英语符号,
7.1是否可以输入它们的混合搭配
8.输入红包钱数是不是只能输入数字
9.红包描述里许多能有多少个字符 10个
10.红包描述,金额,红包个数框里是否支持复制粘贴操作
12.红包描述里的表情可以删除
13.发送的红包别人是否可以领取
13.1发的红包自己可不可以领取 2人
14. 24小时内没有领取的红包是否可以退回到原来的账户
14.1 超过24小时没有领取的红包,是否还可以领取
15.用户是否可以多次抢一个红包
16.发红包的人是否还可以抢红包 多人
17.红包的金额里的小数位数是否有限制
18.可以按返回键,取消发红包
19. 断网时,无法抢红包
20.可不可以自己选择支付方式
21.余额不足时,会不会自动匹配支付方式
22.在发红包界面能否看到以前的收发红包的记录
23.红包记录里的信息与实际收发红包记录是否匹配
24.支付时可以密码支付也可以指纹支付
25.如果直接输入小数点,那么小数点之前应该有个0
26.支付成功后,退回聊天界面
27.发红包金额和收到的红包金额应该匹配
28.是否可以连续多次发红包
29.输入钱数为0,”塞钱进红包”置灰

性能

1.弱网时抢红包,发红包时间
2.不同网速时抢红包,发红包的时间
3.发红包和收红包成功后的跳转时间
4.收发红包的耗电量
5.退款到账的时间

兼容

1.苹果,安卓是否都可以发送红包
2.电脑端可以抢微信红包

界面

1.发红包界面没有错别字
2.抢完红包界面没有错别字
3.发红包和收红包界面排版合理,
4.发红包和收到红包界面颜色搭配合理

安全

1.对方微信号异地登录,是否会有提醒 2人
2.红包被领取以后,发送红包人的金额会减少,收红包金额会增加
3.发送红包失败,余额和银行卡里的钱数不会少
4.红包发送成功,是否会收到微信支付的通知

易用性(有点重复)

1.红包描述,可以通过语音输入
2.可以指纹支付也可以密码支付

百度首页呈现的功能:新闻,网页,贴吧,知道,音乐,图片,视频,地图,这8个是最主要的;紧接着次要的百科,文库,hao123,更多;除此之外就是把百度设为主页,安装百度浏览器,加入百度推广,关于百度等等;和用户相关的还有登录,注册.

1.1网页搜索

百度首页8个主要功能,排除地图部分的搜索其他7个比较类似.这里主要讲网页搜索,那么测试的也就是输入框,比较有效的方法就是边界值测试和区间测试.

1.1.1边界值测试

边界值测试可以测试一下输入字符的数量:

a) 不输入文字,直接按搜索

b) 输入38个汉字后点击搜索按钮,成功跳转到搜索结果页面

c) 输入39个汉字,截取前面38个汉字

d) 输入100个汉字,截取前面38个汉字

e) 尝试输入101个汉字,无法成功输入

f) 英文符号的测试

g) 空格的测试

复制粘贴38个汉字进入搜索文本框,并中间加入62个连续空格后按下搜索

1.1.2区间测试

a) 有意义的关键词做输入值,预期能搜出结果

b) 无意义的关键词做输入值(比如用脸滚键盘来输入一些乱七八糟的关键字),预期搜不出任何结果

那么对于搜索有个问题就是如何校验搜索结果的正确性里就不再适用黑盒测试的方法,可以尝试白盒测试或者自动化测试,可是这个校验算法本身就很难,用什么规则去定义呢另一套完全不同的搜索逻辑去对比,比如谷歌和百度对比;或者设计一些通用的规则,然后去校验

图片、字体、颜色、按钮等

a) 下拉框提示

b) 搜索结果页提示”要找的是不是xxxx“

c) 搜索结果页提示”关键字里去掉引号可以找到更多xxx“

d) 搜索结果页提示”您输入的网址是不是xxx“

17.给一个web端或者是app端你如何展开测试/strong>
pp测试

首先拿到项目原型图或者思维导图然后进行具体的:

功能测试:每项开发的新功能都要进行测试,功能测试是App中的重要方面,要进行手动测试和后期的自动化测试,刚开始测试时要把App当做“黑盒测试”,看功能是否正常,除了经典测试以外,像点击按钮、提交订单…等等,看会出现什么情况。

客户端性能测试:App好不好,不仅仅时功能展示,在高端机正常运行,中/低端机型卡的不行,这也不能算是好的App。关于性能测试主要是:cup、内存、耗电量、流量、FPS…等

适配兼容测试:不同机型/不同品牌/不同系统测试

安全测试: App在上线前,都需要做详细的安全测试。安全测试主要为了检测应用是否容易被外界破解;是否存在被恶意代码注入的风险;上线后外挂的风险高不高等。

服务器性能测试:服务器性能测试,主要包含单机容量测试和24小时稳定性测试。单机容量测试,可以检测到单机服务器在90%的响应时间和成功率都达标的前提下,能够承载多少用户量。使用特定游戏模型压测24小时,服务无重启,内存无泄漏,并且各事务成功率达标

web测试

一、功能测试

1、链接测试
链接是Web应用系统的一个主要特征,它是在页面之间切换和指导用户去一些不知道地址的页面的主要手段。链接测试可分为三个方面。首先,测试所有链接是否按指示的那样确实链接到了该链接的页面;其次,测试所链接的页面是否存在;最后,保证Web应用系统上没有孤立的页面,所谓孤立页面是指没有链接指向该页面,只有知道正确的URL地址才能访问。链接测试可以自动进行,现在已经有许多工具可以采用。链接测试必须在集成测试阶段完成,也就是说,在整个Web应用系统的所有页面开发完成之后进行链接测试。

2、表单测试
当用户给Web应用系统管理员提交信息时,就需要使用表单操作,例如用户注册、登陆、信息提交等。在这种情况下,我们必须测试提交操作的完整性,以校验提交给服务器的信息的正确性。例如:用户填写的出生日期与职业是否恰当,填写的所属省份与所在城市是否匹配等。如果使用了默认值,还要检验默认值的正确性。如果表单只能接受指定的某些值,则也要进行测试。例如:只能接受某些字符,测试时可以跳过这些字符,看系统是否会报错。

3、Cookies测试
Cookies通常用来存储用户信息和用户在某应用系统的操作,当一个用户使用Cookies访问了某一个应用系统时,Web服务器将发送关于用户的信息,把该信息以Cookies的形式存储在客户端计算机上,这可用来创建动态和自定义页面或者存储登陆等信息。如果Web应用系统使用了Cookies,就必须检查Cookies是否能正常工作。测试的内容可包括Cookies是否起作用,是否按预定的时间进行保存,刷新对Cookies有什么影响等。

4、数据库测试
在Web应用技术中,数据库起着重要的作用,数据库为Web应用系统的管理、运行、查询和实现用户对数据存储的请求等提供空间。在Web应用中,最常用的数据库类型是关系型数据库,可以使用SQL对信息进行处理。在使用了数据库的Web应用系统中,一般情况下,可能发生两种错误,分别是数据一致性错误和输出错误。数据一致性错误主要是由于用户提交的表单信息不正确而造成的,而输出错误主要是由于网络速度或程序设计问题等引起的,针对这两种情况,可分别进行测试。

18.说出你常用的adb 命令(15个)和 monkey命令 (5个)
ADB 命令:
1.连接设备 adb connect
2.查看当前设备名称 adb devices
3.开启服务 adb stast-server
4.关闭服务 adb kill-server
5.安装软件 adb install apk路径
6.卸载软件 adb uninstall 包名
7.覆盖软件 adb install -r 路径
8.系统应用 adb shell pm list package -s
9.第三方应用 adb shell pm list package -3
10.列出所有app包名 adb shell pm list packages
10.根据包名卸载软件 adb uninstall 包名
11.卸载保留配置和缓存文件 adb shell pm uninstall -k 包名
12.电脑文件传输到移动端 adb push 电脑路径 移动端路径
13.移动端文件传输到电脑 adb pull 移动端路径 电脑路径
14.查看adb命令帮组信息 adb help
15.截屏 adb shell screencap -p 截图文件路径
16.查看手机cpu adb shell dumpsys cpuinfo
17.查看全部应用内存使用情况 adb shell dumpsys meminfo
18.查看某个应用内存使用情况 adb shell dumpsys meminfo 包名
19.显示磁盘使用情况 adb shell dumpsys diskstats
20.清除应用缓存信息 adb shell pm clear 包名
21.查看电池状态 adb shell dumpsys battery
22.查看电池信息 adb shell dumpsys batteryproperties
23.手机日志输出本地 adb logcat >D:/log/11.txt
日志级别:
V — Verbose(最低,输出的最多)
D — Debug
I — Info
W — Warning(警告)
E — Error(错误)
F — Fatal(致命的)
S — Silent(最高,什么都不输出)
输出显示所有优先级大于等于Warning的日志
adb logcat * w >D:/log/22.txt
将日志实时的输出到本地文件
adb logcat -v time >D:/log/33.txt

monkey 命令:

monkey -p com.tencent.mtaexample -s 23 throttle2000 –ignore-crashes –ignore-timeouts -v -v -v 100000>/data/local/tmp/log.txt 2>&1 &

  1. -p后面接着的对应的包名,如果是整机测试,就不需要 -p ackage_name
  2. s是后面是对应的种子数,好像就是操作步骤,根据她们测试的经验,一般种子数在23,同步她们测试的结果,一般种子的个数固定为23,和她们选择的操作步骤就是同步的。
    3.–ignore-crashes –ignore-timeouts 这里是在monkey测试的过程中遇到carash或者timeout的情况时忽略掉,一般不设置时,出现carash或者timeout时,Monkey测试会终止。这里是防止Monkey测试终止。
    4.-v 指的是Monkey测试时打印log级别。
    5.100000 这里是指点击的次数,根据她们测试的经验,对于单个应用程序这个次数设置在100000次就可以了;如果是整机,一般设置在500000次。
    /data/local/tmp/log.txt测试的log记录在手机上/data/local/tmp/ 下面的log.txt里面,这个名字可以自己写。
    6.2>&1 固定的写法,这个也很重要,代表的意思是中间忽略的东东的日志一并输入到指定的文件中。
    7.最后单独的一个”&” 是一旦Monkey测试开始了,之后可以拔掉数据线,不会影响Monkey测试。
    8.测试所有模块 onkey s 23 –ignore-crashes –ignore-timeouts -v-v -v 100000> /data/local/tmp/log.txt 2>&1 &

19web端测试和app端测试的相同点和不同点
1.相同点
不管是传统行业的web测试还是新兴的手机app测试都离不开测试的基础知识,即使不管怎么变,测试的原理依然会融入在这两者当中。
1)设计测试用例时依然是根据边界值、有效等价类和无效等价类、场景法、因果图法、错误推测法来设计用例。
2)多数依然是采用黑盒测试方法来验证业务功能是否得到正确的应用。
3)测试方向依然是:ui界面布局是否合理,风格按钮是否简洁美观、功能测试、稳定性测试、页面载入和翻页的速度,登录时长,
内存是否溢出、安全测试、性能测试。
2.不同点
相对于web测试,手机软件测试,除了要考虑基本的功能测试、性能等,还要考虑手机本身固有的属性特征。所以对比web测试和手机测试,
手机测试过程中还需要注意如下几个方面特性:
1)手机作为通信工具,来电、去电、接收短信等操作都会对app应用程序产生影响,所以app测试第一个要考虑的属性特征是:中断测试。
中断测试有人为中断、新任务中断以及意外中断等几种情况,主要从以下几个方面进行验证:
a.来电中断:呼叫挂断、被呼叫挂断、通话挂断、通话被挂断
b.短信中断:接收短信、查看短信
c.其他中断:蓝牙、闹钟、插拔数据线、手机锁定、手机断电、手机问题(系统死机、重启)
2)手机用户对app产品的安装卸载操作:从上一个版本/上两个版本直接升级到最新版本。
全新安装新版本
新版本覆盖旧版本安装
卸载旧版本,安装新版本
卸载新版本,安装新版本
3)兼容性的区别
web测试主要考虑浏览器内核以及浏览器版本的兼容,操作系统的兼容性,分辨率的兼容。
APP兼容性主要考虑不同厂家的不同手机型号、系统版本、屏幕分辨率、屏幕大小、内存大小。
4)APP横竖屏测试,不同方向屏幕显示以及操作。
5)APP测试还需要考虑网络2G3G4G5G WIFI 弱网环境。

20.charles 抓取移动端的步骤 和进行响应断点的步骤 以及如何进行模拟404的步骤
1.网络连接 手机与macbook需要连接同一网段的网络,macbook可以是有线,手机连wifi,也可以两者连接同一个wifi。
2.设置charles代理 打开charles/proxy/proxy-settings,设置一个端口号,默认的8888就可以。
3.3. 手机设置代理 查询macbook的ip地址,并在手机连接的wifi上手动设置代理,代理主机名为ip地址,代理端口号为8888,这时候用手机访问网页,charles会弹出下列框,说明charles已经开始对手机抓包了,点击允许。
4.可以看到charles已经成功抓取了手机访问的网页内容。
5.手机安装charles证书 虽然抓包成功了,但是每次点击网页,手机都需要授权,允许charles抓包,十分麻烦,需要安装charles的证书。点击help/SSL proxying,
6然后在手机浏览器中访问手机http://charlesproxy.com/getssl,安装即

断点:
方法二、选中想要设置断点的接口,右键,点击Breakpoints,即可完成断点设置
方法二、点击工具栏Proxy选项->Breakpoints Settings,新增输入想要设置断点的接口,然后点击 “OK”按钮,即可完成断点设置

模拟404:
1.tools——>blacklist
2.允许启用黑名单功能,选择接口返回错误的形式(404 或者403),添加接口地址并保存
3.注:【blocking connection】 选项可以选择“drop connection”或者 “403 respose”.前者接口会直接返回404错误,后者接口返回403错误

3.选中需要返回404/403的接口,点击【ok】

image再次请求效果如下(接口返回404)

来源:空忆804

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年3月13日
下一篇 2021年3月13日

相关推荐