如何向非技术测试人员解释排序(数字、字典和排序规则),并提供示例?

15

我需要解释一下法语和西班牙语姓氏的区别,欢迎提出任何建议。我在谷歌上搜索过,但结果不尽如人意。


2
使用电话簿类比: "numerical" 就像电话号码一样。 "Lexicographic" 就像电话簿中名称的排序方式。 "Collation" 就像法国和西班牙电话簿之间的区别。如果您的测试人员不到20岁,她可能不知道什么是“电话簿”。 - Kerrek SB
1个回答

41
以下是一些解释:
词典排序
在这种情况下,您按照文本进行排序而不考虑数字。实际上,数字只是“字母”,它们没有数字组合含义。
这意味着文本“ABC123”按字母A、B、C、1、2和3排序,而不是按A、B、C和数字123排序。
这就导致了一个不幸的后果,即可能看起来应该像数字那样排序的东西并没有排序。
例如,在对这两个内容进行排序时:
ABC90
ABC100

您可能会期望数字90在100前面排序,因为90比100小,但这不是词典序排序的工作方式,它是将9与1进行比较,并互换它们的位置。
自然排序是可以正确处理上述排序的一种排序方法,通过在文本中遇到数字时切换到数字排序来实现将90排在100前面。
基于校对的排序则处理了语言之间的差异。
通常,词典序比较一个字母与另一个字母,并确定它们的顺序,通常根据字母的“值”进行排序。这可能会产生一些奇怪的效果。
例如,您认为以下两个字符串的排序方式是什么?
ABCTEN
ABCßEN

好的,由于 ß 的字母可能具有序数值(即其在 Unicode 字母表中的“位置”)比 T 更高,因此上述顺序就是结果。基本上,如果您查看包含所有字母的 Unicode 表,您可能会发现 T 的符号值小于 100,而 ß 则大于 100。

然而,在德国,您应该将上述两个文本视为:

ABCTEN
ABCSSEN

因此,它们的顺序应该被颠倒,因为S在T之前。

这是基于排序规则的排序。您为文本选择一个描述处理这些文本的上下文的排序规则。这使您可以在不同语言中获得自然排序。

例如,在挪威,字母Æ、Ø和Å排列在Z之后,但在其他语言(我忘记是哪种语言)中,Æ应该紧随E之后,Ø紧随O之后,Å紧随A之后。排序规则决定了这一点。


罗马尼亚语是其中一种语言,但其字母与挪威语不同(A、Ă、Â、B、...、H、I、Î、J、...、R、S、Ș、T、Ț、U、...)。法语(至少魁北克法语)也有这种类型的排序(a、à、â、æ、b、c、ç、d、e、é、è、ê、ë、f、...、h、i、î、ï、j、...、n、o、ô、œ、p、...、t、u、ù、û、ü、v、...、x、y、ÿ、z)。 - Petru Zaharia

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接