测试一直是软件开发过程中的一个重要过程,而三个因素使得它扮演了更重要的角色。首先,微软.Net的环境已经显著地提高了程序员编写自定义自动化测试的能力,以前需要两周时间创建的测试项目,现在在.Net Framework下只用几个小时便可完成。第二,程序和系统越趋于复杂,所需的测试越精密。后,软件安全性已不再是程序开发后才考虑的问题,它是必要的。在以前有可能存在一款软件没有经过完整的测试已向外发布的情况,但如今这已不再可行。为了帮助你满足现今的测试挑战,我将在这个栏目里每隔几个月向你展示软件测试的佳方法、原则和技术。

  这个月我将从组合在软件测试中的角色开始说起。编程产生组合的能力,能够为你的测试用例输出提供强有力的方法。首先我谈谈我所说的组合的意思:如果你现在正在写一个扑克牌的程序,需要你手动输入5张牌牌型的所有可能情况,你一定不会乐意。但如果你用这个栏目里的代码来处理,你将能够在几分钟内做好这件事:
Combination c = new Combination(52,5); // 52 cards, 5 at a time
string[] pokerHand = new string[5];
       
while (c != null)
{
  pokerHand = c.ApplyTo(deck);
  PrintHand(pokerHand);
  c = c.Successor();
}