提起数据,大家都会想到这个啤酒和尿布的故事:在一家超市里,有一个有趣的现象:尿布和啤酒赫然摆在一起出售。但是这个奇怪的举措却使尿布和啤酒的销量双双增加了。这不是一个笑话,而是发生在美国沃尔玛连锁店超市的真实案例,并一直为商家所津津乐道。沃尔玛拥有世界上最大的数据仓库系统,为了能够准确了解顾客在其门店的购买习惯,沃尔玛对其顾客的购物行为进行购物篮分析,想知道顾客经常一起购买的商品有哪些。沃尔玛数据仓库里集中了其各门店的详细原始交易数据。在这些原始交易数据的基础上,沃尔玛利用数据挖掘方法对这些数据进行分析和挖掘。一个意外的发现是:”跟尿布一起购买最多的商品竟是啤酒!经过大量实际调查和分析,揭示了一个隐藏在”尿布与啤酒”背后的美国人的一种行为模式:在美国,一些年轻的父亲下班后经常要到超市去买婴儿尿布,而他们中有 30%~40%的人同时也为自己买一些啤酒。产生这一现象的原因是:美国的太太们常叮嘱她们的丈夫下班后为小孩买尿布,而丈夫们在买尿布后又随手带回了他们喜欢的啤酒。
按常规思维,尿布与啤酒风马牛不相及,若不是借助数据挖掘技术对大量交易数据进行挖掘分析,沃尔玛是不可能发现数据内在这一有价值的规律的。
那么数据挖掘技术会给我们测试领域带来什么呢? 我对数据挖掘的专业知识也不是很熟悉,在这里只说一下我的看法。
首先,我们可以把日常测试中的数据收集起来,比如项目数,日常数,项目和日常中的用例数,bug数,持续集成的用例数,页面自动回归的脚本数,跑成功的用例数,失败的用例数,测试的产品线数等等。
其次,把数据分类: bug — P1,P2,P3 用例:持续集成用例,单元测试用例。项目:功能点 失败用例: 环境原因,代码原因,数据原因,等等。
再次,把我们的用例分类,组合。
如图:
这样就能很清晰的我们日常工作中往往很难注意的现象,比如资源投入数和bug数的关系,模块用例数和某个等级bug的关系,哪些模块的哪个类型的bug比较多,和资源,用例是否有一定的比例关系等等……从而可以更好的发现潜在风险和问题,更好的支持管理决策。