沉默聊数据测试重要性

沉默聊数据测试重要性

第一章 了解业务篇


文章目录

  • 沉默聊数据测试重要性
  • 前言
  • 1、怎么才能从业务中抽取基本数据概念?
    • 1.1 细分需求结构
    • 1.2 让结构更加灵活
  • 2、理解后台数据模型
    • 2.1.参与数据模型的数据需要重点观察
    • 2.1.数据模型的一些特殊要求
  • 3、数据获取在数据库中的效率
    • 3.1.性能测试为主
    • 3.2.监控
    • 3.3.数据库的初始化
    • 3.4.预热
    • 3.5多次测试
    • 3.6 测试结果的分析
    • 3.7 场景的设计


前言

随着互联网和实体产业的不断融合,在生产过程中,每一个需求对应着大量的数据,尤其是在用户量大的一些生产线上如果没有一个可以有效管理,可以承载海量数据的平台,那么生产线就会变的十分混乱。一套行之有效的平台数据测试流程,不仅仅可以让平台实用性更好,也会让实际生产效率提高,那么如何理解业务,成为数据测试的前提

提示:以下是本篇文章正文内容,下面案例可供参考

1、怎么才能从业务中抽取基本数据概念?

沉默聊数据测试重要性_第1张图片

1.1 细分需求结构

我们在进行数据测试前,业务必须要明白,那么需要在数据测试前细分需求结构。我们需要将项目需求进行分类,然后需要明确数据簇的流向和数据权限。如果读者有开发基础的话,都会知道后台返回数据的类型,有些是JSON,有些是存放在一个安全的容器。我们客户端通过返回的数据的一些字段去呈现给我们的使用者。所以,细化需求可以让我们明白哪一些需求公用了相同数据,减少无效测试。

1.2 让结构更加灵活

一个好的结构是包容万物的。数据测试需要一个稳定的结构去适应各种各样的数据,并且一个好的结构,能够将数据进行结构化的分类处理。海量的数据,我们可能想到的是自动化处理,但是在自动化处理前需要进行功能测试,功能测试的覆盖点受各个因素的影响,只有一个稳定的系统,才可以进行自动化的测试。

2、理解后台数据模型

2.1.参与数据模型的数据需要重点观察

在我看来,数据模型是指在软件开发中深入了解项目需求,通过项目需求建立一个专属于项目的数据模型,我们的后台从数据库读取相关需求需要的数据,这些数据簇通过我们的数据模型进行数据的处理,然后给我们的客户端,所以数据测试如果你不清楚数据模型,那么就无法正常进行数据测试。

2.1.数据模型的一些特殊要求

在测试层面上,数据模型的特殊要求,类似于一些逻辑判断,所以我们需要在数据测试过程中去重点关注。

3、数据获取在数据库中的效率

3.1.性能测试为主

做过很多次的性能测试,现在回想之前的测试,有很多的地方不足,导致测试的结果可能不是很准确,现在总结下,如果有不足之处还请补充。

数据库相关的性能测试包含2个方面的测试:1涉及业务的性能测试2只是针对数据库的性能测试。先说下需要注意的方面

3.2.监控

在测试之前需要配置好监控,包含各种数据库性能指标以及机器资源使用率的监控,最好监控工具能提供图形化的界面显示各种指标曲线。如果只是数据的监控没有曲线,没有办法看到过程中的每个点的情况,很多情况下会有曲线的波动,在测试完成后需要分析这种波动产生的原因。

3.3.数据库的初始化

在测试之前需要准备测试数据,包含业务的测试需要制作业务的测试数据,纯数据库相关的测试可以自己生成测试数据。只有在一定量的测试数据环境下运行语句才能测试数据库的性能及机器的配置是否能支撑这种量级的操作。

3.4.预热

在测试之前需要将部分数据加载到内存中,如果没有预热,在测试的时候加载数据,这种情况与线上的情况不同,对测试结果又影响。

3.5多次测试

在多次测试的时候,需要确保测试数据的量级差别不太大。
在做性能测试的时候,我们的目的是测试数据库的表现,不是测试数据库究竟能承受多大的压力,所以我们的测试机器配置一定要足够,不要出现因为机器资源导致的限制。工具的选择,包含业务的测试测试工具对于传统领域的测试来说一般使用loadrunner,对于互联网的应用一般的非自研的使用jmeter即可满足。

3.6 测试结果的分析

对于测试结果的分析一般要包含机器资源使用的分析,数据库监控指标的分析,慢sql的分析,数据库错误日志的查看。同时结合压测工具或自己配置的工具生成的结果去分析,是否有慢sql,是否有资源使用波动,结果的tps,qps是否满足预期等。
在分析完结果后,需要对发现的问题进行调整,优化,但是最好每次调整一个方面的配置,调整后再次测试,记录结果并对比查看效果。涉及业务的测试在分析的时候需要配合研发同学分析定位问题。

3.7 场景的设计

在单独的数据库性能测试中,必须包含的几个场景有
只读,读写混合,只写,这3个场景分别包含下面2个场景
a,数据量比较小,能在buffer中全部放下的情况。
b,数据量比较大,不能完全在buffer中放下。

你可能感兴趣的:(原力计划,模块测试)