如何提升测试水平
乙醇 创建于 almost 6 years 之前
最后更新: less than a minute 之前
阅读数: 503
有同学在公众号留言问如何提升测试技能,这里抛砖引玉给一下个人不成熟的建议,大家见仁见智,欢迎讨论。
熟悉业务
让人称赞和放心的测试同学往往对业务是非常熟悉的,知道自己的业务在干啥,知道业务的商业逻辑和非商业逻辑,其实对于测试同学来说是蛮重要的。
熟悉业务的方式有很多,一般来说刚接触到新项目/新产品的同学往往会先体验一下产品,把这个产品的功能先点一遍,就当作是熟悉业务了。这样做没什么不对,不过有点不够深入,不理解产品的设计逻辑。理解了产品的设计逻辑才能更好的贯通整个产品的各个模块,真正做到精通。
在熟悉业务的时候,我们可以问自己下面的一些问题。
- 用户想要什么?用户的原始需求是什么?有些产品可能用户是没有直接需求的,完全是通过产品去创造需求的,这样的产品原始需求可能会比较模糊,理解起来会有点难度。还有些产品是直接照搬或者高仿友商的,理解这些产品的原始需求可能就要深入理解竞品了。
- 我们提供了什么功能?为什么?这是我们自己产品的逻辑了,用户的需求我们可以一步一步慢慢去满足,先实现哪些后实现哪些,这些逻辑我们也要搞明白。另外有时候实现用户的需求成本很高,因为成本的原因我们可能提供一些有损或者折中的方案,这种逻辑也是测试同学所需要了解的。
- 赢利点在哪里?这个比较难,我们靠什么赚钱?这个老板会比较关心,但是测试同学最好也关心一下,毕竟赚钱的地方往往是最最严重的缺陷发生的地方。电商平台的支付如果出了问题,那么这个事故的严重程度大部分情况下是最高的。福兮祸之所倚,祸兮福之所伏。
- 有没有运营数据?运营数据怎么样?运营数据反应了线上的真实情况,能帮助我们更好的理解用户的行为,从而改进用例的优先级以及设计更加直击痛点的用例。
了解实现
我们的系统是怎么样实现的?代码的逻辑是什么?代码出错以后的异常处理是怎么样的?这些问题我们最好能多少了解一点。
如果大家对上面的问题感到棘手,那么可以思考另外几个问题,其实也是殊途同归。
- 数据库每个库每张表是做什么的?每个表的每个字段是做什么用的?关联关系是什么?(如果是关系型数据库的话)
- 系统有没有用到缓存?缓存里存些什么数据?这些数据会不会过期?过期策略是什么?
- 有哪些定时任务在跑?为什么要跑定时/延时任务?
把上面一些问题弄明白了的话,在面试的时候也是有一定好处的。
了解架构
一般来说我们需要了解逻辑架构和运维架构。比如逻辑架构里的一些微服务模块,每个微服务的功能是什么,怎么跟其他微服务交互的,完全从逻辑的角度去看。
运维架构可能涉及的点会多一点,比如用户微服务部署了2个实例,负载均衡用的是xxx,如何动态扩容之类的。
这些在面试的时候是很好的谈资,很容易加分。
掌握专项
功能测试的话开发也会测,产品也能测,看上去并不是什么特别专业的技能。
专项的话呢,开发可能要学一下才能会,产品可能一时半会学不会,嗯,终于有了点领域独占的优势,是大家提升技能时可以重点考虑的部分。
- 性能专项。服务器性能比较有技术含量的。
- 移动端专项。移动端的性能稳定性等。
- 自动化专项。ui自动化和接口自动化了。
- 安全专项。我也不会,白话不出来。
- 监控专项。各种监控也是很有意思的。
好了,以上就是我的一些非常不成熟的见解,有些应该是臆断,求同存异,希望对你能有所帮助。