客观的讲,当下有能力、有意愿去构建数据质量测试的企业少之又少,甚至绝大部分企业并未意识到数据质量需要测试。
对测试人员而言,具备数据质量测试意识的亦少之又少,而具备数据质量测试能力的则更少了。
但随着人工智能与产业的进一步结合,数据质量成为了成功的基石,数据测试也将逐步的成为测试人员必须具备的能力之一,可以想象一下,如果数据质量出现问题,你的AI模型训练采用有质量问题的数据进行训练,将会是怎样的后果?
但是我们如何评估数据质量以确定数据可用?我们如何知道数据质量的构成呢?
如果没有数据质量测试,我们可能永远不会知道可能遇到哪些潜在的数据问题或这些问题的严重性,这将会使得我们在寻求正确的解决方案时变得极其的困难。因此在进行数据质量评估之前,我们必须针对我们的业务创建数据质量checklist。
通常来讲,不存在唯一的、一次性的、定义好的数据质量checklist,因为我们必须针对特定的业务和功能来定制checklist,我想数据定义方式和数据的处理方式,都可以为我们定义好的数据质量checklist提供依据。
根据质量ISO标准、经典软件测试理论,我们在考虑定制数据质量checklist时,应该至少包括下面的内容:
可利用性:数据的可利用性如何?这些数据是你实际拥有的吗?
可访问性:数据可以访问吗?给谁?多快?
可用性:这些数据你的团队可以直接使用?
结构化:这些数据是否都是结构化的?其结构是否合理?是否易于使用?
可靠性:数据的可靠性如何?我们可以相信它?它合适我们的目的?
一致性和完整性:数据的一致性如何?是否完整?还有空白吗?
一旦我们确定了对业务重要的指标,就可以考虑进行数据质量测试了,一般包含以下关键过程:
1. 定义特定的数据质量指标
拥有上述广泛的、粗矿的数据质量checklist是远远不够的,我们需要针对特定的指标进行测试。例如它是什么样的数据类型?数据长度是什么?数据约束是什么?等等
重要的数据质量指标应该是结合行业需要、特定领域而所有不同,而不是照搬一个模板。
2. 进行初步测试,以确定基准
如果不进行初步的测试,尝试定义基线状态,就无法真正的推动数据质量的提高。
3. 尝试解决方案
一旦确定了数据质量存在问题,就可以进行解决了,我们需要与业务人员、开发人员、产品人员等不同角色的人员进行沟通、交流以探索、尝试更多的不同的解决方案。形成立即解决方案和长期的解决方案,以避免数据质量问题再次出现。
4. 评估解决
在解决方案定义和实施一段时间后,我们需要对其进行评估。结果改变了吗?我们的数据质量标准是否有所改进?根据实际情况调整、甚至修改解决方案。
数据质量对于每个组织、团队、业务都是有差异的,但是只要我们定义了针对我们业务的有意义的标准并进行了实际的测试,就可以确保找到推动改进的方法。
写了一堆,发现好像没提工具之类的,又要被喷太虚了,还是推荐个库吧,python的一个库datatest。
datatest有助于加速和形式化数据争论和数据验证任务。它将软件测试实践用于数据准备和质量保证项目。Datatest可以帮助你:
- 更快、更准确地清理和处理数据。
- 维护有关重要数据集的检查和决策记录。
- 区分理想标准和可接受偏差。
- 测量数据准备任务的进度。
真没藏,好东西都是直接分享的,datatest是我用于企业实践数据质量测试的库,一个字:很好用!!