有人在印度发行信用卡,但他在美国。今天是最后的付款日期,他在美国大约下午8点支付,但这是第二天在印度。
QA人员如何测试这样的场景?
发布于 2017-05-22 13:17:24
与时间相关的测试是很棘手的。
我们克服了数据库测试中的这个问题,通过在内部调用一个名为getedate()的过程,它调用getdate()系统函数,该函数通常返回服务器的当前日期时间,但是有一个配置表存储了覆盖日期时间。如果配置表具有覆盖值集,则数据库过程将像该日期时间一样运行,否则如果配置覆盖为NULL,则使用当前日期时间。
您需要注意的是,有一小部分系统开销可能会对应用程序产生性能影响,但如果这是可以接受的,则这是一种非常简单的方法,可以在不同的服务器上向前和向后移动和设置不同的日期时间设置。
发布于 2017-05-22 14:58:15
首先也是最重要的,“如果……会发生什么”的问题。不是由你来决定。如果你正在测试的东西对这个问题没有一个有记录的答案,那就由你自己来确定它是由合适的人/组织来回答的,但是你真的不应该在这里问这个问题,因为答案将是“这取决于”。这将取决于所涉及的银行,可能是有关国家或国家的法律,可能是允许转让的合同语言,以及正在使用的支付基础设施。它还可能取决于业务流程所有者,他们可能希望在给定情况下给予宽大处理或不给予宽大处理。这并不是你作为一个测试人员想要确定正确行为的那种东西;如果你回答的不正确,你可能会让某人承担责任。
至于如何测试这一点,存根/模拟/测试脚手架是要走的路。一旦你对这个问题有了答案(而且可能有多个答案,取决于原籍国/合同语言/等等),你必须在内部确定正确的答案是什么。您当然可以为此编写函数测试用例。最好是通过查询数据库来确定这一点,而不是在代码中,因为如果法律或合同语言发生了变化,答案很可能会改变。然后,一旦您确定能够得到正确的答案,您将需要编写模拟适当的外部系统的测试用例,并验证您的程序正在以文档化的方式处理外部系统(即,如果涉及费用,则提出更大数额的支付请求,或者可能提出两个支付请求,一个用于服务,另一个用于收费,或诸如此类)。
发布于 2017-03-23 07:32:30
这取决于信用卡的类型,无论是国际信用卡信用卡还是国民信用卡(在这种情况下,是印度银行发行的信用卡)。
对于国际信用卡每月付款,根据上述情况,将根据信用卡的条款和条件收取额外费用。您可以根据时区测试以下场景:
如果这是一张不能在国际上使用的本地信用卡,那么当你在国外进行任何交易时,将检查它是有效信用卡还是无效信用卡。
然而,如果该人只想根据他在印度的交易支付每月信用卡的费用,但他目前在国外(任何其他国家),你可以参考以前的情况(根据在印度的时间,有或不加收费/罚款)。
希望这能有所帮助。
https://sqa.stackexchange.com/questions/26322
复制相似问题