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

合集下载

软件测试中的黑盒测试和白盒测试分析

软件测试中的黑盒测试和白盒测试分析

软件测试中的黑盒测试和白盒测试分析随着软件开发的不断发展,软件测试作为保证软件质量的重要一环也越来越受到重视。

而在软件测试中,黑盒测试和白盒测试则是两种常见的测试方法。

本文将深入分析这两种测试方法的特点、优缺点以及在软件测试中的应用。

一、黑盒测试1.特点黑盒测试是指在不考虑软件内部结构的情况下,对软件进行测试,主要关注软件外部的功能、接口以及与用户交互的部分。

黑盒测试的主要特点包括:(1)测试过程基于需求规格说明书,而非程序代码。

(2)测试人员只需了解软件的功能,不需要了解软件的内部实现细节。

(3)测试目的在于检查软件是否符合需求规格说明书的规定,是否满足用户需求。

2.优缺点黑盒测试的优点主要包括:(1)测试人员只需要了解软件的功能,不需要了解软件的内部细节。

(2)可以检验软件是否符合用户需求,从用户角度出发进行测试。

(3)测试过程可以在优先文档尚未编写完成或尚未完成编码的情况下,进行开始。

而黑盒测试的缺点也比较明显:(1)对测试人员的要求非常高,因为他们必须根据给定的需求文档进行测试。

(2)无法涵盖软件的所有部分,测试覆盖率可能不高。

(3)难以检查代码中潜在的问题,因为测试人员无法了解程序代码。

二、白盒测试1.特点白盒测试是指在考虑软件结构的情况下,对软件进行测试,探寻软件的运行情况、数据结构以及程序代码等方面的问题。

白盒测试的主要特点包括:(1)测试过程基于程序代码,而非需求规格说明书。

(2)测试人员需要了解软件的内部实现细节,包括程序代码、数据结构等方面。

(3)测试目的在于发现软件中可能存在的错误、异常情况、错误逻辑或者潜在性能问题等。

2.优缺点白盒测试的优点主要包括:(1)有助于发现软件代码中的错误或问题。

(2)测试覆盖率高,可以全面的检查程序代码。

(3)可以提高代码质量,防止在编写代码时出现逻辑错误。

而白盒测试的缺点也比较明显:(1)测试人员需要具备相应的编程能力和技能。

(2)测试过程需要花费相对较长的时间和精力。

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

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

三角形白盒测试要求要求:,其他1 ) 自备 C 语言程序(可从 C 语言程序设计的教科书上摘录若干典型程序C++ 、C# 、Java 程序均可);#include <stdio.h>#include <stdlib.h>#include <math.h>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");elseprintf("这个图为一般三角形\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)判定 6: 6-1(b==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。

软件测试白盒和黑盒

软件测试白盒和黑盒

软件测试白盒和黑盒软件测试是确保软件质量的重要环节,而在软件测试中,白盒测试和黑盒测试是两种常见的测试方法。

两者各有特点,适用于不同的测试场景。

本文将分别介绍白盒测试和黑盒测试的概念、特点和应用场景。

白盒测试白盒测试也称为结构测试或逻辑驱动测试,是一种基于软件内部结构的测试方法。

在白盒测试中,测试人员需要了解软件的内部逻辑结构、算法和代码实现细节,以设计测试用例来覆盖这些结构并检查其正确性。

白盒测试通常由开发人员或熟悉软件内部结构的测试人员执行。

特点•需要了解软件内部结构•针对代码逻辑进行测试•可以发现代码级别的缺陷•通常结合静态分析工具使用应用场景•单元测试:对模块、函数等独立单元进行测试•集成测试:确保不同模块、组件之间的交互正常•代码覆盖率测试:检查测试用例覆盖率黑盒测试黑盒测试是一种基于软件需求和功能规格的测试方法,测试人员只需要关注软件的输入和输出,而不需要了解内部实现细节。

黑盒测试旨在检查软件是否符合预期的功能和行为,并确保其与用户需求一致。

黑盒测试可以由测试团队中的任何成员执行。

特点•不关注软件内部结构•基于需求和功能进行测试•更贴近用户视角•更容易实施和理解应用场景•功能测试:验证软件的功能是否按照需求规格书执行•用户验收测试:模拟用户场景进行测试•兼容性测试:确保软件在不同环境下正常运行结论白盒测试和黑盒测试是软件测试中常用的两种测试方法,各自具有独特的特点和适用场景。

在实际软件测试过程中,可以根据项目需求和测试目标选择合适的测试方法进行测试,以确保软件质量和稳定性。

通过综合应用白盒和黑盒测试,可以更全面地评估软件的质量,提高测试效率和覆盖范围。

软件测试中的黑盒测试与白盒测试

软件测试中的黑盒测试与白盒测试

软件测试中的黑盒测试与白盒测试软件测试是软件开发生命周期中至关重要的一环。

它涉及评估和验证软件系统的功能、性能和安全等方面,以确保软件的质量和稳定性。

在软件测试中,黑盒测试与白盒测试是常见且重要的两种测试方法。

本文将介绍并对比这两种测试方法,以及它们在软件测试中的应用。

一、黑盒测试黑盒测试又称为功能测试,着重于测试软件系统的功能,而不考虑其内部结构。

测试人员只关注输入和输出,通过输入特定的数据或操作系统,验证软件是否按照预期产生正确的输出结果。

黑盒测试主要基于软件需求规格说明书或业务需求。

黑盒测试方法非常适用于以下情况:1.测试人员对软件内部结构缺乏了解,只了解软件的功能和需求。

2.测试人员希望从最终用户的角度来验证软件是否满足需求。

3.测试人员希望测试软件在不同操作系统、硬件平台或配置环境下的兼容性。

黑盒测试通常采用以下技术:1.等价类划分:将输入值划分为多个等价类,选择一个典型值进行测试。

2.边界值分析:测试边界值和边界值附近的情况,以检验软件在边界情况下是否工作正常。

3.决策表测试:根据软件系统的规则和条件生成决策表,测试所有的可能组合情况。

二、白盒测试白盒测试又称为结构测试,它关注的是软件系统的内部结构和代码覆盖率。

测试人员需要了解软件的内部逻辑和结构,以验证软件内部的每一条路径是否可行,并通过分析代码来评估软件的可靠性和性能。

白盒测试方法适用于以下情况:1.测试人员具备编程和代码理解的技能,可以深入分析软件的内部结构。

2.需要测试软件的性能、可靠性和安全性等方面。

3.需要对软件的内部逻辑和结构进行彻底的检查。

白盒测试通常采用以下技术:1.控制流测试:验证软件内部逻辑和控制结构,测试每一条路径是否被覆盖。

2.数据流测试:根据软件中的数据依赖关系,验证数据在各个控制结构之间的正确流动。

3.语句覆盖测试:衡量测试用例中执行的语句百分比,以确定代码是否得到充分测试。

三、黑盒测试与白盒测试的对比黑盒测试和白盒测试在软件测试中有着不同的侧重点和适用场景。

白盒测试实验报告_三角形

白盒测试实验报告_三角形

白盒测试实验报告_三角形实验目的:本实验旨在通过白盒测试的方式对一个三角形程序进行测试,并通过测试结果来验证程序的正确性。

实验原理:三角形是由三条边组成的图形,根据三个边的长度的不同,可以分为三种形态的三角形:等边三角形、等腰三角形和普通三角形。

在这个实验中,我们需要测试一个程序,该程序用于判断给定的三条边是否能够构成一个三角形,并能够进一步判断构成的三角形是何种类型。

实验步骤:1.确定测试用例,包括各种可能的三角形情况,如等边三角形、等腰三角形、普通三角形以及不能构成三角形的情况。

2.编写测试代码,使用白盒测试的方式进行测试。

3.运行测试代码,记录测试结果。

4.分析测试结果,验证程序的正确性。

实验结果:经过测试,测试结果如下:1.测试用例1:输入边长为3、3、3,预期输出为等边三角形,实际输出为等边三角形,测试通过。

2.测试用例2:输入边长为3、4、4,预期输出为等腰三角形,实际输出为等腰三角形,测试通过。

3.测试用例3:输入边长为2、3、4,预期输出为普通三角形,实际输出为普通三角形,测试通过。

4.测试用例4:输入边长为1、2、3,预期输出为不能构成三角形,实际输出为不能构成三角形,测试通过。

实验结论:通过对三角形程序的白盒测试,我们验证了程序的正确性,并确认程序能够正确判断三条边是否能够构成一个三角形,以及进一步判断构成的三角形是何种类型的。

在我们的测试中,程序完全按照我们的预期输出结果,没有发现任何错误。

因此,我们可以认为该程序在给定的测试用例下能够正确地判断三角形,并输出正确的三角形类型。

实验感想:通过本次实验,我深刻理解了白盒测试的重要性。

通过运行测试代码,并仔细分析测试结果,我可以直观地看到程序的运行情况,从而判断程序的正确性。

在编写测试用例时,我尽量覆盖了各种可能的情况,以确保测试的全面性和准确性。

同时,我也意识到了编写高质量代码的重要性,只有代码本身没有错误,才能保证测试的准确性。

白盒测试实验报告_三角形(2)

白盒测试实验报告_三角形(2)

白盒测试实验报告——三角形
一、实验目的
(1)巩固白盒测试技术,能熟练应用控制流覆盖方法设计测试用例;
(2)学习测试用例的书写。

二、实验内容
判断三角形类型
输入三个整数a、b、c,分别作为三角形的三条边,通过程序判断这三条边是否能构成三角形?如果能构成三角形,则判断三角形的类型(等边三角形、等腰三角形、一般三角形)。

要求输入三个整数a、b、c,必须满足以下条件:1≤a≤200;1≤b≤200;1≤c≤200。

要求:
为测试该程序的方便,请将三角形判断的算法尽量放入一个函数中。

(1)画出程序的流图;
(2)分别以语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖设计测试用例,并写出每个测试用例的执行路径
要求:设计测试用例时,每种覆盖方法的覆盖率应尽可能达到100%
(3)请采用基本路径测试方法对程序进行测试,并给出具体测试用例信息。

(4)通过你的测试,请总结你所使用测试方法发现的Bug。

三、实验要求
(1)根据题目要求编写测试用例
(2)撰写实验报告
(3)有关的实现程序请附到实验报告中
(4)实验报告命名规则:学号后两位+姓名_白盒实验
四、实验报告
(1)程序代码:
7.
8.
(2)程序的流图:
(4)判定覆盖;
(5)条件覆盖:
(6)判定/条件覆盖;
(8)基本路径覆盖;
附录:测试用例书写格式(语句覆盖为例)。

软件测试实验报告白盒测试

软件测试实验报告白盒测试

软件测试与质量课程实验报告
实验3:白盒测试
掌握静态白盒测试方法及一般要求
掌握白盒测试用例的设计方法
掌握白盒测试基本测试方法:逻辑覆盖、路径测试。

语句覆盖输入数据路径预期输出1A=2,B=5,C=3,1239不能构成三角形2A=15,B=15,C=1512459等边三角形3A=15,B=15,C=13124679等腰三角形4A=23,B=24,C=25124689一般三角形
判定覆盖输入数据路径预期输出1A=2,B=3,C=5,1239不能构成三角形
语句覆

编号输入数据覆盖语句
1array[8,9,10,11] key 101,2,3,8
2array[8,9,10,11] key 251,2,3,9
3array[8,9,10,11] key 81,2,3,6,7
4array[8,9,10,11] key 91,2,3,4,5
判定覆

编号输入数据路径
1array[8,9,10,11] key 101-2-3-4-5-6-8-
2array[8,9,10,11] key 251-2-3-4-5-6-8--10-11-4-12



缺席:扣10分实验报告雷同:扣10分实验结果填写不完整:扣1 – 10分
其他情况:扣分<=5分总扣分不能大于10分。

软件测试中的黑盒测试与白盒测试

软件测试中的黑盒测试与白盒测试

软件测试中的黑盒测试与白盒测试一、引言现今,在软件开发中,软件测试变得越来越重要。

其中,黑盒测试和白盒测试是软件测试中的两种重要方法。

本文将着重介绍这两种测试方法。

二、黑盒测试黑盒测试亦称为功能测试,是一种侧重于程序对外部行为的测试方法。

黑盒测试把程序看作一个不透明的盒子,只从程序输入输出的角度测试程序功能是否符合要求,而不考虑程序内部的实现细节。

1. 测试目标黑盒测试强调测试人员独立角度的测试,不受源码实现的影响。

它着重考虑以下几个方面:(1)功能是否符合需求:黑盒测试主要验证软件输出是否与预期输出一致。

(2)准确性:测试人员需要验证程序是否能够正确的执行任务。

(3)稳定性:测试人员需要验证程序在不同环境中是否稳定。

(4)性能:测试人员需要验证程序在不同负载下的表现。

2. 测试方法黑盒测试有多种方法,主要包括等价类划分法、边界值分析法、决策表法等。

(1)等价类划分法:将测试用例分组,使它们的行为等价。

通常将输入数据分为有效数据和无效数据,从而有效的减少测试用例的数量。

(2)边界值分析法:主要针对处于限制条件的程序,依据输入的边界值来测试程序的正确性。

(3)决策表法:使用决策表的方式,把程序的所有逻辑条件全面考虑,从而排除冗余的测试用例,减少测试的数量。

三、白盒测试白盒测试亦称为结构测试,是一种基于程序内部实现进行的测试方法。

白盒测试通过了解程序实现的内部细节,进行有效的测试工作。

1. 测试目标白盒测试主要关心功能是否能够正确执行。

它着重考虑以下几个方面:(1)代码测试:测试人员需要验证代码能否正确的执行,是否符合功能需求。

(2)测试用例设计:测试人员需要根据程序的代码实现,设计测试用例,覆盖每一个分支和条件。

(3)代码覆盖率:测试人员需要通过代码覆盖率的测试方法,确定测试的范围和完整性。

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<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。

软件测试实验报告(测试用例 代码 截图)

软件测试实验报告(测试用例 代码 截图)

软件测试实验报告(测试用例代码截图)计算机软件测试技术实验报告系别电子信息系专业计算机科学与技术班级学号姓名指导教师万聪2010年12月19月实验一黑盒测试用例设计一(实验内容:1( 三角形问题的等价类测试和边界值分析测试2( NextDate()函数决策表法测试二(实验要求:给出测试用例和测试结果三(实验步骤及结果:3.1(三角形)实验代码(c)#include<stdio.h> #include<stdlib.h>int a=0,b=0,c=0;void shuru();void panduan(int a1,int b1,int c1);void main(){char se;shuru();panduan(a,b,c);while(1){printf("是否要继续y or n :");scanf("%c",&se);if(se=='\n') scanf("%c",&se);switch(se){case 'y':shuru();panduan(a,b,c);break;case 'n':return;}}}void shuru(){printf("Please enter 三角形三边 (a,b,c)\n"); scanf("%d,%d,%d",&a,&b,&c);while((a<1||a>100)||(b<1||b>100)||(c<1||c>100)){if(a==0||b==0||c==0) printf("边长不能为0\n");else if(a<0||b<0||c<0) printf("边长不能为负\n");else printf("Please enter 1-100之间的整数\n");scanf("%d,%d,%d",&a,&b,&c);}}void panduan(int a1,int b1,int c1) {int m1=a1+b1;int m2=a1+c1;int m3=b1+c1;if(a1>=m3||b1>=m2||c1>=m1) printf("非三角形\n");else if(a1!=b1&&a1!=c1&&b1!=c1) printf("一般三角形\n");else if((a1==b1&&b1!=c1)||(a1==c1&&a1!=b1)||(c1==b1&&a1!=c1)) printf("等腰三角形\n");else if(a1==b1&&b1==c1) printf("等边三角形\n"); }3.2测试用例和结果(反映在图中)测试用例输入a,b,c 输出1 4,5,6 一般三角形2 2,3,6 非三角形3 4,4,7 等腰三角形4 6,6,6 等边三角形5 4,0,6 边长不能为06 4,-5,6 边长不能为负7 101,101,101 请输入1-100之间的整数图形结果:3.3(NextDate())实验代码(c)#include<stdio.h>#include<stdlib.h>#include<time.h>void main(){int year;int month,day;int leap;//标志是闰年还是平年,为1时是闰年,为2时是平年time_t t;//本来以下是用来判断格式输入是否正确的,但是结果不理想struct tm stm;//Awhile(1){//循环测试printf("请输入年(yyyy)/月(mm)/日(dd)\n");scanf("%d/%d/%d",&stm.tm_year,&stm.tm_mon,&stm.tm_mday);//B year=stm.tm_year;month=stm.tm_mon;day=stm.tm_mday;//Ct=mktime(&stm);//Dprintf("*****输出结果*****\n");if(t!=-1)//E有问题,不管输入格式是什么,t永远是-1{printf("输入的日期时间格式出错!\n");continue;}if(year%4==0)//年份判断{if(year%100==0){if(year%400==0){leap=1;printf("%ld年%d月%d日是闰年\n",year,month,day);}else{leap=2;printf("%ld年%d月%d日是平年\n",year,month,day); }}else{leap=1;printf("%ld年%d月%d日是闰年\n",year,month,day); }}else{leap=2;printf("%ld年%d月%d日是平年\n",year,month,day); }if(month==2){if(leap==1){printf("该月有29天\n");if(day>29){printf("对不起!您输入的日期超出该月范围\n"); continue;}else if(day==29){month=month+1;day=1;}else day=day+1;}if(leap==2){printf("该月有28天\n");if(day>28){printf("对不起!您输入的日期超出该月范围\n"); continue;}else if(day==28){month=month+1;day=1;}else day=day+1;}}else if(month==4||month==6||month==9||month==11){printf("该月有30天\n");if(day>30){printf("对不起!您输入的日期超出该月范围\n"); continue;}else if(day==30){month=month+1;day=1;}else day=day+1;}else{printf("该月有31天\n");if(day>31){printf("对不起~超出该月范围\n");continue;}else if(day==31){if(month==12&&day==31){year=year+1;month=1;day=1;}else{month=month+1;day=1;}}else day=day+1;}printf("NEXT日期:%ld年%d月%d日\n",year,month,day); }}3.4测试用例和结果(反映在图中)决策表测试用例 month day year 预期输出Test1~3 6 16 2001 2001/6/17Test4 6 30 2001 2001/7/1Test5 6 31 2001 对不起~超出该月范围Test6~9 1 17 2010 2010/1/18Test10 1 31 2013 2013/2/1Test 11~14 12 31 2010 2010/1/1Test15 2 28 2004 2004/2/29Test16 2 29 2004 2004/3/1Test17 2 28 2001 2001/3/1Test18 2 30 2001 对不起~超出该月范围界面效果:实验二白盒测试用例设计一(实验内容:求解一元二次方程程序控制流测试二(实验要求:给出控制流测试用例和测试结果三(实验步骤及结果:3.1实验代码(c)#include<stdio.h>#include<stdlib.h>#include<math.h>void main(){float a,b,c,x,y;float mid,x1,x2;y=a*x*x+b*x+c;printf("*************************************\n"); printf("二元一次方程的求解问题\n");printf("**************************************\n"); while(1){printf("请输入y方程中参数a,b,c: \n");scanf("%f,%f,%f",&a,&b,&c);if(a!=0){mid=b*b-4*a*c;if(mid>0){x1=(-b+sqrt(mid))/(2*a);x1=(-b-sqrt(mid))/(2*a);printf("该方程有两个解:x1=%f,x2=%f\n",x1,x2);//printf("y=(%f*%f*%f)+(%f*%f)+(%f)\n",a,x1,x1,b,x1,c);//printf("y=(%f*%f*%f)+(%f*%f)+(%f)\n",a,x2,x2,b,x1,c);}if(mid==0){x1=-b/(2*a);x2=x1;printf("该方程两个解相同:x1=x2=%f\n",x2);printf("y=(%f*%f*%f)+(%f*%f)+(%f)\n",a,x1,x1,b,x1,c);}if(mid<0){printf("该方程没有解\n");}}else printf("该方程不是二元方程,可能是一元一次方程\n");}}3.2测试用例和结果(反映在图中)测试用例 x,y,z a!=0 mid>0 mid==0 输出结果1 2,5,3 真真假该方程有两个解2 1,2,1 真假真该方程有两个相同解3 4,2,1 真假假该方程没有解4 0,2,1 假该方程不是二元方程,可能是一元一次方程图形结果:实验三基于缺陷模式的软件测试一(实验内容:C++语言、Java语言缺陷模式测试 (2学时) 二(实验要求:给出测试用例和测试结果三(实验步骤及结果:3.1实验代码(java)package hl.fengye.tt;public class base{//没必要的方法调用,System.exit()是没有必要的,应该抛出异常public String square(String x){try{int y=Integer.parseInt(x.toLowerCase());return y*y+"";}catch(NumberFormatException e){e.printStackTrace();System.exit(1);return "";}}//显示垃圾回收(缺陷)public String multiply(String x,int n){if(n<=0) return "";StringBuffer buf=new StringBuffer();while(n-->0){buf.append(x);}return buf.toString();}public String multiplyGc(String x,int n){ System.gc();//显示运行结果return multiply(x,n);}//字符串的低效操作(连接)public void connection(){String filed="东北大学秦皇岛分校 4080420 黄磊"; //this is badString s="";//System.out.print(s);//Startfor(int i=0;i<filed.length();++i){s=s+filed.charAt(i);//追加}System.out.print(s+'\n');//Stop1}public void connection2(){String filed="东北大学秦皇岛分校 4080420 黄磊";//this is betterString s="";StringBuffer buf=new StringBuffer();for(int i=0;i<filed.length();++i){buf.append(filed.charAt(i));}String ss=buf.toString();System.out.print(ss+'\n');//Stop2}public static void main(String[] args) {String h;base pp=new base();h=pp.square("100");System.out.print(h+"\n");String s="hello word!";h=pp.multiply(s, 2);//System.out.print(h+"\n");h=pp.multiplyGc(s,2);System.out.print(h+"\n");//以纳秒为单位计算的:long startTime = System.nanoTime();//获取当前时间pp.connection();long endTime = System.nanoTime();System.out.println("程序运行时间:"+(endTime-startTime)+"ms");long startTime2 = System.nanoTime();//获取当前时间pp.connection2();long endTime2 = System.nanoTime();System.out.println("程序运行时间:"+(endTime2-startTime2)+"ms"); }}3.2测试用例和结果(反映在图中)显示垃圾回收部分:测试用例输入String s ,int n 输出结果1 hello word !,2 hello word! hello word!2 ni hao ,1 ni hao3 love you ,0 (null)图形显示:低效字符串操作部分:测试用例输入String s 输出时间bad(ms) good(ms)1 hl 441694 271302 hello word 477785 378673 东北大学秦皇岛分校 4080420 黄磊 456245 392444 (空格) 313135 51604部分图形展示:实验四系统测试一(实验内容:数据库应用系统性能测试二(实验要求:给出响应时间、吞吐量测试用例和结果三(实验步骤及结果:3.1实验代码(java)import java.sql.Connection;import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement;public class huanglei {/*** @param args* @throws Exception*/public void execute() throws Exception{Class.forName("com.mysql.jdbc.Driver");Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","root");con.setAutoCommit(false);Statement st = con.createStatement();//st.execute("create table city (name varchar(20) not null)");for(int i = 100;i>0;i--){String str = "insert into city values('city"+i+"','huangeli','hebei')";System.out.println(str);st.addBatch(str);}//rs='select * from city';st.executeBatch();mit();}public static void main(String[] args) {// TODO Auto-generated method stubtry {new Luncher().execute();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}3.2测试用例和结果(反映在图中)测试用例线程数循环次数响应时间(seconds)吞吐结果1 100 10 1 592.002/minute2 50 5 1 293.232/minute1 100 102 586.61/minute图形展示:实验总结:通过这些课时的实验,了解了一些软件测试的基本含义,学会了一些基本测试步骤的设计和用例的构造。

黑盒和白盒测试方法

黑盒和白盒测试方法

黑盒和白盒测试方法黑盒测试介绍黑盒测试(black—box testing)又称功能测试、数据驱动测试或基于规范的测试。

用这种方法进行测试时,被测程序被当作看不见内部的黑盒。

在完全不考虑程序内部结构和内部特性的情况下,测试者仅依据程序功能的需求规范考虑确定测试用例和推断测试结果的正确性。

因此黑盒测试是从用户观点出发的测试,黑盒测试直观的想法就是既然程序被规定做某些事,那我们就看看它是不是在任何情况下都做的对。

完整的“任何情况”是无法验证的,为此黑盒测试也有一套产生测试用例的方法,以产生有限的测试用例而覆盖足够多的“任何情况”。

由于黑盒测试不需要了解程序内部结构,所以许多高层的测试如确认测试、系统测试、验收测试都采用黑盒测试。

黑盒测试首先是程序通常的功能性测试。

要求:每个软件特性必须被一个测试用例或一个被认可的异常所覆盖;用数据类型和数据值的最小集测试;用一系列真实的数据类型和数据值运行,测试超负荷、饱和及其他“最坏情况”的结果;用假想的数据类型和数据值运行,测试排斥不规则输入的能力;对影响性能的关键模块,如基本算法、应测试单元性能(包括精度、时间、容量等)。

不仅要考核“程序是否做了该做的?”还要考察“程序是否没做不该做的2”同时还要考察程序在其他一些情况下是否正常。

这些情况包括数据类型和数据值的异常等等。

下述几种方法:(a)等价类划分,(b)因果图方法,(c)边值分析法,(d)猜错法,(e)随机数法,就是从更广泛的角度来进行黑盒测试。

每一个方法都力图能涵盖更多的“任何情况”,但又各有长处,综合使用这些方法,会得到一个较好的测试用例集。

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 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.输入表中部分或全部元素相同。

软件测试中的黑盒和白盒测试

软件测试中的黑盒和白盒测试

软件测试中的黑盒和白盒测试在软件开发过程中,软件测试是非常关键的环节,通过测试可以发现和修复软件中存在的问题,保证软件的质量。

而在软件测试中,黑盒测试和白盒测试是两种常见的测试方法。

黑盒测试黑盒测试是一种基于软件功能规格和需求的测试方法,测试人员在进行测试时不需要了解软件的内部结构和实现细节,只需要关注软件的输入和输出。

黑盒测试可以从用户的角度出发,测试软件是否符合用户的需求和期望。

在黑盒测试中,测试人员根据软件的功能规格和需求编写测试用例,通过输入不同的数据,触发软件的不同功能,然后验证软件的输出是否符合预期。

通过黑盒测试,可以发现软件中存在的功能性问题和性能问题,提高软件的可靠性和稳定性。

白盒测试白盒测试是一种基于软件内部结构和代码的测试方法,测试人员需要了解软件的内部逻辑和实现细节,在测试时可以针对软件的代码进行测试。

白盒测试可以发现软件中的逻辑错误和代码错误,提高软件的健壮性和安全性。

在白盒测试中,测试人员需要分析软件的代码结构和逻辑,编写测试用例覆盖不同的代码路径,以确保软件的每一行代码都得到测试。

通过白盒测试,可以发现软件中存在的潜在问题,提前修复,保证软件的质量。

黑盒测试与白盒测试的比较1.测试对象:黑盒测试是基于软件的功能规格和需求进行测试,而白盒测试是基于软件的内部结构和代码进行测试。

2.测试方法:黑盒测试关注软件的输入和输出,不需要了解软件的内部实现细节,而白盒测试需要了解软件的内部逻辑和代码,进行结构化的测试。

3.发现问题类型:黑盒测试更容易发现功能性问题和性能问题,白盒测试更容易发现逻辑问题和代码错误。

4.互补性:在实际测试中,黑盒测试和白盒测试通常结合使用,互为补充。

黑盒测试可以验证软件是否符合用户需求,而白盒测试可以发现潜在问题,提高软件的质量。

总结在软件测试中,黑盒测试和白盒测试是两种常见的测试方法,各有优劣。

黑盒测试更加关注软件的功能性和用户需求,而白盒测试更加关注软件的内部逻辑和代码结构。

软件测试中的黑盒测试与白盒测试

软件测试中的黑盒测试与白盒测试

软件测试中的黑盒测试与白盒测试在软件开发中,测试是一个至关重要的步骤。

好的测试可以有效地减少软件上线后出现的问题,提高软件的质量和稳定性。

而测试的方法分为很多种,其中最常用的两种是黑盒测试和白盒测试。

今天我们就来探讨一下这两种测试方法的不同点以及各自的适用场景。

一、黑盒测试黑盒测试,顾名思义,就是不关心软件内部实现细节的测试方法。

它的目的是通过对软件外部输入输出的检查来判断软件的正确性。

黑盒测试比较适用于在软件开发的初期,当程序代码还没有编写完成,而开发人员需要测试软件是否可以正确输出结果时使用。

因为黑盒测试不需要了解程序的内部运作机制,只需要按照软件设计文档进行操作即可。

一些常见的黑盒测试方法包括:1. 等价类划分:将所有可能的输入划分为几个等价类,对每个等价类中的数据进行测试。

2. 决策表测试:制定出决策表,根据决策表的不同情况进行测试。

3. 边界值测试:针对系统边界值进行检查,例如在指定范围内测试数据的最大值和最小值。

黑盒测试的优点在于,它可以根据用户的需求和设计文档预测程序的运行情况。

通过模拟用户输入,可以检查程序的输出是否符合预期。

此外,黑盒测试不需要对程序代码进行修改,更适用于不想过多涉及源代码的测试人员。

但是,黑盒测试也有其局限性,由于这种测试方法无法访问程序代码,因此不适用于需要进行性能测试和安全测试的场景。

二、白盒测试白盒测试与黑盒测试不同,它需要测试人员了解程序内部的运作机制。

也就是说,白盒测试需要程序员在写完代码之后进行测试。

白盒测试查看代码的“内部”,以期找出可能存在的程序缺陷。

常见的白盒测试方法包括:1. 路径覆盖测试:要求测试人员遍历程序的所有可能路径,以测试程序的正确性。

2. 语句测试:将程序中的语句分开测试,以检查程序中是否存在语法错误。

3. 分支测试:测试所有分支的情况,以验证程序的条件表达式是否正确。

白盒测试可以检查程序的内部代码是否正确,因此更适用于需要进行性能测试和安全测试的场景。

软件测试中的黑盒测试和白盒测试

软件测试中的黑盒测试和白盒测试

软件测试中的黑盒测试和白盒测试软件测试是软件开发流程中不可或缺的一环。

它的主要目的是评估软件的质量和可靠性,以确保软件在实际运行中能够正常工作。

在软件测试中,黑盒测试和白盒测试是两种常见的测试方法。

本文将详细介绍这两种测试方法的原理和应用场景。

一、黑盒测试黑盒测试是一种基于软件外部行为的测试方法。

它关注的是测试对象的输入和输出,而对于测试对象的内部结构和实现细节并不关心。

黑盒测试试图从最终用户的角度去评估软件的功能性、可用性和稳定性。

1.1 原理黑盒测试基于一个假设,即只要能够覆盖到软件的所有输入和输出的组合,就可以保证软件的正确性。

测试人员将根据软件的需求规格说明书或功能规范来设计测试用例,然后根据这些测试用例来验证软件的功能是否符合要求。

1.2 应用场景黑盒测试适用于以下场景:1.2.1 验证功能黑盒测试可以验证软件的功能是否按照需求规格说明书中所描述的符合预期。

测试人员可以设计多组测试用例,涵盖各种不同的输入和预期输出,以验证软件在不同情况下的功能表现。

1.2.2 界面测试对于有图形用户界面的软件,黑盒测试可以用于验证界面的正确性和可用性。

例如,测试人员可以通过输入不同的数据或操作不同的按钮来测试软件的响应性和用户友好性。

1.2.3 兼容性测试黑盒测试还可以用于验证软件在不同的操作系统、不同的硬件配置下的兼容性。

通过设计不同的测试用例,测试人员可以评估软件在不同环境下的运行情况。

二、白盒测试白盒测试是一种基于软件内部结构和实现细节的测试方法。

它关注的是测试对象的内部逻辑和算法。

与黑盒测试不同,白盒测试需要测试人员有一定的编程和调试经验,以便能够更好地理解和分析软件的内部运行机制。

2.1 原理白盒测试基于一个假设,即只要能够覆盖到软件的所有内部结构和代码路径,就可以保证软件的正确性。

测试人员将根据软件的源代码或设计文档来设计测试用例,然后通过调试软件的执行过程来验证软件的正确性。

2.2 应用场景白盒测试适用于以下场景:2.2.1 代码覆盖率测试白盒测试可以用于评估软件的代码覆盖率,即测试用例能够覆盖到软件中的所有代码路径。

软件测试实验报告

软件测试实验报告

软件测试实验报告姓名:*******专业:********************* 班级:***********学号:*************日期:2011-5-25实验一:黑盒测试一、实验目的:了解三角形问题的边界值分析测试用例。

二、实验要求:在三角形问题描述中,除了要求边长是整数外,没有给出其它的限制条件。

在此,我们将三角形每边边长的取范围值设值为[1, 100] 。

在三角形问题中,有四种可能的输出:等边三角形、等腰三角形、一般三角形和非三角形。

利用这些信息能够确定下列输出(值域)等价类。

R1 = { <a,b,c>: 边为a,b,c的等边三角形}R2 = { <a,b,c>: 边为a,b,c的等腰三角形}R3 = { <a,b,c>: 边为a,b,c的一般三角形}R4 = { <a,b,c>: 边为a,b,c不能组成三角形}三、实验程序:#include "iostream.h"void main(){int a,b,c;cout<<"请输入1<=a<=100或1<=b<=100或1<=c<=100"<<endl;cin>>a>>b>>c;if((1<=a&&a<=100)&&(1<=b&&b<=100)&&(1<=c&&c<=100)){if(a+b>c&&a+c>b&&c+b>a){if(a==b&&a==c&&c==b){ cout<<"三角形为等边三角形"<<endl;}else if(a==b||a==c||c==b){cout<<"三角形为等腰三角形"<<endl;}else if((a*a+b*b)==c*c||(c*c+b*b)==a*a||(a*a+c*c)==b*b){cout<<"三角形为直角三角形"<<endl;}else cout<<"a,b,c可组成三角形"<<endl;}else cout<<"不存在a,b,c组成的三角形"<<endl;}else cout<<"a或b或c的值不合法,无法判断"<<endl;}四、测试用列:用列ID a b c 预期输出1 1 1 1 三角形为等边三角形2 2 2 1 三角形为等腰三角形3 345 三角形为直角三角形4 2 2 2 三角形为等边三角形5 2 3 3 三角形为等腰三角形6 4 3 5 三角形为直角三角形7 5 4 3 三角形为直角三角形8 1 1 2 不存在a,b,c组成的三角形9 4 2 2 不存在a,b,c组成的三角形10 2 4 2 不存在a,b,c组成的三角形11 4 2 5 不存在a,b,c组成的三角形12 0 0 0 a或b或c的值不合法,无法判断13 0 1 1 a或b或c的值不合法,无法判断14 2 0 12 a或b或c的值不合法,无法判断15 13 13 0 a或b或c的值不合法,无法判断16 100 100 100 三角形为等边三角形17 100 100 0 a或b或c的值不合法,无法判断18 100 12 101 a或b或c的值不合法,无法判断19 100 12 100 不存在a,b,c组成的三角形20 90 90 80 三角形为等腰三角形五、等价类划分:输入条件有效等价类编号无效等价类编号三角形a+b>c&&a+c>b&&c+b>a&&a=b& &c=b 1 a<1,a>100,b<1,b>100,c<1,c>1005a+b>c&&a+c>b&&c+b>a&&a=b||c=b2a+b>c&&a+c>b&&c+b>a&& 3非三角形a+b<c||a+c<b||c+b<a 4六、实验结论:通过实验要求的条件编写的程序和测试用列的预期输出证明给该程序是正确的实验二:黑盒测试1.一、实验目的:了解xtDate函数的边界值分析测试用例。

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

淮海工学院计算机工程学院实验报告书课程名:《软件工程导论》题目:软件测试学号: 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。

2.【开始】--【所有程序】--【IBM WebSphere】--【Application Server v6】--【启动服务器】等待初始化完成,窗口自动关闭3.浏览器会打开PlantsByWebSphere网页。

4.根据实验指导书的提示,选择一颗树“Crabapple”加入购物车,在Checkout Now时,要求登录用户。

没有用户的就要根据要求创建一个用户,点击register for your own account here,填入相应信息,最后点击Submit Order。

5.订购成功后会到HOME并且把该网址添加到收藏夹。

6.【开始】--【所有程序】--【IBM Software Delivery Platform】--【IBM RationalPerformance Tester】--【IBM Rational Performance Tester– Full Eclipse】7.【文件】--【新建】--【Performance Test Project】--项目名称:Plants8.右击“Plants”--【新建】--【文件夹】--“01_Tests”9.右击“01_Tests”--【新建】--【录制测试】--HTTP Test,输入名称“BuyBonsai”--【finish】10.等加载条充满,会弹出一个网页,右击“允许阻止的内容”。

11.【工具】--【Internet选项】--【清除cookies】--【清除历史记录】12.点击打开收藏夹内前面已收藏的网址。

IBM RPT窗口下面显示“正在记录”。

13.根据前面的步骤。

选择一个树“Bonsai”,加入购物车,点击Checkout Now,然后登录前面已创建好的用户。

订购成功后关闭浏览器。

14.IBM RPT记录好刚刚使用浏览器的数据。

弹出窗口,选择打开编辑器。

15.点击“运行”。

浏览器窗口会显示刚刚所执行过的步骤。

16.在窗口中可以查看“总体”“摘要”“页面性能”,还可以生成“测试日志”。

17.完成这次自动化测试。

四、测试数据与实验结果第一题:白盒测试:语句覆盖:编号 a b c 覆盖对象期望输出实际结果1 4 4 5 ①②③等腰三角形2 4 4 4 ①②④⑤等边三角形3 345 ①②④⑥⑦直角三角形4 456 ①②④⑥⑧一般三角形5 4 5 9 ①⑨不能构成三角形判定覆盖:编号 a b c 覆盖对象期望输出实际结果1 4 4 5 ①②③等腰三角形2 4 4 4 ①②④⑤等边三角形3 345 ①②④⑥⑦直角三角形4 456 ①②④⑥⑧一般三角形5 4 5 9 ①⑨不能构成三角形条件覆盖:判定1T1_1 (a + b > c) T1_2(a + c > b) T1_3 (b + c > a)判定2T2_1 (a == b && b != c)T2_2 (a == c && c != b)T2_3 (b == c && a != b)判定3T3_1 (a == b) T3_2 (b == c)判定4T4_1 (a*a+b*b==c*c)T4_2 (a*a+c*c==b*b)编号 a b c 覆盖对象期望输出实际结果6 4 4 5 T1_1,T1_2, T1_3,T2_1, F2_2, F2_3等腰三角形7 4 5 4 T1_1,T1_2, T1_3,F2_1, T2_2, F2_3等腰三角形8 4 5 5 T1_1,T1_2, T1_3,F2_1, F2_2, T2_3等腰三角形9 4 4 4 T1_1,T1_2, T1_3,F2_1,F2_2,F2_3,T3_1,T3_2等边三角形10 3 4 5 T1_1,T1_2, T1_3,F2_1,F2_2,F2_3,F3_1,F3_2,T4_1, F4_1, F4_1直角三角形11 3 5 4 T1_1,T1_2, T1_3,F2_1,F2_2,F2_3,F3_1,F3_2,T4_1, F4_2, F4_3直角三角形12 5 3 4 T1_1,T1_2, T1_3,F2_1,F2_2,F2_3,F3_1,F3_2,F4_1, T4_2, F4_3直角三角形13 4 5 6 T1_1,T1_2, T1_3,F2_1,F2_2,F2_3 ,F3_1,F3_2,F4_1, F4_2,F4_3一般三角形14 3 4 7 F1_1,T1_2, T1_3 不能构成三角形15 3 7 4 T1_1,F1_2, T1_3 不能构成三角形16 7 3 4 T1_1,T1_2, F1_3 不能构成三角形黑盒测试:边界值分析:每条边的取值范围[0,100]编号 a b c 期望输出实际结果1 0 50 50 无效输入2 1 50 50 等腰三角形3 100 50 50 等腰三角形4 101 50 50 无效输入5 50 0 50 无效输入6 50 1 50 等腰三角形7 50 100 50 等腰三角形8 50 101 50 无效输入9 50 50 0 无效输入10 50 50 1 等腰三角形11 50 50 100 等腰三角形12 50 50 101 无效输入13 50 50 50 等边三角形等价类划分:输入条件有效等价类编号无效等价类编号是否构成三角形a>=1&&a<=100 1a<1 7b<1 8 b>=1&&b<=100 2c<1 9a>100 10 c>=1&&c<=100 3c>100 11c>100 12a+b>c 4 a+b<=c 13 a+c>b 5 a+c<=b 14 b+c>a 6 b+c<=a 15是否等腰三角形a==b && b!=c 16a!=b&&b!=c 19 a==c && c!=b 17b==c && a!=b 18是否等边三角形a==b && a==c 20a!=b 21b!=c 22a!=c 23是否直角三角形a*a+b*b==c*c 24 a*a+b*b!=c*c &&a*a+c*c!=b*b &&c*c+b*b!=a*a27 a*a+c*c==b*b 25c*c+b*b==a*a 26编号 a b c 覆盖等价类预期输出1 4 5 6 1,2,3,4,5,6 一般三角形2 -4 5 6 7 无效输入3 4 -5 6 8 无效输入4 45 -6 9 无效输入5 101 56 10 无效输入6 4 101 6 11 无效输入7 4 5 101 12 无效输入8 4 5 9 13 不能构成三角形9 4 13 9 14 不能构成三角形10 14 5 9 15 不能构成三角形11 4 4 6 1,2,3,4,5,6,16 等腰三角形12 4 6 4 1,2,3,4,5,6,17 等腰三角形13 4 6 6 1,2,3,4,5,6,18 等腰三角形14 4 5 6 1,2,3,4,5,6,19 一般三角形15 4 4 4 1,2,3,4,5,6,20 等边三角形16 4 5 6 1,2,3,4,5,6,21 一般三角形17 4 5 6 1,2,3,4,5,6,22 一般三角形18 4 5 6 1,2,3,4,5,6,23 一般三角形19 3 4 5 1,2,3,4,5,6,24 直角三角形20 3 5 4 1,2,3,4,5,6,25 直角三角形21 5 3 4 1,2,3,4,5,6,26 直角三角形22 4 5 6 1,2,3,4,5,6,27 一般三角形第二题:测试脚本:总体:摘要:页面性能:测试日志概述:五、结果分析与实验体会这次实验,先是做白盒测试和黑盒测试。

相关文档
最新文档