liyiye 发表于 2013-1-27 05:02:08

(二)白盒测试实例

在教学的过程中发现,很多学生一看到这个需求,都觉得很简单,然后立刻就开始动手写代码了,这并不是一个很好的习惯。如果你的第一直觉也是这样的,不妨耐心看到文章的最后。
大部分学生的思路:
1、首先建立一个main函数, main函数第一件事是提示用户输入三角形的三边,然后获取用户的输入(假设用户的输入都是整数的情况),用C语言来写,这一步基本上不是问题(printf和scanf),但是要求用java来写的话,很多学生就马上遇到问题了,java5.0及之前的版本不容易获取用户的输入。 
点评:这样的思路做出来的程序只能通过手工方式来测试所有业务逻辑,而且这个程序只能是DOS界面版本了,要是想使用图形化界面来做输入,就得全部写过代码。
2、业务处理流程的思路用流程图表示如下:
 http://p.blog.csdn.net/images/p_blog_csdn_net/aidisheng/EntryImages/20080905/%E7%9B%B4%E8%A7%82%E7%9A%84%E8%AE%BE%E8%AE%A1.jpg
 
3、C语言代码:
<div class="highlighter">
[*]#include<stdio.h>
[*]void main()
[*]{
[*]    int a, b, c;
[*]    printf("please enter three integer:");
[*]    scanf("%d%d%d", &a, &b, &c);
[*]    if(0<a && a<200 && 0<b && b<200 && 0<c && c<200)
[*]    {
[*]        if(a+b>c && a+c>b && c+b>a)
[*]        {
[*]            if(a==b && b==c && a==c)   //这里可以省掉一个判断
[*]            {
[*]                printf("1是等边三角形");
[*]            }
[*]            else
[*]            {
[*]                if(a==b || b==c || a==c)
[*]                {
[*]                    printf("2是等腰三角形");
[*]                }
[*]                else
[*]                {
[*]                    if(a*a+b*b==c*c || a*a+c*c==b*b || b*b+c*c==a*a)
[*]                    {
[*]                        printf("3是直角三角形");
[*]                    }
[*]                    else
[*]                    {
[*]                        printf("4是一般三角形");
[*]                    }
[*]                }
[*]            }
[*]        }
[*]        else
[*]        {
[*]            printf("5不能组成三角形");
[*]        }
[*]    }
[*]    else
[*]    {
[*]        printf("6某些边不满足限制");
[*]    }
[*]}
页: [1]
查看完整版本: (二)白盒测试实例