【软件测试】思维开拓—用软件测试的思维测试QQ好友是在线或者离线

前言
近期想到一个问题,你接手一个电商平台的项目,怎么看出客户是在线状态还是离线状态,作为一个测试人员该注意那些点

为此我展开了思考,例如阿里客服、QQ好友、游戏好友都会有显示好友是在线还是离线功能,他们具体是如何实现的呢,又是如何测试的呢

首先找到问题所在
就以QQ为例:

在好友列表中为什么可以实时的看到qq好友的在线、离线等状态?
在QQ群的群友列表中能看到当前群友的在线、离线等状态,是如何实现的?
作为测试工程师究竟该如何去测试里面用到的技术?

解决问题:

这些问题,整理了下逻辑,去专门找了一些资料进行了解、学习和总结

关于QQ好友在线/离线状态我所理解的流程是:

当用户A登录成功时,服务器要把用户A的在线状态(online)写到缓存(高可用的缓存集群里);userid-A—》login—》server—》set status in cache(userid:online)在这里插入图片描述
当用户A下线(登出)时,服务器要找到用户A的缓存将在线状态(online)变成离线状态(offline);userid-A—》loginout—》server—》update status in cache(userid-A:offline)在这里插入图片描述
其他所有用户的状态都会存储在缓存中,所以当用户A登录时,从数据库中查出用户A的好友,再从缓存中查出这些好友所对应的在线状态,从而用户A可以看出哪些好友在线哪些好友离线;

userid-A—》my friends status—》get friends userids in DB —》get userids status in cache(userid1:online,userid2:offline,userid3:offline,userid4:online……)在这里插入图片描述
针对上面的流程主要考虑的测试点如下:

无缓存情况下,用户A登录时,写入缓存正常(缓存大家应该都了解过,比如memcache、redis等如何查看缓存?不会的同学可以咨询也可自己查下相关资料)
当用户退出登录时,缓存中对应的value被置为offline;
缓存存的有效期校验;
用户A的好友用户B下线/上线时,状态是否显示正确;
用户A的多个好友中有在线有离线的,当用户A查看好友状态时,状态显示是否正确;
当redis连接异常或超时时,应该如何处理;

等等…大家可以想想需要测试的功能点,要了解开发实现的过程,尽可能的去覆盖测试点。

如果对软件测试、接口、自动化、性能测试、测试开发、面试经验交流。感兴趣可以810119819,群内会有不定期的发放免费的资料链接,这些资料都是从各个技术网站搜集、整理出来的,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给大家。

写到这里,其实其中还有一个重要的点,实时性问题:比如用户A的好友用户B在线,突然,用户B离线了,那么用户A能否立即看到好友由在线变成离线呢?这也是我们测试人员需要考虑的功能点!如果对实时性要求较高,可以采用推送的方式同步,如果实时性要求不太高的话,可以采用轮询拉取的方式进行同步。

再普及下轮询拉取方式和推送方式,如下:

什么是轮询拉取方式
举例说明:用户userid-A要看到好友的在线状态的话,比如就要每分钟轮询向服务器拉取全部好友的在线状态。缺点就是:有一分钟的延迟,同时当好友的状态期间没有变化时也请求服务器拉取产生大量的无效请求暂用服务器的资源。这种方式可能大家在工作中也经常用到,不断的轮询获取服务器的信息。

什么是推送的方式
继续举例说明:还是用户userid-A要看到好友用户userid-B在线状态的话,当用户userid-B下线时,由在线变成离线(更新缓存为offline),同时要将这个状态改变的通知推送给用户userid-B的在线反向好友。这样就变成实时了,但是缺点就是:在线好友量大的话,任何一个用户状态的改变会扩散很多实时通知,需要考虑承载能力。在这里插入图片描述
从测试角度主要考虑:

缓存机制能够正常,缓存数据的准确性;
拉取方式的测试,当进入某一个群时才拉取;
用户在线/离线状态的正确性校验;
并发测试;等等…

以上内容希望对你有帮助,有被帮助到的朋友欢迎点赞,评论。

软件测试是IT相关行业中最容易入门的学科~不需要开发人员烧脑的逻辑思维、不需要运维人员24小时的随时待命,需要的是细心认真的态度和IT相关知识点广度的了解,每个测试人员从入行到成为专业大牛的成长路线可划分为:软件测试、自动化测试、测试开发工程师 3个阶段。
在这里插入图片描述
如果对软件测试、接口、自动化、性能测试、测试开发、面试经验交流。感兴趣可以810119819,群内会有不定期的发放免费的资料链接,这些资料都是从各个技术网站搜集、整理出来的,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给大家。

这里有我整理的一些资料,如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加我们

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值