一、分页的概念
在百度百科中,分页的概念是这么解释的:
分页(英语:Paging),是一种操作系统里存储器管理的一种技术,可以使电脑的主存可以使用存储在辅助存储器中的数据。操作系统会将辅助存储器(通常是磁盘)中的数据分区成固定大小的区块,称为“页”(pages)。
前端分页:浏览器或APP 从后端获取到数据后按照一定的数据量在页面上进行展示,也就是每页展示规定数量的数据,多页数据切换查看。
遇到这个问题之前,个人对于分页的概念,仅仅是停留在前端分页,没有想到后端处理数据也有分页的说法。现在来看,后端数据分页其实就是在数据量较大的场景下,划分一下程序一次要处理的数据量
二、实际问题案例分析
背景:在生产上,一个任务系统中有个组件统计分析的功能,用来收集统计用户提交的选项数据。运营发布一个几千人的关于大黄花鱼规格调整的意见收集任务。任务发布后,***的各地的店长纷纷选择并提交了自己选择的方案。
问题:在某一时刻任务完成的人数有一百多个人,但是组件分析功能只统计上了79个人的数据,两者对不上。
原因:开发说,提交的完成任务数据在所有店长的任务数据中是不连续的,不同店长提交的数据分布在不同的页中,后端统计提交的任务数据时,按500作为分页的大小;处理逻辑是先找到完成任务的任务参与人,知道完成人数(比如是120个人);然后从第一页数据中发现有79个人完成任务,统计到了79个人的数据;因为完成人数比分页数据量要小,开发原先的代码逻辑是找了前120个人的数据之后就不再找后面的数据了,导致后面的分页的数据就没有处理,然后就没有统计上后面分页数据中已完成的任务数据,所以统计的提交人数于实际完成任务人数不一致。
复现:创建一个几十人的和生产任务内容相同的任务,用多个用户提交完成任务(在前端页面中任务完成数据分布在不同页中),此时复现不出问题。后来追加任务参与人数量达到100,还没复现出来。最后,开发把后端分页数量调整为50每页时,问题复现出来了。前面之所以复现不出来,是因为所见任务的参与人数量少于500时,后端一次就可以处理完成。
三、问题总结
测试过程中,针对数据分页的功能,不仅仅需要关注数据在前端的分页展示,还需要了解后端处理数据的分页大小。了解实现逻辑后,编写和执行测试用例时才能采用正确的测试方法,确定测试数据量,避免问题漏测。