软件测试--等价类划分和判定表判断三角形
- 格式:doc
- 大小:126.00 KB
- 文档页数:4
教学项目:判断三角形类型程序的测试需求:(程序的规格说明要求)有一个程序,用来判断一个三角形的类型。
输入三个整数a、b和c分别作为三角形的三条边的边长,通过程序来判断由这三条边构成的三角形类型是等边三角形、等腰三角形、一般三角形还是非三角形(不能构成一个三角形)。
用决策表法对该程序进行测试。
分析:等价类划分法和边界值分析方法的局限性等价类划分法和边界值分析方法比较适合输入变量或输入条件相互独立的情况,但是当输入变量或输入条件相互依赖、相互制约的时候,采用等价类划分法和边界值分析方法是难以描述的,测试效果也很难保障。
在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作。
决策表很适合于处理这类问题。
分析:什么是决策表?1、决策表也称判定表,是分析和表达多逻辑条件下执行不同操作的情况的工具。
2、决策表能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏,设计出完整的测试用例集合。
在所有的黑盒测试方法中,基于决策表(也称判定表)的测试是最为严格、最具有逻辑性的测试方法。
知识点:采用决策表法设计测试用例的步骤:(1)列出所有的条件桩和动作桩。
(2)确定规则的个数。
有n个条件(每个条件取真、假值的情况)的决策表有2n个规则。
(3)填入条件项。
(4)填入动作项,得到初始决策表。
(5)简化决策表,合并相似规则(相同动作)。
如果两条或多条规则的动作项相同,条件项只有一项不同,则可以将该项合并,合并后的条件项用符号“-”表示,说明执行的动作与该条件的取值无关,称为无关条件。
(6)根据决策表设计测试用例。
一条规则一个测试用例,排除掉不可能的规则。
解答:(1)列出所有的条件桩和动作桩。
条件桩—列出问题的所有条件。
(通常认为列出的条件的先后次序无关紧要)动作桩—列出问题规定的可能采取的操作。
(这些操作的排列顺序没有约束)运用决策表设计测试用例时,可将条件理解为输入,将动作理解为输出。
一、等价类划分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 45 (1)--(7),(8)4 5 5 (1)--(7),(9)5 4 5 (1)--(7),(10)4 4 4 (1)--(7),(11)覆盖无效等价类的测试用例:二、结构化语言判定表某厂对部分职工重新分配工作的政策是:年龄在伙岁以下者,初中文化程度脱产学习。
高中文化程度当电工;年龄在20岁到40岁之间者,中学中学文化程度男性当钳工,女性当车工,大学文化程度都当技术员。
年龄在40岁以上者,中学文化程度当材料员,大学文化程序当技术员。
请用结构化语言、判定表或判定树描述上述问题的加工逻辑。
(1)结构化语言:根据职工年龄和文化程序:REPEATIf 年龄<=20If 初中文化Then 脱产学习endifelse if 高中文化Then 电工endifendifIf 20<年龄<40If 中学文化If 男性Then 钳工Else车工Endifelse if 大学文化Then 技术员 endifendifendifIf 年龄>=40If 中学文化Then 材料员else if 大学文化Then 技术员 endifendifendifUntil 没有剩余未分配员工判定表三、因果图以中国象棋中马的走法为例子,具体说明:1、如果落点在棋盘外,则不移动棋子;2、如果落点与起点不构成日字型,则不移动棋子;3、如果落点处有自己方棋子,则不移动棋子;4、如果在落点方向的邻近交叉点有棋子(绊马腿),则不移动棋子;5、如果不属于1-4条,且落点处无棋子,则移动棋子;6、如果不属于1-4条,且落点处为对方棋子 (非老将) ,则移动棋子并除去对方棋子;7、如果不属于1-4条,且落点处为对方老将,则移动棋子,并提示战胜对方,游戏结束。
实验报告
课程名称:软件测试
实验项目:判断三角形
专业班级:软件0505班
姓名:
学号:
指导教师:**
沈阳工业大学实验报告
(适用计算机程序设计类)
专业班级:软件学院学号:姓名:实验名称:
附件A 沈阳工业大学实验报告
(适用计算机程序设计类)
专业班级:软件0505 学号:姓名:实验步骤或程序:
1.设计窗口
2.设计结构
ModelMain是程序的主入口,主要实现窗口的建立,从键盘接收三个变量,调用Triangle 类的构造方法和判断方法,并打印出结果。
Judge是一个判断接口定义了3个方法
Triangle是三角形类,实现了Judge接口
3.设计接口
4.实现内部功能
5.输出结果。
黑盒测试三角形简介黑盒测试是一种软件测试方法,通过检查软件的输入和输出,而无需关注内部的实现细节。
本文将介绍如何进行黑盒测试,并以三角形的判定为例进行详细说明。
三角形判定规则在进行三角形测试之前,我们首先需要了解三角形的定义和判定规则。
三角形是由三条边组成的图形,它有以下几个特征: - 三边之和大于第三边 -两边之差小于第三边 - 三边的长度分别为a、b、c,其中a、b、c均大于0根据三角形的三边长度,可以将三角形分为以下几种情况: - 等边三角形:三边长度相等 - 等腰三角形:两边长度相等 - 直角三角形:有一个角为90度 - 钝角三角形:三个角均大于90度 - 锐角三角形:三个角均小于90度黑盒测试方法黑盒测试的目的是检查软件的功能是否按照预期工作,它不关心具体的代码实现,而是从输入和输出的角度出发进行测试。
下面是一些常用的黑盒测试方法:等价类划分等价类划分是一种常用的黑盒测试方法,它将测试用例分为几个等价类,每个等价类代表一个功能的特定条件。
测试用例选择一个等价类进行测试即可,通过这个等价类的测试用例可以代表整个等价类的测试结果。
在三角形判定中,我们可以将输入的三个边长分为以下几个等价类: - 有效等价类:满足三角形判定规则的三个边长组合 - 无效等价类:不满足三角形判定规则的三个边长组合边界值分析边界值分析是一种考虑输入值的边界情况的黑盒测试方法。
通常,边界值是最小输入和最大输入,以及最小输入减去或最大输入加上1的情况。
在三角形判定中,我们可以选择以下边界值进行测试: - 最小输入:三个边均为0 - 边界输入:三个边中有一个边等于1,另外两个边等于最大允许值 - 最大输入:三个边均为最大允许值错误推测法错误推测法是一种根据错误、故障和失败的经验推测可能存在的错误并进行测试的方法。
通过推测错误并进行测试,可以发现软件中可能存在的隐藏错误。
在三角形判定中,我们可以通过错误推测法选择一些可能存在的错误进行测试,例如: - 输入的边长度数据类型错误 - 输入的边长度超出了合理范围 - 输入的边长度顺序错误三角形测试用例根据上述的黑盒测试方法,我们可以选择一些测试用例进行三角形判定的测试。
一、实验环境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 <iostream.h>int i = 0;void main(void){while(i==0){int a,b,c;cout<<"请输入3个整数:"<<endl;cin>>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<<"等边三角形"<<endl;else if (a==b || a==c || b==c) cout<<"等腰三角形"<<endl;else cout<<"一般三角形"<<endl;}else {if(a<1||a>100) cout<<"a="<<a<<"不满足条件1,不能构成三角形"<<endl;else if(b<1||b>100) cout<<"b="<<b<<"不满足条件2,不能构成三角形"<<endl;else if(c<1||c>100) cout<<"c="<<c<<"不满足条件3,不能构成三角形"<<endl;else if(a>=b+c) cout<<"不满足a<b+c,不能构成三角形"<<endl;else if(b>=a+c) cout<<"不满足b<a+c,不能构成三角形"<<endl;else if(c>=b+a) cout<<"不满足c<a+b,不能构成三角形"<<endl;}}}四、测试用例等价类表测试用例表五、测试结果六、心得体会通过三节课的上机实验,我们三个人用C++编写了测试三角形问题的程序并进行测试。
判定三角形的程序及黑盒白盒测试LtD黑盒白盒测试实验报告学院:计算机科学与工程专业:软件工程姓名:张子晗软件测试方案测试目的1.练习并掌握软件测试管理的一般过程与步骤2.掌握测试管理的人工过程和能通过相关管理软件实现以下操作:1)创立和管理多个测试组和用户2)配置测试环境,编写详细测试方案,安排测试进度3)实施测试,执行测试4)对测试进行评估测试题目关于三角形问题的测试测试方法1.对于主题进行黑盒测试,测试内容包括等价类划分测试,边界值分析测试,决策表方法使用。
2.对于主题进行白盒测试,测试内容包括语句覆盖测试,分支覆盖测试,条件覆盖测试,分支/条件覆盖测试,条件组合覆盖测试以及根本路径测试。
测试资料1.黑盒测试:黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。
在测试中,把程序看作一个不能翻开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。
黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。
很明显,如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。
2.白盒测试:白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。
白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。
"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。
"白盒"法是穷举路径测试。
在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。
贯穿程序的独立路径数是天文数字。
采用什么方法对软件进行测试呢?常用的软件测试方法有两大类:静态测试方法和动态测试方法。
目录1、三角形单元测试 (2)1.1、题目要求: (2)1.2、源代码程序: (2)1.3、程序运行结果: (4)1.4、测试脚本结果: (5)1.5、代码覆盖率: (6)2、功能性测试 (6)2.1、实验目的: (6)2.2、实验内容: (6)2.3、实验步骤 (7)3、白盒测试 (9)4、课程设计与心得体会 (12)参考文献 (12)1、三角形单元测试1.1、题目要求:使用c#语言编写程序,实现下面功能:输入三个数,判断能否构成三角形,如果能构成三角形,判断其为等边三角形、等腰三角形或不等边三角形。
三角形的判定方法有返回值,并对该方法进行测试。
1.2、源代码程序:using Sy stem;using System.Collections.Generic;using System.Linq;using System.Text;namespace TriangleTest{class Triangle{int a,b,c;public Triangle(int a0,int b0,int c0){this.a = a0;this.b = b0;this.c = c0;}public bool IsTriangle(){if ((a + b) > c && (a + c) > b && (b + c) > a)return true;elsereturn false;}public bool IsTwoEqualTriangle(){if (IsTriangle()){if (a == b || a == c || b == c)return true;elsereturn false;}else{Console.WriteLine("It is not a triangle!");return false;}}public bool IsThreeEqualTriangle(){if (IsTriangle()){if (a == b && a == c)return true;elsereturn false;}else{Console.WriteLine("It is not a triangle!");return false;}}static void Main(string[] args){int a=0, b=0, c=0;Console.WriteLine("Please input three edges:\n");a =Convert.ToInt32(Console.ReadLine());b = Convert.ToInt32(Console.ReadLine());c = Convert.ToInt32(Console.ReadLine());Triangle tri = new Triangle(a,b,c);if (tri.IsThreeEqualTriangle())Console.WriteLine("It is a threeequal triangle!");else{if (tri.IsTwoEqualTriangle())Console.WriteLine("It is a twoequal triangle!"); elseif(tri.IsTriangle())Console.WriteLine("It is a triangle!");elseConsole.WriteLine("It is not a triangle!"); }Console.ReadLine();}}}1.3、程序运行结果:1.判断是否为三角形:2.判断是否为等腰三角形:3.判断是否为等边三角形:1.4、测试脚本结果:1.三角形测试:2.等边三角形测试:1.5、代码覆盖率:2、功能性测试2.1、实验目的: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<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.打开虚拟机,启动Windows XP Professional。
软件测试实验报告
课程名称:软件测试
实验项目:判断三角形
专业班级:计091
姓名:***
学号:**********
一.实验题目
输入三个整数作为三边的边长构成三角形,分别用等价类方法和判定表方法构造测试用
例进行测试(注:三角形可能为一般三角形,等腰三角形,等边三角形)二.设计程序代码如下:
#include<iostream>
#include <math.h>
using namespace std;
void main(){
cout<<"输入三边边长:"<<endl;
int a,b,c;
cin>>a;
cin>>b;
cin>>c;
if(a+b>c&&a+c>b&&b+c>a&&fabs(a-b)<c&&fabs(a-c)<b&&fabs(b-c)<a){ if(a==b&&b==c){
cout<<"可构成等边三角形:"<<endl;
}
else if(a==b||a==c||b==c){
cout<<"可构成等腰三角形"<<endl;
}
else
{
cout << "可构成普通三角形" << endl;
}
}
else cout<<"不能构成三角形"<<endl;
}
三.等价类划分:
(1)划分等价类:
四:判定表方法。