数据许可以及为什么有些数据源不能用于商业用途
并非每个看似公开的位置数据集都能合法地用于付费产品。真正的界限往往由许可条款而不是技术可得性决定。
构建和测试位置感知软件时,很容易完全依赖方便、规整的示例:大城市里一个干净的地址、一个住宅宽带 IP 地址、一个远离任何边界或时区分界线的位置。这些测试每一项都会稳定通过,但每一项几乎都无法告诉您,当系统在生产环境中遇到真实而杂乱的数据时,在最可能真正引发问题的情况下会如何表现。
一套真正有用的位置软件测试集,需要有意纳入本系列逐一讨论过的那些更难的情况:一个没有常规门牌编号的国家中的地址;一个极其靠近国际边界的位置查询;一个恰好落在夏令时切换期间的时间戳;一个已知属于移动运营商 CGNAT 地址池或卫星互联网服务商的 IP 地址;一个靠近两极、基于经度的假设开始失效的坐标;以及一个来自邮政数据相对粗略的国家的邮政编码,而不是来自参考数据异常详细的国家的邮政编码。
这些都不是为了追求周全而凭空想出的罕见、不太可能发生的场景。每一种都代表一类真实且反复出现的输入,任何足够庞大、真正全球化的用户群体最终都必然会发给您,而且往往比您预想的更早。从未针对这些情况测试过的系统,不会以一种响亮、明显、易于诊断的方式失败。它最常见的是悄无声息地失败,返回一个看似合理却暗藏错误的结果,通过所有表面检查,直到很久以后才作为真正的问题浮现出来,通常表现为一张令人困惑的支持工单,或是一个对不上的、无法解释的业务指标,而到那时,追溯其真正的根本原因已经困难得多。
构建这类测试集,本身就是前文衡量准确度和覆盖范围时所描述的同一套方法:一组固定的、有意多样化的、可重复使用的测试输入,检查的不仅是是否返回了一个看似合理的响应,更具体地说,是检查该响应中的 precision 和 confidence 字段,在考虑到具体输入真实难度的情况下,是否表现得合理且一致。对于一个确实困难的情况,返回低置信度、粗精度的结果是正确而诚实的,应当视为通过。真正值得在用户替您发现之前抓住的失败,是一个自信但错误的结果,或者一个未被处理的错误。
我们的文档涵盖了每个端点应有的确切字段和行为,是构建这类有意对抗性测试集的合适起点参考,可用于测试对您自己的应用及其用户最重要的具体边缘情况。