软件测试--等价类划分和判定表判断三角形[1]

软件测试--等价类划分和判定表判断三角形[1]
软件测试--等价类划分和判定表判断三角形[1]

软件测试实验报告

课程名称:软件测试

实验项目:判断三角形

专业班级:计091

姓名:叶修拓

学号:0913023001

一.实验题目

输入三个整数作为三边的边长构成三角形,分别用等价类方法和判定表方法构造测试用

例进行测试(注:三角形可能为一般三角形,等腰三角形,等边三角形)二.设计程序代码如下:

#include

#include

using namespace std;

void main(){

cout<<"输入三边边长:"<

int a,b,c;

cin>>a;

cin>>b;

cin>>c;

if(a+b>c&&a+c>b&&b+c>a&&fabs(a-b)

cout<<"可构成等边三角形:"<

}

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

cout<<"可构成等腰三角形"<

}

else

{

cout << "可构成普通三角形" << endl;

}

}

else cout<<"不能构成三角形"<

}

三.等价类划分:

(1)划分等价类:

四:判定表方法

软件测试三角形问题

辽宁工程技术大学上机实验报告

一?实验步骤 1) 1. 打开c与C++程序糸统平台,编与有关二角形冋题的相关程序。 2. 对程序进行语句覆盖测试。 3. 对程序进行判定覆盖测试。 4. 对程序进行分支条件测试。 5. 对程序进行分支条件组合测试。 6. 进行用例设计。选择分支覆盖测试的方法进行测试。 二?程序分析 1.程序代码 #in clude<> 2) main() 3) { 4) int A,B,C; 实验5) printf(" 请输入三角形的三条边:"); 分析6) sca nf("%d %d %d",&A,&B,&C); 7) if((A>0&&B>0&&C>0)&&( (A+B)>C&&(A+C)>B&&(B+C)>A)) 8) { 9) if(A==B&&A==C) 10) printf(" 该三角形是等边三角形!\n"); 11) else 12) if((A==B&&B!=C)||(B==C&&B!=A)||(A==C&&A!=B)) 13) printf(" 该三角形是等腰三角形!\n"); 14) else 15) printf(" 该三角形是普通三角形!\n"); 16) } 17) else 18) { 19) prin tf("ERROR!\n"); 20) return mai n();

22) } 2. 程序流程图 根据代码绘制程序流程图,各边编号为 a , b , c , d , e , f 。如图1 3. 分析 程序主要是根据三个整数a , b , c ,构成一个三角形判定三角形的类 型为等边三角形、等腰三角形、普通三角形还是构成不了三角形。 要求输入的三个整数都是正数,三边都是大于等于 1,小于等于100, 且a+b>c,a+c>b,b+c>a,才能进行以后的判断。否则输出“ ERROR!,返回 主程序。重新输入三个整数 a , b , c 。然后判断三角形的类型。如果 a=b

测试用例编写之等价类划分法

测试用例编写之等价类划分法 一、概念 等价类划分法指把所有可能的输入数据,即程序的输入域分成若干个部分(子集)后,从每个子集中选取少数具有代表性的数据作为测试用例的方法。是一种重要且常用的黑盒测试的测试用例设计方法。 二、等价类划分 等价类可分为两种情况:有效等价类与无效等价类。有效等价类是指:对程序的规格说明是有意义的、合理的输入数据所构成的集合;无效等价类意义与之相反。 三、确定等价类的规则 如何确定等价类,这是使用等价类划分方法的一个重要问题。等价类的划分在很大程度上是试探性的,一般规则如下: 1)如果输入条件规定了取值的范围或取值的个数([0,99]),则可确定一个有效等价类和两个无效等价类(<0 ;[0,99];>99); 2)如果一个输入条件说明了一个“必须成立的”情况(如变量名必须以字母开头),则可划分一个有效等价类(以字母开头)和一个无效等价类(不以字母开头); 3)如果输入条件规定了输入数据的一组可能的值,而且程序是用不同的方式处理每一种值,则可为每一种值划分一个有效等价类,并划分一个无效等价类; 4)如果某个输入条件规定了一个输入值得离合(即离散值),且程序对不同的输入值做不同的处理,那么每个允许的值确定为一个有效等价类,另外还有一个无效等价类。(任意一个不允许输入的值、)例:优、良、中、差,则此时有4个有效等价类和1个无效等价类(非优、良、中、差的值就为无效) 5)如果某个输入条件规定输入数据是整型,那么可以确定3个有效等价类(正整数、零、负整数)和一个无效等价类(非整数)。 6)如果某个输入条件规定处理的对象是表格,那么可确定一个有效等价类(表有1项或多项)和一个无效等价类(空表)。 7)如果能够确知,已划分的某等价类中的各元素在程序中的处理方式是不同的,则应据此将此等价类进一步划分成更小的等价类。 四、建立步骤 根据已列出的等价类表,按以下步骤确定测试用例: 1) 为每个等价类规定一个唯一的编号; 2) 设计一个测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类,重复这一步,最后使得所有的有效等价类都被测试用例所覆盖;

等价类划分法实例

分析题目中给出和隐含的对输入条件的要求: (1)整数 (2)三个数 (3)非零数 (4)正数 (5)两边之和大于第三边 (6)等腰 (7)等边 如果 a 、 b 、 c 满足条件( 1 ) ~ ( 4 ),则输出下列四种情况之一: 1)如果不满足条件(5),则程序输出为 " 非三角形 " 。 2)如果三条边相等即满足条件(7),则程序输出为 " 等边三角形 " 。 3)如果只有两条边相等、即满足条件(6),则程序输出为 " 等腰三角形 " 。 4)如果三条边都不相等,则程序输出为 " 一般三角形 " 。 列出等价类表并编号 覆盖有效等价类的测试用例: a b c 覆盖等价类号码 3 4 5 (1)--(7) 4 4 5 (1)--(7),(8) 4 5 5 (1)--(7),(9) 5 4 5 (1)--(7),(10) 4 4 4 (1)--(7),(11) 覆盖无效等价类的测试用例: 2. 设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期限定在1990 年1月~2049年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。现用等价类划分法设计测试用例,来测试程序的"日期检查功能 "。(不考虑2月的问题) 1)划分等价类并编号,下表等价类划分的结果

2)设计测试用例,以便覆盖所有的有效等价类在表中列出了3个有效等价类,编号分 别为①、⑤、⑧,设计的测试用例如下: 测试数据期望结果覆盖的有效等价类 200211 输入有效①、⑤、⑧ 3)为每一个无效等价类设计一个测试用例,设计结果如下: 测试数据期望结果覆盖的无效等价类 95June 无效输入② 20036 无效输入③ 2001006 无效输入④ 198912 无效输入⑥ 200401 无效输入⑦ 200100 无效输入⑨ 200113 无效输入⑩ 3.NextDate 函数包含三个变量:month 、 day 和 year ,函数的输出为输入日期 后一天的日期。例如,输入为 2006年3月 7日,则函数的输出为 2006年3月8日。 要求输入变量 month 、 day 和 year 均为整数值,并且满足下列条件: ①1≤month≤12 ②1≤day≤31 ③1920≤year≤2050 1)有效等价类为: M1={月份:1≤月份≤12} D1={日期:1≤日期≤31} Y1={年:1812≤年≤2012} 2)若条件① ~ ③中任何一个条件失效,则 NextDate 函数都会产生一个输出,指明相 应的变量超出取值范围,比如 "month 的值不在 1-12 范围当中 " 。显然还存在着大量的 year 、 month 、 day 的无效组合, NextDate 函数将这些组合作统一的输出: " 无效输入日期 " 。其无效等价类为: M2={月份:月份<1} M3={月份:月份>12} D2={日期:日期<1} D3={日期:日期>31} Y2={年:年<1812} Y3={年:年>2012} 弱一般等价类测试用例 月份日期年预期输出 6 15 1912 1912年6月16 日 强一般等价类测试用例同弱一般等价类测试用例

三角形问题- 等价类法(实验报告)2011-9-27

一、实验环境 Visual C++ 6.0软件环境 二、实验原理 软件测试是通过运行所开发的软件产品,识别和控制软件缺陷,以验证和确认用户需求已得到满足的过程。 三、给出三角形等价类表和测试用例表? 三角形问题:输入三个整数a、b、c分别作为三角形的三条边,现通过程序判断由三条边构成的三角形的类型为等边三角形、等腰三角形、一般三角形(特殊的还有直角三角形)以及构不成三角形。现在要求输入三个整数a、b、c,必须满足以下条件: 条件1 1≤a≤100 条件4 a≤b+c 条件2 1≤b≤100 条件5 b≤a+c 条件3 1≤c≤100 条件6 c≤a+b

解:(开发程序清单) #include int i = 0; void main(void){ while(i==0) { int a,b,c; cout<<"请输入3个整数:"<>a>>b>>c; if (!(a+b<=c||a+c<=b|| b+c<=a)&&(a>=1&&a<=100)&&(b>=1&&b<=100)&&(c>=1&&c<=100)) { if (a==b && a==c) cout<<"等边三角形"<100) cout<<"a="<100) cout<<"b="<100) cout<<"c="<=b+c) cout<<"不满足a=a+c) cout<<"不满足b=b+a) cout<<"不满足c

软件测试——实验1

淮海工学院(计算机工程学院)课内实验报告实验名称:黑盒测试 专业名称:软件工程 班级:Z软件161 姓名:陈真杰 学号:2018140539 指导教师:陈艳艳 实验日期:2019年3月13

一、实验目的与环境 1.实验目的: (1)理解黑盒测试的含义以及基本的测试方法。 (2)采用等价类划分法设计测试用例。 (3)掌握用等价类划分法设计测试用例的方法。 (4)掌握用因果图设计测试用例的方法。 (5)掌握用边界值分析法设计测试用例的方法。 2.实验环境:C语言、Java语言、Python语言等。 二、实验内容 1.三角形问题:输入3个整数a、b、c,分别作为三角形的3条边,通过程序判断由 3条边构成的三角形的类型为等边三角形、等腰三角形、一般三角形或者3条边不构成三角形。 2.现有一个学生标准化考试批阅试卷、产生成绩报告的程序。其规格说明为:程序的 输入文件有80个字符的记录组成,分为试题部分和学生答卷部分,具体内容如图所示。 试题部分包括如下内容: (1)标题。这一组只有一个记录,其内容为输出成绩报告的名字。 (2)标准答案。每个记录在第80个字符处标以数字2。第一个记录的第1~3个字符为“试题数”,用于标示题目编号;第10~59个字符给出第1~50题的答案,以此类推。 学生答卷部分包括内容:每个记录的第80个字符均为数字3。第1~9个字符给出学号,第10~59字符给出第1至第50题的答案,以此类推。 程序的输出有4个报告: (1)按学号排列的成绩单,列出每个学生的成绩、名次。 (2)按学生成绩排序的成绩单。 (3)平均分数及标准偏差的报告。 (4)试题分析报告。按试题号排序,列出各题学生答对的百分比。

软件测试案例三角形白盒测试

一、核心程序代码 /** 判断三角形的类*/ public class TriangleTestMethod { /** 判断三角形的种类。参数a, b, c 分别为三角形的三边, * 返回的参数值为0 ,表示非三角形; * 为 1 ,表示普通三角形; * 为 2 ,表示等腰三角形; * 为 3 ,表示等边三角形。 */ public static int comfirm( int a, int b, int c) { if ((a + b > c) && (b + c > a) && (a + c > b)) { if ((a == b) && (b ==c)) // 判断为等边三角形 return 3; if ((a == b) || (b == c) || (a == c)) // return 2; else // 判断为普通三角形return 1; } else { // 为非三角形 return 0; } } } // 判断为三角形判断为等腰三角形

、程序流程图 三、测试用例

F6, F7, T8 Case28 a=4, b=3, c=3 2 T1, T2, T3, F4, T5, F6, T7, F8 2 Case29 a=3, b=4, c=5 1 T1, T2, T3, F4, F5, F6, F7, F8 1 Case30 a=3, b=4, c=3 2 T1, T2, T3, F4, F5, F6, F7, T8 2 备注 其他条件组合,无法到达结束 四、程序控制流图 -> a B a == b E F b == c Return 3 Ffet urn 2 Ret ur n 1 K 输入 期望输出 覆盖对象 测试结果 Case31 a=1,b=6,c=7 0 A->D 0 Case32 a=7, b=6, c=1 0 A->B->D 0 Case33 a=1,b=7,c=6 0 A->B->C->D D Return 0 G b == c Ret ur n 2 H 斗 J a == C

精选软件测试笔试题目及答案

精选软件测试笔试题目及答案 软件测试去面试的时候都会做哪些题目呢?下面是收集的精选软件测试笔试题目及答案,欢迎大家阅读。 1、集成测试也叫组装测试或者联合测试,请简述集成测试的主要内容? (1)在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失; (2)一个模块的功能是否会对另一个模块的功能产生不利的影响; (3)各个子功能组合起来,能否达到预期要求的父功能; (4)全局数据结构是否有问题; (5)单个模块的误差累积起来,是否会放大,从而达到不能接受的程度。 2、简述集成测试与系统测试关系?

(1)集成测试的主要依据概要设计说明书,系统测试的主要依据是需求设计说明书; (2)集成测试是系统模块的测试,系统测试是对整个系统的测试,包括相关的软硬件平台、网络以及相关外设的测试。 3、软件测试的文档测试应当贯穿于软件生命周期的全过程,其中用户文档是文档测试的重点。那么软件系统的用户文档包括哪些? 用户手册 安装和设置指导 联机帮助 指南、向导 样例、示例和模板 授权/注册登记表 最终用户许可协议

4、软件系统中除用户文档之外,文档测试还应该关注哪些文档? 开发文档 软件需求说明书 数据库设计说明书 概要设计说明书 详细设计说明书 可行性研究报告 管理文档 项目开发计划 测试计划 测试报告

开发进度月报 开发总结报告 5、简述软件系统中用户文档的测试要点? (1)读者群。文档面向的读者定位要明确。对于初级用户、中 级用户以及高级用户应该有不同的定位 (2)术语。文档中用到的术语要适用与定位的读者群,用法一致,标准定义与业界规范相吻合。 (3)正确性。测试中需检查所有信息是否真实正确,查找由于 过期产品说明书和销售人员夸大事实而导致的错误。检查所有的 目录、索引和章节引用是否已更新,尝试链接是否准确,产品支 持电话、地址和邮政编码是否正确。 (4)完整性。对照软件界面检查是否有重要的分支没有描述到,甚至是否有整个大模块没有描述到。 (5)一致性。按照文档描述的操作执行后,检查软件返回的结 果是否与文档描述的相同。 (6)易用性。对关键步骤以粗体或背景色给用户以提示,合理

软件测试-判断三角形形状路径白盒测试

4.完成软件白盒测试技术中的逻辑覆盖测试应用设计实验。(理论考试重点内容实践) 三角形白盒测试要求要求: 1)自备C语言程序(可从C语言程序设计的教科书上摘录若干典型程序,其他C++、C#、Java程序均可); #include #include #include int main() { int a,b,c; printf("输入三角形的三个边:"); scanf("%d %d %d",&a,&b,&c); if(a<=0||b<=0||c<=0) printf("不符合条件,请重新输入a,b,c\n"); else if(a+b<=c||abs(a-b)>=c) printf("不是三角形\n"); else if(a==b&&a==c&&b==c) printf("这个图为等边三角形\n"); else if(a==b||a==c||b==c) printf("这个图为等腰三角形\n"); else printf("这个图为一般三角形\n"); }

2)根据该程序绘制对应的程序流程图;

3)分别根据程序流程图给出符合语句覆盖、判定覆盖、条件覆盖、路径覆盖以及判定/条件覆盖和条件组合覆盖的的测试用例以及预期的运行结果; 条件覆盖 判定1:1-1(a<=0) 1-2(b<=0) 1-3(c<=0) 判定2:2-1(a+b<=c) 2-2(|a-b|>=c) 判定3:3-1(a==b) 判定4:4-1(a==c) 判定5:5-1(a==c)

4)根据程序流程图画出流图,并确定线性独立路径的基本集合,然后给出符合各集合的测试用例; 路径1:1-2-3 路径2:1-2-4-5-7-9-12-13 路径3:1-2-4-5-7-9-10-13 路径4:1-2-4-5-7-10-13 路径5:1-2-4-5-8-10-13 路径6:1-2-4-5-8-11-13 路径7:1-2-4-6-13

测试用例八大设计方法和实例

测试用例设计方法 1等价类划分 1.1 理论知识 等价类划分是一种典型的黑盒测试方法。这一方法完全不考虑程序的内部结构,只依据程序的规格说明来设计测试用例。 等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭示程序中的错误都是等效的。 等价类合理地假设:某个等价类的代表值,与该等价类的其他值,对于测试来说是等价的。 因此,可以把全部的输入数据划分成若干的等价类,在每一个等价类中取一个数据来进行测试。这样就能以较少的具有代表性的数据进行测试,而取得较好的测试效果。 等价类划分是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例.该方法是一种重要的,常用的黑盒测试用例设计方法. 1) 分类: 划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类. 有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合.利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能. 无效等价类:与有效等价类的定义恰巧相反. 设计测试用例时,要同时考虑这两种等价类.因为,软件不仅要能接收合理的数据,也要能经受意外的考验.这样的测试才能确保软件具有更高的可靠性. 2)划分等价类的方法: 下面给出六条确定等价类的原则: ①在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类. ②在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效

等价类划分法实例教学文案

等价类划分法实例

1.某程序规定:"输入三个整数 a 、 b 、 c 分别作为三边的边长构成三角形。通过程序 判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时,分别作计算… "。用等价类划分方法为该程序进行测试用例设计。(三角形问题 的复杂之处在于输入与输出之间的关系比较复杂。) 分析题目中给出和隐含的对输入条件的要求: (1)整数(2)三个数(3)非零数(4)正数 (5)两边之和大于第三边(6)等腰(7)等边 如果 a 、 b 、 c 满足条件( 1 ) ~ ( 4 ),则输出下列四种情况之一: 1)如果不满足条件(5),则程序输出为 " 非三角形 " 。 2)如果三条边相等即满足条件(7),则程序输出为 " 等边三角形 " 。 3)如果只有两条边相等、即满足条件(6),则程序输出为 " 等腰三角形 " 。 4)如果三条边都不相等,则程序输出为 " 一般三角形 " 。 列出等价类表并编号

覆盖有效等价类的测试用例: a b c 覆盖等价类号码 3 4 5 (1)--(7) 4 4 5 (1)--(7),(8)

4 5 5 (1)--(7),(9) 5 4 5 (1)--(7),(10) 4 4 4 (1)--(7),(11) 覆盖无效等价类的测试用例: 2.设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期限定在1990年 1月~2049年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。现用等价类划分法设计测试用例,来测试程序的"日期检查功能"。(不考虑2月的问题) 1)划分等价类并编号,下表等价类划分的结果 输入等价类有效等价类无效等价类

实验二 等价类划分法测试用例设计与执行

实验二 实验的目的和要求: 目的: (1)掌握等价类划分方法的步骤; (2)扩宽测试思维; 要求:能够用等价类划分的思想设计测试用例 实验内容: 问题陈述: 简单版本:三角形问题接受三个整数a、b和c作为输入,用作三角形的边。程序的输出是由这三条边确定的三角形类型:等边三角形、等腰三角形、不等边三角形或非三角形。改进版本:三角形问题接受三个整数a、b和c作为输入,用作三角形的边。整数a、b和c必须满足以下条件: c1:1<=a<=200 c4: a

为“非三角形”。如果三条边相等即满足条件(7),则程序输出为“等边三角形”。如果只有两条边相等、即满足条件(6),则程序输出为“等腰三角形”。如果三条边都不相等,则程序输出为“一般三角形”。

二、设计测试用例

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

三角形问题测试报告

三角形问题测试报告 1、简介 1.1编写目的 本测试报告为三角形问题的测试报告,目的在于总结测试阶段的测试以及分析测试结果,通过测试来检测每个功能是否都能正常使用。预期参考人员包括测试人员、开发人员和需要阅读本报告的老师。 1.2项目背景 本项目为软件测试专周任务。 1.3术语 边界值分析法:就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。 等价类划分:把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值。 白盒测试:又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。 黑盒测试:也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。

1.4参考资料 《软件测试教程第2版》《软件测试入门与提高》《软件测试实例分析》 2、测试概要 2.1程序流程图

软件测试判断三角形形状白盒测试黑盒测试

淮海工学院计算机工程学院实验报告书 课程名:《软件工程导论》 题目:软件测试 学号:511020825 姓名:薛思雨

一、实验目的与要求 1、掌握软件测试 2、掌握白盒测试方法 3、掌握黑盒测试方法(边界值分析和等价类划分) 4、掌握自动化测试软件和方法 二、实验内容或题目 1)试画出:给定四边形的四条边,判断这个四边形是普通四边形、平等四边形、菱形的流程图,给出详细设计结果与C语言代码,对其使用白盒和黑盒测试技术分别设计测试用例(包括所有白盒测试的覆盖、黑盒测试的边界值分析与等价类划分)。然后,使用测试用例进行实际测试,并给出测试结果;(或输入三条边,判断三条边组成的图形是一般三角形、等腰三角形、直角三角形、等边三角形,亦或不能构成三角形,其它要求同四边形)2)了解一些典型的自动化测试软件和方法,建议有条件可下载、安装Mercury Interactive 公司的负载测试工具LoadRunner、功能测试工具WinRunner和测试管理工具TestDirector; IBM-Rational公司的测试套件Rational Suite TestStudio的Rational Robot、Rational TestManagerhe、Rational Quantify等工具,了解软件的使用方法。 3) 课内认真完成实验报告,禁止抄袭。 三、实验步骤与源程序 第一题: 1. 根据题目画流程图 核心流程图:

源代码: #include 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)) {

软件测试判断三角形形状白盒测试黑盒测试

淮海工学院计算机工程学院 实验报告书 课程名:《软件工程导论》 题目:软件测试 学号: 511020825 姓名:薛思雨

一、实验目的与要求 1、掌握软件测试 2、掌握白盒测试方法 3、掌握黑盒测试方法(边界值分析和等价类划分) 4、掌握自动化测试软件和方法 二、实验内容或题目 1)试画出:给定四边形的四条边,判断这个四边形是普通四边形、平等四边形、菱形的流程图,给出详细设计结果与C语言代码,对其使用白盒和黑盒测试技术分别设计测试用例(包括所有白盒测试的覆盖、黑盒测试的边界值分析与等价类划分)。然后,使用测试用例进行实际测试,并给出测试结果;(或输入三条边,判断三条边组成的图形是一般三角形、等腰三角形、直角三角形、等边三角形,亦或不能构成三角形,其它要求同四边形) 2)了解一些典型的自动化测试软件和方法,建议有条件可下载、安装Mercury Interactive公司的负载测试工具LoadRunner、功能测试工具WinRunner和测试管理工具TestDirector;IBM-Rational公司的测试套件Rational Suite TestStudio的Rational Robot、Rational TestManagerhe、Rational Quantify等工具,了解软件的使用方法。 3) 课内认真完成实验报告,禁止抄袭。 三、实验步骤与源程序 第一题: 1. 根据题目画流程图 核心流程图:

源代码: #include 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))

软件测试与质量保证作业1三角形问题案例

软件测试与质量保证作业 一、测试问题描述 输入三个整数a、b、c,分别作为三角形的三条边,通过程序判断这三条边是否能构成三角形?如果能构成三角形,则判断三角形的类型(等边三角形、等腰三角形、一般三角形)。要求输入三个整数a、b、c,必须满足以下条件:1≤a≤200;1≤b≤200;1≤c≤200。用边界值分析法设计测试用例。用黑盒测试方法设计测试用例。 二、设计测试用例 1. 用边界值测试方法设计测试用例 用边界值分析法设计测试用例,按照下列步骤进行: (1)分析各变量取值 边界值分析的基本思想是使用输入变量的最小值、略高于最小值、正常值、略低于最大值和最大值设计测试用例。因此a,b,c的边界取值是:1,2,100,199,200。 (2)测试用例数 有n个变量的程序,其边界值分析会产生4n+1个测试用例。这里有3个变量,因此会产生13个测试用例。 (3)设计测试用例 用边界值分析法设计测试用例就是使一个变量取边界值(分别取最小值、略高于最小值、正常值、略低于最大值和最大值),其余变量取正常值,然后对每个变量重复进行。本例用边界值分析法设计的测试用例见表1-1。 表1-1 三角形问题的测试用例 测试用例 输入数据 预期输出a b c 1 100 100 1 等腰三角形 2 100 100 2 等腰三角形 3 100 100 100 等边三角形 4 100 100 199 等腰三角形 5 100 100 200 非三角形 6 100 1 100 等腰三角形 7 100 2 100 等腰三角形 8 100 199 100 等腰三角形

9 100 200 100 非三角形 10 1 100 100 等腰三角形 11 2 100 100 等腰三角形 12 199 100 100 等腰三角形 13 200 100 100 非三角形 2. 用等价类测试方法设计测试用例 (1)首先分析题目中给出的条件和隐含的输入要求,输入条件如下: a)正整数; b)三个数; c)构成一般三角形; d)构成等腰三角形; e)构成等边三角形; f)不能构成三角形 (2)根据输入条件的要求划分等价类,列出等价类表并编号,如表1-2所示。 表1-2 三角形问题的等价类 等价类 输入条件有效等 价类 编 号 无效等价类编号 三 个正整数正整数 1 一边为非正 整数 a为非正整 数 10 b为非正整 数 11 c为非正整 数 12 两边为非正 整数 a,b为非正 整数 13 a,c为非正 整数 14 b,c为非正整数15 三边均为非正整数16 三个数 2 只输入一个只给a 17

实验六_三角形问题的基本路径测试

实验六三角形问题的基本路径测试 一、实验目的 1.掌握程序控制流图的画法。 2.掌握环路复杂度的计算方法。 3.掌握利用基本路径法进行白盒测试的方法。 二、实验任务 1.理解三角形问题的命题。 三角形问题是软件测试文献中广泛使用的一个例子。 三角形问题:输入三个整数a、b和c分别作为三角形的三条边,通过程序判断有这三条边构成的三角形类型是:等边三角形、等腰三角形、一般三角形或非三角形。 主要代码如下: 1.If (inta >= intb + intc) 2. Or (intb >= inta + intc) 3. Or (intc >= intb + inta) Then 4. strMsg = "非三角形" 5.Else 6. If (inta = intb) 7. And (intb = intc) Then 8. strMsg = "等边三角形" 9. Else 10. If (inta = intb) 11. Or (inta = intc) 12. Or (intc = intb) Then 13. strMsg = "等腰三角形" 14. Else 15. strMsg = "普通三角形" 16. End If 17. End If 18.End If 19.MsgB ox(strMsg, https://www.360docs.net/doc/9d18930220.html,rmation, "三角形问题") //输出判断结果 2.利用基本路径测试法对三角形问题进行测试用例设计。 三、实验步骤 1.理解三角形问题中各种三角形的判断方法。 2.根据上面的代码画出程序的控制流图。 (注意:复合条件语句,需改复合条件的判断为一系列单个条件的嵌套)3.计算环路复杂度。

软件测试实验一_三角形问题

三角形问题 接受三个整数a、b和c作为输入,用做三角形的边。程序的输出是由这三条边确定的三角形类型:等边三角形、等腰三角形、不等边三角形。(说明:三边边长小于200) 源程序: #include using namespace std; float a,b,c; //全局变量(边长) int input (void); //边长输入函数 int main (void) //主函数 { float tmp;int i;char ch=c; //ch程序控制 while(ch!='s'&&ch!='S') { input(); if(!(a>0&&a<200)&&(b>0&&b<200)&&(c>0&&c<200)) //边界检查 { cout<<"输入数据不符合范围要求,请检查后按任意键重新输入(输入s结束程序):"; cin>>ch; continue; } for(i=0;i<3;i++) //三边排序(升序) { if (a>b) { tmp=a;a=b; b=tmp; } if (b>c) { tmp=b;b=c; c=tmp; } } if((a+b>c)&&(c-a>ch; continue;

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

对等价类划分法的感悟 (2016/2/21-2016/2/28)来北京的第一周感觉时间过得好快,新鲜、刺激、充实。在本周内我注重学习了等价类划分法,并结合该方法完成了一个现金管理系统的基版测试。该系统主要包括结算账户管理、账务处理、多级账簿、资金归集、资金池等功能。其中账务处理业务中主要包含三个子业务分别是:现金存入业务处理、现金支出业务处理、账务查询。多级账簿业务主要涉及到多级账簿的开通、开设和注销等功能。 在这个项目中我主要负责现金存入模块的测试用例的设计以及执行。首先是基本功能的实现也就是输入框、选择框等功能是否能够实现,其次针对需求验证其非功能点即可输入字符串的类型以及长度进行验证。在对这些数据类型和字符串的验证中我主要运用了边界值法和等价类划分法。 例如:等价类划分法的使用 在填写现金存入的账单中我们主要输入收款人账号、币种、收款人户名、收款账簿编号、交易金额等项内容。其中收款人账号主要有三种状态无效账号、已注销账号、和有效账号。币种主要有01、02、03 以及其他无效类型。收款人户名主要有存在和不存在两种状态。收款账簿编号主要有有效账簿编号和无效账簿编号两种状态。交易金额主要有输入负数、0、大于0三种类型的选择。

依据这些条件,将各项输入要素划分为有效等价类和无效等价类,效果如下图所示: 等价类划分法的要义: 1)为每一个等价类规定一个唯一的编号; 2)设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止; 3)设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。则测试用例的设计为: a3 b1 c1 d1 e2、a3 b2 c1 d1 e3、a3 b3 c1 d1 e2 a1 b1 c1 d1 e2、a2 b1 c1 d1 e2 a1 b1 c2 d1 e2 a1 b1 c2 d2 e2 a1 b1 c2 d2 e1 因此,等价类划分法优点就凸显了了出来,即测试某等价类的代

软件测试方案模板(三角形样例)

1概述 测试对象简介。通过此让读者对被测对象有一个基本的认识。包括:被测对象的开发背景、定位、主要功能特性等; 2测试需求 列出需要测试的功能点需求。此部分运用逆向工程通过现有系统获得。 对于需求不明确的地方可以加上自己的澄清和理解。 某程序从一个输入对话框中读取三个整数值。这三个整数值代表了三解形三边的长度。程序显示提示信息,指示该三角形究竟是不规则三角形、等腰三角形还是等边三角形。 需求澄清后补充: ?输入规格 ?输入对话框分别提供三个输入框供三条边输入,每条边最大允许输入范围为 100cm ?界面语言为中文 ?长时间不输入,输入框会一直等待输入。 ?输出规格 ?无效输入以红色字体标示。 ?提供命令行接口供第三方调用。 ?输出结果清空后允许连续输入。 ?质量属性 ?性能:1S内给出结合 ?可服务性要求:采用格式化形式保存所输入数据和输出结果。是否保存可配 置。 ?可靠性要求:异常非常输入不退出。运行24小时后系统稳定,不出现内存泄 漏、异常退出等情况。 3XXXX功能测试设计 (逐功能展开测试设计,如果有多个功能,则重复COPY整个第3章节) 3.1功能流程分析 功能是如何被实现的。输入如何转化为输出的。 形式化可以采用IPO分析,对于涉及到的重要输入输出数据结构必须列出。 建议:

1)对于功能处理逻辑性较强的,可以采用流程图、时序(顺序)图、分类树、判定表等辅以分析; 2)对于功能处理较为简单、或基于数据、逻辑性不强的,通过自己的理解,将实现要点列出即可。 3.1.1输入 ·三角形三条边a,b,c,最大为100cm ·命令行接口形式为:aTriangle [a,b,c]|[格式化文件] > output.txt /s /s:代表是否输出到某文件中,当加了/s后如果不给文件名,则默认保存文件名按时间戳生成,文件后缀名默认为文本格式,即为记事本即可打开。 3.1.2处理 该程序的主模块如上图所示,包括输入命令解析、三角形判断、输出结果保存三部分处理。 输入命令解析:分别进行参数合法性、文件合法性、记录内容合法性的校验。如果存在非法立即退出。

软件测试方案模板(三角形样例)

软件测试方案模板(三角形样例)

1概述 测试对象简介。通过此让读者对被测对象有一个基本的认识。包括:被测对象的开发背景、定位、主要功能特性等; 2测试需求 列出需要测试的功能点需求。此部分运用逆向工程通过现有系统获得。 对于需求不明确的地方可以加上自己的澄清和理解。 某程序从一个输入对话框中读取三个整数值。这三个整数值代表了三解形三边的长度。 程序显示提示信息,指示该三角形究竟是不规则三角形、等腰三角形还是等边三角形。 需求澄清后补充: ?输入规格 ?输入对话框分别提供三个输入框供三 条边输入,每条边最大允许输入范围为 100cm

?界面语言为中文 ?长时间不输入,输入框会一直等待输 入。 ?输出规格 ?无效输入以红色字体标示。 ?提供命令行接口供第三方调用。 ?输出结果清空后允许连续输入。 ?质量属性 ?性能:1S内给出结合 ?可服务性要求:采用格式化形式保存所 输入数据和输出结果。是否保存可配 置。 ?可靠性要求:异常非常输入不退出。运 行24小时后系统稳定,不出现内存泄 漏、异常退出等情况。 3XXXX功能测试设计 (逐功能展开测试设计,如果有多个功能,则重复COPY整个第3章节) 3.1功能流程分析 功能是如何被实现的。输入如何转化为输出的。

形式化可以采用IPO分析,对于涉及到的重要输入输出数据结构必须列出。 建议: 1)对于功能处理逻辑性较强的,可以采用流程图、时序(顺序)图、分类树、判定表等辅以分析; 2)对于功能处理较为简单、或基于数据、逻辑性不强的,通过自己的理解,将实现要点列出即可。 3.1.1输入 ·三角形三条边a,b,c,最大为100cm ·命令行接口形式为:aTriangle [a,b,c]|[格式化文件] > output.txt /s /s:代表是否输出到某文件中,当加了/s 后如果不给文件名,则默认保存文件名按时间戳生成,文件后缀名默认为文本格式,即为记事本即可打开。

软件测试经典三角形案例

软件测试-黑盒测试例子 一、等价类划分 问:某程序规定:"输入三个整数 a、 b、 c分别作为三边的边长构成三角形。通过程序判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时,分别作计算… "。用等价类划分方法为该程序进行测试用例设计。(三角形问题的复杂之处在于输入与输出之间的关系比较复杂。) 解:分析题目中给出和隐含的对输入条件的要求: (1)整数 (2)三个数 (3)非零数 (4)正数 (5)两边之和大于第三边 (6)等腰 (7)等边 如果 a、 b 、 c满足条件( 1 ) ~ ( 4 ),则输出下列四种情况之一: 1)如果不满足条件(5),则程序输出为 " 非三角形 " 。 2)如果三条边相等即满足条件(7),则程序输出为 " 等边三角形 " 。 3)如果只有两条边相等、即满足条件(6),则程序输出为 " 等腰三角形 " 。

4)如果三条边都不相等,则程序输出为 " 一般三角形 " 。列出等价类表并编号

覆盖有效等价类的测试用例: a b c覆盖等价类号码 3 4 5(1)--(7) 4 4 5(1)--(7),(8) 4 5 5(1)--(7),(9) 5 4 5(1)--(7),(10) 4 4 4(1)--(7),(11)覆盖无效等价类的测试用例: 二、边界值分析法 NextDate函数的边界值分析测试用例

在NextDate函数中,隐含规定了变量mouth和变量day的取值范围为1≤mouth≤12和1≤day≤31,并设定变量year的取值范围为 1912≤year≤2050 。

三、错误推测法 测试一个对线性表(比如数组)进行排序的程序,可推测列出以下几项需要特别测试的情况: I.输入的线性表为空表; II.表中只含有一个元素; III.输入表中所有元素已排好序; IV.输入表已按逆序排好; V.输入表中部分或全部元素相同。 四、因果图法 有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。其规格说明如下:若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示〖零

相关文档
最新文档