肖sir___面试流程和面试题(1)
1、面试主要分为那些环节?
自我介绍
1、个人基本信息
2、学历信息
3、工作履历
4、项目方向介绍
5、技能方向
自我介绍要控制在一分钟到两分钟之间
项目介绍
测试流程
自动化框架
主观问题
2、你是怎样理解软件测试这个岗位的?
1、首先我们是整个项目组团队的一员,主要是把的质量关,输出的产品质量很大程度上取决于测试的水平和覆盖率
2、在这个岗位中首先需要完备的测试技术。保持工作的严谨性
3、虽然我们是软件开发的最后一个环节,但是在工作中,我们也要对开发的进度了解,并督促,以免造成开发的进度延期,导致缩减测试的时间
3、软件的生命周期
1、客户提出需求
2、可行性分析
3、项目招标
4、立项
5、需求分析(将客户的需求,输出成一个完整的需求文档)
6、开发阶段(设计、编码、测试)
7、维护
8、下线(停服)
4、测试准出的标准
1、完成了需求文档中规定的所有功能
2、测试案例的执行通过率达到100%
3、缺陷的修复率达到98%-100%,没有遗留重大或者一般的缺陷,可以遗留1-2个建议性缺陷,但是也要在测试报告中体现,并对缺陷进行风险分析
5、有没有写过测试计划?测试计划包含哪些内容
1、在做测试计划之前,要对当前版本所剩余的工作量以及迭代版本的工作量进行评估
2、对时间的安排/测试进度的安排
3、对我们测试组内人员的分工和调配
4、测试的范围/不测试范围
5、预期风险分析
6、测试策略的制定
7、环境的选择
8、测试过程中需要交付的文档和交付标准
6、在需求评审过后,写案例之前,你们在干什么?
1、编写测试计划和测试大纲
7、测试大纲主要包含哪些内容?
1、测试的范围
2、针对测试的模块进行功能划分
3、对每一个功能点制定测试的方法和方向
4、比较难理解的模块会标准业务背景
8、测试报告包含哪些内容?
1、测试的范围
2、不测试范围和原因
3、测试过程中的实际进度
4、每一轮测试的小结
5、每一轮测bug列表以及bug原因分析
6、遗留风险分析
7、阻塞性问题的产生原因以及解决方法
8、工作方法的改进建议
9、你们公司的测试流程/开发流程/项目流程,你可以简单介绍一下吗?
像我们之前的工作中,一般是比如新到了一个需求,我们测试组和开发组是同时拿到的需求,首先会花费一到两天的时间去熟悉一下迭代的内容,这是时间主要是看迭代的大小,大迭代的话
可能需要三四天的时间去熟悉,在熟悉需求的过程中,我们测试这边会对需求中不明确的地方进行标注,然后我们产品会组织开发和测试组进行需求评审会议,针对需求进行讨论,主要保证我们对需求的
的理解是一致的,我们也会对某些比较复杂的业务逻辑的实现方式跟开发请教。然后开发进入到一个编码的阶段,我们测试组需要在这个时间段内输出测试计划和测试大纲,然后根据测试大纲里制定的
测试方法和测试方向进行案例的编写,输出测试案例,然后我们测试组这边要牵头组织案例的评审,主要看下我们案例的覆盖度和测试方向和策略是否能够达到项目组的标准,评审完后对案例进行修改,
接下来基本就到了提测的阶段,我们运维人员会对测试的环境进行搭建,搭建好了以后我们进行冒烟,冒烟通过后进行第一轮的全量测试,将所有的案例执行一遍,有缺陷就协助定位和修改缺陷,并
跟踪缺陷的修复过程,修复完成后,进入到第二轮的测试,第二轮一般关注一些第一轮产生缺陷的案例和可能影响到的相关案例进行重复执行,有缺陷还是要协助修复,然后就是第三轮的交叉测试了,
主要是组内人员所负责的模块之间的交叉,避免一些思维定式造成的漏测,接下来就是我们的验收测试,并准备协助上线,在生产环境进行测试,测试完成后,编写测试报告,然后进行小组复盘,总结工作
10、那你们在提交bug的过程中都提交了哪些信息?
1、bug编号(禅道可以自动生成)
2、bug标题
3、bug描述
4、bug复现步骤
5、预期结果
6、实际结果
7、bug截图、日志截图、流水号
8、bug产生的模块
9、严重等级
10、指派的开发
11、一个bug的生命周期是什么?
1、当我们发现这个bug的时候会进行反复的确认,并将bug截图,查看服务器的日志情况,尽可能的将描述清楚,在禅道上新建一个bug为打开状态
2、然后开发可以看到我们提的这个缺陷,并根据我们的操作步骤进行复现和修改,修复完成后,将bug状态修改为已修复的状态
3、我们在看到bug为已修复的状态后要进行验证,验证通过后,将bug关闭
12、二八原则
80%的缺陷会出现在20%的区域中,因为在产生缺陷的过程中,我们的系统是交互的,会有一些相关联的模块,所以一个bug可能也会影响上下游的模块,另外呢,在开发修复bug的过程中,
很有可能也会产生新的bug。
13、测试工作中常见的Linux命令
su +用户名称 :切换用户
touch :创建文件
mkdir :创建目录
mkdir -p:创建层级目录
cp+源文件名称+新文件名称:复制一个文件命名为新的名字
mv +文件名称+移动后的目录:移动文件地址
cat +文件名称:查看文件内容,一般跟|和grep连用,筛选查看的内容,cat +日志文件|grep error
less+文件名称:查看文件内容,分页查看,通过方向键翻页
more+文件名称:百分比显示文件内容,回车键翻页
head -n 100 +文件名称:查看文件前100行数据
tail -f:查看实时日志
tail -n100 +文件名称:查看末尾100行的内容
find +文件名称/目录:查找文件
chmod 777+文件名称:赋予权限
tar -cvf:tar包的打包
tar -xvf:tar包的解压
zip :zip包的打包
unzip:解压zip包
rz:将本地文件上传到服务器上,xftp工具可以取代该命令
scp:主要是涉及到服务器之间的文件传输,或者从服务器上取文件
df:查看磁盘使用情况
ps :查看进程
ps -ef :查看某个进程的进程号
kill -9:杀掉进程/结束进程
top :查看cpu使用情况
free:查看内存
lsof -i :查看哪个服务占用了当前的端口
vim :编辑文件,i进入编辑模式,wq!保存并退出
14、假如给你一个登录的场景,应该怎么设计测试用例?
1、关于UI界面的校验:我们在首先拿到被测的系统后,要对系统进行观察,看一下界面方向,包含了哪些模块,以及模块对应的位置、对应的窗口大小、文字描述、字体格式和大小
与需求是否一致
2、关于功能类的测试:假如是用账号密码登录的场景,账号密码是输入类的窗口,针对这种窗口的支持输入的类型以及长度要进行等价类和边界值的覆盖,另外也需要对一些异常的场景进行案例覆盖,
比如:1、密码错误是否可以登录 2、空密码/空账号是否可以登录 3、二者均为空点击登录 4、账号未注册场景是否可以登录 5、账号失活是否提示进行重新激活再登录
6、输入错误密码次数达到上限,是否会锁止 7、账号/密码中有空格是否会自动调整 8、当前账号在另一设备为登录状态下,再进行登录是否有在线提醒 9、不同账号在同一设备上登录
10、点击登录后的页面跳转 11、忘记密码/修改密码入口 12、是否支持快捷键(复制粘贴、剪切)
3、关于安全性的测试:1、密码/登录手机号的密文显示 2、当前接口有没有做反抓包的处理 3、sql注入方向 4、加密传输
4、兼容性测试:1、web端主要关注不同的电脑系统,系统版本,浏览器类型,浏览器版本,屏幕的尺寸、类型、分辨率、各种适配比例下的兼容性
2、app端主要关注手机的系统类型,系统版本,当前app的版本,屏幕类型、尺寸、分辨率
5、如果是app的场景,要增加一些专项的测试,比如app的安装卸载更新、以及中断性测试(应用切换、断电、断网),弱网测试、耗电量测试、所占内存的测试
6、性能方向:同时登录人数,同时在线人数对该模块的影响,主要关注请求成功率,和响应时间
7、接口功能方向:分析当前登录接口包含了哪些字段,每一个字段的必填性、非必填性、条件必填性、以及依赖字段,对字段的入参类型以及长度做等价类、边界值的案例覆盖
8、接口的依赖场景:另外我们还要考虑接口依赖的场景,如果是业务流程中间的接口,要考虑上游接口的超时/失败/成功的场景,以及调下游系统超时/成功/失败的场景,并进行场景组合
针对每一种组合场景的数据库的落库情况 是否跟场景是对应的,我们也要通过查询数据库中相应的表来排查问题