1、黑盒(或功能)测试用例设计方法有哪些?
1)等价类
2)边界值
3)流程分析
4)因果图
5)判定表
6)场景分析
7)错误推测
2、App测试和web测试有什么区别?
1)从系统架构来看的话:web端一般都是b/s架构,基于浏览器的; app是c/s架构,是基于客户端的
2)兼容性方面:web是基于浏览器的,所以更倾向于不同浏览器(Chrome、firefox)的兼容;App测试则必须依赖于手机,更关注系统版本、分辨率、屏幕尺寸等兼容性问题
3)除了功能测试,App端还需要额外关注一些专项的测试,比如弱网、中断测试、安装/卸载测试、流量/电量的测试,移动端性能测试等
3、发现一个bug,怎么定位是App端还是服务端的问题?
1)抓包分析,对接口进行抓包分析,如果是请求里的参数出行错误,一般都是客户端的bug;如果请求正常而响应是错误的,那就是服务端的bug
2)日志分析,还可以通过查看客户端/服务端的日志,分析有没有异常的日志信息,从而确定具体原因
4、当开发人员说不是bug时,你如何应对?
开发人员说不是bug,有2种情况:
一是需求没有确定,所以这个时候可以找来产品经理进行确认,需不需要改动,商量确定好后再看要不要改
二是这种情况不可能发生,所以不需要修改,这个时候可以先可能的说出是bug的依据是什么?如果被用户发现或出了问题,会有什么不良结果
如果还是不行,那可以把这个问题提出来,跟开发经理和测试经理进行确认。如果最终不是bug被确定不该,那么就要在测试报告里面记录一下,以便后面查阅
5、黑盒测试和白盒测试的区别
1)黑盒测试就是把系统当成一个黑盒子一样,不需要了解系统内部的细节,只关注输入和输出,通过手动输入不同的数据,来验证输出是否符合预期
2)白盒测试需要了解系统内部实现细节,通常是针对函数进行测试,需要写测试代码来调用对应的函数,通过传入不同的参数,来测试函数返回值是否符合预期
6、如何提高用例的覆盖率,减少漏测
1)根据需求文档来编写用例,确保每条需求都被对应的用例覆盖
2)要充分理解业务,挖掘隐形需求,并编写对应的用例
3)除了正常的业务场景,多考虑一些异常的场景和数据
4)要从多个维度对软件进行测试,功能、性能、安全等各方面来考虑
5)多站在用户的角度去思考问题,模拟用户的使用场景
6)组织用例评审
7、App崩溃/闪退,一般都是什么原因造成的
根据之前遇到的几次崩溃/闪退,都是因为代码问题,App的代码内部报空指针错误
另外还可能是网络问题
8、怎么测试App的兼容性
主要看客户这边对兼容性的要求高不高
如果要求不高的话,部门内有一些主流的Android和iOS机型,大概七八部手机吧,平时主要用这些测试
如果要求高的话,一般会购买一些第三方测试服务,像是Wetest、Testin之类的,他们的机型更多,而且最终会提供一个测试报告
9、手机App更新测试,说下测试点
10、如何模拟弱网测试
1)很多抓包工具都可以做到模拟弱网测试,比如fiddler可以在“自定义规则”中设置发送/接受1kb数据需求的时间来控制网络传输速率
2)如果是网站可以采用chrome开发者工具模拟弱网
3)如果是手机可以在手机自身的网络设置为2G/3G/4G 飞行模式
11、针对App的安装功能,写出测试点
12、你在测试过程中使用数据库的场景是什么?
1)在做功能测试时,除了检查页面/App功能正常外,还需要查询存入数据库里的数据是否符合预期
2)有时候会修改数据库中测试数据,来验证一些测试用例,比如已加入计划修改数据库结束计划
13、常用的聚合函数都有哪些?
1)max() 最大值
2)min() 最小值
3)avg() 平均值
4)sum()求和
5)cont() 统计总数
14、列举几种表连接的方式,有什么区别?
左连接:以左表为基础,展示左表所有数据+左右两个表同时存在的数据
右连接:以右表为基础,展示右表所有数据+左右两个表同时存在的数据
内连接:展示两个表中同时存在的数据
15、SQL语句的执行顺序
select sex, count(*)
from user where age = 18
group by sex having count(*) > 5
order by count(*) desc limit 2;
执行顺序
from -> where -> group.by ->having ->select -> order by -> limit
16、说几个工作中常用的Linux命令?
cd:切换目录
ls: 查看文件列表
cp: 拷贝文件
mv:移动文件
rm: 删除文件
chmod : 设置文件权限
cat:浏览文件内容
vi: 文件编辑
grep: 过滤文件内容
17、你在工作中哪些场景中用到Linux
1)当项目不能访问时,登录到Linux服务器上看看项目是否启动(ps -ef | grep xxx)
2)当测试出行bug时,登录到Linux服务器上看看日志(tail -100 xxx.log)
18、在Linux 中如何杀死一个进程
先用ps命令查看进程号,比如tomcat,查看tomact的PID命令如下所示:
ps -ef|grep tomcat
找到进程id后,用kill命令杀死进程
kill -9 12345
19、如何查找文件
在根目录下查找名称为a.log的文件
find / -name a.log
20、日志过滤grep相关命令
假设有个日志文件test.log
查看包含Error的日志:grep "Error" test.log
查看包含Error的日志以及它的后10行:grep -A "Error" test.log
查看昨天的包含login的接口日志:cat test.log | grep "昨天日期" | grep "login"
21、如何给一个文件添加可执行权限
chmod 777 test.log
chmod +x test.log
22、如何判断一个端口是否被占用
netstat -anp | grep 端口号