这篇文章是本人入坑四年测试工程师面试所遇到的问题小结。大家看个乐呵就好,谢谢。
你是如何开展测试工作的: 额,我首先从产品那里拿到原型需求,进行需求评审,根据需求提取测试点,、、开始用常规黑盒的设计用例方法,进行编写设计测试用例,比如测登录接口,它有用户名、密码、验证码等文本等输入框,这几个文本输入框通常限制了字符数,就可以提取测试点,多于或者少于固定的字符数,特殊的文本类型,是否为空,字符中穿插空格等,在使用对应的测试方法编写测试用例,和其他测试人员进行用例的评审,看该用例是否覆盖完整,是否设计合理,有没有遗漏的测试点,进行补充,评审完毕就可以执行测试用例,校验该功能是否符用例的预期结果,将不符合的用例进行一个BUG等级的分评,把该BUG缺陷管理工具进行管理,如禅道,指派给对应的开发人员,并对该BUG进行一个跟踪,进行回归测试,回归通过后,关闭BUG,撰写个人测试周报,提交到SVN,以上就是我的一个基本测试功能的大概流程。
你熟悉linux命令,能给我讲解哪些常用命令吗: 常用的例如cd,进入某一文件夹,可以通过../ . / 进行不同层级的穿梭,ls查看当前目录的文件,可以给对应的参数如 -a 可以显示隐藏的文件或者文件夹,vi命令,进行文件的一个编辑,cat正序输出文件内容,tac倒序输出文件内容,top查看进程信息,mkdir 创建文件对应参数进行递归创建,rmdir删除文件同理,tar -zxvf 解压文件,我常用的大概就是这些,这个会用就行,不一定要死记硬背。
什么是BUG生命周期以及BUG等级如何划分呢: BUG生命周期主要分布为新建-->指派-->已解决-->待验-->关闭,代指测试人员提出BUG,指派开发人员,开发人员解决后指派给测试人员,校验过后关闭BUG,如果没有通过,这里多处新状态,重指派给开发人员,直到通过关闭,关于BUG等级划分,一般划分为,致命(即主流程不通,功能丧失严重),一般(部分一般功能错误,不影响主流程),轻微(如字面,文本类型的错误),建议(建议修改的)。
能给我讲解你是如何做自动化得吗 ?我使用的是python+selenium,通过selenium库内webdriver调用浏览器内核,到WEB页面进行元素的抓去,如常用的抓取方法id,元素,类名,也可以通过链接进行抓去,抓去元素后,通过代码实现对页面元素进行一些拟人的操作,如输入输出,鼠标单双击等进行完成自动化测试,也可以通过录屏工具,如IDE、catalon、sikulix等录制脚本,目前还在自学最近较为流行的cypress,一款基于js代码实现UI自动化操作的工具。但是如果产品需求迭代太快,页面变动过大,就不建议在做自动化了,整理代码的时间入不敷出,这时候不在适合做自动化。
接口这方面你是怎么做的呢: 我一般自己用fiddle抓接口,或者从开发那边拿接口文档也可以,接口测试,在我的理解其实就是另一种的功能测试,相对于展示在页面上的功能测试,接口只不过被隐藏起来了,接口测试和功能测试都是校验预期结果和实际结果是否相同,不同的是,需要掌握一些应用层、传输层协议,例如应用层协议http、https,http协议主要是请求报文,客户端发送给服务器的一种消息格式,了解请求报文中,请求行(header)、请求头、请求正文是什么等,通过工具或代码发送请求从而进行接口测试。性能测试这方面你是怎么做的呢: 性能主要是为了看该功能模块是否能高效的使用,验证该功能的反应时间也就是响应速度,画面流畅等等,性能主要要素分接口测试、多线程(模拟多个用户进行操作),拟人化(模拟真实用户操作),我主要使用阿帕奇jmeter来做性能测试,通过添加线程组,以及取样器中基本的HTTP请求,来发起请求,通过线程组来控制多线程,当然我还要考虑很多场景,例如用户思考时间(这时我们就可以用对应的定时器来控制),或者例如用户一次登录多次操作,这时我就要用配置元件HTTPCOKKIE处理器进行一个cookie信息的保存,来保证一段时间内只登陆一次即可实现多次操作,大体就是这样,做完分析主要在线程组内添加聚合报告,嚓看结果树,来分析对应不同属性,比如聚合报告中可以进行分析服务器的平均响应时间RT,TPS服务器吞吐率,请求失败异常率,请求最大最小时长等,毕竟用户最关心的就是响应时长和成功率,还可以使用特定的三方插件来监控服务器cpu占用率,内存使用情况,以及磁盘读写是否够用等。