测试面试题

1、请分别说明黑盒测试与白盒测试的优缺点

黑盒测试的优点:
比较简单,不需要了解程序内部的代码及实现;
与软件的内部实现无关;
从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;
基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;
在做软件自动化测试时较为方便;

黑盒测试的缺点:
不可能覆盖所有的代码,覆盖率较低,大概只能达到总代吗量的30%;
自动化测试的复用性较低;

白盒测试的优点:
帮助软件测试人员增大代码的覆盖,提高代码的质量,发现代码中隐藏的问题;

白盒测试的缺点:
程序运行会有很多不同的路径,不可能测试所有的运行路径;
测试基于代码,只能测试开发人员做的对不对,而不能知道设计的正确与否,可能会漏掉一些 功能需求;
系统庞大时,测试开销会非常大;

2、你认为测试与开发的关系是怎样的,当开发认为你提交的bug 不算bug 时应该如何处理?

程序员和测试程序员相爱相杀,开发人员还是测试人员都是为了公司的产品能够更好发展,
测试本质是为了发现软件缺陷,在开发项目的过程中将测试看作是一个标准项目,
如果交流无法分清对错,可找产品部交谈评论,或是请教产品经理

3、请写出对应的SQL语句

用户表 User(U),包括用户 ID(Uid)、姓名 UN、年龄 UA、性别 Usex ; 产品表 Prod§ 包括 产品 id(Pid), 产品名称 (Pn) 发布时间(T);

投资表 Invest(I),包括投资 ID (Iid)、产品 id (Pid)、用户 ID(Uid), 投资金额 m(M);

结合上述定义的数据表,用 SQL 语句查出
① 产品名称为 XXX 的产品的用户投资数(按性别分组) (6 分)
②19 年 3 月内发布的每个产品的名称,总投资金额及用户平均投资金额,按时间倒序排列
(投资表存在单个用户同一个产品下多笔投资记录)( 9 分)

(1)

select P.Pn,U.Usex,count(U.Uid) as user_num
from Invest I join Prod P on P.Pid 	= I.Pid join User U on U.Uid = I.Uid 
group by U.Usex;

(2)

select P.Pn,sum(m),avg(m)
 from Invest I join Prod P on P.Pid = I.Pid 
group by P.Pid order by T desc 
where T between "19-03-01" and "19-04-01";
4、将字符串类似:“k:1|k3:2|k2:9|…|kn:m”,处理成 json 格式,比如{“k”:“1”, “k3”:“2”, … , “kn”:“m”},语言不限。

Python实现:

import json

def string_to_dict(string): 
	d = {}
	for kv in string.split("|"):
		k,v = kv.split(":")
		if v.isdigit():
  			v=int(v) 
			d[k]=v
		else:
			v=str(v)
			d[k] = v
	return json.dumps(d) 


print(string_to_dict("k1:1|k3:2|k2:9|...|kn:m"))
5、请根据淘宝 App 立即购买界面设计测试用例,同时也可以简述平时使用时,发现的 Bug 或用户体验不好的地方。

在这里插入图片描述

测试用例:
在这里插入图片描述

用户体验不好的地方,特色服务这一块显示在购买界面这一块有点显得内容太多,还有就是特色服务这一块应该标明一些特色服务的价格

6、QC,QA,QM
  • QC(quality aontral)品质控制 —基础测试人员
  • QA(quality assurance)品质保证 —负责人
  • QM (quality manage)品质管理
7、JIRA

项目与事务跟踪工具,可用于需求管理,BUG管理
bug管理系统 JIRA 的优势:自定义工作流

8、简述APP 测试、web 测试的区别

单纯从功能测试的层面上来讲的话,APP 测试、web 测试 在流程和功能测试上是没有区别的。

根据两者载体不一样,则区别如下:
系统结构方面
web项目,b/s架构,基于浏览器的;web测试只要更新了服务器端,客户端就会同步会更新。
app项目,c/s结构的,必须要有客户端;app 修改了服务端,则客户端用户所有核心版本都需要进行回归测试一遍。

性能方面

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

兼容方面
web项目:

  1. 浏览器(火狐、谷歌、IE等)

  2. 操作系统(Windows7、Windows10、Linux等)
    app项目:

  3. 设备系统: iOS(ipad、iphone)、Android(三星、华为、联想等) 、Windows(Win7、Win8)、OSX(Mac)

  4. 手机设备可根据 手机型号、分辨率不同
    相对于 Wed 项目,APP有专项测试

  5. 干扰测试:中断,来电,短信,关机,重启等

  6. 弱网络测试(模拟2g、3g、4g,wifi网络状态以及丢包情况);网络切换测试(网络断开后重连、3g切换到4g/wifi 等)

  7. 安装、更新、卸载
    安装:需考虑安装时的中断、弱网、安装后删除安装文件等情况
    卸载:需考虑 卸载后是否删除app相关的文件
    更新:分强制更新、非强制更新、增量包更新、断点续传、弱网状态下更新

  8. 界面操作:关于手机端测试,需注意手势,横竖屏切换,多点触控,前后台切换

  9. 安全测试:安装包是否可反编译代码、安装包是否签名、权限设置,例如访问通讯录等

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

  11. 权限测试:设置某个App是否可以获取该权限,例如是否可访问通讯录、相册、照相机等
    测试工具方面
    自动化工具:APP 一般使用 Appium; Web 一般使用 Selenium
    性能测试工具:APP 一般使用 JMeter; Web 一般使用 LR、JMeter

9、 简述 C/S 和 B/S架构各自的优缺点

CS的优缺点
(1)优点:

●能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器,所以CS客户端响应速度快。

●操作界面漂亮、形式多样,可以充分满足客户自身的个性化要求。

●C/S结构的管理信息系统具有较强的事务处理能力,能实现复杂的业务流程。

●安全性能可以很容易保证,C/S一般面向相对固定的用户群,程序更加注重流程,它可以对权限进行多层次校验,提供了更安全的存取模式,对信息安全的控制能力很强。一般高度机密的信息系统采用C/S结构适宜。

(2)缺点:

●需要专门的客户端安装程序,分布功能弱,针对点多面广且不具备网络条件的用户群体,不能够实现快速部署安装和配置。

●兼容性差,对于不同的开发工具,具有较大的局限性。若采用不同工具,需要重新改写程序。

●开发、维护成本较高,需要具有一定专业水准的技术人员才能完成,发生一次升级,则所有客户端的程序都需要改变。。

●用户群固定。由于程序需要安装才可使用,因此不适合面向一些不可知的用户,所以适用面窄,通常用于局域网中。

BS的优缺点
(1)优点:

●分布性强,客户端零维护。只要有网络、浏览器,可以随时随地进行查询、浏览等业务处理。

●业务扩展简单方便,通过增加网页即可增加服务器功能。

●维护简单方便,只需要改变网页,即可实现所有用户的同步更新。

●开发简单,共享性强。

(2)缺点:

●个性化特点明显降低,无法实现具有个性化的功能要求。

●在跨浏览器上,BS架构不尽如人意。

●客户端服务器端的交互是请求-响应模式,通常动态刷新页面,响应速度明显降低(Ajax可以一定程度上解决这个问题)。无法实现分页显示,给数据库访问造成较大的压力。

●在速度和安全性上需要花费巨大的设计成本。

●功能弱化,难以实现传统模式下的特殊功能要求。

10、什么是软件的生命周期?有哪些阶段?

软件的生命周期是软件开始研制到最终被废弃不用这一整个过程,整个生命周期包括 问题定义及规划 , 需求分析 , 系统设计 , 软件编程 , 软件测试 , 软件维护 等阶段

简要概括:立项–>需求分析–>设计、编码、测试–>发布–>运行维护–>淘汰

11、软件开发周期的V模型

在这里插入图片描述

12、软件测试的目的是什么?

测试本质:发现软件缺陷

13、什么是测试用例?编写测试用例有哪些方法?

测试用例 (TestCase) 是为项目需求而编制的一组测试输入 ,执行条件以及预期结果. 以便测试某个程序是否满足客户需求

可以总结为: 每一个测试点的数据设计和步骤设计

编写测试用例的八大方法

  1. 等价类划分法
  2. 边界值分析法
  3. 因果图法
  4. 判定表驱动法
  5. 正交实验法
  6. 场景法
  7. 状态迁徙图法
  8. 测试大纲法

其他测试用例设计方法

  • 探索性测试法
  • 猴子测试(随意性测试)
14、简述bug的生命周期

新建 – 提交 – 确认 – 分配 – 修复 – 验证 – 关闭

15、selenium常见八大定位

find_element_by_id()
find_element_by_name()
find_element_by_xpath()
find_element_by_tay_name()
find_element_by_calss_name()
find_element_by_css_serector()
find_element_by_link_text()
find_element_by_partial_link_text()

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值