测试面试题

1.简述概述缺陷报告包含那些内容?
缺陷编号 严重程度 优先级 所属模块 缺陷状态 测试环境 指派人
缺陷类型 缺陷标题 重现步骤 预期结果 实际结果 提交人 提交时间
测试用例 附件

2.开发人员修复缺陷后,如何保证不影响其他功能。
Bug的修复以及新功能的添加都有可能对版本造成一些影响,为了避免,在新版本发布以后,首先会对新版本做一个基础的流程测试也叫做冒烟测试,如果测试基本流程都顺利通过没有任何问题,那么测试人员可以继续进行详细的测试,否 则就将冒烟测试中出现 的问题以及问题有可能出现的原因反馈给开发人员,由开发人员修正后再次发版,进行测试。这是一个迭代的过程。

3.压力测试和负载测试的区别,需要关注那些指标?
负载测试:是指对程序不段增加压力,每个增加后,程序的性能情况
压力测试:是指程序长时间运行的稳定性
压力测试分为稳定性测试和破坏性测试
区别:负载测试是不关注稳定性的,压力测试是关注稳定性的

4.SQL中having是做什么用的,where和having的区别
HAVING语句的存在弥补了WHERE关键字不能与聚合函数联合使用的不足。
where和having的区别
where:
where是一个约束声明,使用where来约束来自数据库的数据;
where是在结果返回之前起作用的;
where中不能使用聚合函数。
having:
having是一个过滤声明;
在查询返回结果集以后,对查询结果进行的过滤操作;
在having中可以使用聚合函数。

5.如何准备测试数据?防止数据被污染?
准备测试数据:
1、测试数据与脚本分开,结构清晰。
2、解决了前一种方式引发的三个问题。
3、数据直观,可读性强。
1、需要对各个阶段数据的合法值,非常清楚,测试过程中经常会引测试数据的问题,导致执行不通过。
2、当出现大的变动时,数据更改的工作量比较大,灵活性较差,重用性差。单个接口的测试
防止数据污染:
1、初始数据 2、设置数据库的自动提交生效 3、删除数据操作 4、查看删除后的数据 5、回滚数据 6、再次查看数据 7、修改回初始设置

6.如果项目周期很短,测试人力匮乏,你是怎么协调?
依据代码review的结果和影响范围,对测试内容进行适当的裁剪。
借助自动化工具的支持,提高测试案例的执行效率。
调整组内任务的优先级,进行人力协调,优先投入最紧要的项目。
必要的情况下加班

7.你在测试中发现一个重现率低的bug,你会如何处理
从源码的角度分析问题出现的原因 ;
找到特定机型,让QA想办法重现,比如借助自动化工具 ;
猜测可能原因,然后在crash附件埋点抓取有效信息,上报到服务器,然后分析解决;
然后在项目中加入灰度测试,定位问题,只要能复现就可以。

8.qq发消息功能的测试点有哪些
(1)发送消息是否成功(按钮和快捷键)
(2)发送文字(消息为空、空格、最大长度、敏感字、特殊符号)
(3)发送图片,包括从本地选择图片和从外部复制粘贴(图片大小、格式、数量)
(4)发送文字和图片混合的消息
(5)给不同的人发消息(例如:好友、陌生人、群聊里发消息、讨论组里发消息、通过群私聊,需考虑群主开启与未开启私聊的情况)
(6)群发消息(对象包括好友、群聊、讨论组等)
(7)被禁言是否还能发消息
(8)群聊或讨论组中发消息,已经屏蔽群的人是否还能收到
(9)发送消息时,对方在线或离线、忙碌状态等
(10)发送过程中弱网或者断网
(11)从运营安全的考虑,一个qq一天可以发送多少消息,发送多少图片
(12)安全性,当发送黄图或有毒链接时(拦截?提示?)

9.为了提高效率,应该?
选择发现错误可能性大的数据作为测试数据

10.软件测试员究竟是做什么的
软件测试员的目的的发现软件的缺陷,尽可能早一些并确保得以修复

11.linux系统中下面那些命令是用来停止进程的命令
stop

12.用于文件系统直接修改文件权限管理的命令为?
chmod

13改变文件所有者的命令为
chown

14属于测试文档的是
测试计划 测试用例 测试报告

15.划分软件测试属于白盒测试还是黑盒测试的依据是
是否能看到被测源码

16.软件验收测试的合格通告准则是
A . 软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。
B . 所有测试项没有残余一级、二级和三级错误。
C . 立项审批表、需求分析文档、设计文档和编码实现一致。
D . 验收测试工件齐全。

17.软件测试计划评审需要哪些人员参加
A . 项目经理
B . SQA负责人
C . 配置负责人
D . 测试组

18.软件测试设计活动主要有
A.工作量分析
B.确定并说明测试用例
C.确立并结构化测试过程
D.复审并评估测试覆盖

19.测试设计员的职责有
设计测试用例
设计测试过程、脚本

20.软件测试常用的性能测试工具
jmeter
loadrunner

21.load runner分那三个模块
Visual User Generator用来录制脚本的
Controller用来设计场景及跑脚本的
Analysis用来分析数据结构的

22.常见的黑盒测试方法
等价类划分法
边界值
因果图
正交试验
判定表
场景法
错误推

23.典型的软件测试过程模型有
v模型
w模型
h模型
x模型

24.目前unix操作系统提供的一个常用的文本编辑器是, 其中有那三个模型
文本编辑器:vi
其有 命令和 末行 两种模式。(还有一种文本编辑模式)

25.软件的六大质量特性
功能性
易用性
可靠性
效率
维护性
可移植性

26.软件产生缺陷包括原因
软件本身 设计 技术问题

27.jmeter产生元件的执行顺序
(1)配置元件(config elements )
(2)前置处理程序(Per-processors)
(3)定时器(timers )
(4)取样器(Sampler)
(5)后置处理程序(Post-processors) (除非Sampler 得到的返回结果为空)。
(6)断言(Assertions)(除非Sampler 得到的返回结果为空)。
(7)监听器(Listeners)(除非Sampler 得到的返回结果为空)。

28.orale数据库默认的监听端口号, mysql的默认端口
mysql的默认端口:3306
Oracle数据库默认端口号为,1521;

29.使用loadrunner的步骤
1,创建脚本-创建脚本,选择协议-录制脚本-编辑脚本-检查修改脚本是否有误
2,用中央控制器来调度虚拟用户-创建场景,选择脚本-设置机器虚拟用户数-设置事务-如果模拟多机测试,设置IP
3,运行脚本
4,分析测试结果

30.什么是软件测试
软件测试是在测试中识别软件产品和服务的准确性和质量的过程。

31.软件测试的目的
(1)测试是程序的执行过程,目的在于发现错误;
(2)一个好的测试用例在于能发现至今未发现的错误;
(3)一个成功的测试是发现了至今未发现的错误的测试。

32.什么是集合点?设置集合点有什么意义?Loadrunner中设置集合点的函数是哪个?
插入集合点是为了衡量在加重负载的情况下服务器的性能情况。在测试计划中,可能会要求系统能够承受1000 人同时提交数据,在LoadRunner 中可以通过在提交数据操作前面加入集合点,这样当虚拟用户运行到提交数据的集合点时,LoadRunner 就会检查同时有多少用户运行到集合点,如果不到1000 人,LoadRunner 就会命令已经到集合点的用户在此等待,当在集合点等待的用户达到1000 人时,LoadRunner 命令1000 人同时去提交数据,从而达到测试计划中的需求。

说明:在脚本中设置了“集合点”后,当运行场景时可以对集合点进行设置,可以设置当百分之多少用户到达时,系统开始执行以下操作,详细的可以参考中文的用户手册

添加方法:

1、其中录制脚本script view中添加:lr_rendezvous(“XXX”);
2、在录制脚本的tree view里添加:rendezvous-XXX;

33.性能测试中tps如果上不去原因有哪些?
1.网络带宽
2.连接池
3.垃圾回收机制
4.数据库配置
5.通信连接机制
6.硬件资源
7.压力机
8.压测脚本
9.业务逻辑
10.系统构架

34.jmeter的接口测试:

1.在打开的Jmeter 页面中,右键“测试计划” -> “添加” -> “Threads(Users)” -> “线程组”, 建立线程组。
2.右键“线程组” -> “添加” -> “Sample” -> “HTTP请求”, 输入“服务器名称或IP”,对应的端口号,http默认端口号80,可以不写。
3.右键“线程组” -> “添加” -> “监听器” -> “察看结果数”, 添加“察看结果数”, 以察看运行后的结果,如果所示。

35.jmeter的压力测试:
1.在“测试计划”上右键 【添加】–>【Threads(Users)】–>【线程组】
2.设置线程数和循环次数。我这里设置线程数为500,循环一次。
3.在“线程组”右键 【添加-】->【samlper】–>【HTTP 请求】
4.在我们刚刚创建的线程组上右键 【添加】–>【监听器】–>【察看结果树】。添加聚合报告,右键 【添加】–>【监听器】–>【聚合报告】。

36.jmeter的参数化关联:
1.Jmeter参数化:
先准备一个dat文件保存在本地,然后选择”选项“—函数助手—__CSVRead–输入dat文件保存的路径如 C:\test.dat,点击生成并复制KaTeX parse error: Expected group after '_' at position 2: {_̲_CSVRead(c:\tes…{__CSVRead(c:\test.dat,)}粘贴到参数化值的位置。

2.检查点:
检查对对象设置:右键点击某页面---->添加---->断言---->响应断言
检查结果:添加一个断言结果,右键点击页面---->添加---->监听器---->断言结果
还可以再添加一个“查看结果树” 右键点击我们的“登录”页面---->添加---->监听器---->查看结果树

3.集合点设置:
右键点击 step1---->定时器---->Synchronizin
37.jmeter的正则提取器的使用(获取token值)

1.第一步:添加正则表达式

方法非常简单, 正则表达式提取器, A接口是登录, 执行后返回json串中有个token, 而这个token是B接口要使用的, jmeter 提供了后置处理器, 可以很方便的在服务器响应后,把响应数据提取出来并赋值给某个参数, 当我们要用到这个数据, 只需要调用即可

2.第二步,添加BeanShell Sample

3.第三步 在需要的地方引用

4.第四步 执行查验

点击执行按钮, 在结果树上查看传递情况

38.Cookie和Session的区别

1)cookie数据存放在客户的浏览器上,session数据放在服务器上;

2)cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session;

3)session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用cookie;

4)单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

2.Token 和 Session 的区别:

1、Session是存放在服务器端的,可以保存在:内存、数据库、NoSQL中。它采用空间换时间的策略来进行身份识别,若Session没有持久化落地存储,一旦服务器重启,Session数据会丢失。

2、Token是放在客户端存储的,采用了时间换空间策略,它也是无状态的,所以在分布式环境中应用广泛。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值