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

Posted

技术标签:

【中文标题】如何用示例向非技术测试人员解释排序(数字、字典和排序规则)?【英文标题】:How to explain sorting (numerical, lexicographical and collation) with examples to non technical testers? 【发布时间】:2011-10-12 05:49:25 【问题描述】:

我需要使用法语和西班牙语的名字和姓氏来解释差异。任何指针表示赞赏。我用谷歌搜索,但结果并不令人满意。

【问题讨论】:

使用电话簿类比:“数字”就像电话号码。 “词典”就像电话簿中姓名的排序方式。 “整理”就像法语和西班牙语电话簿之间的区别。但是,如果您的测试人员不到 20 岁,她可能不知道“电话簿”是什么。 【参考方案1】:

这里有一些解释:

字典式

在这种情况下,您对文本进行排序而不考虑数字。事实上,数字只是“字母”,它们没有数字组合的意义。

这意味着文本“ABC123”按字母 A、B、C、1、2 和 3 排序,而不是按 A、B、C 和数字 123 排序。

这有一个不幸的后果,即订购可能看起来应该像数字一样订购的东西却没有。

例如,在对这两个进行排序时:

ABC90
ABC100

您可能希望 90 的排序在 100 之前,因为 90 在 100 之前,但这不是字典排序的工作原理,它将 9 与 1 进行比较,然后交换它们。

自然排序

通过在 100 之前排序 90 来使上述排序正常工作的排序。如果在两个文本中都遇到数字,自然排序会切换到部分文本的数字排序。

基于排序的排序

这个处理诸如语言之间的变化之类的事情。

通常,词典排序将一个字母与另一个字母进行比较,并确定它们的顺序,通常根据字母的“值”。这可能会产生一些奇怪的效果。

例如,您认为以下两个字符串如何排序?

ABCTEN
ABCßEN

好吧,因为 ß 的字母可能具有比 T 更高的值的序数值(即它在 Unicode 字母表中的“位置”),所以上述顺序就是结果。基本上,如果您查看包含所有字母的 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)

以上是关于如何用示例向非技术测试人员解释排序(数字、字典和排序规则)?的主要内容,如果未能解决你的问题,请参考以下文章

如何用随机字典值填充熊猫数据框列

我如何用数字[重复]对字符串进行排序

如何用VLC接收不同视频格式(H263、H264 CIF 4CIF)的组播媒体流

如何用jmeter向mysql数据库中插入多条信息

如何用 Jest 测试一系列数字?

如何用SQL语句,在数字加中文的混合数据中提取出中文