测试运行:软件测试中的小组决定2012-01-09 MSDN James McCaffrey博士当需要从一系列选择中确定一个最佳选项时,如果决策制定过程是由一组人来执行,而非单个人或者一种纯定量方法,那么请考虑一下其中会出现的常见问题。此类活动有很多示例,例如某州居民从多个候选人中投票选出州长、某大型公司董事会从多个小型公司中选择一个作为收购目标。从本质上讲,小组必须通过某种方式对选项进行排序以便能够确定最佳选项。在软件开发和测试过程中,也存在着有关最佳备选方法的小组决定问题。例如,一组测试版用户从众多原型中选择最佳用户界面。或者,某个开源项目成员投票选出一种策略。在软件测试社区中,我发现人们对在执行最佳备选方法小组决定时所使用的实际方法以及此过程可能存在的缺陷都不甚了解。小组分析方法多达数十种。在本月的专栏中,我将介绍在软件测试环境中用于最佳备选方法小组决定的五种最常见方法:纯相对多数方法、绝对多数决选方法、Borda 计数系统、Condorcet 方法和 Schulze 方法。所有这些分析方法在软件工程以外的其他领域中都非常知名,而且有关它们的研究也非常普遍。在介绍每种方法时,我都会侧重介绍它在软件测试方面的应用。我相信您会发现对您的工具包而言,有关小组分析方法方面的知识是非常有益的补充。在很多问题域中,都存在必须由一组人员从多个备选方法中选出一种的情形。不同的问题域可能会使用不同的术语。例如,在社会学中,对此类问题的研究通常称为社会选择理论,通常使用选项和评估者之类的术语。在政治学中,对于此类问题的分析通常称为选举理论,一般使用候选人和投票者之类的术语。在数学领域,最佳备选方法的小组决定通常被视为决策理论的一个分支。由于将这些方法应用于软件开发和测试环境时并不存在特定的术语集,因此在介绍时我将混合使用这些术语。我在本专栏中介绍的方法仅适用于相当狭窄的问题范围,并且不完全适用于已明确定义最佳选项的定量情形。正如您将看到的,当一组人员选择一个“最佳”备选方法时,最佳的含义是由所使用的方法来定义的。并且,我在此处介绍的方法并不适用于一组人通过讨论和协商达成一致决策的协作情形。纯相对多数和绝对多数决选在讨论最佳备选方法的小组决定之前,让我们先来看一下最简单且最常见的方法 — 但您必须要清楚,在许多测试情形中它都不一定是最好的方法。假设您正在开发一个在公司内部使用的企业软件应用程序,并且创建了四个完全不同的用户界面原型。尽管可以要求一个人来评估不同的原型,但在许多情况下,较好的办法是要求一组人员来对这四种不同的设计进行先后排序。事实证明,执行小组评估以及解释最终结果的过程要比您的预期麻烦一些。最简单的可能小组评估方法是将选项提交给评估者并允许他们选出或投票选出唯一的一种备选方法。得到最多票数的备选方法成为赢家。此方法通常称为纯相对多数规则。