美文网首页
测试那些事儿(九)- 列表测试

测试那些事儿(九)- 列表测试

作者: 唐T唐X | 来源:发表于2021-07-02 15:27 被阅读0次

先说说列表

在如今的大数据浪潮下,列表作为一个方便用户进行数据查阅及快速筛选的功能,几乎每个产品都会有。如下图所示:


简书列表

也许有人会说了,测试列表页面看起来就是一个普通的页面,根据业务需求验证一下内容、看下分页及每页的数量、试一试筛选、做做功能和边界值测试等等不就行了吗?其实不然!虽然看似刚才说的验证点覆盖了列表的全部功能,但是还是有很多细节需要我们深入的了解和测试的。

测试提升

测试列表页,我们可以从业务需求合理性、前端页面功能、后台接口实现三方面来分析出测试提升的点,分别为:需求合理性、性能、排序、筛选、搜索、分页等

需求合理性

需求合理性是最早需要关注的点。由于需求是早期产品评审时做的,表面上还没有进入技术,所以很多开发测试人员并没有重视;但正是因为它是最早期的一环,恰恰才是最重要的,因为它如果出问题就会带来下面几个点的连锁问题。
我见过很多列表需求,产品(或者客户)希望列表中每个条目显示的数据越多越好。这个要求看似合理,但是无论从UI上还是从后台设计上都会造成过度设计,最终导致效果并不好。
列表的目的其实就是实现数据的快速选取,所以只要每个条目展示能够帮助用户判断选择的最关键数据即可,如果要看详细信息,可以点击去查看详情。如果什么数据都要展示,而且如果这些数据还不在一个数据来源中的时候(比如多表、或者不同的数据库,如mysql、mongo等),数据复杂度和性能等问题可想而知。硬要做也行,解决方案可能只能是修改数据存储结构,时间和人力成本无法估量。但是来个灵魂拷问:如果之后再加这种需求呢?

列表加载的性能

上一条已经提到了,如果需求设计或者之前技术实现方案不合理,导致列表中内容是各种数据表中数据的聚合,往往会出现性能问题。列表往往是用户使用产品时最早看到的页面,所以它的响应时间非常重要。要解决性能问题,除了保证产品和技术设计的合理性外,还要结合业务需求采用合适的数据库类型(mysql、mongo、redis、ES等)并合理的加索引提高查询效率。

排序

排序需求一定是列表的标配,合理的排序规则能帮助用户更快速的找到目标。目前我们大部分的列表都是按照更新时间或者创建时间排序,但也不排除采用其他的方式比如浏览数量等。如果是非时间的排序方式,就需要考虑排序项相同的情况下的多级排序问题,比如按照浏览数排序下如果浏览数相同的条目,就采用创建时间排序。如果列表排序规则复杂,如需要多种排序规则的情况建议使用tab的方式。

简书
同样的,如果列表涉及多张表数据的聚合,那也需要考虑进行排序的性能问题。
筛选

筛选的目的往往是按照一定的规则找到一部分数据,大部分产品默认的筛选就是展示全部!筛选往往基于属性、标签、状态等,如时间(属性)、性别(属性)、是否公开(自定义标签)、是否完成(状态)等。筛选的条件明确,但也涉及到性能问题,业务是否合理、是否连表查询、索引是否合理均会影响其性能。

搜索

为了让用户更精确的获取想要的条目,搜索一定是首选。搜索带来的问题多多,除了上面说的性能外,数据准确性也是需要提一下。大部分的产品是强调支持模糊查询的,而模糊查询如果在mysql中实现就不能使用索引,数据量一大很容易造成性能问题。所以行业经常使用的是ES存储并使用分词器,而分词的规则直接影响了数据的准确性(这里面的逻辑相当复杂,如果有想要了解的小伙伴可以去看ES的介绍文档)。这是一种博弈,如果业务不需要进行模糊搜索,那其实只要有索引mysql应该就能很好的进行条件搜索,包括左右匹配搜索(也可以使用索引);如果需要模糊搜索,那就考虑使用ES。如果使用ES,分词的规则是需要我们重点关注的,因为会影响搜索数据的准确性。

分页加载

列表数据成千上万,不可能一个接口获取到全部,否则前台和后台都受不了。所以列表获取接口的默认值和最大获取数量是要约定好的。且分页加载时的边界值问题需要重点关注,如一个列表一共20个数据,每页加载10条,那一定是2页展示完整,可不能出现第三页哦~

测试人需关注

列表的测试有很多隐含的坑,大部分其实是在性能上。除了性能,我们还要了解各种不同数据库类型的特点和应用场景,才能设计出有针对性的测试用例。
祝大家负责的列表功能又快又准确~

相关文章

  • 测试那些事儿(九)- 列表测试

    先说说列表 在如今的大数据浪潮下,列表作为一个方便用户进行数据查阅及快速筛选的功能,几乎每个产品都会有。如下图所示...

  • 测试那些事儿(十一)- 接口测试(中)

    为什么要拓展接口测试能力 上一篇文章 测试那些事儿(十)- 接口测试(上)[https://www.jianshu...

  • 无标题文章

    #测试一级标题 ##测试二级标题 *测试无序列表 ·测试无序列表 >测试引用 !图片(http://i0.hdsl...

  • 无标题文章

    测试一级标题 测试二级标题 *测试无序列表 ·测试无序列表 测试引用 !(http://i0.hdslb.com/...

  • 测试文本

    测试文本 测试文本 测试文本 测试文本 测试文本 这里是一个引用 JDK百度百科链接 列表一 列表二 列表三 一级...

  • 测试简书markdown写作体验

    测试标题 测试列表 1 与segmentfault类似,需要手动输入符号接续列表

  • markdown语法小计

    markdown语法学习 标题写法 引用的写法 测试引用展示效果 列表的写法 测试无序列表 测试有序列表 代码区块...

  • 测试那些事儿(十二)- 接口测试(下)

    前两篇文章我们讲了接口测试能力的重要性和如何提高我们的接口测试能力。本篇我们讲一讲设计接口测试时会用到的技巧。在 ...

  • 测试那些事儿(十)- 接口测试(上)

    说说接口测试 越来越多的测试人开始做接口测试了,这个从大家的简历上就能看到端倪,基本上体现接口测试经验的就一句话:...

  • python 基础语法入门

    1. 列表测试 2.时间测试 3. json 测试 4.正则测试 5. url访问测试 6. numpy测试 7....

网友评论

      本文标题:测试那些事儿(九)- 列表测试

      本文链接:https://www.haomeiwen.com/subject/oefyfhtx.html