第5次实验等价类划分测试

合集下载

黑盒测试法——等价类划分法

黑盒测试法——等价类划分法

⿊盒测试法——等价类划分法实验⽬的:1.掌握等价类划分的⽅法1. 掌握按等价类⽅法设计测试⽤例实验内容:1、请⽤等价类划分法为三⾓形问题划分等价类,并设计相应的测试⽤例,测试下⾯三⾓形问题程序,找出缺陷并改正,给出缺陷报告。

2、三⾓形问题:输⼊3个整数a 、b 、c ,分别作为三⾓形的3条边,通过程序判断由3条边构成的三⾓形的类型为等边三⾓形、等腰三⾓形、⼀般三⾓形或者3条边不构成三⾓形。

3、⽅案设计输⼊三条边a 、b 、c 必须满⾜以下条件:条件1: 1≤a≤100条件2: 1≤b≤100条件3: 1≤c≤100条件4: a <b +c条件5: b <a +c条件6: c <a +b如果输⼊值a 、b 、c 满⾜条件1、2、3,则输出下列四种情况之⼀:(1)如果不同时满⾜条件4、5、6,则程序输出“不构成三⾓形”。

(2)如果3条边相等,则程序输出为“等边三⾓形”。

(3)如果恰好有2条边相等,则程序输出为“等腰三⾓形”。

(4)如果3条边都不相等,则程序输出为“⼀般三⾓形”。

划分等价类输⼊条件输⼊三个整数 有效等价类 ⽆效等价类1、 整数2、 3个整数3、 ⾮0整数13、⼀边为⾮整数14、两边为⾮整数15、三遍为⾮整数16、数字个数⼩于317、数字个数⼤于318、⼀边为019、两边为020、三遍为021、⼀边⼩022、两边⼩于0 3、⾮0整数4、正数22、两边⼩于023、三边⼩于024、⼀边⼤于10025、两边⼤于100、三边⼤于100输出条件、 a+c>b、 b+c>a、b+c<=a、c+a<=b 、 a=b且满⾜5、 b=c且满⾜7、c=a且满⾜611、a=b=c12、不满⾜,6,7中的⼀个等价类划分测试⽤例等价类划分测试⽤例测试⽤例编号等价类条件测试⽤例预期结果a b c d11,2,3,4,5,6,7234 普通三⾓形21,2,3,4,5,6,7,8223 等腰三⾓形31,2,3,4,5,6,7,9232 等腰三⾓形41,2,3,4,5,6,7,10322 等腰三⾓形51,2,3,4,5,6,7,11222 等边三⾓形61,2,3,4,12123 不构成三⾓形71,2,3,4,5,6,7,13 2.134 不构成三⾓形(未测试) 81,2,3,4,5,6,8,14 2.1 2.13 不构成三⾓形(未测试) 91,2,3,4,5,6,9,15 2.1 2.1 2.1 不构成三⾓形(未测试) 101,3,4,,1623null 不构成三⾓形(未测试) 111,2,3,172343不构成三⾓形(未测试) 121,2,18023 抛出异常131,2,19002 抛出异常141,2,20000 抛出异常151,2,3,21-122 抛出异常161,2,3,22-1-22 抛出异常171,2,3,23-2-2-2 抛出异常181,2,3,4,241119999 抛出异常191,2,3,4,2511111199 抛出异常201,2,3,4,26111111111 抛出异常211,2,3,4,27235 不构成三⾓形221,2,3,4,28523 不构成三⾓形231,2,3,4,29253 不构成三⾓形。

黑盒测试《等价类划分》-有这篇就够了

黑盒测试《等价类划分》-有这篇就够了

⿊盒测试《等价类划分》-有这篇就够了⼤家好,我是吉提。

在疫情消停不下来的2020年,既然不好跳槽,不好涨薪,也不好发挥创造⼒,那么就沉下⼼来,跟我⼀起,巩固软件测试基础知识。

积攒⼒量,蓄势待发。

本⽂将会详细描述“等价类划分",它是⿊盒测试最基本的⽤例设计⽅法。

⽬录:1. 定义(What)2. 为什么使⽤该⽅法?(Why)3. 如何划分等价类?(How)4. 设计测试⽤例5. 使⽤场景6. 根据测试⽤例的完整性划分7. 等价类划分注意事项8. 等价类划分的优缺点9. 实战演练1. 定义(What)等价类划分法是⼀种典型的,并且是最基础的⿊盒测试⽤例设计⽅法。

采⽤等价类划分法时,完全不⽤考虑程序内部结构,设计测试⽤例的唯⼀依据是软件需求规格说明书。

所谓等价类,是输⼊条件的⼀个⼦集合,该输⼊集合中的数据对于揭⽰程序中的错误是等价的。

从每⼀个⼦集中选取少数具有代表性的数据,从⽽⽣成测试⽤例。

等价类⼜分为有效等价类和⽆效等价类。

有效等价类代表对程序有效的输⼊,⽽⽆效等价类则是其他任何可能的输⼊(即不正确的输⼊值)。

有效等价类和⽆效等价类都是使⽤等价类划分法设计⽤例时所必须的,因为被测程序若是正确的,就应该既能接受有效的输⼊,也能接受⽆效输⼊的考验。

2. 为什么使⽤该⽅法?(Why)理想的测试,是从所有可能的输⼊中找出某个⼩的⼦集,并且是可能发现错误最多的⼦集。

即:使⽤最少的测试数据,达到最好的测试质量(最⾼性价⽐)。

这个⼦集如何确定?可以借助测试⽤例的两个特性:测试⽤例数量达到最少;某个测试⽤例要能覆盖⼤部分其他测试⽤例。

第⼆个特性就暗⽰我们,应该尽量将程序输⼊范围进⾏划分,将其划分为有限数量的等价类,这样就可以合理地假设测试每个等价类的代表性数据等同于测试该类的其他任何数据。

这两种特性形成了称为等价类划分的⿊盒测试⽅法。

因此,等价类划分是⿊盒测试最基本的⽅法。

3. 如何划分等价类?(How)在给定了输⼊或外部条件之后,等价类的划分原则如下:如果输⼊条件规定了⼀个取值范围(例如,“数量可以是1到999”),那么就应确定出⼀个有效等价类(1<数量<999),以及两个⽆效等价类(数量<1,数量>999)。

等价类划分法测试用例

等价类划分法测试用例

等价类划分法测试用例等价类划分法是一种常用的测试用例设计方法,它将输入数据分成若干等价类,每个等价类中的数据在被测试程序中的处理是一样的。

通过设计测试用例覆盖不同的等价类,可以最大程度地覆盖被测程序的各种情况,提高测试效率。

在设计测试用例时,通常会考虑以下几个方面:1.有效等价类:每个有效等价类包含被测试程序能够接受的有效输入数据。

例如,对于一个需要输入年龄的程序,可以将年龄从0到150划分为一个有效等价类,因为这个范围内的年龄都是可接受的有效输入。

2.无效等价类:每个无效等价类包含被测试程序不能接受的输入数据。

例如,对于一个需要输入性别的程序,将性别划分为男和女两个有效等价类,其他任何值都可以认为是一个无效等价类。

3.边界等价类:边界等价类是指等价类的边界情况,通常会包含边界值以及边界值的前后一个值。

例如,对于一个需要输入年龄的程序,边界等价类可以是(-1, 0, 1),(149, 150, 151),这样可以覆盖到边界情况。

下面我将以一个简单的登录系统为例,来详细介绍等价类划分法的测试用例设计。

假设登录系统需要输入用户名和密码,验证登录是否成功。

1.有效等价类:-用户名和密码都是有效的:例如,用户名为"admin",密码为"123456"。

-用户名是有效的,但密码是无效的:例如,用户名为"admin",密码为"abcde"。

-用户名是无效的,但密码是有效的:例如,用户名为"guest",密码为"123456"。

2.无效等价类:-用户名和密码都是无效的:例如,用户名为"abcde",密码为"abcde"。

-用户名是无效的,密码是有效的:例如,用户名为"abcde",密码为"123456"。

-用户名是有效的,密码是无效的:例如,用户名为"admin",密码为"abcde"。

等价类划分实验指导书

等价类划分实验指导书

等价类划分实验指导书1.实验目的掌握等价类划分的测试用例设计方法。

2.实验环境硬件:PC机操作系统:Windows测试工具:TestPlatform3.实验内容1.实验一:登录功能等价类划分在各种输入条件下,测试程序的登录对话框功能。

用户名和密码的规则如下:1)用户名长度为6至10位(含6位和10位)2)用户名由字符(a-z、A-Z)和数字(0-9)组成3)不能为空、空格和特殊字符4)密码规则同用户名规则2.实验二:三角形程序等价类划分一个程序读入3个整数,把这三个数值看作一个三角形的3条边的长度值。

这个程序要打印出信息,说明这个三角形是不等边的、是等腰的、还是等边的。

针对该程序使用等价类划分法设计测试用例。

4.实验步骤1.使用自己的帐号密码登陆TestPlatform,见下图:2.选中实验对应的项目目录,在项目管理中新增项目,项目标识和项目名称均为“实验名-学生姓名”。

安全设定选择项目仅对特定的部门及人员公开,并在“请选择公开的人员”中选择老师对其公开。

见下图:3.选中新建项目下的默认版本,在需求管理中新增需求(如实验一新增的需求为登录)。

见下图:4.在测试设计中切换“测试设计源数据”为“需求”,则可以看到新增的需求项。

见下图:5.选中新增的需求项,选择域测试法设计用例。

见下图:6.在参数管理中增加输入,选中输入增加等价类,选中等价类增加样点(常用值或者边界值)。

见下图:7.勾选需要使用的输入,点击下一步。

见下图:8.分析结果中将不需要的测试用例前的勾去除,点击完成。

见下图:9.在测试用例列表中可以看到刚才设计好的测试用例。

见下图:5.实验要求1.等价类划分要完整,不能只考虑一个有效等价类和一个无效等价类。

2.选取样点时多从用户实际使用角度考虑常用值和边界值。

等价类划分法测试用例的设计与实现

等价类划分法测试用例的设计与实现
引用:
[1] 范明红,浦云明,汪志华 . 等价类测试与划分研究 [J]. 计算机技术与发展 .2009(07).
[2] 浦云明,陈黎震 . 基于划分的等价类测试 [J]. 计算机工 程与设计 .2009(19).
[3] 李刚,姚红 . 软件测试用例设计的方法与实现 [J]. 大众 科技 .2012(01).
b、设计有效等价类需要的测试用例。为覆盖①、⑤、⑧三 个有效等价类,可以设计一个共用的测试用例 ;
c、为每一个无效等价类至少设计一个测试用例。 实例 4 保险公司计算保费费率的程序 某保险公司的人寿保险的保费计算方式为 :投保额 × 保险 费率其中,保险费率依点数不同而有别,10 点及 10 点以上保险 费率为 0.6%,10 点以下保险费率为 0.1% ;而点数又是由投保人 的年龄、性别、婚姻状况和抚养人数来决定。 a、分析程序规格说明中给出和隐含的对输入条件的要求, 列出等价类表(包括有效等价类和无效等价类)。 ■年龄 :一位或两位非零整数,值的有效范围为 1~99 ■性别 :一位英文字符,只能取值‘M’或’F’ ■婚姻 :字符,只能取值‘已婚’或‘未婚’ ■抚养人数 :空白或一位非零整数(1~9) ■点数 :一位或两位非零整数,值的范围为 1~99 b、根据(1)中的等价类表,设计能覆盖所有等价类的测试 用例。 4 总结 本文讨论了如何使用等价类划分法来设计测试用例。
(1)按照区间划分在输入条件规定了取值范围或值的个数的 情况下,可以确定一个有效等价类和两个无效等价类。
例 :程序输入条件为小于 100 大于 10 的整数 x,则有效等价 类为 10 < x < 100,两个无效等价类为 x ≤ 10 和 x ≥ 100。
(2)按照数值划分在规定了一组输入数据(假设包括 n 个输 入值),并且程序要对每一个输入值分别进行处理的情况下,可 确定 n 个有效等价类(每个值确定一个有效等价类)和一个无效 等价类(所有不允许的输入值的集合)。

等价类划分法来测试

等价类划分法来测试

一、实验目的用等价类划分法、边界值分析法等来测试分析实例。

二、实验内容(一)、将ppt上所讲的三角形例子用程序语言实现,并按照等价类法设计测试用例,并对你的程序进行测试,分析测试结果(按步骤写出完整的过程)。

(二)、实现一个小的计算器程序,只需要完成加、减、乘、除运算,用等价类法设计测试用例,进行测试并分析。

然后假设运算数值的范围在0到100之间,使用边界值法设计测试用例,并测试(按步骤写出完整的过程)。

三、实验环境Windows XP系统、Microsoft Visual Studio 2008四、实验步骤1、三角形:程序:using System;using System.Collections.Generic;using System.Text;namespace ConsoleApplication1{class triangle{public bool tiaojian(double a, double b, double c){if ((a >= 1 & a <= 100) & (b >= 1 & b <= 100) & (c >= 1 & c <= 100)){Console.WriteLine("边的取值没有超出允许范围");if (a + b > c & b + c > a & a + c > b){Console.WriteLine("三边满足组成三角形");return true;}else{Console.WriteLine("非三角形");return false;}}else{if (a < 1 | a > 100)Console.WriteLine("a边的取值超出允许范围");}else if (b < 1 | b > 100){Console.WriteLine("b边的取值超出允许范围");}else if (c < 1 | c > 100){Console.WriteLine("c边的取值超出允许范围");}return false;}}static void Main(string[] args){Program gh = new Program();double a = 0, b = 0, c = 0;Console.WriteLine("请输入三角形的边长a");a = Convert.ToDouble(Console.ReadLine());Console.WriteLine("请输入三角形的边长b");b = Convert.ToDouble(Console.ReadLine());Console.WriteLine("请输入三角形的边长c");c = Convert.ToDouble(Console.ReadLine());if (gh.tiaojian(a, b, c)){if (a == b & a == c & b == c){Console.WriteLine("等边三角形");}else if ((a == b & b != c) | (a == c & c != a) | (b == c & a != b)){if (((a * a) == (b * b + c * c)) | ((b * b) == (a * a + c * c)) | ((c * c) == (b * b + a * a))){Console.WriteLine("等腰直角三角形");}else{Console.WriteLine("等腰三角形");}}else if (((a * a) == (b * b + c * c)) | ((b * b) == (a * a + c * c)) | ((c * c) == (b * b + a * a)))Console.WriteLine("直角三角形"); }else{Console.WriteLine("一般三角形"); }}Console.ReadLine();}}}等价类划分为以下几类:1、输入数据小于0或大于1002、输入数据不符合两边之和大于第三边3、输入数据符合三角形2、计算器界面:程序:public partial class FrmCalculator : Form{public FrmCalculator(){InitializeComponent();}private bool isDouble = false;//是否有小数private bool isSign = false;//运算符是否输入private bool isEnableBackSpace = false;//退格是否可用private bool isResult = false;//得到结果状态private string sencond;//第二个数private string first;//第一个数private string sign;//运算符private bool isCalcu = false;//是否使用运算符进行计算private bool isMinus = false;//是否为负数private bool isException = false;//是否抛异常private bool Switch = false;private Thread timeThr;//时间线程private bool thrIsStart = false;//线程开关//事件0-9private void button1_Click(object sender, EventArgs e) {if (Switch){if (isException){return;}Control c = (Control)sender;//如果当前操作数未点小数点则其最后一位必定为.if (!isDouble){//判断当前显示框内是否为初始值0.//截取除.外的字符串赋给txtDisthis.txtDis.Text = this.txtDis.Text.Substring(0, this.txtDis.Text.Length - 1);//如果txtDis为0 则为初始值将其清空if (this.txtDis.Text == "0")this.txtDis.Text = "";if (!isSign)//当前未输入运算符{//将但前字符串与原有字符串累加最后加.this.txtDis.Text += c.Text + ".";}else//已输入运算符{//将当前输入字符串后加. 直接赋值给txtDisthis.txtDis.Text = c.Text + ".";//将运算符标志位置成falsethis.isSign = false;//现在可以计算结果了this.isCalcu = true;}}else//当前操作数有小数点{if (!isSign)//当前未输入运算符{//将当前字符串与原字符串累加this.txtDis.Text += c.Text;}else//已输入运算符{//将当前字符串与原字符串累加this.txtDis.Text = "0." + c.Text;//将运算符标志位置成falsethis.isSign = false;//现在可以计算结果了this.isCalcu = true;}}this.isEnableBackSpace = true;}else{this.button24.Focus();}}//Cprivate void button11_Click(object sender, EventArgs e) {if (Switch){//调用清空方法Clear();}else{this.button24.Focus();}}//.private void button15_Click(object sender, EventArgs e) {if (Switch){if (isException){return;}//判断当前是否为小数if (!isDouble)isDouble = true;//打开退格开关this.isEnableBackSpace = true;}else{this.button24.Focus();}}//BackSpaceprivate void button10_Click(object sender, EventArgs e) {if (Switch){if (isException){return;}//退格开关打开if (this.isEnableBackSpace){//如果当前为整数if (!isDouble){//包括后面一位.和要减去的数字固减2 若等于"" 则为空值为0.if (this.txtDis.Text.Substring(0, this.txtDis.Text.Length - 2) == "") {this.txtDis.Text = "0.";}else{this.txtDis.Text = this.txtDis.Text.Substring(0,this.txtDis.Text.Length - 2) + ".";}}else{//为小数减一位this.txtDis.Text = this.txtDis.Text.Substring(0,this.txtDis.Text.Length - 1);//若不包含小数点if (!this.txtDis.Text.Contains(".")){//减到已成为整数后加.this.txtDis.Text += ".";//小数开关关闭isDouble = false;}}}}else{this.button24.Focus();}}private void btnChu_Click(object sender, EventArgs e){if (Switch){if (isException){return;}//拆箱Control c = (Control)sender;if (isCalcu)//如果是当前已经点击过运算符后又点击数字会打开运算符计算开关{//如果你再点运算符 isCalcu为true 表示可以计算isCalcu = false;//将结果标志位置成false 否则当前txtDis值无法赋值到sencondisResult = false;//调用方法Calcu();}//字符串处理//为整数甩掉最后一位.赋值小数则原值赋值if (!this.isDouble)this.first = this.txtDis.Text.Substring(0, this.txtDis.Text.Length - 1);elsethis.first = this.txtDis.Text;//运算符赋值sign = c.Text;//运算符标志位置成truethis.isSign = true;//小数点标志位支撑falsethis.isDouble = false;//退格开关关闭this.isEnableBackSpace = false;//结果开关关闭this.isResult = false;}else{this.button24.Focus();}}private void button14_Click(object sender, EventArgs e){if (Switch){if (isException){return;}//调用方法Calcu();//结果开关打开固定sencond值this.isResult = true;//相当于点了运算符计算结果isCalcu = false;}else{this.button24.Focus();}}private void Calcu(){//没有计算结果if (!this.isResult){//如果为整数去掉最后一位.if (!this.isDouble){this.sencond = this.txtDis.Text.Substring(0, this.txtDis.Text.Length - 1); }else{this.sencond = this.txtDis.Text;}}try{switch (this.sign){case"+":this.txtDis.Text = ((double.Parse(this.first)) +(double.Parse(this.sencond))).ToString();break;case"-":this.txtDis.Text = ((double.Parse(this.first)) -(double.Parse(this.sencond))).ToString();break;case"*":this.txtDis.Text = ((double.Parse(this.first)) *(double.Parse(this.sencond))).ToString();break;case"/":if (int.Parse(this.sencond) == 0){throw new MyException("除数不能为0.");}this.txtDis.Text = ((double.Parse(this.first)) /(double.Parse(this.sencond))).ToString();break;default:break;}}catch (MyException ex){this.txtDis.Text = ex.Message;isException = true;}catch (Exception ex){this.txtDis.Text = ex.Message;isException = true;}//结果不包含小数点则为整数if (!this.txtDis.Text.Contains(".")){//后加.this.txtDis.Text += ".";this.first = this.txtDis.Text.Substring(0, this.txtDis.Text.Length - 1);this.isDouble = false;}else{this.first = this.txtDis.Text;this.isDouble = true;}this.isSign = true;this.isEnableBackSpace = false;}public void Clear(){this.txtDis.Text = "0.";this.isSign = false;this.isResult = false;this.isEnableBackSpace = false;this.isDouble = false;this.isCalcu = false;this.isMinus = false;this.first = null;this.sencond = null;this.sign = null;isException = false;}//CEprivate void button12_Click(object sender, EventArgs e) {if (Switch){if (!isResult){if (this.first != null){if (!this.first.Contains(".")){this.txtDis.Text = this.first + "."; }if (this.first.Length != 0){this.txtDis.Text = this.first;}else{this.txtDis.Text = "0.";}this.isCalcu = false;}else{Clear();}}else{Clear();}}else{this.button24.Focus();}}private void button17_Click(object sender, EventArgs e){if (Switch){if (isException){return;}if (!isMinus){if (this.txtDis.Text.Length == 2 && this.txtDis.Text.Substring(0,this.txtDis.Text.Length - 1) == "0"){if (isDouble){this.txtDis.Text = "-" + this.txtDis.Text;isMinus = true;}}else{this.txtDis.Text = "-" + this.txtDis.Text;isMinus = true;}}else{this.txtDis.Text = this.txtDis.Text.Substring(1, this.txtDis.Text.Length - 1);isMinus = false;}}else{this.button24.Focus();}}//开关private void button24_Click(object sender, EventArgs e){if (this.button24.Text == "ON"){thrIsStart = false;this.button24.Text = "OFF";Clear();Switch = true;}else{this.button24.Text = "ON";Switch = false;ThrStart();}}private void ThrStart(){timeThr = new Thread(new ThreadStart(DisTime));thrIsStart = true;timeThr.Start();}private void DisTime(){while (thrIsStart){this.txtDis.Text = DateTime.Now.ToString();Thread.Sleep(1000);}}private void Form1_Load(object sender, EventArgs e){ThrStart();Control.CheckForIllegalCrossThreadCalls = false;}private void Form1_FormClosing(object sender, FormClosingEventArgs e) {thrIsStart = false;}private void FrmCalculator_KeyPress(object sender, KeyPressEventArgs e) {if (Switch){// Control c = (Control)sender;if (e.KeyChar >= '0' && e.KeyChar <= '9'){if (isException){return;}//如果当前操作数未点小数点则其最后一位必定为.if (!isDouble){//判断当前显示框内是否为初始值0.//截取除.外的字符串赋给txtDisthis.txtDis.Text = this.txtDis.Text.Substring(0, this.txtDis.Text.Length - 1);//如果txtDis为0 则为初始值将其清空if (this.txtDis.Text == "0")this.txtDis.Text = "";if (!isSign)//当前未输入运算符{//将但前字符串与原有字符串累加最后加.this.txtDis.Text += e.KeyChar.ToString() + "."; }else//已输入运算符{//将当前输入字符串后加. 直接赋值给txtDisthis.txtDis.Text = e.KeyChar.ToString() + ".";//将运算符标志位置成falsethis.isSign = false;//现在可以计算结果了this.isCalcu = true;}}else//当前操作数有小数点{if (!isSign)//当前未输入运算符{//将当前字符串与原字符串累加this.txtDis.Text += e.KeyChar.ToString();}else//已输入运算符{//将当前字符串与原字符串累加this.txtDis.Text = "0." + e.KeyChar.ToString();//将运算符标志位置成falsethis.isSign = false;//现在可以计算结果了this.isCalcu = true;}}this.isEnableBackSpace = true;}else if (e.KeyChar == '.'){this.button15.PerformClick();}else if (e.KeyChar == '+' || e.KeyChar == '-' || e.KeyChar == '*' || e.KeyChar == '/'){if (isException){return;}if (isCalcu)//如果是当前已经点击过运算符后又点击数字会打开运算符计算开关 {//如果你再点运算符 isCalcu为true 表示可以计算isCalcu = false;//将结果标志位置成false 否则当前txtDis值无法赋值到sencondisResult = false;//调用方法Calcu();}//字符串处理//为整数甩掉最后一位.赋值小数则原值赋值if (!this.isDouble)this.first = this.txtDis.Text.Substring(0, this.txtDis.Text.Length - 1);elsethis.first = this.txtDis.Text;//运算符赋值sign = e.KeyChar.ToString();//运算符标志位置成truethis.isSign = true;//小数点标志位支撑falsethis.isDouble = false;//退格开关关闭this.isEnableBackSpace = false;//结果开关关闭this.isResult = false;}else if (e.KeyChar == 13){this.button14.PerformClick();}else if (e.KeyChar == 8){this.button11.PerformClick();}this.button14.Focus();}else{this.button24.Focus();}if (e.KeyChar == 27){Application.Exit();}1. 等价类等价类1: Integer(整数)等价类2: Decimal fraction(小数)等价类3: Negative(负数)等价类4: Invalid input(无效输入)结果:整型,加:,减:,乘:,除。

等价划分类实验报告

等价划分类实验报告

一、实验目的1. 理解等价划分类的概念和原理。

2. 掌握等价划分类在黑盒测试中的应用。

3. 学会使用等价划分类方法设计测试用例。

二、实验内容本次实验以一个简单的学生信息管理系统为例,通过等价划分类方法设计测试用例,并验证系统功能。

三、实验步骤1. 分析系统需求学生信息管理系统主要功能包括:学生信息录入、查询、修改和删除。

其中,学生信息包括姓名、学号、性别、年龄、班级等。

2. 划分等价类(1)有效等价类:姓名:姓名为空、姓名过长、姓名符合规范。

学号:学号为空、学号过长、学号符合规范。

性别:性别为空、性别输入不正确、性别输入正确(男、女)。

年龄:年龄为空、年龄输入不正确、年龄输入正确(整数)。

班级:班级为空、班级过长、班级符合规范。

(2)无效等价类:姓名:姓名为数字、姓名包含特殊字符。

学号:学号包含字母、学号包含特殊字符。

性别:性别为数字、性别包含特殊字符。

年龄:年龄为负数、年龄为小数。

班级:班级包含数字、班级包含特殊字符。

3. 设计测试用例根据等价划分类方法,设计以下测试用例:(1)有效等价类测试用例:用例1:姓名为“张三”,学号为“******”,性别为“男”,年龄为“20”,班级为“A班”。

用例2:姓名为“李四”,学号为“******”,性别为“女”,年龄为“21”,班级为“B班”。

(2)无效等价类测试用例:用例3:姓名为“123”,学号为“abcdef”,性别为“123”,年龄为“-1”,班级为“ABC”。

4. 执行测试按照设计的测试用例,对系统进行测试。

测试过程中,重点关注以下方面:(1)功能测试:验证系统各项功能是否正常。

(2)界面测试:检查界面布局、样式等是否符合设计要求。

(3)性能测试:测试系统响应速度、资源占用等性能指标。

5. 分析测试结果(1)用例1、用例2测试通过,说明系统对学生信息录入、查询、修改和删除功能的支持正常。

(2)用例3测试失败,说明系统在处理无效输入时存在缺陷。

四、实验总结通过本次实验,我们了解了等价划分类的概念和原理,掌握了在黑盒测试中应用等价划分类方法设计测试用例的技巧。

等价类划分例题

等价类划分例题

;T0l)D.R$@ e7b9j0S s N T8l S1i-O2Z0 说明:本系统的单元测试主要以单个单元内部的消息传递和功能实现为主。

测试方法为等价类划分法。

51Testing软件测试网 t p D a;V { g&K"|1.新用户注册页面:{ f Y5d0\ _ P;E |/@ a"\0数据项取值:51Testing软件测试网)a%t+c.x x,w+~USER NAME:长度为3-19 ;以字母开头;非空。

(没用)51Testing软件测试网/y&v u |4Y)Q LE H-{ 姓名:非空。

51Testing软件测试网 M%T-W)h7l.z.\%{ ~密码:非空。

U h)d ` d C*I:} n0确认密码:值和密码值相同。

H+Y K Q"{ f0s p0出生年份:年——四位数字;月——1-12;日——1-31。

51Testing软件测试网0O [ R-`%` }#Z9L4D u+k0B其余项:不要求。

51Testing软件测试网 \ R%[+rq b%s"C G等价类的划分:等价类表。

%u D n9F.C3V s0数据项有效等价类无效等价类;U9s W K W0USER NAME (1)长3-19 ;(2)以字母开头; (1)长度<3;(2)非字母开头(3)长度>19 51Testing软件测试网&r2s.h9r B)r G3k)a.n姓名(3)非空(4)为空 51Testing软件测试网-W.W A ]+F } }!| P密码(4)非空(5)为空 51Testing软件测试网,\ G V f&m K2Z确认密码(5)值和密码值相同(6)值和密码值不同 51Testing软件测试网;_ ^ F+V"_ x g出生年份(6)月—1-12;(7)日—1-31(没有列出年份)(7)月日中有字母(分别列出;月日中有非数字符号)(8)月数字为负(零)(9)月数字大于12(10)年数中有字母(有非数字符号,年数在合理范围)(11)日数字为负(零)(12)日数字大于31(判断大月小月)*B0]I W5t!L0其余项(8)都填(9)都不填 51Testing软件测试网? N K(J#@0R z~*M @ U*q.P s'}6n h"l-_0 51Testing软件测试网 X;X#h;s4j \!w n51Testing软件测试网9Lm A o u h)U F51Testing软件测试网)r%U Rm4f D S/q51Testing软件测试网 SA!O y*s Q o~;h X H,A5L(v0测试用例及结果结果陈述S _\.j2R p0 USER NAME 姓名密码确认密码出生年份其余项所属等价类结果3s$I k P-k7E C k E j0有效等价类 aaaaaa aaaaaa aaaaaa aaaaaa 1977.8.22 空(1)—(7),(9) Y 51Testing软件测试网4l7q z:t'U-Q*gTttttt Tttttt tttttt Tttttt 1977.8.22 非空(1)—(8) Y)L/^9U$Z x c/T0无效等价类 t tttt tttt tttt 1972.8.22 (1) Y%^(f Q T e T:S0 qqqqqqqqqqdfasdfasdfasdfadfasdfad tttt tttt Tttt 1977.8.22 (3) NT6i { w I&P U0 111111 tttt tttt tttt 1977.8.22 (2) 提示不符)Bb I _ S m(y m0 zzzz 空 zzzz zzzz 1977.8.23 (4) Y&C;| w)R q.Y ? @$A b0 zzzz zzzz 空 zzzz 1977.8.22 (5) Y 51Testing软件测试网v x'N3@ | ]&E Wzzzz zzzz zzzz tttt 1977.8.22 (6) YZ8z X M%z0S;\0 ssss ssss ssss ssss 19a7.8.22 (10) Y 51Testing软件测试网} s ?1X { p6Dssss ssss ssss ssss 1977.8a.22 (7) N*Q m6J W ?:C(y v n j0G0 ssss ssss ssss ssss 1977.8.2a (7) N 51Testing软件测试网 X-P:w Q/S*S c+?ssss ssss ssss ssss 1977.-1.22 (8) YO o n o W0 ssss ssss ssss ssss 1977.81.22 (9) Y!L6x3e&R D _-NB @)v0 ssss ssss ssss ssss 1977.8.-2 tt (11) Y 51Testing软件测试网 a b l F \ J$c ssss ssss ssss ssss 1977.8.55 (12) Y"{ | a tm T y2x0 E A,T Vr02.忘记密码部分0N-u c#G sw E [V6j0数据项取值51Testing软件测试网 b3t U0y q0v k'r z登录用户名:已存在的用户名{3N }0u t%W7k o)?*^0用户的回答:和注册值相同d$F @ J)q8N0密码:>=551Testing软件测试网$\ Ru k.] h!q o ?'T \确认密码:值和密码值相同51Testing软件测试网8| Y K7F T;i1l2p P9| V等价类的划分51Testing软件测试网6b c ` B!G x9l数据项有效等价类无效等价类 51Testing软件测试网A R!o R1k N h登录用户名 (1)已存在 (1)不存在(是否正确)? b4G*B l2c0用户的回答(2)和注册值相同(2)和注册值不同 51Testing软件测试网 o:p z:w \ T.n U 密码(3)>=5 (3)<58q P'k W)D0A\ T z0密码确认 (4)值和密码值相同 (4)和密码值不同 u d$X r~-U VR V$j6`051Testing软件测试网-|-t:l'P G U r1K)i测试用例及结果结果陈述51Testing软件测试网L.| Y"e Q F1} Q V&c lw登录用户名用户的回答密码密码确认所属等价类结果r1R-u6i#A2a r0有效等价类 ttttt aaaaa aaaaa (1)-(4) Ys3L!P!A+[&~;N3b0无效等价类 Tttttta (1) Y 51Testing软件测试网 \;^8] t s M ttttt ccc (2) Y 51Testing软件测试网,U S z Z r kttttt aa aa (3) Y 51Testing软件测试网8K Q!I e9F c6n u+httttt aaaaa aaaaa (4) YZ1m `5hc/d0i W2r/J H x z03.登陆页面51Testing软件测试网 U A b1D+u数据项取值|:^3U @x+@;| x ]0用户名:已存在值)F d.g q.F0密码:和注册值相同51Testing软件测试网0K t1b \ re等价类的划分51Testing软件测试网5~ U8J D$k p L I;k)r数据项有效等价类无效等价类 51Testing软件测试网 a1n/p7o a f用户名 (1)已存在 (1)不存在 51Testing软件测试网8V$X-K @ s*Q K密码(2)和注册值相同(2)和注册值不同 51Testing软件测试网1O TD#} | R,]3} qv ` o6D+` t0M Q0测试用例及结果结果陈述t } Y z D$\ ^ u6X _0 用户名密码所属等价类结果S Y1E F {6R ` @ J ^ F-m0有效等价类 ttttt aaaaa (1)-(2) Ya y%kb K8\:M1W0无效等价类 Tttttta aaaaa (1) Y3b h V2u;P O T r8b0 ttttt tttt (2) YS m M |&f,Q6z.I0H P"Z d(d ]04.信箱首页51Testing软件测试网3u!] td a B9C S ~ ~数据项取值K*Q ?$H&l0待创建的文件夹名:不存在的文件夹名51Testing软件测试网!V { q Mh T*K t)K待删除的文件夹名:已存在的文件夹名51Testing软件测试网8x-a ?8B W x I N等价类的划分e ~,D Z)F0数据项有效等价类无效等价类 51Testing软件测试网-z z/o+L"| m待创建的文件夹名 (1) 不存在的文件夹名 (1)已存在(2)空值 51Testing软件测试网 V B/`(L#E3O)] 待删除的文件夹名(2)已存在的文件夹名(3)不存在(4)空值(非文件夹)1} A | A-O$^ m a E M051Testing软件测试网 `0N a5R/p5S测试用例及结果!}9G-n%D Xm0 输入操作所属等价类结果Y Q B \-A V a0有效等价类 Aa 创建(1) Y 51Testing软件测试网 S ? v-P!E Baa 删除(2) Y 51Testing软件测试网 F _)S T9{ [8?#a无效等价类 Aaa(已存在)创建(1) ND4i i PY%l K u0 创建(2) Y (t r{ Z N \ B o D k y0 ttttt 删除(3) NN az @M9h0 删除(4) Yd%`-c H g0c%IK-{ @ U$@05.发邮件3T4l l s @6} p q b(P(o2A0数据项取值7B0U ]C ] Z0收件人:7d*D v N(x o#b0定时发送时间:年——四位数字;月——1-12;日——1-31;51Testing软件测试网 m0a P5A i H*r其余项:不要求51Testing软件测试网$xL2V T.Q i l U-] y操作:寄出,存原稿,存地址薄,加附件,取消F [(a w'F u1V0等价类的划分51Testing软件测试网.E"R3A1M1\数据项有效等价类无效等价类 51Testing软件测试网 J b;Q a7[收件人 (1) 非空寄出(3)非空存原稿(4)非空加入地址薄(5)非空加附件(6)取消为空寄出(9)为空存原稿(10)为空加入地址薄(11)为空加附件51Testing软件测试网+F }-`L a(输入字符不合法) 51Testing软件测试网 ^4Dy m X4j w定时发送时间(2)年——四位数字;月——1-12;日——1-31 (3)月日中有字母(4)月数字为负(5)月数字大于12(6)年数中有字母(7)日数字为负(8)日数字大于31 51Testing软件测试网7D-yb0Qm p其余项(7)都填(8)都不填 51Testing软件测试网'C l O7r u%c(对于有效等价类,所有操作都要列出。

等价类划分法实验报告

等价类划分法实验报告
c不为整数(10)
有两边不为整数
a、b不为整数(11)
a、c不为整数(12)
b、c不为整数(13)
三边均不为整数
a、b、c均不为整数(14)
(2)
三个数
只有两个数
只给a和b两个(15)
只给a和c两个(16)
只给b和c两个(17)
只有一个数
只给a 一个数(18)
只给b一个数(19)
只给c一个数(20)
c2: 1<=b<=200 c5: b<a+c
c3: 1<=c<=200 c6: c<a+b
步骤:
1.分析三角形对输入条件的要求
a)整数
b)3个数
c)非零数
d)正数
e)第三边小于两边之和
f)等腰
g)等边
2.列出等价类并编号
序号
有效等价类
无效等价类
(1)
整数
有一边不为整数
a不为整数(8)
b不为整数(9)
两个数不为正数
a、b不为正数(32)
a、c不为正数(33)
b、c不为正数(34)
三个数不为正数
a、b、c均不为正数(35)
(5)
两边之和大于第三边
两边之和小于第三边
a+b<c(36)
a+c<b(37)
b+c<a(38)
两边之和等于第三边
a+c=b(39)
a+b=c(40)
b+c=a(41)
(6)
等腰
(a=b,b=c,a=c)
a<>b且b<>c (42)
a<>c且c<>b (43)

等价类划分法实验报告

等价类划分法实验报告
两个数不为正数
a、b不为正数(32)
a、c不为正数(33)
b、c不为正数(34)
三个数不为正数
a、b、c均不为正数(35)
(5)
两边之和大于第三边
两边之和小于第三边
a+b<c(36)
a+c<b(37)
b+c<a(38)
两边之和等于第三边
a+c=b(39)
a+b=c(40)
b+c=a(41)
(6)
等腰
三个数以上
给出三个数以上(21)
(3)
非零数
一个数为零
a为零(22)
b为零(23)
c为零(24)
两个数为零
a、b为零(25)
a、c 为零(26)
b、c为零(27)
三个数为零
a、b、c都为零(28)
(4)
正数
(a>0,b>0,c>0)
一个数不为正数
a不为正数(29)
b不为正数(30)
c不为正数(31)
c不为整数(10)
有两边不为整数
a、b不为整数(11)
a、c不为整数(12)
b、c不为整数(13)
三边均不为整数
a、b、c均不为整数(14)
(2)
三个数
只有两个数
只给a和b两个(15)
只给a和c两个(16)
只给b和c两个(17)
一个数(19)
只给c一个数(20)
(文字数量要占到总空白区的70%以上。)
一.
陈述:
三角形问题接受三个整数a、b和c作为输入,用作三角形的边。程序的输出是由这三条边确定的三角形类型:等边三角形、等腰三角形、不等边三角形或非三角形。

如何设计等价类划分法的测试用例

如何设计等价类划分法的测试用例

如何设计等价类划分法的测试用例《如何设计等价类划分法的测试用例》在软件测试中,设计测试用例是非常重要的一步。

等价类划分法是一种常用的测试用例设计方法,它可以帮助测试人员高效地设计出全面的测试用例,以发现潜在的问题和缺陷。

本文将从简单到复杂,由浅入深地探讨如何设计等价类划分法的测试用例,希望能够帮助读者深入理解这一方法。

一、等价类划分法的基本概念等价类划分法是一种黑盒测试设计方法,它将输入数据划分为若干个等价类,然后从每个等价类中选择一部分数据作为测试用例。

这样做的好处是可以减少测试用例的数量,同时保证覆盖了各个等价类。

在设计测试用例时,首先需要了解被测对象的输入条件,然后根据这些输入条件将输入数据划分为若干个等价类,最后从每个等价类中选择代表性的数据作为测试用例。

二、如何设计等价类划分法的测试用例1. 确定输入条件在设计等价类划分法的测试用例之前,首先需要明确被测对象的输入条件。

如果被测对象是一个登录页面,那么输入条件包括用户名、密码等。

在确定输入条件时,需要考虑边界条件、非法输入等情况。

2. 划分等价类根据输入条件,将输入数据划分为若干个等价类。

等价类应该是相同的输入条件下具有相同功能和相同影响的一组数据。

在一个要求输入1~100之间的数字的输入框中,可以将输入数据划分为小于1、1~100、大于100三个等价类。

3. 选择测试用例从每个等价类中选择代表性的数据作为测试用例。

通常情况下,可以选择边界值、典型值、异常值等作为测试用例。

边界值是等价类的边界处的数据,典型值是等价类内部的数据,异常值是不符合输入条件的数据。

选择这些数据作为测试用例,可以有效地发现潜在的问题。

三、个人观点和理解等价类划分法是一种简单而高效的测试用例设计方法,它可以帮助测试人员在有限的资源下设计出全面的测试用例。

在实际工作中,我经常使用等价类划分法来设计测试用例,发现它能够有效地减少重复性的测试工作,提高测试效率。

等价类划分法也能够帮助我更好地理解被测对象的输入条件,从而设计出更有针对性的测试用例。

等价类划分法测试用例设计举例

等价类划分法测试用例设计举例

等价类划分法测试⽤例设计举例⼀、基本概念等价类是指程序输⼊域的⼦集。

等价类划分(Equivalance Partitioning)测试的思想:将程序的输⼊域划分为若⼲个区域(等价类),并在每个等价类中选择⼀个具有代表性的元素⽣成测试⽤例。

该⽅法是常⽤的⿊盒(Blackbox Testing)测试⽤例(Testcase)设计⽅法。

⼀)划分等价类1.有效等价类与⽆效等价类等价类划分可有两种不同的情况:有效等价类和⽆效等价类。

有效等价类是指对于程序的规格说明来说是合理的、有意义的输⼊数据构成的集合,它能检验程序是否可以实现规格说明中所规定的功能需求。

⽆效等价类是指对程序的规格说明是不合理的或⽆意义的输⼊数据所构成的集合,它能检验程序在不符合规则的数据输⼊下,是否会有异常;⽆效等价类⾄少应有⼀个,也可能有多个,视具体情况⽽定。

因此,设计测试⽤例时,要同时考虑这两种等价类。

因为软件不仅要能接收合理的数据,也要能经受意外的考验,这样的测试才能确保软件具有更⾼的可靠性。

2.划分等价类的标准完备测试、避免冗余。

这就要求:集合(程序输⼊域)应划分为互不相交的⼀组⼦集,⽽这些⼦集的并集是整个集合(整个程序输⼊域)。

3.等价类的划分原则(1) 若输⼊条件规定了取值范围或值的个数的情况下,可划分为⼀个有效等价类和两个⽆效等价类;Eg.设置风控指标,其中权重设置范围在[-1000,1000](2) 若输⼊条件为布尔表达式,可划分为⼀真⼀假的有效等价类与⽆效等价类;Eg.设置产品信息,其中产品份额必填(3) 若规定了输⼊数据必须要遵循的原则,可划分为⼀个有效等价类(符合规则)和若⼲个⽆效等价类;Eg.系统的初始资⾦只可输⼊数字(4)若只要求输⼊数据符合某⼏个原则,这时可能存在多个有效类和若⼲个⽆效等价类;Eg. 交易⽤户登录密码只可输⼊数字、字母及部分特殊符号,不能输⼊单/双引号及汉字注:每个有效等价类所对应的⽆效等价类的并集是不符合输⼊原则的数据集合。

测试等价类划分法

测试等价类划分法

测试等价类划分法等价类划分法是软件测试中的一种常用测试方法,它将输入和输出中的数据划分为多个等价类,来表示同一类别的数据对系统行为的影响是相同的。

这种方法可以在测试过程中减少测试用例的数量,提高效率,并确保测试全面覆盖不同的情况。

一、等价类划分法的基本原则1.有效等价类:每个等价类都应该包含有效的数据,即系统能够正确处理的数据。

2.无效等价类:每个等价类都应该包含无效的数据,即系统应该能够正确拒绝处理的数据。

3.边界值等价类:每个等价类都应该包含边界值数据,即系统在处理边界值时的行为应该正确。

二、等价类划分法的步骤1.确定输入和输出:首先需要明确被测试系统的输入和输出是什么,可以通过需求文档或者与开发人员的讨论来获取这些信息。

2.划分等价类:将输入和输出数据划分为若干个等价类,每个等价类表示一类具有相同特征的数据。

3.确定有效等价类:从划分出的等价类中选择一部分具有有效数据的等价类,确保系统能够正确处理这些数据。

4.确定无效等价类:从划分出的等价类中选择一部分具有无效数据的等价类,确保系统能够正确拒绝处理这些数据。

5.确定边界值等价类:从划分出的等价类中选择一部分具有边界值的等价类,确保系统在处理边界值时的行为正确。

6.编写测试用例:根据划分出的等价类,编写对应的测试用例,包括输入数据和期望输出。

7.执行测试用例:执行编写的测试用例,并记录测试结果。

8.分析测试结果:对测试结果进行分析和整理,发现潜在的问题和错误。

三、等价类划分法的案例分析举个例子,假设有一个登录功能的系统,输入包括用户名和密码,输出是登录是否成功。

1.划分等价类:-用户名:有效用户名、无效用户名-密码:有效密码、无效密码2.确定有效等价类:-用户名:有效用户名-密码:有效密码3.确定无效等价类:-用户名:无效用户名-密码:无效密码4.确定边界值等价类:-用户名:无效用户名-密码:有效密码5.编写测试用例:-有效用户名+有效密码:期望结果是登录成功。

等价类划分法含例子

等价类划分法含例子

1.等价类划分法等价类划分是一种典型的黑盒测试方法,使用这一方法时,完全不考虑程序的内部结构,只依据程序的规格说明来设计测试用例。

等价类划分方法把所有可能的输入数据,即程序的输入域划分成若干部分,然后从每一部分中选取少数有代表性的数据做为测试用例。

使用这一方法设计测试用例要经历划分等价类(列出等价类表)和选取测试用例两步。

2.划分等价类:等价类是指某个输入域的子集合。

在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试,因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件就可以用少量代表性的测试数据取得较好的测试结果。

等价类划分可有两种不同的情况:有效等价类和无效等价类。

等价类的划分有两种不同的情况:①有效等价类:是指对于程序的规格说明来说,是合理的,有意义的输入数据构成的集合。

利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。

②无效等价类:是指对于程序的规格说明来说,是不合理的,无意义的输入数据构成的集合。

对于具体的问题,无效等价类至少应有一个,也可能有多个。

在设计测试用例时,要同时考虑有效等价类和无效等价类的设计。

3.划分等价类的标准:1)完备测试、避免冗余;2)划分等价类重要的是:集合的划分,划分为互不相交的一组子集,而子集的并是整个集合;3)并是整个集合:完备性;4)子集互不相交:保证一种形式的无冗余性;5)同一类中标识(选择)一个测试用例,同一等价类中,往往处理相同,相同处理映射到"相同的执行路径".4.划分等价类的原则。

(1) 如果输入条件规定了取值范围,或值的个数,则可以确立一个有效等价类和两个无效等价类。

例如,在程序的规格说明中,对输入条件有一句话:“…… 项数可以从1到999 ……”则有效等价类是“1≤项数≤999”两个无效等价类是“项数<1”或“项数>999”。

测试用例设计(等价类划分,边界值分析)

测试用例设计(等价类划分,边界值分析)

题目:环境:B/S结构内容:后台,一个文本框,要求输入5-100个长度的任意格式的字符串;要求输入的字符可以在前台正确的显示。

请根据需求设计一组测试数据,根据这组测试数据的测试,可以完整把握功能的正常使用。

答案:长度分别为4,5,6的中文字符串——长度为4不通过,其他通过长度分别为50的中文字符串——通过长度分别为99,100,101的中文字符串——长度为101不通过,其他通过长度分别为4,5,6的英文字符串——长度为4不通过,其他通过长度分别为50的英文字符串——通过长度分别为99,100,101的英文字符串——长度为101不通过,其他通过字符串:<’”&&”’>——显示和编辑的时候正常显示字符串:99个空格+“中中中中中中”——通过字符串:“中中中中中中”+ 99个空格——通过另外,我觉得作为软件测试人员,应该打开思路,逆向思维,这样才可以发现更多缺陷。

作为一位功能测试人员,其主要的职能就是进行测试用例的设计,并根据测试用例执行测试,通过全面的测试来验证产品的质量。

因此测试用例也从侧面反映了一个测试人员的测试思路的严密和发散性,要做好功能测试,测试用例的重要性无法忽视。

现将本人设计测试用例的流程和思路进行总结,也方便进行交流和探讨:1)首先要对测试用例的组织结构进行划分如果公司的测试流程还算规范完整的话,在进行需求评审的时候,测试人员就应该根据需求对测试用例的结构进行分类,如果是一个比较大型的管理系统,那么测试用例就可以根据功能模块来进行分类,比如:如果是游戏,就可以根据场景来进行划分,比如:对测试用例的组织结构进行划分的思路,主要根据需求文档的测试切入点来进行参考。

2)根据功能点细致地设计测试用例进行完需求评审后,开发人员会根据需求文档及自己所负责的工作提交自己的设计文档来进行评审,测试人员可以参考设计文档中的内容提取出各个功能模块中的功能点来设计测试用例,如果是管理模块,首先可以将增删查改功能作为第一层功能点,然后再根据必填项非空判断、输入格式验证来作为第二层功能点;如果是报表模块,就可以根据各种查询条件来提取功能点。

三角形问题的三种测试方式边界值测试等价类测试、

三角形问题的三种测试方式边界值测试等价类测试、

三角形问题的三种测试方式边界值测试等价类测试、三角形问题的三种测试方式--边界值测试,等价类测试、决策表测试2010-12-05 15:32一.方法简介1.定义:边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。

通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。

2.与等价划分的区别1)边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。

2)边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。

3.边界值分析方法的考虑:长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。

因此针对各种边界情况设计测试用例,可以查出更多的错误。

使用边界值分析方法设计测试用例,首先应确定边界情况。

通常输入和输出等价类的边界,就是应着重测试的边界情况。

应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。

4.常见的边界值1)对16-bit的整数而言32767和-32768是边界2)屏幕上光标在最左上、最右下位置3)报表的第一行和最后一行4)数组元素的第一个和最后一个5)循环的第0次、第1次和倒数第2次、最后一次5.边界值分析1)边界值分析使用与等价类划分法相同的划分,只是边界值分析假定错误更多地存在于划分的边界上,因此在等价类的边界上以及两侧的情况设计测试用例。

例:测试计算平方根的函数--输入:实数--输出:实数--规格说明:当输入一个0或比0大的数的时候,返回其正平方根;当输入一个小于0的数时,显示错误信息"平方根非法-输入值小于0"并返回0;库函数Print-Line可以用来输出错误信息。

2)等价类划分:I.可以考虑作出如下划分:a、输入(i)0和(ii)=0b、输出(a)=0和(b)Error II.测试用例有两个:a、输入4,输出2。

等价类划分法设计测试用例的步骤

等价类划分法设计测试用例的步骤

等价类划分法设计测试用例的步骤
1. 确定被测系统的功能模块或操作。

2. 确定每个功能模块或操作的输入条件和输出条件。

3. 根据输入条件和输出条件,将每个条件划分为等价类。

4. 确定每个等价类的典型值,即一组典型的输入值。

5. 使用典型值生成测试用例,确保每个等价类都至少包含一个测试用例。

6. 对于边界情况,例如最小和最大值或无效输入,生成额外的测试用例。

7. 针对异常情况和错误处理,生成额外的测试用例。

8. 根据测试用例验证功能模块或操作的正确性和健壮性。

第5次实验等价类划分测试(软件工程)

第5次实验等价类划分测试(软件工程)

软件测试实验报告实验题目:黑盒测试技术之等价类划分测试*名:***学号:**********班级:11计本1指导老师:***一、实验介绍1.实验技术等价类划分是一种典型的、常用的黑盒测试方法,这类方法是把所有可能的输入数据划分成若干个部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。

2.实验对象完成一段程序,要求实现这样的功能。

输入三个整数a,b,c,分别作为三角形的三条边,取值范围为1-100,判断由三条边构成的三角形类型为等边三角形、等腰三角形、一般三角形以及不构成三角形。

判断结果打印输出。

#include<stdio.h>void main(void){int a,b,c,k;printf("请输入三角形的三边长(0-100):");scanf("%d %d %d",&a,&b,&c);if((a>=1&&a<=100)&&(b>=1&&b<=100)&&(c>=1&&c<=100)){if((a+b>c)&&(a+c>b)&&(b+c>a)){if((a==b&&b!=c)||(a==c&&c!=b)||(b==c&&a!=b))k=1;if(a==b&&a==c)k=2;if((a*a+b*b==c*c)||(a*a+c*c==b*b)||(c*c+b*b==a*a))k=3;switch(k){case 1:printf("等腰三角形\n");break;case 2:printf("等边三角形\n");break;case 3:printf("直角三角形\n");break;default:printf("一般三角形\n");break;}}elseprintf("不能构成三角形\n");}elseprintf("警告:无效输入\n");}三、测试用例设计测试用例(要求每个等价类都至少被覆盖一次):三、实验结果四、心得与体会通过本次实验我了解了等价类划分的方法以及等价类的测试方法。

等价类划分练习

等价类划分练习

等价类划分练习等价类划分是一种常用的软件测试方法,它通过将输入数据划分为不同的等价类,从而减少测试用例的数量,提高测试效率。

下面是一个等价类划分练习的例子,以用户登录功能为例。

一、需求分析用户登录功能的需求如下:1.用户必须输入正确的用户名和密码才能登录。

2.用户名和密码不得少于6个字符。

3.密码必须包含至少一个数字、一个大写字母和一个小写字母。

4.用户名和密码不得包含特殊字符。

二、等价类划分根据需求分析,可以列出以下等价类:1.用户名长度不足6个字符:输入长度为1、2、3、4、5个字符的字符串,验证系统是否提示用户名长度不足。

2.密码长度不足6个字符:输入长度为1、2、3、4、5个字符的字符串,验证系统是否提示密码长度不足。

3.密码不满足要求:输入没有数字、大写字母和小写字母的字符串,验证系统是否提示密码必须满足要求。

4.用户名或密码包含特殊字符:输入包含空格、@、#、$、%、^、&、*等特殊字符的字符串,验证系统是否提示用户名和密码不得包含特殊字符。

5.输入正确的用户名和密码:输入符合要求的用户名和密码,验证系统是否允许登录。

三、测试用例设计根据等价类划分,可以设计以下测试用例:1.测试用户名长度不足6个字符的情况,例如:输入长度为1、2、3、4、5个字符的字符串。

2.测试密码长度不足6个字符的情况,例如:输入长度为1、2、3、4、5个字符的字符串。

3.测试密码不满足要求的情况,例如:输入没有数字、大写字母和小写字母的字符串。

4.测试用户名或密码包含特殊字符的情况,例如:输入包含空格、@、#、$、%、^、&、*等特殊字符的字符串。

5.测试输入正确的用户名和密码的情况,例如:输入符合要求的用户名和密码。

四、总结通过等价类划分练习,我们可以了解到这种方法可以帮助我们设计更全面、更高效的测试用例,同时减少测试用例的数量,提高测试效率。

在实际测试中,我们需要根据具体的软件需求和功能来进行等价类划分,设计合理的测试用例,并对每个等价类进行充分的测试,以确保软件的质量和稳定性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件测试实验报告
实验题目:黑盒测试技术之等价类划分测试
姓名:何晓晓
学号:1012210110
班级:10计本1
指导老师:蒋平
一、实验介绍
1.实验技术
等价类划分是一种典型的、常用的黑盒测试方法,这类方法是把所有可能的输入数据划分成若干个部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。

2.实验对象
完成一段程序,要求实现这样的功能。

输入三个整数a,b,c,分别作为三角形的三条边,取值范围为1-100,判断由三条边构成的三角形类型为等边三角形、等腰三角形、一般三角形以及不构成三角形。

判断结果打印输出。

#include<stdio.h>
void main(void)
{
int a,b,c,k;
printf("请输入三角形的三边长(0-100):");
scanf("%d %d %d",&a,&b,&c);
if((a>=1&&a<=100)&&(b>=1&&b<=100)&&(c>=1&&c<=100))
{
if((a+b>c)&&(a+c>b)&&(b+c>a))
{
if((a==b&&b!=c)||(a==c&&c!=b)||(b==c&&a!=b))
k=1;
if(a==b&&a==c)
k=2;
if((a*a+b*b==c*c)||(a*a+c*c==b*b)||(c*c+b*b==a*a))
k=3;
switch(k)
{
case 1:printf("等腰三角形\n");
break;
case 2:printf("等边三角形\n");
break;
case 3:printf("直角三角形\n");
break;
default:printf("一般三角形\n");
break;
}
}
else
printf("不能构成三角形\n");
}
else
printf("警告:无效输入\n");
}
三、测试用例设计
等价类划分如下:
有效等价类编号无效等价类编号
三边满足1-100 1≤a≤100
1≤b≤100
1≤c≤100
1
一边<1 9
两边<110
三边<111
一边>100 12
两边>10013
三边>10014
两边之和大于第三边a+b>c 2 a+b≤c 15 b+c>a 3 b+c≤a 16 a+c>b 4 a+c≤b 17
等腰三角形a=b,a≠c 5 a=c,a≠b 6 b=c,a≠b 7
等边三角形a=b,b=c,c=a8
测试用例(要求每个等价类都至少被覆盖一次):
测试用例{a,b,c} 覆盖等价类号预期输出{0,10,20} 9 警告:无效输出
{0,0,10} 10 警告:无效输出
{10,30,15} 9 不能构成三角形
{10,20,25} 3 一般三角形
{20,20,30} 5 等腰三角形
{30,40,50} 2 直角三角形
{30,30,30} 8 等边三角形三、实验结果
输入输出
10,30,15 不能构成三角形
0,10,20 警告:无效输出
20,20,30 等腰三角形
30,30,30 等边三角形
四、心得与体会
通过本次实验我了解了等价类划分的方法以及等价类的测试方法。

相关文档
最新文档