1、在公司的测试流程是什么?
产品经理确认本次版本的需求,召开需求评审会,进行估时排期,需求和时间都确定之后,UI出设计图,开发人员进行开发,测试人员编写测试用例,召开用例评审会议,制定测试计划,包括准备一些测试数据,等到开发提测,先进行冒烟测试,然后进行单元测试,集成测试以及系统测试(测试内容:功能、界面、可靠性、易用性、性能、兼容性、安全性等),测试人员确认没有问题后进行验收测试,由开发人员部署到预生产环境,进行一轮回归测试,最后部署到生产环境,进行版本对比测试,确认线上用户的正常使用。
2、你提一个bug,开发不认同的话怎么办?
根据需求文档,产品说明二次进行确认,提供bug的证据,或者与产品经理进行确认,等待产品经理最终决定,若还有问题,向上级领导进行反映。
3、熟悉数据库吗,出道SQL题写出来?
增:Insert into +表 values(value1,value2...)
删:delect from +表 where 值
改:Update +表 set 字段=新值 where
查:Select * from +表 where ....
like :Select * from +表 where 值 like ”%字段%”
in:允许在where中规定多个值 Select * from +表 where 字段 in(value1,value2...)
between:Select * from +表 where 字段 between 最小值 And 最大值
inner join:Select * from +表1 inner join 表2 on 表1.id =表2.id
left join 与right join:
left join 是罗列出左表中的所有数据,然后找出右表中满足条件的所有数据,右表数据不足的地方用NULL填充
right join 是罗列出右表中的所有数据,然后找出左表中满足条件的所有数据,左表数据不足的地方用NULL填充
平均值avg():Select avg(字段) from 表 where +条件
求行数量Count():Select Count(字段) from +表 where +条件
累计之和sum():Select sum(字段) from +表
最大值max():Select max(字段) from +表
最小值min():Select min(字段) from +表
面试题:
1:列出各部门中工资不低于6000的职工的平均工资
Select dname,avg(salary) from emp inner join dept where emp.id=dept.id And salary >=6000 group by dname;
2:将销售部工资低于6000的职工工资上调10%
Update emp set salary=salary*1.1 from emp A,eno B where A.dno=B.dno And B.dname =”销售部”And B.salary<6000;
4、熟悉Linux吗?常用的命令有哪些?
cat:查看文件内容,-n 显示行号
tail:输出尾部文件,-n 显示行号
head:输出头部文件,-n 显示行号
grep:查找文件里符合条件的字符串,- o,只输出匹配的内容,- n,显示行号,- v,取反,- i,不区分大小写,- w,按单词位单位过滤
find:查找目录下文件,- name,按文件名查找,- type,按文件类型查找,- exec,对搜索结果在处理,- mtime,按修改时间查找
tar:压缩打包,- z,压缩,- c,创建,- v,输出打包过程,- f,文件,- t,查看文件,- C,指定解压路径,- x,解压,- h,跟随软连接
which:查询所在路径
pwd:查询所在位置路径
cd:切换目录
mkdir:创建目录文件
rm:删除
touch:更新文件时间戳
hostname:修改主机名
echo:打印输出,-h 不换行,- e 支持转义, 代表top,
代表回车
5、熟悉adb命令吗?常用的有哪些?
adb devices:查询当前设备列表
adb connect +IP:连接模拟器
adb install +APK:将电脑上的安装包安装到手机上
adb uninstall +包名:卸载APK
adb shell pm clear +包名:清楚应用缓存
adb shell cat :查看内存信息
adb shell monkey -p +包名 -v +次数:进行压力测试
adb shell monkey -p +包名 --throttle 时间(毫秒):插入固定延迟
adb logcat -v time :抓取实时日志
adb logcat *.E:抓取APP崩溃日志
adb logcat -c :清楚旧日志信息
adb version:查询adb版本
6、如何判断一个bug是前端还是后端的?
接口查看法:
1.请求接口的URL是否正确,若错误,为前端bug
2.body的传参是否正确,若错误,为前端bug
3.响应的状态码是否正确,若错误,为后端bug
4.响应的内容是否正确,若错误,为后端bug
5.请求和响应都正确时,前端是否跳转、渲染,若错误,为前端bug
日志查看法:
当我们发现一个bug,并不确定这个bug属于前端还是后端,可以查看后端服务的日志,复现bug时,查看日志中有没有相关信息,基本可以认为,如果日志没有输出,很可能这个功能并没有与后端交互,也就不存在后端的问题。反之,如果日志有输出,可以进一步查看有无错误日志信息,进一步分析。
经验法:
在工作中慢慢积累,负责的项目多了,自然对功能的实现过程有了解,也就明白如何分类bug了。在平常的工作和实践中慢慢总结,不要只是一味的点点点测测测,总结复盘很重要。
7、测试用例的设计方法有哪些?
等价类划分法:适用于测试数据量过大,且数据操作可以分类,例如给三角形三个边赋值,三角形的3个边长是要输入的3个参数,定义取值范围(0-100);
边界值分析法:边界值分析法是作为等价类的补充方法,其测试数据取自等价类的取值范围边界,如上输入参数取值0到100的开区间,即有效边界就是1和99;
错误推断法:在测试程序时,人们可以根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例的方法;
判定表法:又称为策略表,基于策略表的测试,是功能测试中最严密的测试方法。该方法适合于逻辑判断复杂的场景,通过穷举条件获得结果,对结果再进行优化合并,会得到一个判断清晰的策略表;
正交实验法:简单说,就是在各因素互相独立的情况下,设计出一种特殊的表格,找出能以少数替代全面的测试用例;
随机测试:在APP或者网页中随意点击,没有任何逻辑章法,确保不会出现问题。
不常用的:因果图法、场景法。