您的当前位置:首页正文

黑盒测试实验二

来源:爱站旅游
导读黑盒测试实验二
软件测试基础与实践

实验报告

实验名称: 黑盒测试实验二 实验地点: 机房 实验日期: 学生姓名: 学生学号:

一、实验目的

(1)能根据待测软件的特点,选择合适的方法对软件进行黑盒测试(功能测试); (2)学习测试用例的书写。

实验 1:随机测试 VS 黑盒测试 VS 白盒测试

在游戏引擎开发中,检测物体碰撞是一项重要的基础功能。 为简单起见,我们这里只考虑二维平面空间的情况,并用 RectManager 程序判断平面上任意两矩形的相交关系 (A:不相交,B:相交:B1:相交为一个区域,B12:包含,B13:完全重合,B2:交点为 1 个点,B3:交点为 1 条线段) , 如果相交,则同时给出相交部分的面积。 我们假设二维平面为 iphone4 屏幕(640*960 分辨率),且所有矩形的边都与坐标轴平行。 计算机图形学中,通常用左上角和右下角的坐标来表示一个矩形。

(1) 请编写一简单程序,随机生成两个矩形的数据,请用这些随机数据对 RectManager 进行测试。

提示:a) 使用随机函数生成大量测试用例(如 10 万个随机测试用例) ;

b) 注意随机测试用例产生的范围应比屏幕范围稍微大一点。屏幕范围:x 取值范围[0-639],y 取值范

围[0-959];

c) 在测试用例生成程序中,同时调用 RectManager 中的方法直接驱动测试自动执行;

d) 对大量的随机测试进行统计,分析这些随机测试用例对两矩形相交的各种关系的覆盖情况(统计上

的命中 率) ;

(2)请用黑盒测试方法,设计相应的测试用例来测试程序; 提示:程序运行命令行:java -jar RectManager.jar

(3)请分析 RectManager 的实现源代码,利用基本路径测试方法,设计相应的测试用例来测试程序; 只要求针对 solve()方法进行测试。

(4)在上述实验的基础上分析三种测试方法发现缺陷的能力上有何差别。

(1) 通过编写程序测试,代码如下:

public class test{

float area;//Recode area

int nFlag; //recode the relation of two rectangle

public static void main(String[] args){

int leftA,leftB,rightA,rightB,topA,topB,bottomA,bottomB; int[]result = {0,0,0,0,0,0,0,0};

Random random = new Random();

for(int i = 0;i < 100000;i++){

leftA = Math.abs(random.nextInt())%640; leftB = Math.abs(random.nextInt())%640; rightA = Math.abs(random.nextInt())%640+leftA; rightB = Math.abs(random.nextInt())%640+leftB; topA = Math.abs(random.nextInt())%960; topB = Math.abs(random.nextInt())%960;

bottomA = Math.abs(random.nextInt())%960+topA; bottomB = Math.abs(random.nextInt())%960+topB;

if (!(leftA>=0 && rightA<960)|| !(topA>=0 && bottomA<640) }

if (!(leftB>=0 && rightB<960)|| !(topB>=0 && bottomB<640)

||!(rightB>=leftB) || !(bottomB>=topB)){

System.out.println(\"Input error in Rectangle B\"); result[7]++;

||!(rightA>=leftA) || !(bottomA>=topA)){

System.out.println(\"Input error in Rectangle A\"); result[6]++; continue;

}

continue;

统计结果:

次数 不相交 相交于一个区域 包含 重合 交点为1个点 点为1条线段 A错误格式 B错误格式 1 2 3 2076 2051 2007 1474 1536 1524 209 204 197 0 0 0 0 0 0 1 12 11 16 80479 80605 80594 15750 15593 15661 命中率 0.204466667 0.151133333 0.020333333

3.33333E-05 0.0013 8.055933333 1.5668

(2) 等价类划分

测试用例(双击打开和编辑)

序号12345678910111213141516171819202122232425262728A.left-165055555555555555555555565555A.right555-1650101010101010101010101010101010101010910101010A.top55555-1650555555555555555565555A.bottB.righB.leftomt1010101010555-1650101010101010101010101010109101010105555555555-1650555555551576551010510101010101010101010555-16501010101010201291010151510B.top555555555555555-165055515765510510B.bottom101010101010101010101010101010555-16502012965010151015期望输出A输入错误A输入错误A输入错误A输入错误A输入错误A输入错误A输入错误A输入错误A输入错误A输入错误B输入错误B输入错误B输入错误B输入错误B输入错误B输入错误B输入错误B输入错误B输入错误B输入错误不相交相交包含包含重合相交一个点相交一条线相交一条线实际输出A输入错误A输入错误A输入错误A输入错误A输入错误A输入错误A输入错误A输入错误A输入错误A输入错误B输入错误B输入错误B输入错误B输入错误B输入错误B输入错误B输入错误B输入错误B输入错误B输入错误不相交相交包含包含重合相交一个点相交一条线相交一条线 (3) 已在visio中画好,双击可打开编辑

Starint nMaxLeftint nMaxTop1N2Y39int nMinRightint nMinBottomY38NN403736N3nMaxLeft = B.leftYYNNNYYNYnMaxLeft = A.leftif (A.left >= B.left)3233344nMaxTop = A.topif (A.top >= B.topnMaxTop = B.top5YNNN41292430YYNY252627nMinRight = A.rightif (A.right <= B.right)nMinRight = B.rightY78NNNnMinBottom = A.bottomif (A.bottom <= B.bottom)if ((nMaxLeft > nMinRight) || (nMaxTop > nMinBottom))nMinBotnFlag = tom = 1;B.bottom area = (nMinRight - nMaxLeft + 1 ) * (nMinBottom - nMaxTop + 1)nFlag=0else if (((nMaxLeft==A.left) && (nMinRight==A.right) && (nMaxTop==A.top) && (nMinBottom==A.bottom)) ||((nMaxLeft==B.left) && (nMinRight==B.right) && (nMaxTop==B.top) && (nMinBottom==B.bottom)))nFlag=2if ((B.left==A.left) && (B.right==A.right) && (B.top==A.top) && (B.bottom==A.bottom))9Y10NN1112else if ((nMaxLeft==nMinRight) && (nMaxTop == nMinBottom))nFlag=4else if (((nMaxLeft==nMinRight) && (nMaxTop < nMinBottom))nFlag=5nFlag=3Y13N14NN15N16NYYN17YYYYENDV(g)=24+1=25L1:1-2-3-4-6-7-9-10-12-13-15-17-41L2:1-2-3-5-6-7-9-10-12-13-15-17-41L3:1-2-3-4-6-8-9-10-12-13-15-17-41L4:1-2-3-4-6-7-9-11-12-13-15-17-41L5:1-2-3-4-6-7-9-10-12-14-15-17-41L6:1-2-3-4-6-7-9-10-12-13-15-16-17-41L7:1-2-3-4-6-7-9-10-12-13-15-16-18-20-21-22-23-41L8:1-2-3-4-6-7-9-10-12-13-15-16-18-19-24-25-26-27-32-41L9:1-2-3-4-6-7-9-10-12-13-15-16-18-19-20-24-25-26-27-32-41L10:1-2-3-4-6-7-9-10-12-13-15-16-18-19-20-21-24-26-27-32-41L11: 1-2-3-4-6-7-9-10-12-13-15-16-18-19-20-21-22-24-26-27-32-41L12: 1-2-3-4-6-7-9-10-12-13-15-16-18-19-24-28-29-30-31-32-41L13: 1-2-3-4-6-7-9-10-12-13-15-16-18-19-24-25-28-29-30-31-32-41L14: 1-2-3-4-6-7-9-10-12-13-15-16-18-19-24-25-26-28-29-30-31-32-41L15:1-2-3-4-6-7-9-10-12-13-15-16-18-19-24-25-26-27-28-29-30-31-32-41L16: 1-2-3-4-6-7-9-10-12-13-15-16-18-19-24-25-26-27-32-41L17: 1-2-3-4-6-7-9-10-12-13-15-16-18-19-24-28-29-33-34-35-41L18: 1-2-3-4-6-7-9-10-12-13-15-16-18-19-24-28-29-30-33-34-35-41L19: 1-2-3-4-6-7-9-10-12-13-15-16-18-19-24-28-29-30-31-33-34-35-41L20: 1-2-3-4-6-7-9-10-12-13-15-16-18-19-24-28-39-30-31-32-41L21: 1-2-3-4-6-7-9-10-12-13-15-16-18-19-24-28-33-34-36-37-40-41L22: 1-2-3-4-6-7-9-10-12-13-15-16-18-19-24-28-33-34-36-38-39-40-41L23: 1-2-3-4-6-7-9-10-12-13-15-16-18-19-24-28-33-34-36-37-38-41L24: 1-2-3-4-6-7-9-10-12-13-15-16-18-19-24-28-33-34-36-37-38-39-41L25: 1-2-3-4-6-7-9-10-12-13-15-16-18-19-24-28-33-36-37-40-4118192021222328316N35YYYY

测试用例:

测试路径 A.left A.top A.right A.bottom B.left B.top B.right B.bottom 期望输出 实际输出 L1 L2 L3 L4 L5 L6 L7 L8 L9 L10 L11 L12 L13 L14 L15 L16 L17 5 15 5 15 10 20 10 20 无 无 无 15 5 15 5 20 10 20 10 不相交 不相交 不相交 不相交 不相交 重合 包涵 包涵 包涵 包涵 包涵 包涵 包涵 包涵 相交一点 相交一点 0 0 1 0 0 0 0 0 0 0 0 5 0 0 0 0 1 0 0 0 0 0 0 5 5 5 5 4 5 5 10 10 10 10 5 10 5 5 5 5 5 4 10 10 10 10 5 10 0 0 0 0 0 0 1 1 1 1 5 0 10 0 0 0 0 0 0 0 1 0 5 0 5 5 10 10 10 10 5 4 5 5 10 5 20 5 10 10 10 10 5 5 5 4 10 5 不相交 重合 包涵 包涵 包涵 包涵 包涵 包涵 包涵 包涵 相交一点 相交一点 L18 L19 L20 L21 L22 L23 L24 L25 10 0 0 0 5 0 0 0 0 0 15 10 5 5 10 5 10 5 5 5 无 无 0 1 5 0 0 5 0 0 5 0 5 5 10 5 5 10 5 5 10 5 相交一点 包涵 相交一线 相交一线 相交一线 相交一点 包涵 相交一线 相交一线 相交一线 相交一点 0 0 5 5 5 5

10 10 相交一点

三、实验体会

很多BUG都隐藏在随机的测试过程当中,黑盒和白盒测试相辅相成.

因篇幅问题不能全部显示,请点此查看更多更全内容

Top