Chinaunix首页 | 论坛 | 博客
  • 博客访问: 835833
  • 博文数量: 253
  • 博客积分: 6891
  • 博客等级: 准将
  • 技术积分: 2502
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-03 11:01
文章分类

全部博文(253)

文章存档

2016年(4)

2013年(3)

2012年(32)

2011年(184)

2010年(30)

分类: LINUX

2011-12-22 09:44:26

用例设计

今天在网上逛,发现了三角形问题设计测试用例的问题,这个问题再的时候经常遇到,我面试的时候就曾经三次遇到(曾经做过面霸)问题如下:

假设输入三个整数abc分别作为三边的边长构成三角形。通过程序判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时!要求画出程序的流程图和时序图,并且用自己熟悉的一种语言实现这个功能!我在网上搜索了一下发现已经有好多,不过发现很少有写出程序的,于是自己做了一个总结,我最近正在看,所以用java语言实现了一下,流程图和程序图参考的网上的,

 

 

程序如下:

package sanj;

/**

 *

 * @author xingzunxi

 */

import java.io.*;

class sanj{

public static int a,b,c;

 public static void main(String arg[]) throws IOException{

try{

BufferedReader stdin=new BufferedReader(new InputStreamReader(System.in)); //接收键值

System.out.println("输入三边值,每个值输入后回车");

System.out.println("请输入:");

a=Integer.valueOf(stdin.readLine());

b=Integer.valueOf(stdin.readLine()); 

c=Integer.valueOf(stdin.readLine()); 

}catch(IOException e){

System.out.println("出现异常!");

System.exit(0);

}

if(a+b

System.out.println("你输入的不能构成三角形");

}

if(a==b || a==c || b==c)

{

if(a==b && b==c) System.out.println("等边三角形");

else System.out.println("等腰三角形");

}

else System.out.println("一般三角形");

}

}

 

【解】

第一步:确定测试策略。在本例中,对被测程序的功能有明确的要求,即:

1)判断能否组成三角形;

2)识别等边三角形;

3)识别等腰三角形;

4)识别任意三角形。因此可首先用黑盒法设计测试用例,然后用白盒法验证其完整性,必要时再进行补充。

第二步:根据本例的实际情况,在黑盒法中首先可用等价分类法划分输入的等价类,然后用边界值分析法和猜错法作补充。

等价分类法:

有效等价类

输入3个正整数:

(1)3数相等

(2)3数中有2个数相等,比如AB相等

(3)3数中有2个数相等,比如BC相等

(4)3数中有2个数相等,比如AC相等

(5)3数均不相等

(6)2数之和不大于第3数,比如最大数是A

(7)2数之和不大于第3数,比如最大数是B

(8)2数之和不大于第3数,比如最大数是C

无效等价类:

(9)含有零数据

(10)含有负整数

(11)少于3个整数

(12)含有非整数

(13)含有非数字符

边界值法:

(14)2数之和等于第3

猜错法:

(15)输入3个零

(16)输入3个负数

第三步:提出一组初步的测试用例,如下表所示:

 

 

第四步:用白盒法验证第三步产生的测试用例的充分性。结果表明,上表中的前8个测试用例,已能满足对被测程序图的完全覆盖,不需要再补充的测试用例。


阅读(5065) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~