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

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

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


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


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


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


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


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


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


使用黄金大师

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


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


掩码可识别信息


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


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


遵循许可原则


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


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


使用合成用户进行测试


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


与客户服务部门合作


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


使用大量的自动化测试


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


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


相关文章
|
1月前
|
测试技术 开发者 Python
自动化测试之美:从零构建你的软件质量防线
【10月更文挑战第34天】在数字化时代的浪潮中,软件成为我们生活和工作不可或缺的一部分。然而,随着软件复杂性的增加,如何保证其质量和稳定性成为开发者面临的一大挑战。自动化测试,作为现代软件开发过程中的关键实践,不仅提高了测试效率,还确保了软件产品的质量。本文将深入浅出地介绍自动化测试的概念、重要性以及实施步骤,带领读者从零基础开始,一步步构建起属于自己的软件质量防线。通过具体实例,我们将探索如何有效地设计和执行自动化测试脚本,最终实现软件开发流程的优化和产品质量的提升。无论你是软件开发新手,还是希望提高项目质量的资深开发者,这篇文章都将为你提供宝贵的指导和启示。
|
28天前
|
机器学习/深度学习 算法 UED
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法。本文介绍 A/B 测试的基本概念、步骤及其在模型评估、算法改进、特征选择和用户体验优化中的应用,同时提供 Python 实现示例,强调其在确保项目性能和用户体验方面的关键作用。
33 6
|
1月前
|
机器学习/深度学习 算法 UED
在数据驱动时代,A/B 测试成为评估机器学习项目效果的重要手段
在数据驱动时代,A/B 测试成为评估机器学习项目效果的重要手段。本文介绍了 A/B 测试的基本概念、步骤及其在模型评估、算法改进、特征选择和用户体验优化中的应用,强调了样本量、随机性和时间因素的重要性,并展示了 Python 在 A/B 测试中的具体应用实例。
30 1
|
1月前
|
安全 应用服务中间件 网络安全
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
59 3
|
1月前
|
jenkins 测试技术 持续交付
自动化测试框架的构建与优化:提升软件交付效率的关键####
本文深入探讨了自动化测试框架的核心价值,通过对比传统手工测试方法的局限性,揭示了自动化测试在现代软件开发生命周期中的重要性。不同于常规摘要仅概述内容,本部分强调了自动化测试如何显著提高测试覆盖率、缩短测试周期、降低人力成本,并促进持续集成/持续部署(CI/CD)流程的实施,最终实现软件质量和开发效率的双重飞跃。通过具体案例分析,展示了从零开始构建自动化测试框架的策略与最佳实践,包括选择合适的工具、设计高效的测试用例结构、以及如何进行性能调优等关键步骤。此外,还讨论了在实施过程中可能遇到的挑战及应对策略,为读者提供了一套可操作的优化指南。 ####
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
自动化测试的新篇章:利用AI提升软件质量
【10月更文挑战第35天】在软件开发的海洋中,自动化测试犹如一艘救生艇,它帮助团队确保产品质量,同时减少人为错误。本文将探索如何通过集成人工智能(AI)技术,使自动化测试更加智能化,从而提升软件测试的效率和准确性。我们将从AI在测试用例生成、测试执行和结果分析中的应用出发,深入讨论AI如何重塑软件测试领域,并配以实际代码示例来说明这些概念。
61 3
|
1月前
|
编解码 安全 Linux
网络空间安全之一个WH的超前沿全栈技术深入学习之路(10-2):保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali——Liinux-Debian:就怕你学成黑客啦!)作者——LJS
保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali以及常见的报错及对应解决方案、常用Kali功能简便化以及详解如何具体实现
|
2月前
|
敏捷开发 监控 jenkins
自动化测试之美:打造高效的软件质量保障体系
【10月更文挑战第20天】在软件开发的海洋中,自动化测试如同一艘精准的导航船,引领项目避开错误的礁石,驶向质量的彼岸。本文将扬帆起航,探索如何构建和实施一个高效的自动化测试体系,确保软件产品的稳定性和可靠性。我们将从测试策略的制定、工具的选择、脚本的编写,到持续集成的实施,一步步描绘出自动化测试的蓝图,让读者能够掌握这一技术的关键要素,并在自己的项目中加以应用。
38 5
|
2月前
|
Java 测试技术 持续交付
探索自动化测试的奥秘:提升软件质量的关键
【10月更文挑战第20天】 在当今快速发展的软件行业中,自动化测试已成为确保产品质量和加速开发周期的重要工具。本文将深入探讨自动化测试的核心概念、实施策略及其对软件开发生命周期的影响,旨在为读者提供一种全面理解自动化测试的视角,并展示如何有效地将其应用于实际项目中以提高软件质量和效率。
29 2
|
1月前
|
人工智能 安全 Linux
网络空间安全之一个WH的超前沿全栈技术深入学习之路(4-2):渗透测试行业术语扫盲完结:就怕你学成黑客啦!)作者——LJS
网络空间安全之一个WH的超前沿全栈技术深入学习之路(4-2):渗透测试行业术语扫盲完结:就怕你学成黑客啦!)作者——LJS