软件测试实例——总结

目录

  • 1、简单用户界面登陆过程都需要做哪些分析。
  • 2、请对这个系统做出测试用例:一个系统,多个摄像头,抓拍车牌,识别车牌,上传网上, 网上展示。
  • 3、 请你对吃鸡游戏进行压力测试。
  • 4、请你根据微信登录界面设计测试用例
  • 5、请你对朋友圈点赞功能进行测试
  • 6、如果做一个杯子的检测,你如何测试
  • 7、 如何对一个页面进行测试。
  • 8、如何对淘宝搜索框进行测试?
  • 9、如何对一瓶矿泉水进行测试
  • 10、请你来说一下购物车的测试用例
  • 11 、你写的测试程序是怎么样的,你写过前端、后端程序吗?
  • 12、有没有写过测试脚本,怎么写的?
  • 13、请问你 web 测试,怎么写的?
  • 14、请问测试路由器怎么测,用命令行还是界面?
  • 15、请回答如何测试手机开机键?
  • 16、请问你遇到过哪些印象深刻的 bug,接口测试出现 bug 的原因有哪些?
  • 17、在做项目中有做过压力测试吗,怎么做。
  • 18、请问你在项目中关于功能测试和接口测试是怎么做的。
  • 19 、请问你有用过什么测试工具吗,用过哪些?
  • 20、请你设计一个微信朋友圈点赞的测试用例?
  • 21、请问如果用户点击微博的关注图标但是 app 上面没有反应,应该怎么排查这个问题
  • 22、广东用户头条 app 刷不出东西了,你应该怎么排查问题?
  • 22、 请你说一下能不能用机器学习去进行自动化测试,如何监控异常流量,如果是脉冲呢, 如何和正常流量作区分。
  • 23、请你说一说当前工作中涉及的测试问题(测试流程和测试性能)
  • 24、性能测试有哪些指标,对一个登录功能做性能测试,有哪些指标,怎么测 出可同时处理的最大请求数量。
  • 25、怎么进行单元测试,对一个没有参数没有返回值但可 能对全局变量有影响的怎么进行单元测试?
  • 26、请问你有没有做过压力测试。
  • 27、对于有系统大量并发访问,你会如何做测试,有什么建议。

1、简单用户界面登陆过程都需要做哪些分析。

参考回答:
一、功能测试
1.输入正确的用户名和密码,点击提交按钮,验证是否能正确登录。 2.输入错误的用户名或者密码,验证登录会失败,并且提示相应的错误信息。
3.登录成功后能否能否跳转到正确的页面
4.用户名和密码,如果太短或者太长,应该怎么处理
5.用户名和密码,中有特殊字符(比如空格),和其他非英文的情况 6.记住用户名的功能
7.登陆失败后,不能记录密码的功能
8.用户名和密码前后有空格的处理
9.密码是否非明文显示,使用星号圆点等符号代替。
10.牵扯到验证码的,还要考虑文字是否扭曲过度导致辨认难度大,考虑颜色(色盲使用者), 刷新或换一个按钮是否好用
11.登录页面中的注册、忘记密码,登出用另一帐号登陆等链接是否正确
12.输入密码的时候,大写键盘开启的时候要有提示信息。
13.什么都不输入,点击提交按钮,检查提示信息。
二、界面测试
1.布局是否合理,testbox 和按钮是否整齐。
2.testbox 和按钮的长度,高度是否复合要求。

  • 界面的设计风格是否与 UI 的设计风格统一。
  • 界面中的文字简洁易懂,没有错别字。
    三、性能测试
    1.打开登录页面,需要的时间是否在需求要求的时间内。
    2.输入正确的用户名和密码后,检查登录成功跳转到新页面的时间是否在需求要求的时间内。
    3.模拟大量用户同时登陆,检查一定压力下能否正常登陆跳转。 **
    四、安全性测试
    1.登录成功后生成的 Cookie,是否是 httponly (否则容易被脚本盗取)。
    2.用户名和密码是否通过加密的方式,发送给 Web 服务器。
    3.用户名和密码的验证,应该是用服务器端验证,而不能单单是在客户端用 javascript 验证。
    4.用户名和密码的输入框,应该屏蔽 SQL 注入攻击。
    5.用户名和密码的的输入框,应该禁止输入脚本 (防止 XSS 攻击)。
    6.防止暴力破解,检测是否有错误登陆的次数限制。
  • 是否支持多用户在同一机器上登录。
  • 同一用户能否在多台机器上登录。
    五、可用性测试
    1、是否可以全用键盘操作,是否有快捷键。
    2、输入用户名,密码后按回车,是否可以登陆。
    3、输入框能否可以以 Tab 键切换。
    六、兼容性测试
    1.不同浏览器下能否显示正常且功能正常(IE,6,7,8,9, Firefox, Chrome, Safari等)。
    2.同种浏览器不同版本下能否显示正常且功能正常。
    2.不同的平台是否能正常工作,比如 Windows, Mac。
    3.移动设备上是否正常工作,比如 Iphone, Andriod。
    4.不同的分辨率下显示是否正常。
    七、本地化测试
    1、 不同语言环境下,页面的显示是否正确。

2、请对这个系统做出测试用例:一个系统,多个摄像头,抓拍车牌,识别车牌,上传网上, 网上展示。

参考回答:
功能:
1.每个摄像头都能抓拍车牌;
2.每个摄像头抓拍到的车牌能正常交给系统处理;
3.系统能够正确识别车牌;
4.系统能够将识别出的车牌上传;
5.上传至网络的车牌能够正常展示出来;
一、功能测试
1.使用正常的车牌,保持车牌静止,检查每个摄像头是否能抓拍车牌;
2.使用类似非车牌的写有字的纸板,检查每个摄像头是否抓拍;
3.使用正常的车牌,保持车牌较高速移动,检查每个摄像头是否能抓拍车牌;
4.在多种情况下检查每个摄像头抓拍到的车牌能否正常交给系统处理,如临时断电、断网后能否正常将数据交给系统;
5.使用抓拍到的正常的车牌,交由系统处理,检查系统能否识别车牌;
6.使用非车牌的其他图片,交由系统处理,检查系统能否识别;
7.在多种情况下检查系统能否将正常识别出的车牌进行上传,如临时断电、断网后未上传数据是否能继续上传;
8.构造非车牌的其他内容的数据,检查系统能否将异常内容进行上传;
9.检查上传至网络的车牌能否正常展示出来;
10.上传非车牌的其他内容的数据,检查能否正常显示出来。
二、性能测试
1.同时向一个摄像头展示多个静止的车牌,检查摄像头能否抓拍到多个车牌;
2.同时向一个摄像头展示多个较高速运动的车牌,检查摄像头能否抓拍到多个车牌;
3.抓拍后,检查系统识别车牌的时间是否在需求要求的时间内
4.模拟大量抓拍照片同时交由系统处理,检查一定压力下系统能否正常识别车牌;
5.模拟大量车牌同时上传,检查一定压力下能否上传成功
三、安全性测试
1.检查是否能够通过给车牌加装饰物等方法,使摄像头无法抓拍或抓拍后系统无法正常识别车牌。

3、 请你对吃鸡游戏进行压力测试。

参考回答:
一、首先明确需要测试压力的内容:
1.游戏服务器硬件
a.硬盘 I/o
b.内存
c.CPU
2.网络压力
a.长连接
a1.最大连接数
a2.流量(内网、外网、进、出)
b.长连接短周期(类似 Http 的 TCP 应用,这个比较特殊的一个需求,专门针对 LoginAgent)
b1.每秒建立的连接数
b2.实际处理能力
3.数据库
a.每秒事务数
b.每秒锁等待数
c.平均延时(ms)
d.CPU 暂用
4.多线程的最优线程数
a.数据库执行的多线程
b.多连接处理
二.Windows Server 环境测试方式
1.服务器性能监测
使用 Server 自带的性能监测器设置各个进程的监测参数。Window 的这个自动工具做的相当强大。大家自己摸一摸基本就会用了。每个参数都由详细的说明。
2.案例设计注意
a.对于数据库的性能测试上,现在由于所有的游戏服务器构架在 DB 前面都有一个实现 DB 缓冲功能的进程,以减少数据库频繁的读写操作。所以其实数据库的读是一个轻量级的数量;而数据库的写操作是一个周期性能过程。案例设计一定要能够驱动这种周期性能过程。比如我们游戏的战斗,导致游戏玩家数据的改变,或驱动所有在线玩家数据的周期性存储。
b.选择具有代表性,并且最频繁的游戏操作。用于进行最高用户在线的各种性能指标采集。 如,开枪、道具拾取、道具使用、移动、聊天
c.聊天性能测试 广播聊天是最为考验游戏信息发送能力的功能。通过进行全局广播的压力测试。我们可以获 取服务器进程发送信息到客户端的最高承载量。进而可以对我们的各种广播功能进行一个预估和 频率限制。
d.同屏玩家的移动测试移动+广播。这两种信息,基本是网络游戏流量的 70-80%左右。同屏玩家数量,将会增加各 种数据的广播需求,非常影响游戏性能。所以同屏的移动测试也是广播测试的一个必要环节。需 要根据实际结果进行适当的优化。
e.大量玩家同时登录测试 玩家登录时,有大量的信息需要进行分配和初始化;同时也有大量的数据需要下传客户端。 服务器需要进行大量的 TCP 连接建立。所以是一个比较关键的过程。这个测试案例是一个比较特 殊,但是运营是肯定会碰到的案例。
f.由于线程池处理事务,随着事务的时耗,存在一个最优线程数的问题。过多的线程反而会 降低服务器效率
3.细节问题
a.进行测试需要仔细思考客户端性能影响服务器最后表现的可能性。比如
a1.模拟客户端的性能无法有效处理服务器返回信息,可能就导致服务器发送的信息缓存在 服务器系统缓存,从而表现出服务器内存不断增加。表现为服务器发送能力不足,其实可能根本 就是客户端的性能问题
a2.客户端性能问题,导致发起的请求数过少,从而导致单位时间内服务器处理的请求过少。 表现为服务器性能不足,其实根本就是客户端的请求能力不足。
b.网络带宽导致最后表现不足
b1.确认服务器的各个网卡,以及相互的带宽。不然可能因为相互带宽,导致服务器对于客 户端请求的处理延时。表现为服务器卡机 b2.客户端模拟多个玩家,比如 1000 个玩家。而客户端的网卡或者客户端与服务器之间的中 转服务器带宽过小,导致服务器数据发送不出,内存不断增加。表现为服务器发送能力不足,其 实是中间带宽问题。
c.debug i/o 导致服务器性能下降
c1.进行性能测试,一定要取消debug用的同步的i/o.比如我们服务器的debuginternalLog. 同步 i/o 是非常影响性能的,特别在压力测试下可能导致每秒上千上万甚至几十万次的执行。一 处的文件写入操作就可以导致几十万次的处理能力变成几千次的处理能力。
c2.客户端避免进行阻塞操作导致模拟多用户性能下降,导致服务器表现性能下降
d.流量需要区分内网网 内、外网流量在游戏正式运行时是完全分开的。价格也是完全不同的。一个千 M 的外网是一 个无法想象的运营成本,而 kmbps/s 现在已经是一个可以接受的代价。游戏进程需要进行不同网 卡的配置和绑定。确定内外网流量。

4、请你根据微信登录界面设计测试用例

参考回答:
一、功能测试
1.输入正确的用户名和密码,点击提交按钮,验证是否能正确登录。 2.输入错误的用户名或者密码,验证登录会失败,并且提示相应的错误信息。
3.登录成功后能否能否跳转到正确的页面
4.检查能否选择不同登录方式进行登录,如使用手机号登录、使用微信号登录或扫码登录。
5.记住用户名的功能
6.登陆失败后,不能记录密码的功能
7.密码是否非明文显示显示,使用星号圆点等符号代替。
8.有验证码时,还要考虑文字是否扭曲过度导致辨认难度大,考虑颜色、刷新或换一个按钮是否好用
9.登录页面中的注册、忘记密码,登出用另一帐号登陆等链接是否正确
10.输入密码的时候,大写键盘开启的时候要有提示信息。
11.什么都不输入,点击提交按钮,检查提示信息。
二、界面测试
1.布局是否合理,testbox 和按钮是否整齐。
2.testbox 和按钮的长度,高度是否复合要求。

  • 界面的设计风格是否与 UI 的设计风格统一。
  • 界面中的文字简洁易懂,没有错别字。
    三、性能测试
    1.打开登录页面,需要的时间是否在需求要求的时间内。
    2.输入正确的用户名和密码后,检查登录成功跳转到新页面的时间是否在需求要求的时间内。
    3.模拟大量用户同时登陆,检查一定压力下能否正常登陆跳转。
    四、安全性测试
    1.登录成功后生成的 Cookie,是否是 httponly (否则容易被脚本盗取)。
    2.用户名和密码是否通过加密的方式,发送给 Web 服务器。
    3.用户名和密码的验证,应该是用服务器端验证,而不能单单是在客户端用 javascript 验证。
    4.用户名和密码的输入框,应该屏蔽 SQL 注入攻击。
    5.用户名和密码的的输入框,应该禁止输入脚本防止 XSS 攻击)。
    6.防止暴力破解,检测是否有错误登陆的次数限制。
  • 是否支持多用户在同一机器上登录。
  • 同一用户能否在多台机器上登录。
    五、兼容性测试
    1.不同移动平台或 PC 环境下下能否显示正常且功能正常
    2.同种平台下不同微信版本下能否显示正常且功能正常。
    3.不同的分辨率下显示是否正常。
    七、本地化测试
    1.不同语言环境下,页面的显示是否正确。

5、请你对朋友圈点赞功能进行测试

参考回答:
1.是否可以正常点赞和取消;
2.点赞的人是否在可见分组里;
3.点赞状态是否能即时更新显示;
4.点赞状态,共同好友是否可见;
5.不同手机,系统显示界面如何;
6.性能检测,网速快慢对其影响;
7.点赞显示的是否正确,一行几个;
8.点赞是否按时间进行排序,头像对应的是否正确;
9.是否能在消息列表中显示点赞人的昵称、
备注;
10.可扩展性测试,点赞后是否能发表评论;
11.是否在未登录时可查看被点赞的信息。

6、如果做一个杯子的检测,你如何测试

1.功能
(1)水倒水杯容量的一半
(2)水倒规定的安全线
(4)水杯容量刻度与其他水杯一致
(5)盖子拧紧水倒不出来
(6)烫手验证
2.性能
(1)使用最大次数或时间
(2)掉地上不易损坏
(3)盖子拧到什么程度水倒不出来
(4)保温时间长
(5)杯子的耐热性
(6)杯子的耐寒性
(7)长时间放置水不会漏
(8)杯子上放置重物达到什么程度杯子会被损坏
3.界面
(1)外观完整、美观
(2)大小与设计一样(高、宽、容量、直径)
(3)拿着舒服
(4)材质与设计一样
(5)杯子上的图案掉落
(6)图案遇水溶解
== 4.安全==
(1)杯子使用的材质毒或细菌的验证
(2)高温材质释放毒性
(3)低温材质释放毒性
5.易用性
(1)倒水方便
(2)喝水方便
(3)携带方便
(4)使用简单,容易操作
(5)防滑措施
6.兼容性
(1)杯子能够容纳果汁、白水、酒精、汽油等。
7.震动测试
(1)杯子加包装(有填充物),六面震动,检查产品是否能应对铁路/公路/航空运输。
8.可移植性
(1)杯子在不同地方、温度环境下都可以正常使用。

7、 如何对一个页面进行测试。

参考回答:
1、UI 测试:页面布局、页面样式检查、控件长度是否够长;显示时,是否会被截断;支持的快捷键,Tab 键切换焦点顺序正确性等。
2、功能测试:页面上各类控件的测试范围,测试点。结合控件的实际作用来补充检查点: 比如,密码框是否*显示, 输入是否做 trim 处理等。
3、安全测试:输入特殊字符,sql 注入,脚本注入测试。后台验证测试,对于较重要的表单 ,绕过 js 检验后台是否验证;数据传输是否加密处理,比如, 直接请求转发,地址栏直接显示发送字符串?
4、兼容性测试
5、性能测试

8、如何对淘宝搜索框进行测试?

一, 功能测试
1、输入关键字,查看: 返回结果是否准确,返回的文本长度需限制
1.1 输入可查到结果的正常关键字、词、语句,检索到的内容、链接正确性;
1.2 输入不可查到结果的关键字、词、语句;
1.3 输入一些特殊的内容,如空、特殊符、标点符、极限值等,可引入等价类划分的方法等;
2、 结果显示:标题,卖家,销售量,单行/多行,是否有图片
3. 结果排序:价格 销量 评价 综合
4.返回结果庞大时,限制第一页的现实量,需支持翻页
4. 多选项搜索:关键字 品牌 产地 价格区间 是否天猫 是否全国购
5. 是否支持模糊搜索,支持通配符的查询
6. 网速慢的情况下的搜索
7. 搜索结果为空的情况
8.未登录情况和登录情况下的搜索(登录情况下存储用户搜索的关键字/搜索习惯)
二.性能测试
1 、压力测试:在不同发用户数压力下的表现(评价指标如响应时间等)
2 、负载测试:看极限能承载多大的用户量同时正常使用
3 、稳定性测试:常规压力下能保持多久持续稳定运行
4 、内存测试:有无内存泄漏现象
5 、大数据量测试:如模拟从庞大的海量数据中搜索结果、或搜索出海量的结果后列示出来, 看表现如何等等。
三.易用性:交互界面的设计是否便于、易于使用
1、 依据不同的查询结果会有相关的人性化提示,查不到时告知?查到时统计条数并告知?有 疑似输入条件错误时提示可能正确的输入项等等处理;
2、查询出的结果罗列有序,如按点击率或其他排序规则,确保每次查询出的结果位置按规则 列示方便定位,显示字体、字号、色彩便于识别等等;
3、 标题查询、全文检索、模糊查询、容错查询、多关键字组织查询(空格间格开)等实用的 检索方式是否正常?
4 输入搜索条件的控件风格设计、位置摆放是否醒目便于使用者注意到,有否快照等快捷查 看方式等人性化设计?
四.兼容性
1、WINDOWS/LINUX/UNIX 等各类操作系统下及各版本条件下的应用
2、IE/FIREFOX/GOOGLE/360/QQ 等各类浏览器下及各版本条件下、各种显示分辨率条件下的应用
3、SQL/ORACLE/DB2/MYSQL 等各类数据库存储情况下的兼容性测试
4、 简体中文、繁体中文、英文等各类语种软件平台下的兼容性测试
5、IPHONE/IPAD、安卓等各类移动应用平台下的兼容性测试
6 、与各相关的监控程序的兼容性测试,如输入法、杀毒、监控、防火墙等工具同时使用
五.安全性
1、 被删除、加密、授权的数据,不允许被 SQL 注入等攻击方式查出来的,是否有安全控制设 计;
2、 录入一些数据库查询的保留字符,如单引号、%等等,造成查询 SQL 拼接出的语句产生漏 洞,如可以查出所有数据等等,这方面要有一些黑客攻击的思想并引入一些工具和技术,如爬网 等。
3、 通过白盒测试技术,检查一下在程序设计上是否存在安全方面的隐患;
4、 对涉及国家安全、法律禁止的内容是否进行了相关的过滤和控制;

9、如何对一瓶矿泉水进行测试

参考回答:
界面测试:查看外观是否美观
功能测试:查看水瓶漏不漏;瓶中水能不能被喝到
安全性:瓶子的材质有没有毒或细菌(在低温、高温、正常)
可靠性:从不同高度落下的损坏程度
可移植性:再不同的地方、温度等环境下是否都可以正常使用
兼容性:是否能够容纳果汁、白水、酒精、汽油等
易用性:是否烫手、是否有防滑措施、是否方便饮用
用户文档:使用手册是否对的用法、限制、使用条件等有详细描述
疲劳测试:将盛上水(案例一)放 24 小时检查泄漏时间和情况;盛上汽油(案例二)放 24 小时检查泄漏时间和情况等
压力测试:用根针并在针上面不断加重量,看压强多大时会穿透
跌落测试:测试在何种高度跌落会破坏水瓶

10、请你来说一下购物车的测试用例

参考回答:
1.界面测试
• 界面布局、排版是否合理;文字是否显示清晰;不同卖家的商品是否区分明显。
** 2.功能测试 **
未登录时
• 将商品加入购物车,页面跳转到登录页面,登录成功后购物车数量增加;
• 点击购物车菜单,页面跳转到登录页面。
登录后
• 所有链接是否跳转正确;
• 商品是否可以成功加入购物车;
• 购物车商品总数是否有限制;
• 商品总数是否正确;
• 全选功能是否好用;
• 删除功能是否好用;
• 填写委托单功能是否好用;
• 委托单中填写的价格是否正确显示;
• 价格总计是否正确;
• 商品文字太长时是否显示完整;
• 店铺名字太长时是否显示完整;
• 创新券商品是否打标;
• 购物车中下架的商品是否有特殊标识;
• 新加入购物车商品排序(添加购物车中存在店铺的商品和购物车中不存在店铺的商品);
• 是否支持 TAB、ENTER 等快捷键;
• 商品删除后商品总数是否减少;
• 购物车结算功能是否好用。
3.兼容性测试
• 不同浏览器测试。
4.易用性测试
• 删除功能是否有提示;是否有回到顶部的功能;商品过多时结算按钮是否可以浮动显示。
5.性能测试
• 压力测试;并发测试。

11 、你写的测试程序是怎么样的,你写过前端、后端程序吗?

参考回答: 开发测试驱动程序一般分为 4 步:
1,指出需要的新特性。可以记录下来,然后为其编写一个测试。 2,编写特性的概要代码,这样程序就可以运行而没有任何语法等方面的错误,但是测试会失败。看到测试失败是很重要的,这样就能确定测试可以失败。如果测试代码中出现了错误,那么就有可能出现任何情况,测试都会成功,这样等于没测试任何东西。再强调一遍:在试图测试 成功之前,先要看到它失败。
3,为特性的概要编写虚设代码,能满足测试要求就行。不用准确的实现功能,只要保证测 试可以通过即可。这样一来就可以保证在开发的时候总是通过测试了,(除了第一次测试的时候) 甚至在最初实现功能时亦是如此。
4,现在重写(或者重构)代码,这样它就会做自己应该做的事,从而保证测试一直成功。 在编码完成时,应该保证代码处于健康状态–不要遗留下任何测试失败。
写过前端测试

12、有没有写过测试脚本,怎么写的?

参考回答:
然后,撰写测试桩与驱动,白盒测试保证代码逻辑中循环和分支都能够走到,黑盒测试保证函数和首先,代码走查结合动态单步跟踪以及观察日志与文件输出,网络、CPU 状态。 功能脚本接口正确,输入输出符合设计预期。 对于异常处理,特别是变量的检查需要特别关注,变量在使用前都需要进行检查,是否为空?或者为 0?对于文件名和路径必须检查,确认文件是否存在,路径是否可达之后再进行后续操作。 另外,需要考虑所依赖的其他功能脚本以及二进制工具,这些功能性单元应该如何使用,调用后 的返回会有哪些情况,对于正常和异常结果,脚本是否能够捕捉到并且作出正确的判断。

13、请问你 web 测试,怎么写的?

参考回答:
Web 测试主要从下面几个大方向考虑
功能测试,主要做链接测试,表单测试,cookies 测试,设计语言测试等

性能测试,考虑连接速度测试,以及负载测试,例如:Web 应用系统能允许多少个用户同时 在线?如果超过了这个数量,会出现什么现象?Web 应用系统能否处理大量用户对同一个页面的请求?还有压力测试 。

可用性测试,比如导航测试,图形测试,内容测试,整体界面测试等

兼容性测试,市场上有很多不同的操作系统类型,最常见的有 Windows、Unix、Macintosh、 Linux 等。Web 应用系统的最终用户究竟使用哪一种操作系统,取决于用户系统的配置。这样, 就可能会发生兼容性问题,同一个应用可能在某些操作系统下能正常运行,但在另外的操作系统 下可能会运行失败。因此,在 Web 系统发布之前,需要在各种操作系统下对 Web 系统进行兼容性测试。

安全性测试
(1)现在的 Web 应用系统基本采用先注册,后登陆的方式。因此,必须测试有效和无效的用 户名和密码,要注意到是否大小写敏感,可以试多少次的限制,是否可以不登陆而直接浏览某个 页面等。
(2)Web 应用系统是否有超时的限制,也就是说,用户登陆后在一定时间内(例如 15 分钟) 没有点击任何页面,是否需要重新登陆才能正常使用。 (
3)为了保证 Web 应用系统的安全性,日志文件是至关重要的。需要测试相关信息是否写进 了日志文件、是否可追踪。
4)当使用了安全套接字时,还要测试加密是否正确,检查信息的完整性。
5)服务器端的脚本常常构成安全漏洞,这些漏洞又常常被黑客利用。所以,还要测试没有经过授权,就不能在服务器端放置和编辑脚本的问题。

14、请问测试路由器怎么测,用命令行还是界面?

参考回答:
可以采用 lperf 这个命令, Lperf 是一个网络性能测试工具,可以测量最大 tcp 和 udp 带宽,具有多种参数和特性,可 以记录带宽,延迟抖动,数据包丢失,通过这些信息可以发现网络问题,检查网络质量,定位网 络瓶颈。

iperf 的使用非常简单,测试的原理是在 wan 口连接一台 PC 机,在 LAN 口连接一台 PC,两 边分别运行 iperf 服务端和客户端模式,用来测量 LAN->WAN 和 WAN->LAN 性能。

具体命令如下:
服务端:iperf -s -w 1m
客户端:iperf -c -w 1m -t 20 -P 10
含义是 TCP wndowsize 为 1MByte,测试时间是 20s,线程是 10。

15、请回答如何测试手机开机键?

参考回答:
功能测试: 按下开机键,屏幕能否亮起 。
性能测试: 按下开机键,屏幕能否在规定时间内亮起 。
压力测试 连续多次按下开机键,观察屏幕是否能一直亮起,到多久时间失灵 。
健壮性测试 给定一个中了病毒的手机或者是淘汰许久的老机子,安歇开机键观察屏幕能否亮起 。
可靠性测试 连续按下开机键有限次数,比如 1 万次,记录屏幕未亮起的次数 。
可用性测试 开机键按下费不费力,开机键的形状设计是否贴合手指,开机键的位置设计是否方便。

16、请问你遇到过哪些印象深刻的 bug,接口测试出现 bug 的原因有哪些?

面试官询问遇到过哪些印象深刻的 bug,其实它并不关心你描述的这个 bug 是否真的有价值, 或有多曲折离奇?他只是:了解你平时工作中的测试能力。
所以,这就要求的你平时工作中遇到 bug 时试着自己去定位,定位 bug 的过程远比你单纯的执行测试用例有“价值”(自我技能提高的价值),在定位 bug 的过程中你需要掌握和运用更多知识。
另外,建议平时养成总结的好习惯,发现的 bug,开发解决了,最好问问他原因以及解决的方法,这样再遇到类似问题时,自己也可以试着定位解决。遇到难解决的 bug,也可以把最的解决过程记录下来。(这不是就有素材了) 所以,建议你平时可以主动要求去分享一些自己工作中用到或学习的技术。或者多去参加集体活动,加强自己的表达能力。
接口测试常见的 bug 有以下几个:
1特殊值处理不当导致程序异常退出或者崩溃
2类型边界溢出,导致数据独处和写入不一致
3取值边界外未返回正确的错误信息
4权限未处理,可以访问其他用户的信息
5逻辑校验不完善,可以利用漏洞获取非正当利益
6状态处理不当,导致逻辑出现错误
7q数组类型 item 个数为 0 或者 item 重复时程序异常退出

17、在做项目中有做过压力测试吗,怎么做。

1、首先对要测试的系统进行分析,明确需要对那一部分做压力测试,比如秒杀,支付
2、如何对这些测试点进行施压
第一种方式可以通过写脚本产生压力机器人对服务器进行发包收包操作
第二点借助一些压力测试工具比如 Jmeter,LoadRunner
3、如何对这些测试点进行正确的施压 需要用压力测试工具或者其他方法录制脚本,模拟用户的操作
4、对测试点设计多大的压力比较合适? 需要明确压力测试限制的数量,即用户并发量
5、测试结束后如何通过这些数据来定位性能问题

通过测试可以得到吞吐量平均响应时间等数据,这个数据的背后是整个后台处理逻辑综合作用的结果,这时候就可以先关注系统的 CPU,内存,然后对比吞吐量,平均响应时间达到瓶颈时这些数据的情况,然后就能确认性能问题是系统的哪一块造成的。

18、请问你在项目中关于功能测试和接口测试是怎么做的。

参考回答
功能测试
首先制定测试计划,然后进行测试设计,将在测试计划阶段指定的测试活动分解,进而细化, 为若干个可执行程序的子测试过程,然后执行测试,按照测试计划使用测试用例对待测项目进行逐一的,详细的排查分析评估,最后对测试结果进行统计和分析,
接口测试
什么是接口(API) API 全称 Application Programming Interface,这里面我们其实不用去关注 AP,只需要I上就可以。一个 API 就是一个 Interface。我们无时不刻不在使用 interfaces。我们乘坐电梯里面的按钮是一个 interface。我们开车一个踩油门它也是一个 interface。我们计算机操作系统也是有很多的接口。(这是目前个人找到比较好理解的一段解释) 接口就是一个位于复杂系统之上并且能简化你的任务,它就像一个中间人让你不需要了解详细的所有细节。那我们今天要讲的 Web API 就是这么一类东西。像谷歌搜索系统,它提供了搜 索接口,简化了你的搜索任务。再像用户登录页面,我们只需要调用我们的登录接口,我们就可以达到登录系统的目的。 现在市面上有非常多种风格的 Web API,目前最流行的是也容易访问的一种风格是 REST 或 者叫RESTful 风格的 API。从现在开始,以下我提到的所有 API 都是指 RESTful 风格的 API。
什么是接口测试和为什么要做接口测试
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。 现在很多系统前后端架构是分离的,从安全层面来说,只依赖前端进行限制已经完全不能满 足系统的安全要求(绕过前端太容易了), 需要后端同样进行控制,在这种情况下就需要从接 口层面进行验证。 如今系统越来越复杂,传统的靠前端测试已经大大降低了效率,而且现在我们都推崇测试前 移,希望测试能更早的介入测试,那接口测试就是一种及早介入的方式。例如传统测试,你是不 是得等前后端都完成你才能进行测试,才能进行自动化代码编写。 而如果是接口测试,只需要 前后端定义好接口,那这时自动化就可以介入编写接口自动化测试代码,手工测试只需要后端代 码完成就可以介入测试后端逻辑而不用等待前端工作完成。
接口测试的策略
接口测试也是属于功能测试,所以跟我们以往的功能测试流程并没有太大区别,测试流程依旧是:
1.测试接口文档(需求文档)
2.根据接口文档编写测试用例(用例编写完全可以按照以往规则来编写,例如等价类划分,边界值等设计方法)
3. 执行测试,查看不同的参数请求,接口的返回的数据是否达到预期。

19 、请问你有用过什么测试工具吗,用过哪些?

自动化测试工具用过 selenium 和 appium
性能测试工具有用过 Jmeter

20、请你设计一个微信朋友圈点赞的测试用例?

功能测试
点赞某条朋友圈,验证是否成功 。
接口测试
点赞朋友圈,验证朋友能否收到提示信息 。
性能测试
点赞朋友圈,是否在规定时间显示结果,是否在规定时间在朋友手机上进行提示 。
兼容性测试
在不同的终端比如 ipad手机上点赞朋友圈,验证是否成功。

21、请问如果用户点击微博的关注图标但是 app 上面没有反应,应该怎么排查这个问题

参考回答:
首先 1.在 Eclipse Devices 窗口,选中 app 对应的包名,然后点击 debug 图标(绿色的小 虫子),然后切换到 Debug 视图。
2.切换视图之后,可以看到 debug 下,app 的线程列表。
3.对于 main 线程(第一个线程),选中,并将其挂起 Suspend。
4.然后我们就可以看到,Suspend 之后,main 线程卡住的位置。

22、广东用户头条 app 刷不出东西了,你应该怎么排查问题?

参考回答:
1、检查网络连接是否稳定,更换网络尝试
2、更新头条版本尝试
3、清除 app 缓存,应用数据

22、 请你说一下能不能用机器学习去进行自动化测试,如何监控异常流量,如果是脉冲呢, 如何和正常流量作区分。

如何用机器学习去进行自动化测试,就是让自动化测试变得更加智能,在自动化测试过程中, 当测试功能模块越来越多,没有太多的时间去全部覆盖,我们可以采用归纳学习的方式,基于自动化测试的执行结果或者手工测试执行的结果为数据输入,然后基于一定的模型(例如:以通过率和模块的重要率计算的平均值)得出测试推荐模块,或者当要执行一个功能模块时,基于历史数据和模型(bug 出现的错误相关性,功能相关性等)计算出与该功能模块相关性最大模块,并推荐测试。
如何监控异常流量
1、抓包 tcpdump -i eth0 -w server.cap 对包文件使用第三方工具如:wireshark 做分析
2、iftop yum install iftop
3、iptraf yum install iptraf –y 或 yum install iptraf-ng -y 启动命令 ifptraf-ng

23、请你说一说当前工作中涉及的测试问题(测试流程和测试性能)

参考回答:
在测试性能中,时常会出现脚本回访卡住的问题,原因有以下几种:
1、 runtimesetting 中的 continue error 没有勾选
2、录制的脚本中存在冗余的代码部分,需要对脚本进行优化,去除冗余的部分(优化脚本)
例如:在用 FireFox 录制脚本时,脚本中会产生一个叫” Url=http://download.cdn.mozilla.net/pub/firefox/releases/43.0.1/update/win32/zh-CN/ firefox-43.0.1.complete.mar",“Referer=”, ENDITEM,”这样的代码(该代码出现的问题不止 一处,在查找时一定要注意。),这是因为采用 firefox 浏览器录制时产生的压缩文件,在脚本 回放时卡住的原因正是因为这个(建议:能采用 IE 录制尽量用 IE 浏览器)
解决办法:注释掉或者删除掉该段代码即可, 关联问题:在用 loadrunner 自带对比工具 对比脚本后 找到需要关联的动态值。在关联后回放脚本时报错 HTTP-status code 417 (exception failed)错误时,
产生的原因如下:
1、脚本中还存在没有关联或者关联失败的动态值,利用 lr 自带对比工具仔细对比
2、脚本中的动态值被做了加密策略,仔细查看脚本中动态值的部分,看看动态值是否被做 了安全策略(随机生成或者打乱动态值顺序、在动态值中加入了特殊符号),由于在 tree-response 中的动态值是未被加密的状态,在 client 向 server 发送请求时,client 的动态 值发给服务器,这时服务器的动态值已经被做了参数化,所以服务器不认准 client 向服务器发 送的动态值。 解决办法:去掉动态值的安全策略即可(JVM 参数)。

24、性能测试有哪些指标,对一个登录功能做性能测试,有哪些指标,怎么测 出可同时处理的最大请求数量。

参考回答
性能测试常用指标: 从外部看,主要有
1、吞吐量:每秒钟系统能够处理的请求数,任务数
2、响应时间:服务处理一个请求或一个任务的耗时
3、错误率:一批请求中结果出错的请求所占比例
从服务器的角度看,性能测试关注 CPU,内存,服务器负载,网络,磁盘IO
对登录功能做性能测试
单用户登陆的响应界面是否符合预期
单用户登陆时后台请求数量是否过多
高并发场景下用户登录的响应界面是否符合预期
高并发场景下服务端的监控指标是否符合预期
高集合点并发场景下是否存在资源死锁和不合理的资源等待
长时间大量用户连续登录和登出,服务器端是否存在内存泄漏
怎么测出可同时处理的最大请求数量 可以采用性能测试工具(WeTest 服务器性能),该工具是腾讯 wetest 团队出品,使用起来很 简单方便,但测试功能相当强大,能提供 10w+以上的并发量,定位性能拐点,测出服务器模型最大并发。

25、怎么进行单元测试,对一个没有参数没有返回值但可 能对全局变量有影响的怎么进行单元测试?

如何进行单元测试:
1、创建单元测试,该工具可以对任何类、接口、结构等实体中的字段、属性、构造函数、 方法等进行单元测试。创建单元测试大致可以分为两类:
整体测试,整体测试是在类名称上右击鼠标,在下拉菜单中点击创建单元测试选项。这样就可以为整个类创建单元测试了,这时他会为整个类可以被测试的内容全部添加测试方法。开发人员直接在这些自动生成的测试方法中添加单元测试代码就可以了。

单独测试,如果只想单独对某个方法、属性、字段进行测试,则可以将鼠标焦点放在这 个待测试的项目名称之上,然后点击鼠标右键,在右键菜单中选择创建单元测试选项。这样就可以单独为某个方法创建单元测试了。
运行单元测试
查看测试结果
编写单元测试代码
测试没有参数的函数,它可能还有别的输入,例如全局变量,成员变量,或调用子函数获得 的输入(这个要使用工具才能做到),只要函数需读取的,都应该设定初始值,如果完全没有, 没有输入也是一种输入,照样测试就是了。同样道理,输出也不仅仅是返回值,没有返回值还可 能修改了全局变量什么的,这些也是要判断的输出。

26、请问你有没有做过压力测试。

在软件工程中,压力测试是对系统不断施加压力的测试,是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。例如测试一个 Web 站点在大量的负荷下,何时系统的响应会退化或失败。

27、对于有系统大量并发访问,你会如何做测试,有什么建议。

参考回答: 如何做高并发系统的测试,一般而言,整体的测试策略是:先针对部分系统进行性能测试及压力测试,得到各部分的峰值处理性能,再模拟整体流程测试,重点测试整体业务流程以及业务预期负荷,着重测试以下几点:
1、不同省份,不同运营商 CDN 节点性能,可采用典型压力测试方案
2、核心机房 BGP 网络带宽,此部分重点在于测试各运行商的 BGP 网络可靠性,实际速率, 一般采用 smokeping,lxChariot 等工具
3、各类硬件设备性能,一般采用专业的网络设备测试工具
4、各类服务器并发性能,分布式处理能力,可采用压力测试方案工具
5、业务系统性能,采用业务系统压力测试方案
6、数据库处理性能,这部分需要结合业务系统进行测试,以获取核心业务场景下的数据库 的 TPS/QPS,
7、如果有支付功能,需要进行支付渠道接口及分流测试,此部分相对而言可能是最大的瓶颈所在,此外还涉及备份方案,容灾方案,业务降级方案的测试。

你可能感兴趣的:(测试,软件测试基础知识,软件测试,测试工程师)