灌水 在繁杂的手工测试中累积测试技术

jinglebell · 2017年03月06日 · 最后由 jinglebell 回复于 2017年04月10日 · 2173 次阅读
本帖已被设为精华帖!

最近稍微得闲,就随便发篇灌水帖吧,原本没打算发社区里(不习惯 MD 编辑格式),在他人劝说下,还是发到 TesterHome 上来了,感兴趣的看官就当看小说吧。
因为是当成故事来写,又没有具体的技术分享,所以归类到灌水。

正文开始:

一、需求来源:

大部分测试,最开始从纯功能测试入门,做熟练后,容易陷入版本迭代和 PK 大战的汪洋中,以至于没有时间精力再去额外学习一些基础的测试技术(如某种编程语言、自动化测试工具),即使挤时间强迫自己学习,也不知道从哪里开始入手,很容易陷入人云亦云的尴尬,比如今年的趋势是安全测试,就去百度安全测试,明年是大数据自动化测试,就去百度大数据自动化测试。

如何在繁琐的手工测试工作中慢慢积累自身技术” 是测试同事普遍需要解决的一个问题。

二、前提条件:

1、对自己所在项目的业务流程、功能逻辑相当熟悉;

2、愿意牺牲一部分自己休息的时间;

3、骨子里是个想尽办法都要偷懒的人;

4、内心还是有学习新事物的愿望;

三、大致剧情(最近流行讲故事):

Step1:

对于项目的业务流程(包括细节)和功能逻辑已经相当熟悉,慢慢发现在每次版本的测试过程中,设计案例/验证/提 bug/与开发沟通只占 40%~60% 的时间。剩下的时间(甚至加班)用来干下列几件事情:

1、 构造测试数据,尤其是复杂系统的测试数据既珍贵又难造(比如放贷产品里突然造一笔逾 N 期未触发代位追偿的数据),在开发 BUG 频出的情况下,测试造数据的工作量更是翻倍增长;

2、 上游的流程因 bug 受阻,数据从上游过不来,等着开发改 bug 或手工模拟一个数据出来(大部分情况发现手工是很难模拟的,尤其是量级和复杂度较高的系统),时间一点一滴地在流失,但测试进度在原地踏步

3、 大量看似不相关又不知道真的是否相关的回归案例等着去执行,比如开发就动了一张配置表的某个基本信息,但按照理想测试情况,该信息涵盖到的功能是需要做最基本的冒烟测试的,全套跑下来,回归测试的时间占比高于非回归测试,但功能点就只改了那么一点点

Step 2:

实在受不了 step 1 中的事情,开始思考是否有一些偷懒的方法,能把简单而又重复的事情快速完成。于是在休息之余对下面几个方向进行了探索(真正忙于测试和 PK 时,大部分人没时间想这些):

1、 现在每次造数据的大部分时间是手工操作前端将数据走至测试前的状态,或者手工增删改查 + 调用一堆存储过程使一条数据变为测试前状态。前端能否按照我的意思自己走流程快速造条数据呢?后台我每次敲一堆 sql 命令造出来的数据能否按照我的意思自己跑呢?

2、 每次出现阻碍 bug 或开发优先级顺序倒置中前期测试时间浪费时,有没有办法避开这个坑?步骤是 12345,每一步的数据能否准确模拟出来?

3、 此问题看来貌似暂时无解,不去想了。

Step 3:

为了尝试 step 2 中的想法,开始做下面的事情:

1、 前端是 web 还是 app,如果要自动跑流程就要写点自动化脚本去让它跑起来,如果是 web,百度/谷歌之后发现 selenium 貌似不错,那就用 selenium 来跑吧。几经折腾写好几个单 page 脚本,可以自动跑想要的流程了,但发现维护的成本似乎太高,每次改动一下数据自己就要打开这几个单 page 脚本改好几行代码。

2、 开始想能不能进行简单地封装,我只需维护一张 excel 表格或一个配置文件,就能轻松更改几个脚本的数据源。又折腾了几天后,发现数据源基本不能复用,能否加一些处理脚本使每次自动产生一批可用却又不重复的数据,要做到这点就该去看看开发写的对应代码了。哎,好像不会,那就再抽点时间去网上学会基础编程吧,然后找关系好点的开发同事讲解下,把代码看懂了,拷贝下来,改成适合自己脚本的入参出参方式。啊!又发现语言不一样,能直接用 python 实现一个 java 里的功能吗?能,那就自己翻译,不能,那就自己去了解下 python 如何调用 java 代码吧。或者,每次跑完后,能自动执行一些写好的 sql 让这批数据回滚到最初状态,又要折腾两天充分了解这块业务对应了哪些表,这些表的关联关系、因果关系,还要花点时间实现脚本对数据库的无缝调用。

3、 要模拟每一步产生的数据,最直接的是去把开发的代码拉下来看,然后把它改成自己最爽的入参出参模式,用了几天,发现这么做是能节约一些时间,可每次要避开一个步骤,就要手工调用一次 mock 的单脚本,那要不把几个 mock 脚本封装成一个独立的项目,倒腾几天后自己这边确实做到了一键式产生 mock 数据。

4、此处省略一万字;

故事到这里 Stop:

其实各位看官可能已经明白了,工作中能从无到有,从少到多有效积累测试技术的过程是:
(1) 做了一段时间手工测试--->
(2) 对项目很熟悉(功能层面上)--->
(3) 项目中出现很多浪费时间的鸡肋问题--->
(4) 为了解决这些问题开始寻求并实施碎片化的解决方案--->
(5) 在不断想偷懒的动力下持续优化第四步的过程中,渐渐学会了编程、数据库、基本网络协议、各类测试框架、自己根据需求设计改写测试框架。

从(1)到(5)后,其实身上的 title 已经不是那么重要了,就算平时工作只做手工测试也是一名视野开阔,思考有深度的加强版手工测试。这一切最初的驱动都来自于业务项目本身,而不是网上谋篇帖子里提到的“高精尖万能技术流” 或 “一个月教你成大神的 XX 培训班”。这条路能不能走通,能走多远,完全取决于自己骨子里有多懒和是否愿意不停学习新事物。

PS:

作者第一次开始一本正经地写脚本是从 “自动整理组合甲方想看的测试结果” 开始的,目的也很简单,节约点时间,否则每次都是 select * from…+ 复制粘贴 +select x from…+ 复制粘贴折腾大半天,而且甲方一改报告显示需求只能哭还是哭。然后就在这条不归路上越走越远….

最后特别匿名感谢在这条路上帮助指导我的几名前辈(避免特意吹捧的嫌疑,此处匿名)。

临时更新:

没想到会收到社区的打赏,万分荣幸,后续会继续努力,谢谢社区的支持。
打赏二维码如下

共收到 47 条回复 时间 点赞

大多数测试同学的日常,我也是如此,被业务磨去了学习其它的劲头。

心有同感,赞一个

非常的写实,身临其境!

—— 来自 TesterHome 官方 安卓客户端

恒温 回复

嗯,所以我才觉得最大的学习动力是发现业务项目中有个点是能优化,让自己偷懒从而去学习实践,而不是今年流行什么,就再进一步挤压自己去学,一是难学,二是没有项目练手落地也只能是过家家。

徐旻 回复

我猜到是大部分同行的心声,就写个故事吧,但状况并不是完全无法改变,只是改变的初衷是想让自己在业务项目中某个点能更高效,自己能省点事

rockyrock 回复

谢谢

jinglebell 回复

我现在最开心的时候就是下班后,研究自动化的时间。上班查资料,晚上做实验。感觉真心对不起这份工资。

一开始也是花了很多时间来熟悉业务,然后就业务里迷茫了。最近才有动力学习,改善工作流程。 谢谢分享了

恒温 回复

深圳均价五万多了。。。

守正 回复

不客气,共同进步

今年的趋势是安全测试,就去百度安全测试,明年是大数据自动化测试,就去百度大数据自动化测试

吓了一跳。。。

dadeshuo 回复

比喻而已,就是今年火什么就去学什么

故事看的很有感触。然而实践起来。。。。从 0 到 1 好艰难,无数次倒在 0.5 乃至 0.8 上了,至今未能点亮技能树。title 还是只是测试工程师而已

jinglebell 回复

这种就是热闹驱动开发模式

我去催饭 回复

如果到了 0.5 就能让自己偷懒了,那么到 0.5 停滞很正常。但如果还想进一步偷懒,到 1 是早晚的事。这又从侧面反映做测试,平台也很重要。

😳 并不能偷多少懒,我们的业务和你的有点像,也是整天跟 sql 打交道,还有各种接口什么的,然而我就没有一个系统的思维去做一些可以成型的东西,充其量无非就是今天要更新一批账号,开头都一样,就后两位数不一样,那写个脚本批量替换吧。也就到这种程度,再往深了做就不行了,没有形成思路。还希望楼主多分享分享自己的经验,能指导我们从 0 到 1😊

(5) 在不断想偷懒的动力下持续优化第四步的过程中,渐渐学会了编程、数据库、基本网络协议、各类测试框架、自己根据需求设计改写测试框架

主要就是这一步。。好多人没能潜下去😂

跟我的经历非常相似

匿名 #19 · 2017年03月07日

感觉自己已经掉入了业务,天天走业务。。。希望楼主多分享一些,然我们可以一起成长

我还没真正到 1,但觉得这是正常有效的轨迹。一起进步吧

思寒_seveniruby 将本帖设为了精华贴 03月07日 20:17

加精理由:务实思考

荣幸之至,受宠若惊,继续努力

也不会。。在繁杂的都可以从里面抽些部分出来用技术加快效率。。
不过也要看你下班后是不是还要忙很多事。。。

赞一个。

说出了心声啊

sunshine 回复

后面就是实践了。

这件事说明了 懒才是驱动人类进步的基石。

rrrrzzz 回复

是的,农业革命,工业革命,科技革命,每次的本质都是懒

偷懒,所以得学会用更好的方法提高效率

—— 来自 TesterHome 官方 安卓客户端

六星 回复

是的

感觉从偷懒(提高效率)的角度学习,还真是一个不错的方法

DC 回复

懒惰是人最大的驱动力之一

jinglebell 回复

为了懒惰,为了效率,努力吧,骚年😀

我以前是开发后来转测试开发,一开始就写自动化测试,很多时候并不明白为什么要这样做,只是为了完成工具或者说自动化的开发,然而并没有确切的发现问题,真的是为了自动化而自动化。港真,一切要从最基础的手工测试开始,然后烦了,然后就想着偷懒,再然后自动化……

杯莫停 回复

好吧,😄

jinglebell 测试感悟 (2)-测试的定位 中提及了此贴 03月16日 14:04

记得更新打赏二维码

已经更新打赏二维码,谢谢社区的支持。😍 😍

懒惰的实质是追求效率的提高,带来的结果就是进步

李宏伟 回复

有经历才有经验

点出了我的心路历程,正在想办法’ 偷懒 ‘,

张权 回复

祝偷懒成功

现在也是这个鬼样~没有代码基础,简直要丢饭碗了,现在每天业务多~好迷茫

在我认为的测试,就是一个集多个技能为一身的职业,既然要会这么多技能,“偷懒” 自然也是必不可少,会得越多,就越能发现更多的问题。不仅要把软件测能 “用”,还要把软件弄 “好”,这样才会越来越成为一名稀少的测试人才。

忽忽狐 回复

嗯,赞同你的观点。

感觉需要成为 1,2,3,4,5 花费的时间很不少,
但是现在流动性太大,等熟悉了 1234,再去熟悉 5 的时候,公司都垮了,哈哈哈哈

372 回复

是很费时间,而且还会因为各种原因阻断,但这又是必经之路,稳定的平台才是测试成长的理想摇篮嘛。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册