白盒测试实例之三——需求分析

发表于:2010-01-12来源:作者:点击数: 标签:需求实例白盒
白盒 测试 实例之三—— 需求分析 需求管理 需求分析是后续工作的基石,如果分析思路有问题,后续工作可能就会走向不正确的方向,比如:代码重用性差、难于测试、难于扩展和难于维护等。反而,如果需求分析做的好,对设计、 开发 和测试来说,都可能是很大的

  白盒测试实例之三——需求分析   需求管理 

    需求分析是后续工作的基石,如果分析思路有问题,后续工作可能就会走向不正确的方向,比如:代码重用性差、难于测试、难于扩展和难于维护等。反而,如果需求分析做的好,对设计、开发和测试来说,都可能是很大的帮助。

  看到题目给出的条件达12个之多,粗粗一看,好像很复杂,但仔细分析之后,发现可以把它们分成4组来讨论:

  1、 条件1:a+b>c; 条件2:a+c>b; 条件3:b+c>a

  这三个表达式有什么特点呢?实际上它们的逻辑是一样的:两个数之和大于第三个数。那么,前面程序的写法就存在逻辑重复的地方,应该把这个逻辑提取到一个函数中。

  2、 条件4:0

  这三个表达式也是同一个逻辑:判断一个数的范围是否在(0, 200)区间内,也应该把这个逻辑提取到一个函数中,去掉重复的逻辑,提高代码的可重用性。

  可重用性的好处:比如,现在用户的需求改为了三条边的取值范围要改为[100,400],那么,按前面的思路来说,需要改3个地方,而现在只需要在一个函数里改1个地方,这就是代码重用的好处。

  3、条件7:a==b; 条件8:a==c; 条件9:b==c

  这三个表达式的逻辑:判断两个数是否相等。也应该把它提取到一个函数中。

  我们进一步来分析一下判断是否是等边三角形或等腰三角形的条件:

  (1)前面程序的判断是从最直观的方式(a==b && b==c && a==c)(实际上只需要两个表达式成立即可)三条边都相等来判定是等边三角形;(a==b || b==c || a==c)只有两条边相等来判定是等腰三角形。

  (2)转变一下思路:给定三个整数,然后用一个函数来判断这三个整数有几个相等,返回相等的个数,如果返回值等于3,那么它是等边三角形,如果返回值是2,那么它是等腰三角形,否则,它是一般三角形(如果不是直角三角形的话)。

  4、条件10:a2+b2==c2 条件11:a2+ c2== b2 条件12:c2+b2== a2

  这三个条件的处理方式有两种:

  (1)跟前面三组分析一样,把相同的逻辑提取到一个函数中,然后三次调用。

  (2)根据直角三角形的特点:斜边是最长的,所以我们可以事先写一个函数来找到最长的边,然后把它赋值给c,这样处理之后,只需要一次调用判定(a2+b2==c2)的函数了。

原文转自:http://www.ltesting.net