测试工程师:项目上线出Bug,为什么你作为测试没测出来?

645 篇文章 0 订阅
102 篇文章 4 订阅

材料收集

你服务于一个数据库查询业务,某次客户现场反馈查询某个语句长时间未返回结果,耗时已经远远超过项目对外提供的性能报告承诺给用户最长查询时间。

问题和相关日志已经传递回来,开发人员进行原因分析和故障修复,测试人员进行故障复盘和测试改进。

这一切看起来都在正常的进行下去,但是作为测试人员的你是不是会不自主地冒出这么一句:为什么我没有测试出来呢?

那么,为什么会没有测试出来呢?

故障复盘

“没有测试出来”剖析最根本的原因无非可能有两点:

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’等。

复制或放大用户行为,对我们的测试有什么意义呢?!——可以让我们更接近用户的使用方式,产生更多的测试用例,扩大测试覆盖率。

再来一点思考

以上所说想必大多测试人员在工作中也是这样做的,但是可能缺少部分的思考和总结。现场反馈的问题和收集的资料对补充我们的测试用例、完善我们的测试工作具有很大的帮助,希望每一位测试人员都能好好利用能够接近“真实”的机会。

最后: 下方这份完整的软件测试视频学习教程已经整理上传完成,朋友们如果需要可以自行免费领取【保证100%免费】

在这里插入图片描述

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
假设我们正在测试一个在线教育平台的课程购买和观看功能。我们的测试流程可以分为以下几个步骤: 1. 需求分析:我们需要了解平台的各个功能,包括课程的购买、观看和评价等,确定需要测试的模块和用例,以及测试的重点和难点。测试角色包括测试经理、测试工程师、产品经理和开发人员。 2. 测试计划:制定测试计划,包括测试的时间、资源、人员安排等。我们需要确定测试环境,例如PC端、移动端,以及测试工具的使用。测试角色包括测试经理和测试工程师。 3. 测试设计:根据需求分析,设计测试用例,包括场景、步骤、预期结果等。我们需要使用测试工具,如Selenium、Appium等,进行自动化测试和移动端测试测试角色包括测试工程师。 4. 测试执行:执行测试用例,检查是否符合预期结果,记录测试结果和缺陷。我们需要使用Bug Tracking System等工具进行缺陷管理。测试角色包括测试工程师和开发人员。 5. 回归测试:在修复缺陷后,进行回归测试,验证缺陷是否已经解决,并确保不会引入新的缺陷。测试角色包括测试工程师和开发人员。 6. 性能测试:对课程观看功能进行性能测试,验证观看系统在并发情况下的处理能力。我们需要使用JMeter等工具进行性能测试,并对测试结果进行分析和优化。测试角色包括测试工程师和运维人员。 7. 安全测试:对用户信息进行保护,测试系统的安全性和可靠性。我们需要使用Burp Suite等工具进行安全测试,并对测试结果进行分析和改进。测试角色包括测试工程师和安全专家。 8. 用户体验测试:对整个课程购买和观看流程进行测试,确保用户体验良好。我们需要使用UXPin等工具进行用户体验测试,并对测试结果进行分析和改进。测试角色包括测试工程师和产品经理。 9. 上线测试:在系统上线前,进行全面测试,确保系统符合上线标准。我们需要使用Git等工具进行版本控制和部署。测试角色包括测试经理、测试工程师和运维人员。 需要注意的是,测试人员需要与开发人员、产品经理等密切合作,及时沟通问题,确保项目的成功上线。同时,测试人员需要不断学习新的测试工具和技术,提高自身的测试水平和能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值