了解最新技术文章
您公司制作和可能使用的软件与所有其他软件不同。您已经为公司的运作和运营方式构建了定制解决方案。您的软件与其他软件不同。不幸的是,您的测试问题并不是唯一的。
在支付系统测试管理方面尤其如此。它不仅仅是定义测试用例并将其加载到 Jira 或 MS ADO 或任何其他工具中。IT 需要在思维上略有不同,重点关注许多组织根本没有考虑到的风险和风险暴露。
即使您的软件使用第三方提供商来处理付款,您也必须处理此问题,因为在线的是您的公司。如果出现影响您的客户的问题,他们不会关心问题是否出在第三方。如果卡或交易数据遭到破坏或泄露,新闻将由您的公司发布。
测试管理首先要仔细审查和分析要解决的业务问题以及需求如何表达这些需求。我们需要了解项目或变更的意图是什么。我们需要缩小业务案例中的差距。这将有助于缩小期望和明确要求之间的差距。
总是有差距。总是有这样的假设:每个人都了解需求是什么或当前系统如何运作。有时,这些差距直到开发后期才会被发现。有时,他们会在软件部署和使用后被发现。
在大多数情况下,补丁可能有助于解决此问题。在支付系统中,通常只有在发生违规时才会发现漏洞。到那时就太晚了。我们需要找出整个周期中的差距和风险。
我记得有一次,当我使用支付卡处理软件时,我们发现测试存在差距,距离预定的部署和交付日期还有一周。这导致我的团队彻底修改了测试设计的方式。我们改变了一切。
从那时起,测试设计是在软件设计之前完成的。我们通过构建决策树和思维导图来测试需求,并在其中识别系统中的漏洞。这些漏洞返回给业务分析师,并解释了我们发现的内容并要求进行澄清。
一时间并没有让测试团队受到销售团队的欢迎。他们很快意识到,后续项目可以更快地交付,因为任何可能的设计问题在“设计”开始之前就已得到考虑。
问题往往在于假设一切都会顺利进行。我怀疑,相信一个好的开发团队或测试团队将始终在没有错误或问题的情况下工作,这是人的本性。需求和要求之间的差距只是一方面。
在支付系统中,面临的挑战是知道要寻找哪些差距。管理测试流程与管理测试用例设计和开发相关。当涉及到金钱时,显然需要进行严格的测试。账户需要平衡,所有交易都需要入账。
更晦涩的问题来自正在使用的支付系统的形式。您正在为在线零售商开发产品吗?混合在线和实体商店怎么样?他们需要处理相同的付款方式吗?某些方法是否以一种方式被接受,而以另一种方式被接受?容量呢?他们是否限制某些交易的卡或支付方式,而不限制其他交易?
虽然这些是系统的“要求”,但测试时需要特别考虑。重复相似的步骤,但它们之间有微小的差异,通常被认为是浪费,或者至少是不必要的。当使用支付方式和卡时,这种重复可能正是所需要的。
还有另一个考虑因素。这说明任何类型的支付流程都面临着挑战。虽然大多数金融交易都寻求即时交易平衡,但为了确保资金记入正确的账户,在支付交易中,通过仔细检查交易本身的处理方式来防止未来出现问题可能更为重要。
从存储和跟踪交易数据(包括支付帐户信息)到监控该信息的传输方式,有一点必须处于支付系统测试的最前沿。安全性将减少您的公司以您不希望的方式成为头条新闻的机会。
组织可以为其系统使用OWASP指南。这是一个很好的开始。所有软件开发团队都应该了解并应用这些想法。就支付交易而言,PCI 合规性是一个大问题。
这两者都远远超出了“很高兴拥有”或“下一个版本”的范围。很多人都会知道 OWASP。PCI 是相当多的组织并不担心的领域,相信他们的供应商能够处理这个问题。除非付款处理出现问题,否则您的客户将向您寻求解决方案和补救措施。
您必须了解这些要求的含义。然后你需要弄清楚如何测试它们。然后,您需要确保对支付领域的每项更改都经过 PCI 合规性测试。
然后你需要测试它。你需要一遍又一遍地测试它。每个版本都需要进行此测试。我建议每次构建,但如果没有一个强大的自动化框架可以在重复测试“相同”脚本的同时处理场景的变化,这可能是一项艰巨的工作。不过,您必须对其进行测试。
人们经常对这一想法提出反对意见,认为这是一种浪费,消耗了大量资源。它几乎肯定会消耗大量资源。然而,寻找支付系统的漏洞是浪费吗?可能吧。
据我所知,在任何情况下,系统漏洞给公司造成的损失都远远超过测试造成的损失。自动化这些测试(特别是针对更常见威胁的测试)的目的是让您的人员深入研究软件并了解他们以前没有考虑过的内容。然后可以对这些进行测试,一旦它们被运用和规划出来,它们也可以被自动化,以允许您的测试团队寻找其他漏洞。
我不记得有任何一个案例表明,不测试这些问题所节省的成本大于成本。从法律费用到名誉受损(如果不是毁掉的话),代价是巨大的。
我发现,通过将 OWASP 指南和 PCI 合规性测试纳入测试的常规部分,有助于将安全问题牢记在测试和开发团队的脑海中。持续保持警惕的需求成为您的组织的共同标志。
奖励很简单,就是您没有因支付卡违规而成为头条新闻。