不是测试不好找工作,是全行业。。。投资市场不乐观,以往随便来个 saas 平台都能拉到好几个融资伙伴,现在没有真正创新的软件产品没人过问,拉不到钱整软件服务,也就没有新的团队。互联网项目是最烧钱的,项目解散裁员比比皆是,老测试岗位都还没着落,新血脉又涌入,之后程序员只会和公务员一样难考。
规范的后端限制即可,前端做限制主要是为了用户体验,或者在前端进行数据提交时把后端返回的异常结果映射在提示框
理解下测试左移和右移,能在提测前提前介入到测试工作或者说在线上提高 “缺陷发现时间”、“问题定位时间”、“问题解决时间”
那你的测试过程不具备可靠性
你这感悟没到位,接口测试想对于功能测试的价值是可以测到更细粒度,能更快发现底层交互问题,你去玩玩代码覆盖率看看哪些是覆盖到的 哪些没覆盖到的,再重新理解下接口层用例设计策略,为保障服务的高可用、高并发、稳定性、安全性、伸缩性等,细分来看包括:对外接口、内部交互接口、交互服务异常(三方、微服务或者中间件)、安全测试、故障演练、启动配置项等。
不是向服务器 是向某个服务应用或者某个应用实例,先理解心跳原理,是通过什么协议传输,长连接还是无状态的 http,5s 一次和 1s 一次本质上除了频率是没啥区别。还有个点要确定下,你对并发的理解,1 个并发就是 1 个用户,1w 个就是 1w 用户噢,并发和 tps 不对等。
要考虑 1w 并发的情况如果是长连接,那就是要满足 1w 个线程,1w 个长连接通道,能不能支撑 1w 消息通道同时传递处理,一台机子一般处理不了这么大的量,得换算成单机场景,单机能跑多少 考虑稳定性、可靠性,压测完后提供较有力得参考数据。脚本实现就是先建立好通道,服务端再短时间内一块发送消息包。
如果是无状态的 http 请求,就是省略了建立通道的环节,直接发起请求,原理都差不多。
深一点的话,可以针对数据存储、服务依赖、服务异常做些故障演练,数据存储可以了解缓存穿透、击穿、雪崩,比方说在读取数据时数据正在删除中,会不会抛出捕捉不到的异常。服务相关的可以参考 panic 服务的场景考虑,比方说依赖的应用程序崩溃,在测试环境 kill -9 模拟,服务请求超时,依赖服务 connect fail 等。
在 testCase 层定义个变量就好,没必要搞全量的数据驱动
可以帮忙写单测
感觉看到了曾经的自己,哈哈
一开始我用的 unittest 框架写自动化脚本,跳槽以后心血来潮,想试试 jmeter,看看投入成本和产出是否成正比,也用 jmeter 整过接口自动化测试,写完第一版就发现维护成本很大,各种检索不便利,也没啥全局替换的功能。
接着继续研究数据驱动,能否有效的提升测试脚本编写效率,如果是简单的 http 接口做点数据驱动效果确实明显,但如果遇到组合场景,不同协议的比方说 socket tcp udp,又或者说需要做参数转换参数加密,实现一些数据驱动反而新增很多框架 bug,投入的时间成本反而增加。
之前也有搭过一整套自动化生成测试脚本的,只需要编写 excel,把所有服务交互的信息列出来,把所有输入输出分类好,base 概念,精准校验哪部分内容,还衍生出 AVU 的概念。那个 excel 是真的复杂,找个 985 高材生也要熟悉一个星期,才能介入进来,理解成本很大,框架搭建时也发现很多 bug。
后来跳槽到这家厂,经常要做各种服务交接工作,有交接过 rf 的脚本、pytest 的脚本、unittest 的脚本或者没框架的脚本,现在编写脚本更多的是考虑快速定位、报告可读性、源码阅读成本。还是用回 unittest 的框架,引入比较基础的数据驱动,定义好团队编码规范,编码量虽然比之前数据驱动那些多,但时间成本反而更低,复制粘贴 2s,改个描述参数 30s,一条 case 就出来。
接口自动化除了脚本框架外,核心其实还是用例设计,怎么设计用例才能保证代码覆盖率,更细粒度的场景能不能自动化,比方说服务与三方服务的异常交互,这样就衍变出单服务的自动化测试及测试思维,从单服务入手也能模拟各种故障演练,有时间的话可以研究研究这部分,比研究框架更有价值,框架够用就行。
有研发经验转研发 不算测试转研,这种按正常的市场行情算就可以。如果是纯测试转研发,能平薪转拿到 offer 就已经很好了。
请奶茶喝就行,最好星巴克这些,贵的深刻些
appscan 有个策略选择,你在里头勾选就可以,扫描时还要保证有覆盖到所有接口。之后遇到安全问题,根据描述去复现场景,复现出来记 bug 就可以了。不过 appscan 扫不全,可以扫些注入漏洞、xss、csrf,一般还需要补充些必要的安全测试用例直接手动测试,比方说越权场景、强刷(校验是否上锁)等。
每条消息都尽可能校验下,消息数量也是测试点,还要考虑时序、状态、消息丢失处理等情况
测试的定位就是保障质量,做好质量管理,可以推动质量前移后移事项,做到降本增效,要测试去搞钱那不叫测试。
对,可以照顾到编码能力欠缺的同学,在 ride 中把方法和类当作控件来使用,不然还是用 unittest、pytest 啥的舒服多
在大企业里有这么个东西来保证员工学习的驱动力,通用能力 - 学习能力、创新能力,作为晋升、加薪的标准之一,没有进步的同学自然会缺少更多的机会。
建议早点脱 RF 的坑,很多适配兼容问题,gui 界面可读性也差,脚本交接就会发现很多问题。
--------------------被 rf 伤害过的男人
和 3L 的建议一样,流程规范和开发自测分为两个事项来整,流程规范设好交付卡点不需要卡用例设计这块,比方说用例代码覆盖率、单测覆盖率、bug 激活率等。
开发自测用这种测试分享的形式可能没啥效果,可以定义好自测规范,自测的颗粒度、自测用例过审,像我们这的开发自测用例还是让测试提供,接着测试就做甩手掌柜。
"再写一个对外的微服务专门用来做测试"
可以写一个通用桩来解决,client 桩、内部服务桩,内部服务桩用来做依赖服务的 mock,每个服务都可以细致化的来测试,之前我们这么测代码覆盖率可以跑到 90%+
别恶性卷,从你的技能描述上大多是会写个 demo,只会写 demo 在面试时很难作为一个亮点,像接口测试只会简单的工具使用可能都不清楚接口的用例设计方法。
学得杂没用,我建议你选一个技术栈玩到深,能真正落地,能对团队创造实打实的价值,能作为团队的测试规范去展开,比方说接口测试,有自己的用例设计思维,能保证代码覆盖率达到 70%+,完成接口测试后进行的页面功能测试,没有后端 bug,基于 XX 实战接口自动化,并部署到 jenkins 实现持续集成,降本增效。
有亮点在竞争者中才显得差异化,跟面试官直接说 1 个我能顶 3 个点点点测试,怎么可能只给你开 6K。。。