金融相关软件的测试如何平衡数据的访问和安全

简介: 金融相关软件的测试如何平衡数据的访问和安全

在软件测试中使用真实数据是有益的,但团队必须小心,不要损害安全性和隐私。金融行业测试的六个核心策略可以帮助我们避免这些问题


在金融行业,真实的客户数据提供了最强大、最真实的软件测试场景。然而,法规和标准——或者公司的安全团队——可能会坚持控制或限制权限,使使用真实数据成为不可能。


安全团队没有错。该公司有义务对客户的社会安全号码、出生日期和全名保密。任何拥有个人身份信息(PII)的人都可以利用它进行身份盗窃或欺诈。对于个人身份信息敏感的数据,包含实时信用卡号的测试可能会助长欺诈和滥用行为。


测试者也没有错。最好的测试包括实际生产条件。使用实时数据,软件更有可能在测试和生产环境中保持一致。


幸运的是,有一些方法可以平衡安全性和优秀的测试实践。这些策略中的大多数都适用于事务性系统——例如用于保险索赔处理、每月账单和利息计算的系统——但它们也适用于任何使用PII的系统,因为这些系统需要使用生产数据。


金融科技测试的6大核心策略


这六种策略可以帮助软件团队平衡准确的金融科技测试和数据安全。


使用黄金大师

大多数系统都可以导出和导入数据,至少可以用于备份。黄金大师将这个想法进一步推进了一步,创建了一个简单的示例测试数据集。该数据集有已知的案例,例如信用不良的用户,信用良好的用户,未满18岁无法合法签订合同的用户等等。


有了一致的已知良好数据,团队可以编写静态测试用例,在每次运行时检查相同的用户以获得相同的预期结果。最简单的选择是将导出存储在版本控制或测试数据管理工具中。请注意,在某些情况下,导出将包含日期,例如保险索赔的日期,并且程序可能需要更新导入的日期。


掩码可识别信息


为了最大限度地降低身份盗窃的风险,生产数据屏蔽获取信息并更改姓名、生日或社会安全号码等方面,以便对其进行加密,但仍保持有效形式。这使团队能够在保护敏感数据的同时执行真实、准确的软件测试。


这仍然留下了访问原始的、预先转换的数据的问题。有些工具可以通过安全控制自动屏蔽数据,因此测试人员或程序员无法访问“上游”预加密数据。


遵循许可原则


当我在一家保险公司工作时,我编写了一个简单的代码库来确定任何个人在当前日期是否有保险。单元测试使用了我自己的个人信息。这并没有违反HIPAA,因为我给了公司许可。当我离开公司时,其他人接管了这个策略并维护代码。


这种方法可以很好地工作,但是在同一数据库中同时运行大量测试时就不太理想了。因此,在等待合成用户时,可以使用具有权限的个人id。


使用合成用户进行测试


使用这种方法,有一个代码库,测试人员可以从中请求特定类型的用户——例如,基于年龄或信用评分——并获得唯一的用户ID。如果每个测试都请求一个新的合成用户,那么当为测试重用同一用户时,就不会在数据库中发生“冲突”。例如,如果一个测试反复申请一笔贷款,那么合成用户可能会遇到信贷过度扩张的新场景。


与客户服务部门合作


访问一些生产数据对于客户服务通常是必不可少的。当客户服务在生产中出现问题时,他们可以提供信息来调试、隔离和修复生产中的问题。这是测试的一个基本方面。形式化这个过程可以允许团队在某些时候访问一些生产数据。


使用大量的自动化测试


曾经工作过的一家公司每天要处理几千个用户,产生一个文本文件,这个文件后来变成了一个邮件合并。对于每一次构建,他们都选取了以前生产数据的两个黄金大师,运行软件的生产版本和新构建,并比较输出。这使得测试用例的数量从几天几十个增加到几个小时几千个。


在受监管的市场中,团队可能需要将这种自动化测试方法与数据屏蔽或随机化相结合。例如,根据年龄或信用评分对生产用户进行分析,可以创建与生产用户匹配的合成用户的“黄金大师”。


相关文章
|
8天前
|
设计模式 测试技术 持续交付
深入白盒测试:提升软件质量与性能的关键策略
【4月更文挑战第20天】 在软件开发的复杂世界中,确保产品的质量和性能始终是至关重要的任务。白盒测试,作为软件测试领域的重要分支,提供了对程序内部结构和逻辑的深入分析手段。本文将探讨如何通过有效的白盒测试策略来优化软件性能,减少缺陷,并最终提高用户满意度。通过剖析代码检查、单元测试、集成测试等白盒测试技术,我们将了解这些方法如何揭示潜在的问题点,并为改进提供方向。
|
1天前
|
XML 敏捷开发 存储
深入理解软件自动化测试中的数据驱动策略
【4月更文挑战第27天】 在现代软件开发过程中,自动化测试是确保产品质量和加快市场投放速度的关键步骤。本文专注于探讨数据驱动测试(DDT)策略,它是一种将测试脚本与测试数据分离的方法,旨在提高测试覆盖率和效率。通过分析数据驱动测试的工作原理、实施方法以及面临的挑战,本文为读者提供一个清晰的视角来理解和应用这一策略,以优化其自动化测试流程。
|
5天前
|
算法 测试技术 持续交付
深入白盒测试:提升软件质量与效率的关键策略
【4月更文挑战第23天】 在软件开发的复杂多变的环境中,确保产品的质量和可靠性是至关重要的。白盒测试作为一种重要的软件测试方法,允许测试者通过检查内部结构、设计和编码来验证软件的功能性和正确性。本文将探讨白盒测试的关键概念、技术及其在提升软件测试效率和质量中的应用。我们将重点讨论如何借助白盒测试发现潜在缺陷、优化测试用例设计,并通过具体案例分析展示其在实际中的应用效果。
|
5天前
|
测试技术
深入白盒测试:提升软件结构透视能力
【4月更文挑战第23天】在软件测试的广阔天地中,白盒测试以其独特的内在逻辑和代码透视能力而显得尤为重要。它不仅仅是一个测试方法,更是一种确保软件质量和可靠性的重要手段。本文将深入探讨白盒测试的概念、方法和最佳实践,旨在为软件开发和测试人员提供一种系统的视角,以帮助他们更好地理解并应用白盒测试技术,进而提高软件产品的质量。
5 0
|
6天前
|
算法 Java 测试技术
深入解析白盒测试:提升软件质量与效率的关键
【4月更文挑战第22天】 在软件开发的复杂多变的世界中,保证代码质量和功能的正确性是至关重要的。白盒测试作为一种重要的软件测试方法,提供了一种透视软件内部逻辑结构的途径。本文将详细探讨白盒测试的概念、技术手段和实际应用,旨在帮助读者理解如何通过这种测试提高软件系统的稳定性和性能。文章还将讨论白盒测试中面临的挑战以及应对策略,以期为软件质量保证提供实用的指导。
13 2
|
15天前
|
Web App开发 测试技术 网络安全
|
15天前
|
监控 jenkins 测试技术
深入探索软件自动化测试的高效策略
【4月更文挑战第13天】 随着软件开发周期的不断缩短和发布频率的增加,传统的手动测试方法已难以满足快速迭代的需求。本文将详细探讨如何通过有效的自动化测试策略提高测试效率和质量。我们将分析自动化测试中的关键要素,包括测试用例的设计、框架选择、持续集成的应用以及性能监控,并结合实际案例来展示如何构建和维护一个健壮的自动化测试系统。文中还将讨论自动化测试过程中常见的误区和挑战,为读者提供实用的解决方案和最佳实践。
|
17天前
|
算法 测试技术 持续交付
深入探索白盒测试:提升软件质量的关键策略
【4月更文挑战第11天】 在软件开发的复杂世界中,确保代码的健康性与可靠性是至关重要的。白盒测试作为一种软件测试方法,允许测试者深入到程序的内部结构,以检查其逻辑和算法的正确性。本文将探讨白盒测试的核心概念、技术及其在提高软件质量方面的应用,特别是如何通过有效的白盒测试策略来优化测试过程并降低错误率。
|
21天前
|
人工智能 分布式计算 Kubernetes
人工智能,应该如何测试?(三)数据构造与性能测试篇
本文探讨了人工智能场景中的性能测试,区别于传统互联网测试,其复杂性更高。主要关注点包括两类AI产品——业务类和平台类,后者涉及AI全生命周期,测试难度更大。测试重点是模型训练的性能,特别是数据模拟。需要构造大量结构化数据,如不同规模、分布、分片和特征规模的数据,以评估算法效率。此外,还涉及模拟设备规模(如视频流)和节点规模(边缘计算),以测试在大规模负载下的系统性能。文中提到了使用工具如Spark、ffmpeg、流媒体服务器和Kubernetes(K8S)的扩展项目,如Kubemark,来模拟大规模环境。最后,文章介绍了使用Golang进行异步IO操作以构建海量小文件,优化IO性能。
43 0
|
22天前
|
测试技术
深入白盒测试:提升软件质量与性能的关键策略
【4月更文挑战第6天】 在软件开发的生命周期中,确保代码质量和性能始终是至关重要的环节。白盒测试作为一种深入代码内部的测试方法,提供了对程序结构、逻辑路径和内部功能的全面评估。本文将探讨白盒测试的核心概念、技术及其在提升软件质量与性能方面的应用。通过分析控制流测试、数据流测试和静态代码分析等关键技术,我们揭示了白盒测试如何有效发现潜在缺陷,优化代码效率,并增强系统稳定性。

热门文章

最新文章