有一天,产品小A正在分析某个功能的各项指标数据,发现某个KPI数据异常,用户点击量突然增加了好几倍,但是用户使用量没有变化。产品小A找到了测试小B.
产品小A:这个版本的KPI是谁测的了?b119和 b120新版本发布后怎么数据突然翻了好多倍呀?查一下是不是统计错了?
测试小B:这个版本的KPI是我测的,我查一下。
什么是KPI
关键绩效指标(Key Performance Indicators,简称KPI),又称主要绩效指标、重要绩效指标、绩效评核指标等。每个岗位都有自己的关键指标,对测试人员而言,版本上线后出现的线上事故就是其一个重要指标。那么对于发布的产品也有其衡量的指标。如何计算产品的KPI呢?在每个版本新增加的功能中,产品都会统计一些数据,以分析用户行为以及用户对某个功能的喜爱度。
KPI测试的重要性
前面我们说了KPI主要是用于产品人员分析某个功能用户的喜爱度、用户行为等。此外还可以通过分析数据找到功能优化的方向。所以作为测试人员,我们不仅要保证功能的质量问题,还要保证这些KPI参数统计的数据符合产品人员预期。这样计算出来的数据才有可靠性,才能作为产品改进的参考数据,否则可能会影响对某个功能的分析判断。所以产品人员特别关注每个版本上线后,统计数据的准确性。
测试阶段
KPI统计一般是在项目一轮结束后进行。这时候功能的基本使用场景已经确定,后期变更的可能性较小。如果在项目一轮中就进行测试,存在测试验证KPI参数没有问题,但是存在因为产品修改功能逻辑导致KPI参数统计发生变化,之前进行的测试变为无用功的风险。
测试点
1) 对于存在异议的KPI要和产品、开发沟通,保证理解一致
2) 数据记录的时机是否正确
3) 数据记录的场景是否正确
4) 数据存储是否正确
5) 请求上传的数据是否正确
注意:
如果想要KPI用例设计更全面,建议多和产品了解他们经常会如何使用这些记录的数据。会对这些数据进行哪些算法分析。了解这些后,在用例设计过程中以及测试执行中,就可以验证数据记录是否符合预期。提前发现数据记录存在的逻辑问题,避免版本上线后,才发现记录的数据有问题,无法正确分析产品效果。
测试方法
方法一:
使用fiddler抓取上传数据的请求,通过查看上传的数据判断数据是否记录正确。
方法二:
分为两步走。第一步通过越狱手机查看KPI记录的文件记录的参数是否正确;第二步:验证请求上传的KPI是否正确。
方法三:
测试KPI的方法也是一个不断演变的过程。在小编所在的项目中先有的方法一,然后有的方法二。但是在实际应用中,两种方法的测试效率都比较慢。后来小编和开发沟通,发现开发同学通过在代码中打log进行测试。小编立即和开发大大学习了解,在最近的一次KPI测试中运用了此方法,发现测试效率提高了一倍以上,还可以发现之前一直没有发现的问题。
此方法分为三步走。第一步:验证当次是否正确记录数据;第二步验证此KPI的累加算法是否正确;第三步验证请求上传的数据是否和记录的数据一致。因为KPI的累加算法使用的是同一个函数,之前的KPI多次验证过,所以只需要抽测几个KPI就可以。测试的主要精力放在第一步中,因为查看数据记录效率更便捷,所以可以进行更多路径的验证,测试覆盖度增加,效率也提高了。
此方法的实现有两种方案。
方案一:通过在统计KPI的函数中添加两行代码,打印出当前记录的KPI数据。
方案二:添加一段代码,在触发KPI统计的时候,在输入法中出现一个弹窗显示当前统计的数据内容。
优劣对比
通过小编多次KPI经验总结,推荐大家使用方法三。相较于方法一和方法二,方法三的测试效率可以调高一倍以上,同时发现常规方法不能发现的一些问题。比如,小编在最近的一次测试中使用方法三测试时发现,输入法在记录某个图片上屏的次数时,不是在用户点击分享应用图标时记录,而是在用户点击图片时就已经记录了图片上屏次数,这种记录方法导致记录的数据比实际的数据要高。小编又尝试了旧版本相似的KPI发现也存在同样问题,发现了线上遗留的问题。
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。