实验2黑盒测试(二)
黑盒测试经典例题(精选8篇)
黑盒测试经典例题(精选8篇)【篇一】黑盒测试经典例题实验一黑盒测试(一)实验目的1.掌握用边界值方法设计测试用例和执行测试的过程;2.掌握用等价划分方法设计测试用例和执行测试的过程;3.掌握用决策表方法设计测试用例和执行测试的过程。
(二)实验内容测试“Ne某tDate”函数。
Ne某tDate返回输入日期后面的那个日期。
变量年、月、日都具有整数值,且满足如下条件:C1:1912≤年份≤2050C2:1≤月份≤12C3:1≤日期≤31(三)实验步骤用熟悉的语言(如C语言)编写实现该函数的功能,并用如下方法设计测试用例,进行黑盒测试。
参考源代码:#includeintne某tDate(intyear,intmonth,intday);voidmain(){/intyear,month,day;ne某tDate(2051,12,30);}intne某tDate(intyear,intmonth,intday) {/某如果还有明天,返回1;如果输入不合法,返回-1;某/witch(month){cae1:cae3:cae5:cae7:cae8:cae10:if(day==31){day=1;month=month+1;}eleday=day+1;break;cae4:cae6:cae9:cae11: if(day==30){day=1;month=month+1;}eleday=day+1;break;cae12:if(day==31){day=1;month=1;year=year+1;if(year==2022)printf("2022iover");}eleif(day=1912&&year12||month31||day【篇二】黑盒测试经典例题常用黑盒测试的方法黑盒测试(Black-bo某Teting,又称为功能测试或数据驱动测试)是把测试对象看作一个黑盒子。
利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。
(完整word版)黑盒测试习题02
习题020501 用等价类划分法设计8位长数字类型用户名登录操作的测试用例,应该分成()个等价区间.A。
2 B. 3 C。
4 D. 6输入数据预期结果12345678合法1234567位数不足123456789位数过长abcdefgh非法字符0502输入数据预期结果!@#$%^&()合法(无字符)位数过短12736…2179(共256位)位数过长/?|\非法字符0503输入数据预期结果20合法13年龄小于范围41年龄大于范围abcd非法字符0504 某工厂招工,规定报名者年龄应在20周岁——39周岁之间,即出生年月不得早于1960年7月,不晚于1979年6月。
报名程序具有自动检验输入数据的功能,如果出生年月不属于上述范围将拒绝接受,并显示“年龄不合格”等出错信息。
输入数据预期结果1966。
06合法1960。
06时间过早1980.01时间过晚一九六五年七月非数字19777少于6位1977777多余6位197713大于12197700小于10505 新浪邮箱名,其输入要求如下:1. 4~16个字符2。
支持英文小写、数字、下划线3。
不支持全部为数字或下划线输入数据预期结果qq_fhg409522817合法0506用等价类划分法设计下面的测试用例:有一个报表系统,要求用户输入要处理的报表的日期,假设日期的范围为2000年1月到2020年12月。
如果用户输入的日期不在这个范围内,则显示错误码信息,并且此系统规定日期由年月六位数字组成,前4为代表年,后两位代表月。
1)请列出等价类表(包括有效和无效的等价类)2)根据1)中的等价类表,设计能覆盖所有等价类的测试用例。
要求包括输入数据和预期输出,并指出各个测试用例所能符合的等价类编号0507 NextDate 函数包含三个变量:month 、 day 和 year ,函数的输出为输入日期后一天的日期。
例如,输入为 2006年3月 7日,则函数的输出为 2006年3月8日。
黑盒测试实验二
1、开发打印等级功能类 2、开发输入X 和 打印输出测试驱动 3、试根据此规格说明用等价类方法、边界值方法、错误推测 法共同完成针对该程序功能的黑盒测试用例的设计。 4、进行测试验证
黑盒测试实验
要求:
1、交电子实验报告 2、交简单的实验纸质报告
黑盒测试实验二黑盒测试实验报告黑盒测试实验总结黑盒测试黑盒测试方法白盒测试黑盒测试黑盒测试工具黑盒测试和白盒测试黑盒测试用例设计方法黑盒测试方法有哪些
黑盒测试实验
黑盒测试实验
实验目的: 1 通过实验进一步黑盒测试方法 2 通过实验熟悉使用等价类方法、边界值法和 错误推测法设计测试用例 3 练习测试驱动的开发
黑盒测试实验
实验内容: 需求描述:
“成绩满分为100分,学生成绩记为x。若90≤x≤100, 打印等级为“优”;若80≤x<90,打印等级为“良”; 若 70≤x<80,打印等级为“中”; 若60≤x<70,打印等级为 “及格”; 若0≤x<60,打印等级为“不及格”;若x<0或 x>100或x中含有非数字字符,打印为“无效成绩”。” 试根据此规格说明用等价类方法、边界值方法、错误推测法共 同完成针对该程序功能的黑盒测试用例的设计。
实验二 黑盒测试
实验二:黑盒测试
一、实验目的
(1)熟练掌握黑盒测试方法中的边值分析方法和判定表驱动测试方法
(2)通过实验掌握如何应用黑盒测试方法设计测试用例
(3)运用所学理论,完成实验研究的基本训练过程
二、实验内容
1.用你熟悉的语言编写一个判断三角形问题的程序。
要求:读入代表三角形边长的三个整数A,B,C,取值范围为1-100,判断它们能否组成三角形。
如果能够,则输出三角形是等边、等腰、一般三角形和非三角形。
2.使用边值分析和判定表驱动测试方法设计测试用例。
三、实验步骤
(1)用你熟悉的语言编写上述源程序
(2)使用边值分析方法设计测试用例,并填写完成表1和表3
(3)使用判定表驱动测试方法建立判定表,完成测试用例的设计。
程序:
四、实验数据记录
1、边界值方法测试用例设计
2、判定表驱动测试设计测试用例
(1)确定规则个数。
(2)列出所有的条件桩和动作桩。
(3)填入输入项。
(4)填入动作项,得到初始判定表
(5)化简,合并相似规则后得到三角形问题的判定表。
化简后的判定表:
五、实验结果分析
六、心得体会。
黑盒测试实验报告
实验一:黑盒软件测试一、实验目的通过简单程序黑盒测试,熟悉测试过程,对软件测试行程初步了解,并养成良好的测试习惯。
二、实验内容背景:被测测试程序功能:计算被输入日期是星期几;程序定义:已知公元1年1月1日是星期一,只要输入年月日,能自动回复当天是星期几;测试环境:Windows 2000、Dev C++;说明:因程序简单,因此未使用测试软件,均为手工输入,得到输出进行测试。
为简单起见,不考虑公元前的日期。
程序说明:A程序思路:计算输入日期与公元1年1月1日所相差的天数,具体如下:总天数=公元1年到输入日期上一年年底天数+输入年份的1月到上月月底天数+输入日期的天数B闰年满足条件(year%4==0)&&(year%100!=0)||(year%400==0)(1)分析各种输入情况,结合程序输出结果,进行等价类划分,并给出详细测试用例;(2)根据(1)所划分的等价类,进行边界值分析,并给出具体的测试用例;(3)决策表测试法;①列出输入变量month、 day、 year的有效等价类;(条件桩)②分析程序的规格说明,给出问题规定的可能采取操作;(动作桩)③画出决策表(简化);④根据决策表,给出详细测试用例。
三、实验要求(1)根据题目要求编写测试用例(2)实现测试用例的黑盒测试(3)撰写实验测试报告(4)试验心得总结四、实验测试过程1、对测试用例进行等价类划分。
等价类划分表:2、选择测试用例,使之覆盖所有等价类情况。
测试用例表:3、对测试用例进行边界值分析。
边界值分析表(1<=year<=2050):五、实验结果及结论结果分析:原因:C1:year为闰年C2:month为1、3、5、7、8、10、12 C3:month为4、6、9、11C4:month为2C5:1<=day<=27C6:day=28C7:day=29C8:day=30C9:day=31结果:E1:输出今天是星期几E2:提示:输入不满足要求决策表:结论:程序无逻辑性等大的错误,但需要进一步完善,如对输入进行限定等。
黑盒测试实验二
软件测试基础与实践实验报告实验名称:黑盒测试实验二实验地点:机房实验日期:学生姓名:学生学号:一、实验目的(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 areaint nFlag; //recode the relation of two rectanglepublic 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) ||!(rightA>=leftA) || !(bottomA>=topA)){System.out.println("Input error in Rectangle A");result[6]++;continue;}if (!(leftB>=0 && rightB<960)|| !(topB>=0 && bottomB<640) ||!(rightB>=leftB) || !(bottomB>=topB)){System.out.println("Input error in Rectangle B");result[7]++;continue; }统计结果:(2)等价类划分测试用例(双击打开和编辑)序号 A.left A.rightA.topA.bottomB.leftB.rightB.topB.bottom期望输出实际输出1-155********A输入错误A输入错误26505510510510A输入错误A输入错误355510510510A输入错误A输入错误45-1510510510A输入错误A输入错误55650510510510A输入错误A输入错误6510-15510510A输入错误A输入错误75106505510510A输入错误A输入错误851055510510A输入错误A输入错误95105-1510510A输入错误A输入错误105105650510510A输入错误A输入错误11510510-15510B输入错误B输入错误125105106505510B输入错误B输入错误1351051055510B输入错误B输入错误145105105-1510B输入错误B输入错误155105105650510B输入错误B输入错误16510510510-15B输入错误B输入错误175105105106505B输入错误B输入错误1851051051055B输入错误B输入错误195105105105-1B输入错误B输入错误205105105105650B输入错误B输入错误2151051015201520不相交不相交22510510712712相交相交235105106969包含包含2469695105650包含包含25510510510510重合重合2651051010151015相交一个点相交一个点275105101015510相交一条线相交一条线285105105101015相交一条线相交一条线(3)已在visio中画好,双击可打开编辑Starint nMaxLeftint nMaxTopint nMinRig ht int nMinBot tomif (A.left >= B.left)nMaxLef t = A.left nMaxLef t = B.leftif (A.top >= B.topnMaxTop = A.topnMaxTop = B.topif (A.right <= B.right)nMinRig ht = A.rightnMinRig ht = B.rightif (A.bottom<= B.bottom)nMinBot tom = A.botto mnMinBot tom = B.botto m if ((nMaxLeft>nMinRight)|| (nMaxTop> nMinBotto m))nFlag=0nFlag = 1; area = (nMinRig ht - nMaxLef t + 1 ) * (nMinBo ttom - nMaxTop + 1)if ((B.left==A.left) && (B.right==A .right) && (B.top==A.t op) && (B.bottom==A.bottom))nFlag=3else if (((nMaxLeft ==A.left) && (nMinRight ==A.right) && (nMaxTop==A.top) && (nMinBotto m==A.bott om)) ||((nMaxLe ft==B.left) && (nMinRight ==B.right) && (nMaxTop==B.top) && (nMinBotto m==B.bott om)))nFlag=2else if ((nMaxLeft ==nMinRig ht) && (nMaxTop== nMinBotto m))nFlag=4else if (((nMaxLeft ==nMinRig ht) && (nMaxTop< nMinBottom))nFlag=5END123Y4567891011121314151618171920212223242526272829303132333435363738394041NY NY NY NN YYNY Y Y YNNNY Y Y N NNNYYYYNNN NYY NNYY NNYYNNNY V(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-41测试用例:三、实验体会很多BUG都隐藏在随机的测试过程当中,黑盒和白盒测试相辅相成.。
软件测试实验报告黑盒测试判定表
广西师范大学计信学院《软件测试技术》课程实验实验报告题目:黑盒测试法--判定表法班级:学号:姓名:完成日期:实验二黑盒测试法——判定表法实验目的:1.掌握因果图、判定表的方法2.掌握按判定表设计测试用例实验时间:4学时实验内容:1、题目一:隔一天日期问题功能描述:输入年份、月、日;输出:输入日期在日历上的隔一天日期。
如输入1912年12月15日,应输出1912年12月17日。
要求:(1) 读源码并分析程序,给出问题规定的可能采取的操作(即列出所有的动作桩)。
(2) 画出简化后的决策表,设计测试用例。
(3) 执行测试用例,进行测试记录和缺陷统计,给出缺陷报告。
2.程序设计及测试(以下任选一个),要求撰写测试报告(格式参照实验一)。
(1)请自己设计象棋走马问题程序,要求给出需求说明书,采用因果图法或综合采用所学黑盒测试法设计测试用例,并执行测试用例,进行缺陷统计和分析,并修正Bug。
(2)请设计实现简单的计算器功能,要求给出需求说明书,综合采用所学黑盒测试方法设计测试用例集合,并执行测试用例,进行缺陷统计和分析,并修正Bug。
实验过程:实验1:(1)动作桩:A1:day+2 A2:day=2 A3:day=1 A4:month+1 A5:moth=1 A6:year+1 A7:不可能有效等价类:Year:Y1{year是闰年} Y2{year不是闰年}Month:M1{month=4、6、9、11} M2:{month=1、3、5、7、8、10}M3{month=12} M4{month=2}Day:D1{1<=day<=26} D2{day=27} D3{day=28} D4{day=29} D5{day=30}D6{day=31}缺陷:当结果日期需要跳至下一个月时,结果会显示两次。
实验2:条件桩:1、棋子落在棋盘外2、落点未与起点构成日字型3、落点处有己方棋子4、落点处的临近交叉点5、落点处无棋子6、落点处对方棋子不是老将M:1、2、3、4动作桩:1、不移动棋子2、移动棋子3、除去对方棋子4、提示战胜对方,游戏结束#include <iostream>using namespace std;void main(){cout<<"象棋走马问题,根据情况选择回答0、是或1、否"<<endl;cout<<"“马”的落点处是否在棋盘外"<<endl;int a,b,c,d;cin>>a;cout<<"“马”的落点与起点是否不成“日”字型"<<endl;cin>>b;cout<<"“马”的落点处是否有其他己方棋子"<<endl;cin>>c;cout<<"“马”的落点临近交叉点是否有棋子"<<endl;cin>>d;int x,y;cout<<"“马”的落点处是否有棋子"<<endl;cin>>x;cout<<"“马”的落点出的棋子是否为老将"<<endl;cin>>y;if(a==0&&b==0&&c==0&&d==0)cout<<"不移动棋子"<<endl;if(a==1&&b==1&&c==1&&d==1&&x==1)cout<<"移动棋子"<<endl;if(a==1&&b==1&&c==1&&d==1&&x==0&&y==1)cout<<"移动棋子并出去对方棋子"<<endl;if(a==1&&b==1&&c==1&&d==1&&x==0&&y==0)cout<<"移动棋子并提示战胜对方,游戏结束"<<endl;if(a>1||b>1||c>1||d>1||x>1||y>1)cout<<"输入不规范"<<endl;}程序缺陷:每次运行程序,即使中途就出现输入不规范,但是仍要到最后才能提示出来。
黑盒测试软件测试实验报告2
{
int year;
int month,maxmonth=12;
int day,maxday;
printf("请输入年份:(1000~3000)");
scanf("%d",&year);
if(year<1000 || year>3000)
{
printf("输入错误!请从新输入!\n");
软件测试与质量课程实验报告
实验2:黑盒测试法实验
姓名
院系
学号
任课教师
实验指导教师
实验地点
实验时间
实验目的
系统地学习和理解黑盒测试的基本概念、原理
熟悉和掌握等价类划分法,边界值分析法和决策表方法
掌握测试用例编写要点
实验内容
1.编写一个程序,循环从标准输入读入某雇员的工作时间(以小时计)和每小时的工资数,计算并输出他的工资。若雇员月工作小时超过40小时,则超过部分按原工资的1.5倍的加班工资来计算。若雇员月工作小时超过50小时,则超过50的部分按原工资的3倍的加班工资来计算,而40到50小时的工资仍按照原工资的1.5倍的加班工资来计算。
日期
年
预期输出
1--3
6
15/28/29
2013
2013年4月16/29/30日
4
6
30
2013
2013年7月1日
5
6
31
2013
输入错误,请重新输入
6--9
3
15/28/29/30
2013
2013年3月16/29/30/31日
10
3
31
2013
软件工程实验报告
软件工程实验报告学号:姓名:专业:年月实验一:白盒测试一、实验目的巩固白盒测试知识,对于给定的待测程序,能熟练应用基本控制流覆盖方法设计测试用例;能够执行白盒测试过程,并撰写白盒测试分析报告。
二、实验内容白盒测试又称为结构测试、逻辑驱动测试或基于程序的测试,一般用来分析程序的内部结构。
测试规划基于产品内部结构进行测试,检查内部操作是否按规定执行,软件各个部分功能是否得到充分使用,则这种测试方法称为白盒测试方法。
白盒测试将被测程序看做一个打开的盒子,测试者能够看到被测源程序,可以分析被测程序的内部结构,此时测试的焦点集中在根据其内部结构设计测试用例。
白盒测试要求是对某些程序的结构特性做到一定程度的覆盖,或者说这种测试是“基于覆盖率的测试”。
测试内容包括语句覆盖测试、分支覆盖测试、条件覆盖测试、分支/条件覆盖测试、条件组合覆盖测试和基本路径测试。
三、程序代码要求:实现对不少于10个随机输入的数的冒泡排序算法。
#include<iostream>using namespace std;int main(){double a[100];int N;int i = 0, j = 0;cin >> N;//排序元素的个数for (i = 0; i <= N; i++){cin >> a[i];}for (i = 0; i < N-1 ; i++) {for (j = 0; j < N - 1 - i; j++){if (a[j] > a[j + 1]) {int tmp;tmp = a[j];a[j] = a[j + 1];a[j + 1] = tmp;}}}for (i = 0; i < N; i++){cout << a[i] <<" ";}cout << endl;return 0;}四、程序流程图五、测试内容(1)语句覆盖测试测试结果:①②测试结果分析:输入元素时需要输入的元素个数大于最初输入的元素个数。
功能性测试(黑盒测试)实验报告
功能性测试(黑盒测试)
实验目的:
1、掌握应用功能性测试技术进行测试用例设计。
2、掌握对测试用例进行优化设计方法。
实验内容:
1.题目一:三角形问题
根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。
“一个程序读入三个整数。把此三个数值看成是一个三角形的三个边。这个程序要打印出信息,说明这个三角形是三边不等的、是等腰的、还是等边的。”
•有时条件最终引用输入的等价类,行为引用被测试软件的主要功能处理部分,规则则解释为测试用例。
在日期问题中,为了获得一个日期,NextDate函数需要执行的操作有5种:
1)day变量值加2;
2)day变量复位为1;
3)day变量为2;
4)month变量值加1;
5)month变量复位为1;
6)year变量加1。
测试用例ID
Test6
目的
测试程序能否识别错误输入
前提
1≤month≤12;1≤day≤31
输入
month=6;day=31;year=2001
预期结果
输出:输入错误,6月份不存在31日
测试结果
输出:输入错误,6月份不存在31日
测试日期
2011-11-15
备注
无
实 验 总 结
•使用等价类划分方法必须仔细分析和推敲题目所给出的要求。本题的输人条件要求的关键之处有:
–1)整数;
–2)三个数;
–3)非零数;
–4)正数;
•输出条件要求的关键之处有:
–5)应满足两边长之和大于第三边边长;
–6)等腰;
–7)等边;
•其中,3)、4)和5)并没有在题目上明显给出,但这些条件是必要的。
黑盒测试实验二
黑盒测试实验二1.1 实验类型实验类型为验证型,3个学时。
1.2 实验目的(1)能熟练应用黑盒测试技术进行测试用例设计;(2)对测试用例进行优化设计;1.3 背景知识功能测试是指在对程序进行功能抽象的基础上,将程序划分成功能单元,然后在数据抽象的基础上,对每个功能单元生成测试数据进行测试。
进行功能测试时,被测程序被当作打不开的黑盒,因而无法了解其内部构造,因此又称为黑盒测试。
一、等价类测试等价类测试方法是把所有可能的输入数据,即程序的输入域划分成若干部分,然后从每一部分中选取少数有代表性的数据作为测试用例。
使用等价类划分方法设计测试用例要经历划分等价类(列出等价类表)和选取测试用例两步。
等价类的划分有两种不同的情况:①有效等价类:是指对于程序的规格说明来说,是合理的,有意义的输入数据构成的集合。
②无效等价类:是指对于程序的规格说明来说,是不合理的,无意义的输入数据构成的集合。
在设计测试用例时,要同时考虑有效等价类和无效等价类的设计。
用等价类划分法设计测试用例步骤:(1) 形成等价类表,每一等价类规定一个唯一的编号;(2) 设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类,重复这一步骤,直到所有有效等价类均被测试用例所覆盖;(3) 设计一个新测试用例,使其只覆盖一个无效等价类,重复这一步骤直到所有无效等价类均被覆盖。
二、边界值测试1.边界值分析边界值分析是考虑边界条件而选取测试用例的一种功能测试方法。
边界值分析关注输入空间的边界,以标识测试用例,因为错误更可能出现在输入变量的极值附近。
边界值分析的基本思想是:利用输入变量的最小值(min)、略大于最小值(min+)、正常值(nom)、略小于最大值(max-)和最大值(max)来设计测试用例。
使用在最小值、略高于最小值、正常值、略低于最大值和最大值处取输入变量值。
在边界值分析法中获取测试用例的方法是:1)每次保留程序中一个变量,让其余的变量取正常值,被保留的变量依次取min、min+、nom 、max-和max 作为有效边界值;依次取min- 和max+作为无效边界值。
软件测试实验报告_黑盒测试2
软件测试实验报告学号:学生姓名:班级:实验题目黑盒测试方法2学号********** 姓名*** 班级***** 时间2************一实验题目用黑盒测试方法测试以下程序:有一个处理单价为5角钱的饮料的自动售货机,相应规格说明如下:若投入5角钱或1元钱的硬币,按下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。
(每次只投入一个硬币,只押下一种饮料的按钮)如投入5角的硬币,按下按钮后,总有饮料送出。
若售货机没有零钱找,则一个显示〖零钱找完〗的红灯会亮,这时再投入1元硬币并按下按钮后,饮料不送出来而且1元硬币也退出来。
若有零钱找,则显示〖零钱找完〗的红灯不会亮,若投入 1元硬币及按饮料按钮,则送出饮料的同时找回5角硬币。
二测试用例及结果三实验总结包括bug的数量,并简要分析错误产生的原因。
附:源程序(C#窗体)boBox1.Items.AddRange(new object[] {"亮","灭"});boBox2.Items.AddRange(new object[] {"0.5","1"});boBox3.Items.AddRange(new object[] {"啤酒","橙汁"});private void Form1_Load(object sender, EventArgs e){comboBox1.SelectedIndex = 0;comboBox2.SelectedIndex = 0;comboBox3.SelectedIndex = 0;}private void button1_Click(object sender, EventArgs e){if (comboBox2.SelectedIndex == 0)//投0.5{textBox1.Text = "0";if (comboBox3.SelectedIndex == 0){textBox2.Text = "啤酒";}elsetextBox2.Text = "橙汁";}else //投1{if (comboBox1.SelectedIndex == 0)//红灯亮 {textBox1.Text = "1";textBox2.Text = "无法找零";}else //红灯灭{textBox1.Text = "0.5";if (comboBox3.SelectedIndex == 0){textBox2.Text = "啤酒";}elsetextBox2.Text = "橙汁";}}}。
第二章黑盒测试
2.2 等价类划分
2.2.2 等价类划分法的测试运用 1.三角形问题的等价类测试 【例2.1】 三角形问题是软件测试文献中使用最广泛的一个 例子。输入三个整数a、b和c分别作为三角形的3条边,通过 程序判断由这3条边构成的三角形类型是:等边三角形、等腰 三角形、一般三角形或非三角形(不能构成一个三角形)。
年龄
性别
婚姻状况
20~39 40~59 其它 M F 已婚 未婚
6点
4点 2点 4点 3点 3点 5点
抚养人数
1人扣0.5点, 最多扣3点
2.2.2 等价类划分法的测试运用
分析程序规格说明中给出和隐含的对输入数据的要求,可以 得出: ① 年龄:一位或两位非零整数,取值的有效范围为1~99。 ② 性别:一位英文字符,只能取 ‘M’或’F’ 值。 ③ 婚姻:字符,只能取‘已婚’或‘未婚’。 ④ 抚养人数:空白或字符‘无’或一位非零整数(1~9) ⑤ 点数 :一位或两位非零整数,取值范围为8~19 通过对规格说明输入数据的取值分析,可以得出保险公司人 寿保险保费计算程序的等价类。
0.2
50 提示“请输入1~100间的整数”
2.3.2边界值分析法的测试运用
测试用例
Test14 Test15 Test16 Test17 Test18 Test19 Test20 Test21 Test22
加法器边界测试用例
输入数据
预期输出
加数1 加数2
和
50
0.2 提示“请输入1~100间的整数”
2.3.2边界值分析法的测试运用
应用边界值分析法进行测试用例设计时,应遵循以下一些原 则:
(1)如果输入条件对取值范围进行了限定,则应以边界内部以及刚超 出范围边界外的值作为测试用例。
黑盒测试实验报告
软件测试实验报告----黑盒测试一.实验内容使用黑盒测试技术设计一个自动售货机上的系统。
自定义自动售货机只卖三种饮料:可口可乐,雪碧,百事可乐,单价分别为2.5元,2.5两元,2元。
假设输入饮料类别及需要的数量,如果输入的金额数足够,直接送出饮料,退回零钱,如果输入的金额不够,有提示可以继续输入钱币。
自动售货机运行界面如下:二、黑盒测试(1)测试用例一(2)测试用例二具体操作实践如下:三代码#include<iostream.h> void main(){int n,m,i;for(i=0;i<100;i++){cout<<"欢迎使用自动售货机系统!\n" ;cout<<"请选择商品\n";cout<< "1 可口可乐2.5元\n";cout<< "2 雪碧2.5元\n";cout<< "3 百事可乐2元\n";cout<< " 4 结束购物\n";cin>>n;if(n==1){cout<<"你选择的是可口可乐\n";cout<<"请选择投币种类\n";cout<< "1 2.5元\n";cout<< "2 3元\n";cout<< "3 5元\n";cout<< "4 1元\n";cin>>m;if(m==1){cout<<"付款金额正好,请取走商品\n";}else if(m==2){cout<<"找您0.5元\n";}else if(m==3){ cout<<"找您2.5元\n";} else {cout<<”钱不够!”;}}if(n==2){cout<<"你选择的是雪碧\n";cout<<"请选择投币种类\n";cout<< "1 2.5元\n";cout<< "2 3元\n";cout<< "3 5元\n";cout<< "4 1元\n";cin>>m;if(m==1){cout<<"付款金额正好,请取走商品\n";}else if(m==2){cout<<"找您0.5元\n";}else if(m==3){ cout<<"找您2.5元\n";}else {cout<<”钱不够!”;}}if(n==3){"你选择的是百事可乐\n";cout<<"请选择投币种类\n";cout<< "1 2.5元\n";cout<< "2 3元\n";cout<< "3 5元\n";cout<< "4 1元\n";cin>>m;if(m==1){cout<<"找您0.5元\\n";}else if(m==2){cout<<"找您1元\n";}else if(m==3){ cout<<"找您2元\n";}else {cout<<”钱不够!”;}}if(n==4)cout<<"谢谢惠顾!"<<endl; }}。
黑盒测试实验报告
无
数字
数字中任意一个
无
其他字符
转义字符、标点符号等
无
空格
无
一个测试用例应尽可能覆盖多个有效类,并且该实验不存在无效等价类
故只需设计一个测试用例即可:
测试用例编号
1
输入
操作
预期输出
实际输出
A@1你好
统计字符数目
字母:1
其他字符:3
数字字符:1
空格:1
字母:1
其他字符:3
数字字符:1
2、实验二
Error
Error
测试用例编号
4
输入
操作
预期输出
实际输出
x=2101
y=12
z=3
函数调用并计算
Error
Error
测试用例编号
5
输入
操作
预期输出
实际输出
x=1900
y=0
z=1
函数调用并计算
Error
Error
测试用例编号
6
输入
操作
预期输出
实际输出
x=1900
y=1
z=0
函数调用并计算
Error
N1=0
计算找零张数
Error
Error
测试用例编号
8
输入
操作
预期输出
实际输出
N50=0
N10=0
N5=0
N1=101
计算找零张数
Error
Error
测试用例编号
8
输入
操作
预期输出
实际输出
N50=0
N10=0
N5=0
N1=0
计算找零张数
实验二__黑盒测试
实验二黑盒测试(二)----因果图法、决策表法一、实验目的1、掌握黑盒测试的基础知识;2、掌握黑盒测试的检查内容及测试目的;3、掌握黑盒测试的二种基本测试方法:因果图法和决策表法;二、实验要求1、复习教材的有关内容,理解黑盒测试;2、掌握因果图法和决策表法,并能设计出测试用例;3、对具体软件,能分别使用相应的黑盒测试方法设计测试用例,并实施测试、分析测试结果。
4、实验前认真听讲,服从安排。
独立思考完成实验。
三、实验设备与器材a)硬件:P4以上计算机,512M内存以上,2G以上空闲硬盘空间b)软件:操作系统、OFFICE软件四、实验原理1、黑盒测试的目的和检查内容;2、因果图法和决策表法;3、根据黑盒测试方法设计测试用例及实施测试。
五、实验内容复习:利用因果图设计测试用例步骤⏹ 1.分析程序规格说明的描述中,哪些是原因,哪些是结果✦原因常常是输入条件或是输入条件的等价类;✦结果是输出条件;⏹ 2.分析程序规约的描述中语义的内容,并将其表示成连接各个原因与各个结果的“因果图”3.在因果图上使用若干个特殊的符号标明约束条件4.把因果图转换成判定表5.把判定表中每一列表示的情况写成测试用例1.以中国象棋中马的走法为例,请绘制出因果图和判定表。
马的走法说明:(1)如果落点在棋盘外,则不移动棋子;(2)如果落点与起点不构成日字型,则不移动棋子;(3)如果落点处有自己方棋子,则不移动棋子;(4)如果在落点方向的邻近交叉点有棋子(绊马腿),则不移动棋子;(5)如果不属于1-4条,且落点处无棋子,则移动棋子;(6)如果不属于1-4条,且落点处为对方棋子(非老将) ,则移动棋子并除去对方棋子;(7)如果不属于1-4条,且落点处为对方老将,则移动棋子,并提示战胜对方,游戏结束。
用因果图法测试该程序,并撰写实验报告。
实验步骤:①分析原因与结果②画出因果图③转化为决策表④根据决策表设计测试用例,得到测试用例表⑤执行测试,填写软件缺陷报告⏹复习判定表建立步骤⏹根据软件规格说明✦①列出所有的条件桩和动作桩;✦②确定规则的个数;⏹假如有n个条件,每个条件有两个取值(0,1),则有2n 种规则;✦③填入条件项;✦④填入动作项,得到初始决策表;✦⑤简化,合并相似规则(相同动作)。
黑盒测试实验二
黑盒测试实验二1.NextDate函数的边界值分析测试用例程序有三个输入变量month、day、year(month、day和year均为整数值,并且满足:1≤month≤12、1≤day≤31、1900≤ year ≤2050。
),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上第二天的日期。
例如,输入为2005年11月30日,则该程序的输出为2005年12月1日。
请用等价类测试和边界测试法设计测试用例。
等价类测试法:有效等价类month、day、year、均为整数值,且1≤month≤12、1≤day≤31、1900≤ year ≤2050。
测试用例为:5 month,10 day,2010 year 预期输出为:5 month,11 day,2010 year 无效等价类1、month、day、year、不为整数值,1≤month≤12、1≤day≤31、1900≤ year ≤2050测试用例为:5.4 month,10 day,2010 year 预期输出为:无效输入2、month、day、year、均为整数值,不满足1≤month≤12、1≤day≤31、1900≤ year ≤2050三个条件中其中一个。
测试用例为:13 month,10 day,2010 year 预期输出为:无效输入边界测试法:测试用例为:1 month,1 day,1900 year 12 month,31 day,2050 year预期输出为:1 month,2 day,1900 year 预期输出为:无效输入0 month,1 day,1900 year 13 month,10 day,1900 year预期输出为:无效输入预期输出为:无效输入5 month,0 day,1902 year 5 month,32 day,1903 year预期输出为:无效输入预期输出为:无效输入7 month,5 day,1899 year 7 month,5 day,2051 year预期输出为:无效输入预期输出为:无效输入实验代码:#include<stdio.h>void con(){int a,b,c;printf("年份:");scanf("%d",&a);printf("月份:");scanf("%d",&b);printf("日:");scanf("%d",&c);if(a>=1900 && a<=2050){if(b>0 && b<=12){if(b==2){if(a%4==0){if(c>0 && c<=29){if(c==29){printf("输入的日期是:%d年%d月%d日\n",a,b,c);c=1;b=b+1;printf("第二天的日期是:%d年%d月%d日\n",a,b,c);}else{printf("输入的日期是:%d年%d月%d日\n",a,b,c);printf("第二天的日期是:%d年%d月%d日\n",a,b,c);}}else{printf("输入的天数不在--29之间!\n");}}if(a%4!=0){if(c>0 && c<=28){if(c==28){printf("输入的日期是:%d年%d月%d日\n",a,b,c);c=1;b=b+1;printf("第二天的日期是:%d年%d月%d日\n",a,b,c);}else{printf("输入的日期是:%d年%d月%d日\n",a,b,c);printf("第二天的日期是:%d年%d月%d日\n",a,b,c);}}else{printf("输入的天数不在--28之间!\n");}}}else{if( b==4 || b==6|| b==9 || b==11){if(c>0 && c<=30){printf("输入的日期是:%d年%d月%d日\n",a,b,c);c=c+1;if(c>30){c=1;b=b+1;printf("第二天的日期是:%d年%d月%d日\n",a,b,c);}else{printf("第二天的日期是:%d年%d月%d日\n",a,b,c);}}else{printf("输入的天数不在--30之间!\n");}}else{if(c>0 && c<=31){printf("输入的日期是:%d年%d月%d日\n",a,b,c);c=c+1;if(c>31){c=1;b=b+1;if(b>12){b=1;a=a+1;if(a>2050){printf("第二天的日期不在到范围之内!\n");}else{printf("第二天的日期是:%d年%d月%d日\n",a,b,c);}}else{printf("第二天的日期是:%d年%d月%d日\n",a,b,c);}}else{printf("第二天的日期是:%d年%d月%d日\n",a,b,c);}}else{printf("输入的天数不在--31之间!\n");}}}}else{printf("输入的月份不在--12之间!\n");}}else{printf("输入的年份不在到范围之内!\n");}}void main(){con();printf("是否继续(Y|N)?");char x;scanf("%s",&x);if(x=='Y' || x=='y')printf("\n");main();}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南京信息工程大学实验(实习)报告
实验(实习)名称黑盒测试(二)实验日期 2014.11.26 指导教师徐旦华专业软工实验年级 2011 班次 1 班姓名卫赢学号 20111366001
一、实验目的
理解黑盒测试的基本方法,掌握用判定表法、因果图法黑盒测试用例的设计
方法。
二、实验准备
主流PC 机一套,要求安装windows 操作系统和Office 工具
三、实验内容
题目一:某软件的一个模块的需求规格说明书中描述:
a)年薪制员工:严重过失,扣年终风险金的4%;过失,扣年终风险金的2%。
b)非年薪制员工:严重过失,扣当月薪资的8%;过失,扣当月薪资的4%。
请绘制出因果图和判定表,并给出相应的测试用例。
题目二:登陆功能说明书:(用户输入和密码输入)
1)管理员用户名为“admin”,密码为“123456”,正常登陆
2)用户名和密码输入为空,提示“用户和密码不允许为空”
在用户名和密码非空的情况下:
3)要求用户名必须输入字母,否则提示“输入非法”
4)要求密码必须输入数字,否则提示“输入非法”
在输入合法的情况下:
5)用户名错误,提示“用户名和密码输入错误”,用户名和密码清空
6)用户名正确,密码错误,提示“用户名和密码输入错误”,用户名保留,
密码清空
请用因果图和判定表方法,设计出相应的测试用例。
四、实验步骤:
题目一:判定表法:
条件 1.是否年薪制员工
条件2 是否为严重过失
判定表
年薪制员工? Y Y N N 严重过失? Y
N Y N 过失?
N
Y N Y 扣年终风险金的4%
√ 扣年终风险金的2%
√
扣当月薪资的8%
√ 扣当月薪资的4%
√
测试用例: 员工 是否为年薪制员工 是否严重过失 是否过失 期望结果 张全蛋 是 是 否 扣年终风险金
的4%
王尼玛 是 否 是 扣年终风险金的2%
赵铁柱 否 是 否 扣当月薪资的8%
李小花
否
否
是
扣当月薪资的4%
因果图法:1:年薪制员工 1:非年薪制员工 2:严重过失 3:过失
e1:扣年终风险金的4% e2:扣年终风险金的2% e3:扣当月薪资的8% e4扣当月薪资的4%
~
测试用例同上
题目二: 判定表法:
条件1用户名是否为空
1 e1
e2 e3 e4 I1 2
3 E
条件2密码是否为空
条件3用户名是否非法
条件4密码是否非法
条件5用户名是否正确
条件6密码是否正确
用户名是否为
空Y --- N N N N N
密码是否为空--- Y N N N N N
N
用户名是否非
法--- --- N --- N N
密码是否非法--- --- --- N N N N
Y
用户名是否正
确--- --- --- --- N ---
Y
密码是否正确---
--- --- --- --- N
用户和密码不
√√
允许为空
输入非法√√
用户名和密码
√
输入错误,用
户名和密码清
空
√
用户名和密码
输入错误”,
用户名保留,
密码清空
正常登陆√
测试用例
用户名密码期望结果
空?用户和密码不允许为空?空用户和密码不允许为空Admi1 不为空输入非法
不为空123ad 输入非法
Admin 123456 用户名和密码输入错误,
用户名和密码清空admin 12345 用户名和密码输入错
误”,用户名保留,密码
清空
admin 123456
正常登陆
因果图法
1 用户名为空 1 用户名不为空 2密码为空 2密码不为空
3用户名输入不合法 3 用户名输入合法 4密码输入不合法 4密码输入合法
5.用户名输入不正确 5,用户名输入正确 6 密码输入不正确 6密码输入正确 A 用户和密码不允许为空 B 输入非法
C 用户名和密码输入错误,用户名和密码清空
D 用户名和密码输入错误”,用户名保留,密码清空
E 正常登录
Q1 输入都不为空Q2 输入都合法Q3 输入都正确 ~
~ ~ ~
~
~
~
1
I1
2
I2
3 I3
4 I4
5
I5
6
I6
A
B
C
D
E
Q1 Q1 Q1 E E E
E。