首页 > 其他分享 >字节面试题:在线表格功能怎么实现?怎么测?

字节面试题:在线表格功能怎么实现?怎么测?

时间:2024-07-10 19:52:25浏览次数:9  
标签:面试题 字节 表格 用户 文档 测试 在线

最近有小伙伴私信问我怎么不更新了,期待更新,甚是感动。
简述下自己近况:
还在干测试,最近忙活的事情大概是自动化测试、性能测试以及业务等等,主打一个啥活都干。
业余时间,尝试在短视频赛道搞一些个人兴趣领域的创作,所以博客不太更新,想分享的东西还是有的,后续仍然会记录一些工作心得,感谢新老盆友的关注!

正文:

前阵子看到老张写的关于面试的文章,我突然想起来,我多年前面试字节时候,遇到的一个面试题,关于如何测试用例的。

印象中好像第一次参加字节的面试,也没刷题练习,所以开始的算法题就没做好,导致后来的表现都不太好,所以这个设计用例的题目,也没回答好;

今天当做是重新归纳总结一下。

一、面试题

面试官问是否用过在线表格之类的功能,知道这种功能系统背后是怎么实现的吗?如果让你测试在线表格,你怎么设计测试用例?

我当时的作答就不赘述了,如果现在让我重新作答,我大概会这样说。

二、关于系统实现

涉及到支持多人实时操作一个文档,其实背后大多是基于WebSocket协议来实现,而不是我们最熟悉的http协议。就像是即时聊天工具。

WebSocket 是一种协议,它允许客户端和服务器之间进行双向通信,非常适合实时应用。

我们通过浏览器打开在线表格,就会跟服务器建立一个持续通信的通道。然后我们在表格里做的一个个操作都会发送到服务器,然后服务器再把这些操作传给其他一起编辑的用户。实现实时更新功能。

但是这种功能有一个特别重要的问题要处理:解决冲突。

具体处理算法咱就不知道了,反正核心思路就是要把不同用户的编辑操作进行整合,来确保最终的文档一致。

从用户体验上来讲,可能还会涉及到本地缓存的设计,保证用户编辑后的结果在自己界面上是实时显示的,然后再将这些操作同步到服务器,当碰到网络波动或者延迟的时候,用户感知也不会很明显。而且用户就算断网了也不怕编辑的数据丢失。

从提升性能、降低成本角度来看,端上与服务器之间的通信,传输文档应该也大多使用差异更新,而不会每次都传输整个文档内容过去,可以减少传输量,提高速度。

以上大概是现在的回答,因为从开发实现角度,以及使用飞书在线文档的使用经验来看,差不多如此。

另外,面试官问你如何设计的问题,大概率也是考察你的知识拓展面如何,或者应对新系统的分析能力。

三、如何设计测试

如果真的接手这样的系统,那么了解背后设计原理,服务架构,测试是一定要做的,这样才能更好的帮助自己设计测试用例。

面试官问这种问题,主要还是看你的测试思路,所以千万不要想到一点说一点。

那么结合在线表格这种功能特性,就需要分析基本功能测试、实时同步、冲突处理、并发、负载测试、兼容性、权限控制、数据安全等方面了。
可以先说下考虑到的这些方面,然后每个方面逐步介绍重要测试点,很多常规的测试点可以快速带过。

1.基本功能测试

  • 创建和保存文档
  • 单元格编辑
  • 单元格输入
  • 单元格公式计算
  • 单元格拖动
    ...

2.同步测试

  • 多个用户实时编辑同一个表格
  • 多个用户实时编辑同一个单元格
  • 冲突处理后最终一致性

3.性能和负载测试

  • 高并发同时打开在线文档,响应时间
  • 同时编辑表格保存
  • 表格内容巨多,打开文档的加载时间
  • 高负载情况下,系统的CPU和内存使用情况。
  • 高负载情况下,压力持续,验证系统稳定性。

4.安全性测试

  • 权限控制
  • 测试不同权限级别的用户操作,验证权限控制是否有效
  • 测试在文档编辑和保存过程中,数据是否能够正确加密传输。

5.兼容性测试

  • 跨浏览器兼容性
  • 跨操作系统兼容性
  • 移动web端

6.用户体验测试

  • 用户体验测试
  • 界面易用性
  • 界面的布局和设计是否合理
  • 错误提示是否清晰明了
  • 对于网络中断、服务器错误等异常,是否友好处理

其实这也就是在这写文有时间细想,可以整理这么多,实际中不用说这么细问题也不大,但是考虑的面还是要尽量全。

不要小看用例设计的面试题,如果你能快速抓住功能的核心点,能有条不紊的作出总结,既反应出了你的思维能力,也反应出了你在这行是否有了对应的沉淀。

如果写了测试5年经验,但是一讲用例,东一榔头,西一棒槌,那自然就没好印象了,直接印象就是:基本功不扎实;

还是那句话,核心还是业务,其他的一切技能都是为了更快更好的完成业务来服务的,不能本末倒置,现在环境这么差,行业又这么卷,业务和技术一定得两手抓才可以。

标签:面试题,字节,表格,用户,文档,测试,在线
From: https://www.cnblogs.com/pingguo-softwaretesting/p/18271474

相关文章

  • Day4|24. 两两交换链表中的节点 & 19.删除链表的倒数第N个节点 & 面试题 02.07. 链表
    24.两两交换链表中的节点给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。输入:head=[1,2,3,4]输出:[2,1,4,3]这题很简单就不写思路了publicListNodeswapPairs(ListNodehead){L......
  • 每天两道Java面试题(一)
    1、this关键字和super关键字的区别及联系this关键字用在本类中。在类的内部,可以在任何方法中使用this引用当前对象。this关键字是用来解决全局变量和局部变量之间的冲突。this()可以调用同类中重载的构造方法,并且需要放在第一行。super关键字用在子类中。在子类中可以通......
  • ES相关面试题
    题目:全文搜索对应的是什么功能,怎么构建索引,查询的时候怎么查怎么构建倒排索引,使用MySQL可以实现倒排索引的功能吗前情提要:我的项目中的商城项目中存在使用ElasticSearch的情况,所以特地弄了此篇来应对提问,以及还有一个爬虫项目中也使用到了questionOne全文搜索......
  • 蓝队初级常见面试题目
    内网模块内网渗透思路(1)目标:对目标服务器所在的内网资源进行渗透最终获取域控制权限的过程(域控制权限可以控制内网中所有的用户和设备);管理员以一台主机作为域控制器,将内网中其余主机加入到域控当中,那么这台域控制器就可以控制其余的所有主机;所以内网的渗透最终目的就是拿下与控制......
  • HIVE面试题
    HIVE优化:场景1.分组聚合groupby导致数据倾斜--map端聚合:aggr=true会在mapper端先groupby一次,最后再把结果merge起来,为了减少reducer处理的数据量指令:Sethive.groupby.mapaggr.checkinterval=1000000Sethive.map.aggr=truesethive.groupby.skewindata=true;......
  • 字节跳动开启两大顶尖人才计划!内推一人一万?
    大家好,我是白露。问大家一个问题,你觉得内推一个校招生能拿到多少钱?今天从字节朋友了解到,最近字节跳动新开了一个招聘计划。内推奖励是一人至少一万。。。我都惊呆了,因为我之前了解过腾讯、快手、字节的招聘奖励。根据内推人员的级别不同,奖励从1000~6000不等。然而字节这......
  • [Java SE] 字节操作工具类:ByteUtils
    0引言与嵌入式软件数据交互过程中,必然涉及各种的、大量的字节操作场景。如:16进制与10进制、2进制间的转换,字符串、byte数组与int之间的转换等。故此有此核心工具类的沉淀。1ByteUtils依赖<properties> <!--编程提效工具--> <lombok.version>1.18.22</lombok.version>......
  • Redis面试题
    Redis面试题一、Redis缓存1、缓存预热、缓存穿透、缓存雪崩、缓存击穿2、redis作为缓存,MySQL的数据如何与缓存进行同步(保证双写一致性)3、redis作为缓存,如何持久化数据?4、redis的key过期后会立即删除吗?(redis的数据过期策略)5、假如缓存过多,内存有限,被占满了怎么办?(redis的数......
  • 面试题目分享
    学习目标:从面试了解自己的不足。学习内容:1.你会什么语言?我该如何回答,我会java,c,c++等,在工作中我会用到合适的语言。牛逼吹的大话尊敬的面试官,我精通Java和Python,前者用于企业级后端开发,后者擅长数据分析。我也熟悉前端JavaScript/TypeScript和React。具备跨语言学习......
  • Excel表格如何免费转成PDF的3种方法
    很多时候我们会将各种各样的文档转换成pdf的格式,然后发送给别人,因为pdf格式在阅读上既能保持很好的效果,又不会编辑到里面的内容,那么要怎么excel表格转换成pdf呢?方法一:使用Excel软件自带的“另存为”功能大多数版本的MicrosoftExcel都提供了将文档另存为PDF的功能,这是最简单直接......