首页 > 代码库 > 软件工程作业(十一)

软件工程作业(十一)

一.白盒子测试有哪些方法,其中最严格的是什么?

白盒测试的测试方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、路径覆盖和程序变异。
白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。六种覆盖标准发现错误的能力呈由弱到强的变化:
1.语句覆盖每条语句至少执行一次。
2.判定覆盖每个判定的每个分支至少执行一次。
3.条件覆盖每个判定的每个条件应取到各种可能的值。
4.判定/条件覆盖同时满足判定覆盖条件覆盖。
5.条件组合覆盖每个判定中各条件的每一种组合至少出现一次。
6.路径覆盖使程序中每一条可能的路径至少执行一次。
 
二.测试用例

(1)输入条件:

  1、 条件1:a+b>c

  2、 条件2:a+c>b

  3、 条件3:b+c>a

  4、 条件4:0<a<200

  5、 条件5:0<b<200

  6、 条件6:0<c<200

  7、 条件7:a==b

  8、 条件8:a==c

  9、 条件9:b==c

  10、条件10:a2+b2==c2

  11、条件11:a2+ c2== b2

  12、条件12:c2+b2== a2

 (2)输出结果:

  1、不能组成三角形

  2、等边三角形

  3、等腰三角形

  4、直角三角形

  5、一般三角形

  6、某些边不满足限制 

业务处理流程的思路用流程图表示如下:

 技术分享

仔细分析之后,发现可以把它们分成4组来讨论:

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

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

  2、 条件4:0<a<200; 条件5:0<b<200; 条件6:0<c<200

  这三个表达式也是同一个逻辑:判断一个数的范围是否在(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)的函数了。 

软件工程作业(十一)