JB的阅读之旅-优秀测试工程师的必备思维39讲

背景

1月的最后一天,收到mukewang公号的一条消息,说有一元课程,其中就包含一门测试相关的课程,就喵了一下,有以下内容:
(为了以免说是打广告,截图部分)

image.png-85.3kB

想想上次看测试专栏时,是极客那的专栏,想想1块钱买不了吃亏,而且在家闲着也是闲着,就买来看看吧;

小结

陆续花了2天的时间看完了,内容还是对得起1块钱,但是坦白说,看完有点失望,全文有大概四分一在介绍作者对生活的态度、技巧,并非说没干货,只是觉得跟课程主体关联性不太强,而且深度不够;

其余专业知识,对于刚入门的同学,还是能起到一定的帮助,从用例设计、每个项目流程需要做的事、如何提bug,以及各种工具,如Jenkins、LR等等都提交到,包括安全测试、性能测试、移动测试、接口测试都面面俱到,但仅仅处于点题一下而已,所以有一定工作经验的同学,意义不是很大;

给jb的感觉是,作者的确介绍了很多,但是没有把大家带入门瞧瞧,只是在门口告诉大家这个很重要,大家一定要会这个,仅此而已;

当然,还是有些个人觉得不错的内容,比如面试那块、自动化一些总结、精准测试、性能等,因此下面就整理一些个人觉得不错的点,供大家了解下;

学习方法

测试修养

  • 敏感,要对被测内容保持一种敏锐的感觉,对产品、客户、架构都一样,比如架构要了解缓存清理、消息队列消费、超时重发;
  • 好奇心,不仅仅停留在发现问题上,而是进一步好奇问题原因,如何发生,如何解决,是否还有隐患;
  • 脸皮厚 + 幽默感,人际关系处理非常需要;

技能掌握层次

  • 死记硬背;
  • 记忆储备、理解、可检索;
  • 消化、可为己用;
  • 深化、归纳、创新;

提高学习效率

  • 预习;
  • 听课;
  • 自我实践;
  • 回想;

软件测试基础

测试需要参与到项目各流程

需求阶段
条件允许的话,协助产品先整理出一份异常场景,减少沟通成本;

测试计划
描述测试项目和测试任务之间的关系,直接会影响到后续项目排期;

用例设计
将概括的测试目标转化为具体的测试条件和测试用例的一系列活动;

用例评审

image.png-73.2kB

执行阶段

  • 冒烟测试,主要用于校验,不及格就打回;
  • 测试执行,包含用例的执行、测试缺陷的提出、回归测试验证;
  • 测试总结,需要总结项目的整体测试情况、测试周期、缺陷分析、测试结果、风险和遗留问题;

项目上线

  • 上线前把控;
  • 上线前通知上下游系统;
  • 特殊情况考量;
  • 上线后测试验收;
  • 线上问题跟踪;
  • 紧急发布测试;
  • 持续跟进;
  • 补充测试用例;

还有自动化用例补充、项目总结、个人总结等;

测试的工作

测试验证性(传统测试)

  • 需求测试;
  • 代码 review;
  • 测试设计;
  • 冒烟测试;
  • 测试执行;
  • 上线验证测试;

监控类

  • 线上业务的监控;
  • 线上数据跟踪;

生产力效率

  • 流程管控规范、敏捷持续集成 / 验证 / 发布、自动化集成、测试工具开发;

系统稳定性

  • 系统的性能、安全、大数据测试;

探索研究类的任务

  • 研究新技术或者新框架;

自动化测试

驱动方式

  • 数据驱动,将脚本里的测试数据剥离出来,存储在独立于脚本之外的数据文件(XML, Excel等)或数据库里,使脚本中的操作指令和数据分离;
    • 好处:容易复用、脚本具备业务属性;
    • 坏处:负责的同学需要对脚本比较熟悉;
  • 关键字驱动,将测试逻辑按照关键字进行分解,关键字对应封装的逻辑业务;
  • 行为驱动

设计模式

  • PO模式(面向对象),把自动化测试代码以页面进行组织,将同一个页面上的所有信息,相关操作都放到一个类中;
    • 好处:提高代码重用性,结构更加清晰、当页面的元素、属性或者操作发生变化,只需要找到对应页面类中进行修改,维护更容易;
  • 分层模式;

测试平台建设特点

  • 框架思路分为 Web 端和后台服务端;
  • 采用关键字驱动的思想;
  • Web 端与服务端分离,Web端负责把关键字存储到数据库中,服务端负责关键字的解析和自动化的执行;
  • 服务端的底层大多通过 Selenium、RobotFrame Work 来支持;

腾讯 UTP 的架构设计图

image.png-361kB

流程图

image.png-103.5kB

#数据工厂方式

  • 自动根据某些规则生成符合需求的数据,然后使用这些数据进行自动化测试;
  • 线上生产数据通过一个前置清洗以后再灌入测试环境开始自动化测试或者流量回放;

性能测试

image.png-282.4kB

精准测试

流程

  • Git 代码更新;
  • 触发场景,开发在 Git 上进行了代码更新;
  • 持续集成监控到代码更新,开始启动新一轮精准测试;
  • DIFF 比较当前版本与上一版本代码差异,精确到代码行、方法名;
  • 结合覆盖率工具,分析和计算精确到每条自动化测试用例覆盖到的代码行、方法;
  • 将 3 与 4 步骤中的统计数据进行集合,确认本次版本修改命中的代码行与自动化测试用例;
  • 通过代码分析及配置好的测试策略,为每个自动化测试用例生成大量测试数据;
  • 自动化测试执行;
  • 测试报告与精准测试结果展示;

面试相关

建议

除非高级管理岗位,或者不要超过两页

  • 第一页(HR关注),前半页有效的表达自己的优点和能力,准备你的技能与岗位要求匹配列表,并突出这些技能在简历第一页,将自己擅长的并且匹配工作岗位的放在前边;
  • 第二页(面试官关注),项目经验,采用STAR 法则;
Situation: 情境。项目的背景
Task: 任务。你在项目中负责什么
Action: 行动。你在项目中做了什么,怎么做的
Result: 结果

面试官考察

  • 能力的突出点是否符合职位需求;
  • 擅长哪方面的事情,技术还是管理;
  • 性格上有什么优势;
  • 语言表达能力如何,逻辑能力如何,是不是自信流畅;
  • 有哪些成就和贡献;
  • 是否能够客观评价自己;
  • 压力下的表现;

需要准备的知识点

数据库

  • 一般的增删查改;
  • 关联、多表查询、分组、排序;
  • 存储过程、数据库设计;

语言能力

  • 常见的程序问题、基本的代码理解、数据类型、i++ 于 ++i;
  • 测开或者自动化等,复杂排序、算法、框架;

Linux常用命令即可;

软件的测试基础内容

  • 流程、测试方法、缺陷管理;

工具方面

网络知识

  • 三次握手、DNC 解析;
  • 安全;

面试过程

自我介绍的例子

面试官您好,我叫 XXX,来自于 XXX。做软件测试工作也有两年了。在期间也做了不少的项目,也积累了不少的测试经验,能够独立完成软件测试的测试工作,主要做过功能测试、app 专项测试和接口测试方面的工作。对于 linux、数据库、appium、 LoadRunner 的应用都比较熟悉。也用 LoadRunner 做过一些性能测试,最近一段时间也做了自动化测试,主要是用的 selenium 框架实现的,我平常喜欢看看书,有的时候也喜欢打打游戏,这个是我一个简单的自我介绍,您看,我这边还需要做什么补充吗?

描述自己的项目经历

  • 项目的背景如何,你负责哪部分内容,做了什么,做的如何,结果怎样;
  • 如果可以的话,可以补充上你在项目中遇到了哪些困难,你如何解决的;
  • 最后补充上项目之后自己的总结、复盘和反思

非技术性问题

项目深度
你们项目正在采用的架构?用到了哪些组件?
采用这样架构的原因,观察你在项目过程中对开发的关注、对项目的思考、理解和学习能力;

虚拟类

  • 如果项目需求频繁变更你要如何适应;
  • 如果团队使用的工具与你自己擅长的不同你会如何去做;
  • 你与开发人员发生了冲突要如何解决;
  • 如果项目压力大时间紧,你觉得应该如何去做;

经历类

  • 你在项目中有没有犯过什么错误;
  • 你印象最深的一次失败和挫折;
  • 你之前公司同事关系不错、待遇也不差,为什么要离职;

其他问题

  • 职业规划方面;
  • 印象最深的一个 BUG;
  • 根据这些手边的内容即兴来设计一下简单的测试用例和思考方向;

你还有什么问题

  • 关于入职后的工作、后续学习计划;

  • 您觉得我面试表现怎么样;

  • 能不能参观下工作环境;

https://juejin.im/post/5e37d07e5188252c6c478ebb

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论