软件测试创新之路
测试创新之路
很多人认为创新必须是很大的点,。其实只要改善了事情,不管大小,大的可以叫大创新,小的可以叫微创新,都是创新。
另外,创新也不一定是绝对意义上的“别人没做过”,只要是在当前的工作环境下解决了之前没有解决的问题就可以,我把它称之为“广义上的创新”。
一 如何去发掘创新点
凡是想把一件事情描述的尽量全面一些,不可避免的首先就需要划分几个大类出来,逐一细化。我们来演绎一下,测试领域的创新点,其实不外乎技术方面和流程管理方面。所以,我的思路就是从这两大方面去挖掘。
技术方面
我们可能会关心测试效率与性能的提升。假如需要统计一份数据,用excel或者写程序都可以干这件事时,你有没有想过,怎么做会更省事省时间?有没有采取行动?当然,省事包括现在的省事和以后的省事。
我们可能会关心工具的易用性。测试工作中会用到许多现成的工具,你有没有觉得哪些工具或者工具的哪个环节不好用?如果不好用,有没有仔细想过要去让它变得更加好用?
我们可能还会关心遇到的痛点问题。这是360深入骨髓的企业文化,找到痛点,然后进行微创新。究竟什么使我们费神劳力?能不能彻底解决掉?我们要善于挖掘那些持续了很长时间都没有解决的问题,比如要把一个接口部署在几十台服务器,以前经常发现有些机器没有部署成功,后来我们就想,能不能在上线后,自动对这些服务器挨个做一个回归测试,看看是否部署成功了呢,于是我们基于这个想法,开发了线上监控系统,用来对一组hosts挨个请求一遍。
流程管理方面
我们可以做到“三化”,哪三化呢?
标准化、模板化、工具化
1 . 标准化,比如,在bug生命周期中,我们为了整个流程的规范性,可以把提交bug后,开发、测试人员的操作严格区分,并且严格控制开发将详细原因写入缺陷报告系统,这样就会对我们后续的bug分析非常重要,这就是一个创新点,我们称之为标准化。现在很多开发团队都有代码规范,这也是标准化的实施,可以较好地控制质量。
2 . 模板化是什么意思呢,就是把常用的东西提出来,形成规范的东西。比如上线检查单就可以做成一个模板,每次上线都要根据检查单检查上线内容,可以有效避免少上、漏上的风险。
3 . 再来说说工具化,我们可以提取一些经常需要做的事情,比如周报,大家的周报可能大多数都是以邮件的形式发送,但我们为此专门做了个周报系统,就为了解决周报存档以及管理的问题。
二 具体的创新方法
如果能找到一个创新点,千万别放过。某个工具不好用,我们却一直忍受它的不好用,工程师可别太耐心了。哦,别想歪,我是说对工具的缺点别太耐心,但是对我们周围的人要耐心的像春天般温暖哦!下面就絮叨絮叨有哪些创新方法。
纵横比较
我们在创新时可以跟同类产品进行比较,也就是所谓的横向比较,看看他们有哪些优点,又有哪些缺点。前一段时间我们大量用到mock,于是调研了市面上的几款mock工具,发现基本都是基于代码方式的mock,想要去模拟数据还得让开发改代码,偶尔也有在线的mock,但不能自定义URL,这不还得开发改代码嘛,头痛不已。后来就萌生了自己写一套可以自定义URL的在线mock工具,后来用起来时,感觉真是丝滑。所以,横向比较很有用,我们可以从这个过程中发现自己的产品没有解决哪些问题,甚至在比较的过程中,还会有一些其他灵感,咦,我这个产品还可以这样进一步实现它的功能,而且比他还要更加强大。
我们还可以跟不同类的产品进行比较,也就是所谓的纵向比较。现在今日头条这么火,但作为测试从业人员,却没有一个高质量的测试文章集散地,他们分布在广袤的互联网大地上,在51testing上,在测试大牛的博客上,在各种测试类型公众号上……那我们效仿今日头条,做一个web端的测试文章集散地吧!于是,三剑客News子系统应运而生。
啥?你还可以跨界学习,进行创新?没错,我们不仅可以像上面那样进行纵横的比较,还可以跨界。领域虽然不同,但其实很多东西都是相通的,完全可以借鉴。在这个跨界比较的过程中,有可能会出现颠覆性的创新。
借鉴
首先,来讲讲开源工具的威力。受惠于互联网的开放,我们能从从github或者oschina上获取到加起来绕地球好多圈的开源工具。其实现在很多工具都是在已有轮子的基础上进行二次开发或者组装,可以实现原本工具不具备的功能,这就是创新。我们有一个团队测试手机浏览器,大家都知道手机浏览器有一个难题,就是如何精准测试首屏加载时间。这个团队开始是用高速相机对整个加载过程拍照并记录拍照时间,通过人工手动筛选起始和结束图片并计算时间差。但是这个过程太费时间了,而且需要测试不同的URL,还要测试竞品,更加头痛。于是,一步步最终优化了这个过程,实现了测试效率成百倍的增长。这个过程就借鉴了开源工具stf,以及一门神奇的编程语言sikuli。想了解更多,请出门左转,老郭大牛给你讲。
我们还可以从会议沙龙中挖掘灵感。现在线上线下的沙龙很多,比如领测沙龙、火龙果的线上讲坛都不错。当然,建议有针对性地去参加这些活动,不要沦为为了参加活动而参加活动。还可以关注国外的趋势。不管什么领域,国外貌似一直都是创新的发源地,测试行业也不例外。所以,我们可以多看看国外测试领域现在在做什么,他们在谈论些什么,说不定你会是第一个引进的呢!再者,可以用开发的思维来将某些测试工具化,比如,怎样检测死链呢?可以利用爬虫来遍历整站的链接。再比如要准备大量的数据进行测试,那么这个数据是否可以通过抓取来得到呢?
思辨
这可以说是相当重要的一点,重要到足以决定上面说的方法到底能不能对你产生一丝一毫的影响。就像我上面说的,很多人用工具,虽然不好用,但是从来就没想着改善;工作中有一大堆痛点,却从没想着要解决。只有心态的变化,才能级联造成其他的动作,这个心态就是思辨。一定要有怀疑精神(尤其是测试惹人员),要不满足于现状,经常问问自己,这个问题有没有解决方案?还能不能优化的再好些?只有抱着这样的心态,才能发现问题并且解决问题,否则就只能发现问题却不解决问题。
上面谈了很多,包括找创新点和具体的创新方法,希望曾经有那么一瞬间能激起你的共鸣并将创新实现,那将是这篇文章最大的贡献。最后,一定要强调的,创新不是目的,只是手段,我们最终的目的是要更好的解决问题,所以要从业务以及目前的实际情况着手,才能真正发挥它的价值,否则就会掉进所谓的自动化陷阱,为了自动化而自动化,我们不做这样的事情!