面试题

1.画出研发周期中测试的不同阶段,在画出上一家公司的项 目流程

测试的各个阶段

测试组工作流程:

编写测试计划 --- >        评审测试计划 -- >      编写测试用例 -- >     评审测试用例 -- >          执行测试阶段(冒烟测试,系统测试) -->        分析和总结测试结果 -- >        完成测试

2.阐述BUG的生命周期,阐述公司的BUG管理工具使用大     致流程

新建——>   确认——>解决——>  重新验证——>关闭——> 重启

公司使用禅道作为BUG管理工具,测试人员主要负责BUG的提交,跟踪,禅道也想测试人员提供测试用例在线编写

3.测试接口从哪几个方面考虑,请写出接口测试用例的框架

测试接口主要考虑接口的功能,业务,异常,性能,安全进行测试

接口的功能

测试接口的功能正确,确实符合接口文档中对接口的功能描述。

接口的业务逻辑

测试接口的业务依赖,某个接口执行需要依赖上一个接口成功请求的cookie

接口的异常

测试接口的入参参数名异常,参数数据异常。

参数名异常:参数名称错误,参数多一个,参数少一个,参数为空。

参数数据异常:数据类型错误,数据有效值错误,数据为空错误,数据长度错误

入参值校验

参数必填校验,参数长度校验,参数数据类型校验,参数数据有效值校验,参数

是枚举值,要覆盖所有枚举值。参数数据默认值校验,参数与参数组合数据校验

接口请求超时

接口处理大量测试数据,数据库读写能力

接口的性能

测试接口并发数,响应时间,吞吐量,服务资源使用情况(cpu,内存)

接口的安全

测试接口的敏感信息加密

请求时传输的参数数据加密

cookie,session有效时间

重要的信息存session,其他信息存cookie,有效时间设定。

4.三个随机数,用面向对象的语言对他们进行排序

插入排序法

public  arr【1,4,8】

public class InsertSort {

    public static void sort(int[] arr) {

        if (arr.length >= 2) {

            for (int i = 1; i < arr.length; i++) {

                //挖出一个要用来插入的值,同时位置上留下一个可以存新的值的坑

                int x = arr[i];

                int j = i - 1;

                //在前面有一个或连续多个值比x大的时候,一直循环往前面找,将x插入到这串值前面

                while (j >= 0 && arr[j] > x) {

                    //当arr[j]比x大的时候,将j向后移一位,正好填到坑中

                    arr[j + 1] = arr[j];

                    j--;

                }

                //将x插入到最前面

                arr[j + 1] = x;

            }

        }

    }

}

5.delete、drop、truncate的区别?

(1)DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作。

    TRUNCATE TABLE 则一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的。并且在删除的过程中不会激活与表有关的删除触发器。执行速度快。

(2)表和索引所占空间。

    当表被TRUNCATE 后,这个表和索引所占用的空间会恢复到初始大小,

    DELETE操作不会减少表或索引所占用的空间。

    drop语句将表所占用的空间全释放掉。

(3)一般而言,drop > truncate > delete

(4)应用范围。

    truncate只能对table;        delete可以是table和view

(5)truncate和delete只删除数据, drop则删除整个表(结构和数据)。

(6)truncate与不带where的delete :只删除数据,而不删除表的结构(定义)drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger)索引(index);依赖于该表的存储过程/函数将被保留,但其状态会变为:invalid。

(7)delete语句为DML(data maintain Language),这个操作会被放到 rollback segment中,事务提交后才生效。如果有相应的 tigger,执行的时候将被触发。

(8)truncate、drop是DLL(data define language),操作立即生效,原数据不放到 rollback segment中,不能回滚

(9)在没有备份情况下,谨慎使用 drop 与 truncate。要删除部分数据行采用delete且注意结合where来约束影响范围。回滚段要足够大。要删除表用drop;若想保留表而将表中数据删除,如果于事务无关,用truncate即可实现。如果和事务有关,或老师想触发trigger,还是用delete。

(10) truncate table 表名 速度快,而且效率高,因为:

truncate table 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。

(11)truncate table 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 DELETE。如果要删除表定义及其数据,使用 drop table语句。

(12) 对于由 foreing   key 约束引用的表,不能使用 truncate table ,而应使用不带 WHERE 子句的 DELETE 语句。由于 TRUNCATE TABLE 不记录在日志中,所以它不能激活触发器。

6.select count(DISTINCT) from Teacher where tname like "李"

6.搜索框功能的测试用例有哪些?

功能测试

1.搜索内容为空,验证系统如何处理

2.搜索内容为空格,查看系统如何处理

3.边界值验证:在允许的字符串长度内外,验证系统的处理

4.超长字符串输入,系统是否会截取允许的长度来检验结果

5.合法的字符串长度后,加空格验证检索结果

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

7.验证每种合法的输入,结果是否正确

8.是否支持检索内容的复制、粘贴、编辑等操作

9.是否支持回车键搜索

10.多次输入相同的内容,查看系统的检索结果是否一致

11.特殊字符、转义字符、html脚本等需要做处理

12.敏感词汇,提示用户无权限等

13.输入的内容是否支持快捷键操作等

14.只能输入允许的字符串长度等

15.输入链接是否正确跳转,

16.搜索的历史纪录是否显示在下面

17.搜索内容有没有联想功能

18.是否可以输入数字,英文,中文

19.是否可以混合输入数字英文中文

20.输入拼音也可以进行检索

21.语音搜索的内容是否匹配

22.断网时,无法搜索

23.进行图片搜索时可以选择拍照或从相册中选取图片进行搜索

24.如果从相册中选取图片进行搜索,图上的大小是否有限制,最大为多少

25.搜索框边上有相机图片,便于图片搜索

26.点击清空历史记录,搜索框是否会清空历史记

27.能否识别图片中的内容

28.点击搜索,显示搜索界面

界面测试

1.查看UI是否显示正确,布局是否合理

2.是否有错别字

3.搜索结果显示的布局是否美观

4.已查看的结果链接,链接的颜色要灰化处理,

5.结果数量庞大时,页面的分页布局是否合理

6.界面的颜色搭配是否合理

安全性测试

1.脚本的禁用

2.SQL的注入,检索SQL SELECT语句等

3.敏感内容的检索是禁止的

4.特殊字符的检索

5.被删除、加密、授权的数据,不允许被查出来,6.是否有安全设计控制

兼容性测试

1.多平台Windows,mac

2.移动平台android,ios

3.多浏览器火狐、chrome、IE等

性能测试

1.搜索页面的链接打开速度的时间

2.搜索出结果消耗时间

3.弱网时搜索的响应时间

4.不同网速下搜索时的响应时间3g,4g,WIFI

易用性

1.有联想功能

2.搜索内容与搜索结果的匹配程度

3.支持拍照搜索,语音搜索

7.用jmeter对A接口进行性能测试,A接口依赖于登录接口,请写出测试思路

A接口为实时查询接口,查询表数据量百万级,关联查询,为了解决效率问题用到了缓存技术,若查询内容不变,则读取缓存

8.如何查找A.log的日志,且输出后,服务器系统为linux



9.在微信客户端使用搜狗输入法打字,手机屏幕突然黑了,那些原因会导致这种情况,如何排查

1.首先重新安装微信

2.在其他App使用搜狗输入法

3.在微信使用系统输入法检测是否出现黑屏

10.测试过程中发现一个重现率低的BUG,如何处理?

1.首先在遇到能够复现的情况及时截图录屏,保留记录

2.和开发进行沟通,帮助其定位BUG

3.实在无法复现,则对BUG进行考量,对项目的影响,选择延后修改

4.将BUG写入测试报告中进行记录

11.测试发现一个高优先级BUG,产品人员审核后认为不阻塞上线,可以以后在修复,上线后,受到不少用户反馈,所以紧急上线补丁包修改问题,如何保证同类事件以后不再发生?

产品的用户体验测试就是把构成产品的软、硬件系统按其性能、功能、界面形式、可用性等方面与某种预定的标准或者预想进行比较,对其做出评价。用户体验测试与评价是产品开发设计的一个重要步骤。产品的成功与否需要通过评价以及用户的实践,才能得到最终的判定,所以上线过程中,对于用户体验差的功能,测试人员有必要据理力争,优化之后在进行上线步骤

12.简单概述缺陷报告包含哪些内容

  缺陷标题,严重级别,问题所属模块,复现步骤,预期结果,实际结果,有关的⽇志

  和截图

13.开发人员修复缺陷后,如何保证不影响其他功能

  Bug的修复以及新功能的添加都有可能对版本造成一些影响,为了避免,在新版本发布以后,

  首先会对新版本做一个基础的流程测试也叫做冒烟测试,如果测试基本流程都顺利通过没有任何问题,

  那么测试人员可以继续进行详细的测试,否则就将冒烟测试中出现 的问题以及问题有可能出现的原因

  反馈给开发人员,由开发人员修正后再次发版,进行测试。这是一个迭代的过程

14.压力测试和负载测试的区别?需要关注哪些指标

  负载测试是从并发量维度出发,不断增加并发量发情况下,系统的性能指标

  压力测试是从访问时间的维度出发,在并发量一定的情况下不断增加连续访问的时间情况下,系统的性能指标。

举例:

  负载测试:服务员在单位时间内不断增加开发工作量,查看服务员在不同工作量下完成工作的程度,从而了解该服务员的技术水平

  压力测试:基于外部压力,例如长时间不休息,长时间不开工作等情况,查看该服务员是否还会不会继续好好工作(能否及时响应请求),或者罢工。

需要关注的指标:

  性能指标参数:

  系统资源使用率 cpu 内存 硬盘读写 网络

    web端               app端

    资源使用不得80%          资源使用不得超过80%

    响应时间 2 5 8 原则         响应时间   258原则

    错误率 20%             错误率    20%

15.SQL中having是做什么用的?WHERE和Having有什么区别

1、having只用于GROUP BY(分组统计语句)

2. having用于在WHERE和GROUP BY 结果中查询

3. having可以使用聚合函数

用的地方不一样

  where可以用于select、update、delete和insert into values(select * from table where ..)语句中。

  having只能用于select语句中

执行的顺序不一样

  where的搜索条件是在执行语句进行分组之前应用

  having的搜索条件是在分组条件后执行的

  即如果where和having一起用时,where会先执行,having后执行

子句有区别

  where子句中的条件表达式having都可以跟,而having子句中的有些表达式where不可以跟;

  having子句可以用集合函数(sum、count、avg、max和min),而where子句不可以。

17.如果项目周期很短,测试人力匮乏,你是 怎么协调的

  依据代码review的结果和影响范围,对测试内容进行适当的裁剪。

  借助自动化工具的支持,提高测试案例的执行效率。

  调整组内任务的优先级,进行人力协调,优先投入最紧要的项目。

18.用例设计:QQ发消息功能(写出你能想到的所有的测试点,用例结构要清晰)

  1.消息内容类型:纯文字、纯图片、纯表情、文字+表情、文件

  2.发送键:点击“发送”发送、使用快捷键发送(电脑端)

  3.用户在线状态:在线状态、离线状态

  4.网络情况:网络正常、网络异常

  5.群聊情况:@功能(@个人、@多个人、@全部 )、提醒功能

    被@到时,进入群聊是否提示“有人@”

    群聊聊天数量统计是否正常

    群聊信息较多时,是否有一键到上次看到的消息,从哪开始

综合以上情况设计用例:

  1.单聊:发送文字/表情/图片,对方是否能接收成功,且消息发送时间排序正常,聊天记录条数是否正常

  2.群聊:发送文字/表情/图片,对方是否能接收成功,且消息发送时间排序正常,聊天记录条数是否正常

  3.离线状态下,是否支持消息发送?发送失败后,是否支持重新发送?

  4.离线状态下,是否支持接收消息?在线后,是否正常接收到离线消息?

  5.未加好友状态下:搜索QQ号开启的临时会话,是否能发送文字/表情/图片/文件;群聊开启的临时会话,

  群主没有设置不可发起临时会话,是否能发送文字/表情/图片/文件;群主设置了不可发起临时会话,是否能发送文字/表情/图片/文件

  6.在线用户发送文件给离线用户,发送到一半时,中断后,是否能继续再次发送

  7.在线用户发送文件时,是否能够正常接收

  8.屏蔽功能开启和关闭:屏蔽功能开启后,是否屏蔽消息提醒,但是还是可以点开查看消息?屏蔽功能关闭后,是否正常接收消息并提醒?

  9.发送文字、图片、文件的最大限制

  10.发送内容为空或纯空格,是否支持发送?

  11.发送内容包含敏感字眼时,是否被和谐?

  12.@个人、多个、全部,是否有消息提示

  13.消息中发送的网址,是否支持打开?

  14.已经发送和接收的消息,是否支持复制或粘贴或转发?

  15.已经发送的消息是否支持撤回,撤回时间有效性验证

  16.频繁下拉上划刷新页面,页面是否正常

你可能感兴趣的:(面试题)