自动加密货币交易软件应通过可观察行为来规定要求。“高效执行”这样的需求听起来有用,却不能告诉审查者,当报价过期、资金已被预留,或提交响应消失时,程序必须做什么。可测试需求应指明输入、允许的转换,以及确立结果的证据。
本指南使用虚构现货账户,构建一项考虑成本的自动化验收测试。数字是为使核算可复现而编造的,并不代表当前费率或预期收益。目标是确定软件是否遵守声明的规则,并保留账户状态。通过测试证明的是运营行为,而不是交易策略有利可图。
自动加密货币交易软件需求始于不变量
不变量,是在普通事件和故障中都应持续成立的条件。一个有用例子是:承诺的现金总额不得超过可用的获授权资源。另一个是:同一持久意图不能仅因事件送达两次就创建额外订单。这些陈述比一组顺利流程截图更有力,因为它们适用于整个工作流程。
用审查者能够检查的语言写不变量。系统必须在预留资本前识别账户。订单结果未知时必须保留预留。新配置不得改写附属于旧意图的理由。每项陈述都应指出什么证据会表明违规。如果没有任何可能观察能够推翻一项需求,它大概太含糊,不适合验收。
较早的自动交易生命周期指南将配置、观察和账户活动分开。分配需求时可使用这些阶段。策略组件可以提出操作,但独立风险组件决定操作是否符合账户限额。保持责任分离,更容易解释为什么一个表面有吸引力的观察没有导致执行。
精确定义虚构账户
假设账户初始拥有2,000报价单位,并且没有选定资产的持仓。其中200单位预留为运营缓冲,300单位已承诺给另一个有效意图。因此,新决策按照声明策略开始时具有1,500单位容量。这些类别应在每个页面和导出中始终可以区分。
新策略提出购买最多80资产单位,每单位限价为10报价单位。本练习假设交易费为千分之一,以报价资产收取,另单独建模2单位执行费用。最大新增预留为800加0.80加2,即802.80报价单位。实际平台成本必须另行核查。
将测试样例保存为不可变输入。包含账户标识、资产身份、报价资产身份、初始余额、现有承诺和费用假设。最终结果截图不足以复现测试。日后的审查者需要知道,新决策前哪些资源可用,以及授权预算包含哪些成本。
明确允许信号提出什么
信号应生成包含理由、证据时间戳和请求风险敞口的提案。它不应创建余额、改变账户权限,或假设订单已经执行。在虚构案例中,信号因预先声明的观察条件满足而提出80单位购买。验收练习无需声称这一条件具有预测价值。
提案应标识用于计算它的证据版本。如果底层观察被修订,应保留原提案并创建新评估,而不是悄悄替换历史。这关系到审查系统为何行动。不能用授权之后才出现的信息,公平评价当时的决策。
加密货币自动化指南解释了如何将宽泛的自动化目标拆成有明确边界的责任。这里也应这样划分:信号提案,风险层检查,预留层承诺容量,执行层尝试获准操作。不同实现可以使用不同名称,但责任应在验收记录中清楚可见。
授权必须包含完整预算
风险检查将最大802.80单位预留,与1,500单位可用容量比较。按照虚构策略,提案符合限制,并为其他新活动留下697.20单位。测试应同时验证这两个数字。只检查请求的800名义金额是否低于总余额,会漏掉费用、运营缓冲和先前承诺。
明确费用额度是硬性边界还是估计。如果实际执行可能超过授权预算,软件就需要另一个可实施约束或拒绝规则。把成本称为估计,不代表授予无限权限。验收记录应解释,如果最终报价或交易费用超过授权时的假设,会发生什么。
也测试边界值。增加提议金额,直到预留略微超过容量。预期结果应是有记录的拒绝,或策略明确允许的新提案。悄悄调整规模不自动可接受,因为它改变了原始决策。如果支持调整,规则和最终金额都应属于声明需求。
自动加密货币交易软件需要持久标识
提交之前,为决策赋予意图标识。该标识应关联原始观察、账户授权、资本预留和产生的执行尝试。请求到达执行系统后,可能另有订单或交易标识。保留两者,使应用能区分自身持久决策与外部系统对该决策的表示。
测试时,将相同输入事件送达两次。第二次应发现现有意图,而不是再预留802.80单位。这是重要验收条件,因为许多数据系统在重连后会重新送达事件。传输重复不同于第二个经济机会,账户不应仅凭重复送达推断出新授权。
多个账户工作进程参与时,较早的多钱包协调指南很有帮助。意图标识的作用域必须足够谨慎,避免跨账户混淆,同时仍防止目标账户内部重复工作。全局唯一标签有帮助,但真正要求是整个流程中的归属和解释一致。
模拟部分成交而不丢失余量
现在假设订单以9.90成交50单位。名义成本为495。按照假设费率,成交费为0.495。如果本次尝试产生2单位执行费用,已完成部分便消耗497.495报价单位。账户获得的是50单位,而不是原请求的80。
剩余30单位仍与有效订单关联。按照限价,其最大名义金额为300,假设最大费用为0.30。依照本练习成本模型,为余量保留300.30单位预留。原预留减去已完成成本和剩余预留,差额为5.005单位,反映了更好的成交价格,以及已成交数量上更低的费用。
测试应明确验证释放策略。一些系统为简化处理,会在完成前保留全部原预留。另一些逐步释放已确认多余的容量。两种方法都需要清楚规范。关键要求是:系统绝不释放有效或未解决余量仍需要的资金,也绝不把未成交数量当成已拥有资产。
撤单是具有自身结果的请求
部分成交后,策略请求取消剩余30单位。该请求不能立即证明订单已消失。执行系统可能先确认接收,再报告最终状态,其间还可能发生成交。验收场景应包含这种可能,而不是假设撤单是同步橡皮擦。
基础样例规定撤单已确认,且没有额外成交。随后可以释放300.30单位余量预留。账户保留已获得的50单位和497.495单位已完成成本。无关的300单位承诺和200单位运营缓冲不变。取消余量,不会撤销之前的购买或已发生费用。
加入第二种变体:撤单完成前,又成交五单位。系统必须先计入这些单位和实际成本,再确定最终释放金额。预期结果应根据新成交证据计算,而不是根据操作者点击取消的时间。这一变体测试实现是否遵循经济事件,而不是界面意图。
测试结果未知的提交
自动交易恢复场景应在提交后立即中断通信。测试环境记录请求可能已经到达执行系统,而应用没有收到确定响应。要求的状态是未解决,并保留预留。不应仅因原调用报错或超时,就创建新的经济订单。
恢复利用集成支持的持久引用查找现有结果。它可以检查账户历史、未结订单或交易状态。规范应说明哪些证据足以将尝试归类为已接受、已拒绝、已完成或仍未知,也应说明可用来源相互矛盾或仍不完整时,如何升级处理不确定性。
加密货币套利机器人指南说明了另一条交易腿可能已执行时,提交未解决为何尤其重要。同一原则适用于本单订单案例。超时改变的是应用知道什么,不一定改变外部账户已经做了什么,因此验收测试必须将两者分开。
衡量成本,但不将估计当作事实
核对之后,用观察金额替换估计执行成本,同时保留原估计供比较。这使审查者能看到预算模型是保守、准确,还是不完整。单一字段从估计覆盖为实际,会破坏证据,并使未来成本假设更难改善。
在虚构部分成交案例中,按声明假设,观察到的总成本为497.495单位。除以50,在将固定费用分配给该购买时,每单位获得的资产成本为9.9499报价单位。平均成交价仍为9.90。两个数字都可能有用,但标签应不同,因为一个包含成本,另一个不包含。
加密货币套利软件指南探讨了表面价差很小时,这一区别为何重要。对于验收,关键行为是可复现核算。软件不应根据哪个数字更好看,就在毛指标和含成本指标之间切换。稳定定义让审查者能比较预期经济结果与实际账户记录。
测试过时证据和配置变化
创建一个观察在提案与授权之间过期的样例。预期行为应是重新检查、拒绝,或其他明确允许的转换。应用不应把曾经有效的信号视为永久权限。证据自生成后经过时长的上限,需要属于决策规则,并出现在拒绝记录中。
然后,在意图待处理时改变策略配置。除非有记录的修订流程改变关联,现有意图应继续对应授权它的版本。新配置可以管理未来决策,而不改写过去。当审查者日后试图复现系统为何承诺某个具体金额时,这一点尤其重要。
有用的测试应区分配置存储和激活。保存修订限额,不一定意味着所有运行组件都已采用它。软件应公开当前有效版本,以及变更何时生效。否则,操作者可能以为限制已经实施,而工作进程仍在使用较早权限集。
加入能说明问题的负面案例
负面测试应针对有意义的故障模式。不受支持的资产身份、交易资源耗尽、账户快照过时和预算过度承诺,分别测试不同边界。大量几乎相同的无效输入,可以产生漂亮测试数量,却未必提高对系统经济行为的信心。
为每个负面案例明确哪些内容必须保持不变。被拒提案不应获得有效订单标识、消耗交易额度,或显示为已完成交易。根据拒绝发生的位置,它仍可能创建审计记录并产生运营成本。应明确这一区别,避免测试混淆保留证据与未经授权的账户活动。
较早的交易软件证据评分表提供了有用评估结构。将它用于已经展示的行为,而不是声称的覆盖范围。如果失败测试识别出可澄清的需求,或可在更广泛使用前修复的实现缺陷,它就是有价值的信息。
根据日志复现结果
验收会话结束时,导出日志,并在不依赖实时应用的情况下重建账户。审查者应识别最初2,000单位余额、各项独立预留、获得的50单位、已完成成本和释放的余量。每个结论都应指向记录事件或声明假设。
这种重建测试的不只是记账。它揭示软件是否保留时间顺序,以及事件标签是否名副其实。提交事件不应算作成交。撤单请求不应算作已确认撤单。估值更新不应改变持有资产数量。即使界面将其简化,日志也应保留这些区别。
审查者也应能够识别缺口。如果执行费用不可用,导出应说明成本核算不完整,而不是填入零。缺失不同于测得为零。保留这一区别,使账户所有者能评估结果的实际限制,而不编造精确性。
记录验收,但不声称策略成功
验收报告应列明需求集、测试样例、软件版本和观察结果。它应识别剩余限制,以及什么条件下需要重新测试。即使可见策略设置不变,订单语义、账户权限或成本处理变化,也可能使先前验收结果失效。
通过这些场景,证明系统行为与规定流程一致。它不能证明信号预测未来价格,也不能证明所选配置适合任何具体个人。那些是独立的研究和决策问题。将它们分开,避免技术成功的演示变成缺乏支持的经济主张。
实际交付物是一份小型、可重复的证据包:需求、虚构输入、预期转换、观察记录和核对后的算术。有了它,另一位审查者可以理解软件被要求做什么,以及结果为什么算通过或失败。这比从不中断的演示建立的信心,更适合作为自动化基础。
保留测试时钟与市场时钟的区别
可复现样例应明确控制时间。测试需要知道观察何时发生、何时可供应用使用,以及何时评估拟议操作。这可能是三个不同时刻。如果重放在历史修正原本到达之前,就使用修正后的历史值,决策会显得比任何真实操作者当时可能掌握的信息更多。
模拟中断时也使用同样区分。在暂不提供账户更新的同时推进测试时钟,再验证过时状态策略是否在预期边界生效。恢复数据流并提供延迟事件,检查应用是否保留其原始事件时间。这能发现一种问题系统:仅因旧观察在重连后收到,就将其标为新鲜。
最后,保留显示时间戳相同的事件之间的顺序。舍入到秒可能掩盖成交、撤单请求和余额更新之间的先后。持久序列引用或更精确时间记录有助于复现结果。验收应明确实现依赖哪些排序证据,以及证据不完整时如何表现。