胡言乱语

有事没事一点杂念

写在前面

这段时间我的小破爪机不间断的给我推送“国航”和“南方航空”的优惠,挠的我都又想出去浪了;想想,今年基本没什么出行,实在是有点 人到“中年”,俗事繁多的无奈~~~
迎接新生命到来的日子里,胡思乱想,水平有限,脚踩西瓜皮,遛哪写哪~

一个简单的测试人

很多时候,自觉还是个比较懒的人,一个没事喜欢思绪天马行空,而不是脚踏实地的做眼前的测试工作,最近想的比较多的,还是老生常谈的测试的职业生涯发展,个人在测试这条路上怎么走下去。

说实话,测试在业内的固有看法就是入门门槛低(实际上也是这样),在体量不是很大,技术氛围不是非常成熟的企业,我想,当前的状态,很多测试的同仁或多或少是不被开发看的起的吧,“没什么技术含量”,“不必要的工种”,“随便拉个人都能做”等等,唉,没办法,一句话是“开发是先天的,测试是后天的”,很多测试小伙伴(包括我自己),都是后天转到了测试这一行,或多或少的同仁是期待这个行业相对较好的薪资以及又不像开发的那么“找段代码过一生”的职业定位才从事的软件测试职业,如果没事时候问问自己,除却生活因素,软件测试这份职业,真的是你愿意从事的工作吗?真的是你的兴趣所在吗?我想是不是会打个问号。当你自己都不确定自己是否是愿意从事这门职业,坚守测试操守,也别去指望开发看的起你了呗。

当然,测试也真的没开发看的那么的糟糕,的确,一个根本没接触过软件测试方法论的人,很可能是会点啊点的就点出一个经过N多轮测试之后的系统的BUG,但是个人觉得这是无法避免的,0 bug的系统,个人觉得是个悖论;同样的,绝对安全的系统,根本也是不存在的。那么我们低端的测试人员怎么体现自己的价值,个人觉得,最简单的,业务的通盘理解程度,刚入行时候就听过,测试做得好,比产品还要懂产品。当你作为一个测试,比产品经理还要精通产品的业务,那你在平常的即使是黑盒测试过程中,也一定能很轻松就能发现很多的缺陷,甚至是预见系统在即使是开发严格按照产品文档开发之后也会出现的逻辑上的缺陷,这点,随便街上拉个人,应该做不到吧。之前参加公司一个培训时候,领导说过一句话,大致意思是在团队中做个有标签的人,当一个测试人员在团队中被打上了“这个人对业务最熟,不懂问他/她”,那我想,至少你是一个合格的测试了,开发,没有理由看不上你的工作。

是不是该学点技术了

在进行了n久的功能测试之后,很多测试同仁会去转,可能是管理,可能是产品,也可能是其他。另外的,可能就是技术方向了,性能测试,自动化测试,安全测试等等;个人见识浅薄,目前只接触过性能测试和自动化测试,身边也有做安全测试的同事,我呢,自知能力尚欠,还没接触。

性能测试

说到这四个字,是有点心累。找工作上,这四个字一输,敲个回车,就没几个职位放出来。进了企业,进行性能测试工作,我想我们这些底层的测试人员,很多也就是jmeter和loadrunner来回打转,写个脚本,测个结果,就算完成了。入门更是神奇,网上随便搜索《loadrunnerxxx入门到实践》,《Jmeterxxx实战系列》等等,教程一搜一堆,照着也是很简单就能完成一个脚本,然后就像模像样的找台压测机,点开始执行,没事到linux敲个top、vmstat或者iostat来看看资源,两只眼睛盯着聚合报告或者TPS图像,一有风吹草动就风风火火的在群里@谁谁谁,系统不行啊,并发才这么点,CPU就这么高,你这要优化啊。好一点的,还会mysql -uroot -p;show processlist;show OPEN TABLES where In_use > 0;tail -f -n 300 slow.log;mysqlbinlog xxxx来看看数据库,也到头了。脸红的说,我差不多就这个层次,好不到哪去。所以有的时候,真的挺无语的,自己能力真的挺差的,作为一个性能测试人员,我能提供的最大的帮助就是定位是不是内存泄漏,是不是有慢SQL,再多也只能explain一下SQL,提供一点优化建议了。自觉,真的能力好低,对于程序出现CPU爆表,根本不能给开发提供节省他们时间的信息。

理想中的性能测试,通盘理解结构,精通语言,能大致定位到代码块,精简开发的优化时间,个人觉得,欠缺:

  • 网络知识(TCP/IP,HTTP)
  • 操作系统底层知识(代码执行原理,CPU、内存、磁盘等配合过程)
  • 编程语言(Java特性,JVM原理、调优)
  • 数据库(Mysql,Redis等)
  • 监控系统
  • 日志系统

最后,尽量不依赖工具,至少最后往不记得有工具这回事这方向走。

自动化测试

国内目前的环境也还是推崇自动化,毕竟解放提升测试效率,解放人力嘛,可以理解。自动化测试的好处就不列举了,随随便便能列出一堆,但是,有的时候我们要“抬杠”,自动化测试不好的地方。最近看了篇James Bach的访谈,这位大仙关于自动化测试的一些观念,个人觉得,是很有道理的。摘一段:

1
2
3
自动化是用某个具体的方法发现些具体的问题。而人类应该有能力去用更加开阔性的方法发现更多问题

你知道,我不喜欢用“测试自动化”这个词,因为我觉得测试不能被自动化。当大家说测试自动化的时候,大家的意思其实是自动事实检查fact checking。这些用例在检查特定的事物,所以他们寻找特定事物的失败或者成功。这就是自动检查,但是它完全没有自动化任何人们所做的真正的测试。当作为一个人去做测试的时候,我们不单单的看特定的东西,我们还会看一些线索。我们会去探索一些奇怪的事物和现象。一旦,我觉得有什么蹊跷,我就会深入下去,仔细研究。然后,当然研究会让我发现一些新的在开始的时候我没曾想过的缺陷。机器永远做不到这点,只有人可以。

大仙的意思,我个凡人揣摩的是,自动化测试的确是一个很有效的提升测试效率,尤其是在繁重的重复性测试上的效率,非常有价值,可以给企业节省出好几个劳动力去从事其他的价值。但是现在也有过分追求自动化的情况,接触过自动化测试的人应该都清楚自动化测试的原理,主要的验证方式就是断言,想想,既然可以在自动化脚本中写出了明确的断言结果,是不是也就意味着,这是你执行过不止一次的,思维定式般的测试思路;这样,如果对于测试数据也不维护,是不是就会出现一直跑着同样的结果,机械的验证着你固定的思维。自动化测试有个有名的理论“杀虫剂效应”,如果你用一种特定的方法去发现一种类型的缺陷,那就只能发现这种类型的缺陷了。

自己也做过一点点的自动化,感觉,自动化对企业是必须的工作,但是个人觉得,也不能过分的去追求自动化, 而且,自动化的从业人员,有的时候应该停下来,好好想想用例设计,好好想想自动化怎么才能更大的价值。

测试理论

也忘了是在哪边看到的一句话,测试用例设计方法,一下午就可以全部学完。看起来貌似有点道理,一般日常使用的较多的等价类、边界值、判定变、正交等等,一下午好像是学完了,发现自己是无力反驳。。。然后看到“季哥”的博客,有这么一段话:

1
多次和其他公司的测试同学交流,发现很多同学说自己都说自己是工作2-3年的人,已经遇到瓶颈了,感觉测试很单调和无味。我给的建议其实很简单,那就是真正的理解和掌握所有的黑盒测试方法。怎么来验证呢?我自己就是这样:给你一个白板,你能把所有测试方法的5W2H(What、Why、When、Where、Who、How、How Much)都能非常清晰明了的演讲出来了吗?记住是不需要参考ppt或其他资料的情况下。

对照着看,发现自己的确是懂得相当的少。我们现在所日常使用的测试方法,都是前人沉淀下来的,既然现在入门测试还需要学,那就一定有我们没有掌握的部分,用例设计方法就那么多个,背一下很简单,用起来,自问,差太远了。

懒一点

我还是想说,有的时候,需要“懒”一点,停下来,不动手,好好想想;一直的在做做做,很多时候,我们就被限制住了,忘掉了很多原本很简单,很真的想法,忘掉了真正的工作。想想怎么提升测试效率,怎么帮助团队提高产品质量,怎么优化我们的测试工作等等。

最近想过一些问题:
如果测试时间不够,是否可以只测试客户关心的比较常用的功能?
怎么用技术手段去提高测试效率
离开了工具,我还会不会测试
测试的初衷是什么

后记

人生苦短,“好好享受”,稍微“懒”一点,想尽办法去“偷懒”。另外,做个“独立”的个体,减少依赖,自带技能盔甲加身,工具只是锦上添花并不是生活必须品(的确,提升效率上功不可没)。

最后,以上,皆为胡言乱语,没有一点点参考价值,结束!

文章目录
  1. 写在前面
  2. 一个简单的测试人
  3. 是不是该学点技术了
    1. 性能测试
    2. 自动化测试
  4. 测试理论
    1. 懒一点
  5. 后记
|