材料收集你服务于一个数据库查询业务某次客户现场反馈查询某个语句长时间未返回结果耗时已经远远超过项目对外提供的性能报告承诺给用户最长查询时间。问题和相关日志已经传递回来开发人员进行原因分析和故障修复测试人员进行故障复盘和测试改进。这一切看起来都在正常的进行下去但是作为测试人员的你是不是会不自主地冒出这么一句为什么我没有测试出来呢那么为什么会没有测试出来呢故障复盘“没有测试出来”剖析最根本的原因无非可能有两点1、缺少对应的测试用例2、具有相应的测试用例但测试环境与客户现场相差太大。那么你可能还会继续问自己为什么会缺少对应的测试用例呢缺少对应的测试用例至于测试用例的缺失从客户需求——需求方案设计——开发方案设计——开发实现——需求测试——需求交付。整个流程来看缺失相应使用场景的客户需求或者需求方案设计有误或者开发方案设计有误或者开发实现偏差等等都可能导致测试人员在设计测试用例时缺少相应用例的设计和测试执行从而未能发现类似故障。除此之外呢有相应测试测试用例还是因为测试环境与客户现场环境相差太大而未能发现类似故障。测试环境与客户现场相差太大为什么会存在测试环境与客户现场环境相差太大就数据库查询业务而言。测试环境的数据存储量有可能遥遥不及真实用户环境也可能测试环境的测试数据与真实数据不一样比如某个存储字段的长度设置比如存储的字段内容解析后包含特殊字符、乱码等等……这些都是测试环境与客户现场不一致的可能情况。梳理完测试缺漏后下一步理所当然的是进入用例补充和模拟客户环境稳定性测试。可是除了补充当前故障对应的测试用例之外我们还能延展些什么呢放大或复制用户行为不管是开发人员或测试人员我们都应该珍惜接触现场日志的机会当然首要的是需要保密不外传因为我们可以从日志中窥探到用户使用习惯或产品使用方式从而将这些行为或习惯复制到我们的测试用例中亦或者在测试中放大用户行为或习惯。复制用户行为什么是复制用户行为如何复制用户行为复制用户行为在这里指的是直接将获取到的用户使用产品方式在内部测试环境重现。比如复现用户的某个数据库查询行为select * from xx where ……但是值得注意的是1测试环境数据和真实用户环境可能存在较大的差异比如测试环境的数据库不存在某个字段abc而真实用户行为查询却使用到了该字段abc我们需要根据自己的测试环境进行适当的调整。就数据库查询业务为例这类调整包括但不限于删除不存在的字段查询修改对应的字段值为测试环境的值查询……2获取到的用户行为有限无法支撑大量的查询比对比如性能查询统计数据库某类查询行为的耗时均值。这个问题应该是可以预见的毕竟我们能够接触到的用户日志或采集到的用户行为是有限的。尤其是针对第2个问题放大用户行为就成了我们的可选项。放大用户行为放大用户行为在这里指的是将获取到的用户行为作为样本复制多份或在用户行为中增删其他行为。比如将select * from index where id’123’的用户行为复制100份替换其中的id值为测试环境中不同的值或以select * from index where id’123’为基础样本增加行为数据如select * from index where id’123’ or id’456’等。复制或放大用户行为对我们的测试有什么意义呢——可以让我们更接近用户的使用方式产生更多的测试用例扩大测试覆盖率。再来一点思考以上所说想必大多测试人员在工作中也是这样做的但是可能缺少部分的思考和总结。现场反馈的问题和收集的资料对补充我们的测试用例、完善我们的测试工作具有很大的帮助希望每一位测试人员都能好好利用能够接近“真实”的机会。感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取