Python白盒测试实验报告

合集下载

白盒测试方法实验报告

白盒测试方法实验报告

实验报告

课程名称软件测试题目白盒方法测试

院系信息工程学院

班级计算机

学号

学生姓名

指导老师

日期 2019年

一、实验题目

白盒方法测试

二、实验目的

使学生能够更进一步理解白盒测试方法。

能够区分语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖及路径覆盖所达到的覆盖层次,并能用各层次覆盖的设计思想设计相应的测试用例。

区分语句覆盖、判定覆盖、条件覆盖的异同,掌握其测试用例设计方法和程序特征;

三、实验环境

Windows系统平台和Dev-C++开发环境。

四、实验内容

某程序的逻辑设计如下图所示,自行分析程序结构,请为该程序设计测试用例使其分别满足:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖及路径覆盖,并按照测试用例测试程序,完善测试用例各项内容的填写。

#include <iostream>

using namespace std;

int main()

{

int F=0;

int T=0;

int x,y;

cin>>x>>y;

if(x>=50&&y>=50)

{F=1;}

if(x+y>80)

{

T=2;

}

else

{

T=3;

}

cout<<F<<endl<<T<<endl;

}

4

五、实验步骤

1.依据程序逻辑结构图分析程序结构,找出程序的各种组合。

2.依据实验要求设计测试用例使测试达到特定覆盖。

3.选择自己熟悉的语言编写程序。

4.用各种测试用例测试程序。

5.1语句覆盖

特点:语句覆盖要求设计足够多的测试用例,运行被测程序,使得程序中每

白盒测试实验报告-范例

白盒测试实验报告-范例

实验报告书

实验一白盒测试

学生姓名:李庆忠

专业:计算机科学与技术学号:1341901317

白盒测试实验报告

一实验内容

1、系统地学习和理解白盒测试的基本概念、原理,掌握白盒测

试的基本技术和方法;

2、举例进行白盒测试,使用语句覆盖、判定覆盖、条件覆盖、

判定/条件覆盖、组合覆盖、路径覆盖进行测试。

3、通过试验和应用,要逐步提高和运用白盒测试技术解决实际

测试问题的能力;

4、熟悉C++编程环境下编写、调试单元代码的基本操作技术和方法;

5、完成实验并认真书写实验报告(要求给出完整的测试信息,

如测试程序、测试用例,测试报告等)

二实验原理

白盒测试原理:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否已经过检查。它是把测试对象看作装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作。其又称为结构测试。

流程图如下图所示

实验代码

#include"stdio.h"

int main()

{

int x,y,z;

scanf("%d%d",&x,&y);

if((x>0)&&(y>0))

{

z=x+y+10;

}

else

{

z=x+y-10;

}

if(z<0)

{

z=0;

printf("%d\n",z);

}

else

{

printf("%d\n",z);

}

return 0;

}

语句覆盖是指选择足够的测试,使得程序中每个语句至少执行一次。如选择测试x=1,y=1和x=1,y=-1可覆盖所有语句。

判定覆盖是指选择足够的测试,使得程序中每一个判定至少获得一次“真”值和“假”值,从而使得程序的每个分支都通过一次(不是所有的逻辑路径)。选择测试x=1,y=1和x=1,y=-1可覆盖所有判定。

白盒测试和黑盒测试实验报告

白盒测试和黑盒测试实验报告

软件质量保证与测试

实验指导

计算机工程学院

测试环境配置

1.setting Junit

(1) start Eclipse

Select windows-preferences-java-build path –class path variables

(2) click new, the figure of new variable entry is shown.

(3) name JUNIT_LIB

select file-选择JUnit 插件所对应的JAR文件所在地,在Eclipse的安装目录的plugins目录中

2.JUNIT的组成框架

其中,junit.framework 和junit.runner是两个核心包。

junit.framework 负责整个测试对象的框架

junit.runner 负责测试驱动

Junit的框架又可分为:

A、被测试的对象。

B、对测试目标进行测试的方法与过程集合,可称为测试用例(TestCase)。

C、测试用例的集合,可容纳多个测试用例(TestCase),将其称作测试包(TestSuite)。

D、测试结果的描述与记录。(TestResult) 。

E、每一个测试方法所发生的与预期不一致状况的描述,称其测试失败元素(TestFailure)

F、JUnit Framework中的出错异常(AssertionFailedError)。

JUnit框架是一个典型的Composite模式:TestSuite可以容纳任何派生自Test 的对象;当调用TestSuite对象的run()方法是,会遍历自己容纳的对象,逐个调用它们的run()方法。

白盒测试实验报告案例

白盒测试实验报告案例

白盒测试实验报告案例

本文为某公司开发团队进行的白盒测试实验报告案例。白盒测试是一种基于代码内部结构的测试方法,主要用于检查程序内部的逻辑和数据流程是否正确,以保证程序的稳定性和可靠性。

二、实验目的

本次实验的目的是对某公司开发的一个登录功能进行白盒测试,主要测试以下几个方面:

1. 输入正确的用户名和密码能否成功登录;

2. 输入错误的用户名或密码时能否正确提示用户;

3. 输入为空的情况下,能否正确提示用户输入。

三、测试环境

本次实验使用的测试环境如下:

1. 操作系统:Windows 10;

2. 浏览器:Google Chrome 88.0.4324.150;

3. 开发工具:Visual Studio 2019;

4. 编程语言:C#。

四、测试过程

1. 首先,我们对程序进行了代码审查,确认了登录功能的主要代码逻辑;

2. 然后,我们针对上述测试目的,编写了测试用例,并将测试用例与代码进行了匹配,检查代码的覆盖率;

3. 接着,我们使用测试用例对程序进行了白盒测试,并记录测

试结果;

4. 最后,我们对测试结果进行了整理和分析。

五、测试结果

1. 输入正确的用户名和密码能够成功登录,测试通过;

2. 输入错误的用户名或密码时,程序能够正确提示用户输入错误,测试通过;

3. 输入为空的情况下,程序能够正确提示用户输入,测试通过。

六、测试结论

本次实验通过对某公司开发的一个登录功能进行了白盒测试,验证了该程序的稳定性和可靠性。测试结果表明,该程序能够正确处理用户输入,有效防止了错误操作和非法访问。同时,我们也发现了一些潜在的问题,并提供了相应的改进建议,以进一步提升程序的质量和用户体验。

白盒测试实验报告

白盒测试实验报告

实验报告

一、实验目的

1.熟练掌握如何运用基路径测试方法进行测试用例设计。

2.初步熟悉如何利用程序插装技术进行逻辑覆盖率分析。

二、实验内容

1、题目

前一日函数PreDate是NextDate的逆函数(代码实现见下),实现功能为:输入1800 年到2050 年之间的某个日期,函数返回这一天的前一天的日期。(此处不考虑无效输入)请采用基路径方法对前一日函数进行测试用例设计,并利用程序插装技术对测试用例的判定覆盖率进行检查分析。

代码:(被测函数为PreDate)

#include""

typedef struct MyDate{

int month;

int day;

int year;

}MyDate;

MyDate PreDate(MyDate date);

int Leapyear(int year);

void Print(MyDate date);

MyDate PreDate(MyDate date)

//输入日期有效性检查中其他模块实现,此处假设输入日期都是合法数据{

yesterday;

= ; // initialization

= ;

= ;

days_month[13]={0,31,0,31,30,31,30,31,31,30,31,30,31};

//初始化每月天数,其中2月不确定,初始化为0 >1)

else

{

==1)

{

} if==3)

{

(Leapyear)

{

}

else

{

}

}

else

{

}

}

yesterday;

}

Leapyear(int year)

{

((year%4==0&&year%100!=0) || (year%400==0))

软件工程实验6白盒测试实验

软件工程实验6白盒测试实验

软件工程实验6:白盒测试实验

一、实验目的

1、理解白盒测试的基本概念、原理,掌握白盒测试的基本技术和方法;

2、掌握白盒测试中主要逻辑覆盖标准测试用例的设计方法;

3、通过试验逐步提高和运用白盒测试技术解决实际测试问题的能力;

二、实验内容

1、系统地学习和理解白盒测试的基本概念、原理,掌握白盒测试的基本技术和方法;

2、理解白盒测试中各种逻辑覆盖测试的定义。

3、复习C++、java等编程环境下编写、调试单元代码的基本操作技术和方法;

4、能对给定模块相应的算法设计出语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖对应的测试用例。

5、完成实验并认真书写实验报告(要求给出完整的测试信息,如测试程序、测试用例,测试报告等)

三、实验环境要求

word2010、C/C++/java/VB/PHP/JSP/ASP/

四、实验要求

1、下列程序流程图,设计出语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖对应的测试用例,上机编写程序代码执行,运行结果与预期结果对比。注:红色的字母为路径编号。

2、实验时间:2课时

五、实验步骤

1、测试用例设计

2、程序语言及开发环境选择

程序语言:C

开发环境:DEV-C++

3、程序代码

#include<stdio.h>

int main()

{

int x,y;

int magic;

printf("please enter two integer");

scanf("%d%d",&x,&y);

{

if(x>0&&y>0)

magic=x+y+10;

python实验报告总结

python实验报告总结

python实验报告总结

一、引言

Python是一种非常流行的高级编程语言,由于其简洁的语法和

丰富的库函数,被广泛应用于软件开发、数据分析、人工智能等

领域。在本次实验中,我们通过实际动手操作,深入学习了Python的基础知识和常用功能,下面将对整个实验过程进行总结

和反思。

二、实验目的和方法

本次实验的目的是让我们熟悉Python的语法和常用库函数,并能够使用Python解决实际问题。实验的方法是通过实践来学习,

我们按照实验指导书的要求,逐步完成各个实验任务,并进行自

主思考和探索。

三、实验内容和结果

在本次实验中,我们学习了Python的基本语法和数据类型,掌握了变量的定义和使用、流程控制语句(条件语句和循环语句)、函数的定义和调用等基本知识。通过练习,我们提高了编程能力,并能够编写简单的Python程序。

在进一步的实验中,我们学习了Python的常用库函数,如NumPy、Pandas、Matplotlib等。这些库函数为我们提供了丰富的功能和工具,使我们能够更加高效地处理数据和进行数据分析。通过实际操作,我们学会了使用这些库函数,并能够完成一些简单的数据分析任务。

在实验过程中,我们还进行了小组合作,通过交流和讨论,互相学习和帮助。大家积极参与讨论,共同解决问题,提高了合作和沟通能力。

四、实验结果和讨论

通过本次实验,我们深入了解了Python的特点和优势。Python 具有简洁的语法和丰富的库函数,使得我们能够以更少的代码实现更多的功能,提高了编程的效率。Python还具有良好的可读性和可维护性,使得我们能够快速理解和修改他人的代码。这些特点使得Python成为许多程序员和数据科学家的首选编程语言。

白盒测试实验报告-范例

白盒测试实验报告-范例

实验报告书

实验一白盒测试

学生姓名:李庆忠

专业:计算机科学与技术学号:1341901317

白盒测试实验报告

一实验内容

1、系统地学习和理解白盒测试的基本概念、原理,掌握白盒测试的基本技术和方法;

2、举例进行白盒测试,使用语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合

覆盖、路径覆盖进行测试。

3、通过试验和应用,要逐步提高和运用白盒测试技术解决实际测试问题的能力;

4、熟悉C++编程环境下编写、调试单元代码的基本操作技术和方法;

5、完成实验并认真书写实验报告(要求给出完整的测试信息,如测试程序、测试用例,

测试报告等)

二实验原理

白盒测试原理:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否已经过检查。它是把测试对象看作装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作。其又称为结构测试。

流程图如下图所示

实验代码

#include"stdio.h"

int main()

{

int x,y,z;

scanf("%d%d",&x,&y);

if((x>0)&&(y>0))

{

z=x+y+10;

}

else

{

z=x+y-10;

}

if(z<0)

{

z=0;

printf("%d\n",z);

}

else

{

printf("%d\n",z);

}

return 0;

}

语句覆盖是指选择足够的测试,使得程序中每个语句至少执行一次。如选择测试x=1,y=1和x=1,y=-1可覆盖所有语句。

白盒测试用例实验报告

白盒测试用例实验报告

白盒测试用例实验报告

《白盒测试用例实验报告》

一、实验目的

本实验旨在通过白盒测试用例的实验报告,了解白盒测试的原理和方法,掌握白盒测试用例的编写和执行过程。

二、实验环境

1. 软件环境:Windows 10操作系统、Eclipse集成开发环境

2. 硬件环境:个人电脑

三、实验内容

1. 理解白盒测试的原理和方法

2. 编写白盒测试用例

3. 执行白盒测试用例

4. 分析测试结果并撰写实验报告

四、实验步骤

1. 阅读相关文献,了解白盒测试的原理和方法

2. 选择一个简单的软件模块,编写白盒测试用例

3. 在Eclipse中创建测试类,并将编写的测试用例添加到测试类中

4. 执行测试用例,观察测试结果

5. 分析测试结果,撰写实验报告

五、实验结果

1. 经过测试,所有编写的白盒测试用例均能正确执行,并且符合预期结果

2. 通过对测试结果的分析,发现了一些潜在的代码逻辑错误,并及时进行了修

3. 实验报告中详细记录了测试用例的编写过程、执行结果和分析结论

六、实验总结

通过本次实验,我对白盒测试有了更深入的了解,掌握了白盒测试用例的编写和执行方法。同时,通过对测试结果的分析,我也发现了一些代码逻辑上的问题,并及时进行了修复。这次实验不仅提高了我的软件测试能力,也增强了我对软件质量控制的认识。

七、实验感想

白盒测试是软件测试中非常重要的一部分,通过本次实验,我深刻体会到了白盒测试对软件质量的重要性。在今后的学习和工作中,我将继续深入学习白盒测试的理论知识,提高自己的测试能力,为软件质量的提升贡献自己的力量。

八、参考文献

1. 《软件测试与质量保障》,王晓敏,清华大学出版社

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

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

软件测试与质量课程实验报告

实验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、系统地学习和理解白盒测试的基本概念、原理,掌握白盒测试的基本技术和方法;

2、举例进行白盒测试,使用语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖、路径覆盖进行测试。

3、通过试验和应用,要逐步提高和运用白盒测试技术解决实际测试问题的能力;

4、完成实验并认真填写实验报告

二、问题描述

输入三个整数a、b、c,分别作为三角形的三条边,通过程序判断这三条边是否能构成三角形?如果能构成三角形,则判断三角形的类型(等边三角形、等腰三角形、一般三角形)。要求输入三个整数a、b、c,必须满足以下条件:1≤a≤200;1≤b≤200;1≤c≤200。请采用静态白盒测试方法和动态白盒测试方法设计测试用例。

三、代码说明(复制测试的主要代码并在每行程序代码前面标上行号)

1.importjava.util.Scanner;

2.public class abc{

3.public static void main(String args[]){

4.String str1=””;

5.String str2=””;

6.String str3=””;

7.inta,b,c;

8.Scanner input = new Scanner(System.in);

9.System.out.printf(“请输入三角形的三条边,以空格换行:\n”);

10.str1=input.next();

11.str2=input.next();

12.str3=input.next();

13.if(str1.matches(“\\d+”)&& str2.matches(“\\d+”)

白盒测试实验报告

白盒测试实验报告

白盒测试实验报告

一、实验目的。

本次实验旨在对软件系统的内部结构进行测试,以验证代码的逻辑正确性、路径覆盖率和条件覆盖率等指标,从而提高软件系统的质量和稳定性。

二、实验环境。

1. 软件系统,本次实验选择了XXX软件系统作为测试对象,该系统包含了多个模块和功能,是一个typical的软件系统。

2. 测试工具,我们使用了XXX测试工具来进行白盒测试,该工具能够帮助我们对代码进行覆盖率分析、路径跟踪和条件测试等。

3. 测试人员,实验由XXX团队的测试人员进行,每位成员都具备扎实的编程基础和测试经验。

三、实验步骤。

1. 确定测试目标,我们首先对软件系统进行分析,确定了需要测试的模块和功能,以及测试的重点和难点。

2. 设计测试用例,针对每个测试目标,我们设计了一系列的测试用例,覆盖了各种可能的输入、路径和条件组合。

3. 执行测试用例,测试人员按照设计的测试用例,对软件系统进行了全面的白盒测试,记录了测试过程中的日志和结果。

4. 分析测试结果,通过测试工具对测试结果进行分析,统计了代码的覆盖率、路径覆盖情况和条件覆盖情况,发现了一些潜在的问题和漏洞。

5. 修复和再测试,根据分析结果,开发人员对发现的问题进行了修复,然后再次进行了白盒测试,确保问题得到了解决。

四、实验结果。

经过本次实验,我们对软件系统进行了全面的白盒测试,覆盖了大部分的代码路径和条件分支,发现了一些潜在的问题和漏洞,并及时进行了修复。最终,软件系统的质量得到了显著提高,稳定性和可靠性得到了保障。

五、实验总结。

通过本次实验,我们深刻认识到了白盒测试在软件开发过程中的重要性,它能够帮助我们发现代码中的潜在问题,提高软件系统的质量和稳定性。同时,我们也意识到了白盒测试需要结合黑盒测试和其他测试手段来进行,以全面保证软件系统的质量。在未来的工作中,我们将继续深入研究和应用白盒测试技术,为软件开发和测试工作贡献更多的价值。

软件工程实验报告

软件工程实验报告

软件工程实验报告

学号:

姓名:

专业:

年月

实验一:白盒测试

一、实验目的

巩固白盒测试知识,对于给定的待测程序,能熟练应用基本控制流覆盖方法设计测试用例;能够执行白盒测试过程,并撰写白盒测试分析报告。

二、实验内容

白盒测试又称为结构测试、逻辑驱动测试或基于程序的测试,一般用来分析程序的内部结构。测试规划基于产品内部结构进行测试,检查内部操作是否按规定执行,软件各个部分功能是否得到充分使用,则这种测试方法称为白盒测试方法。

白盒测试将被测程序看做一个打开的盒子,测试者能够看到被测源程序,可以分析被测程序的内部结构,此时测试的焦点集中在根据其内部结构设计测试用例。白盒测试要求是对某些程序的结构特性做到一定程度的覆盖,或者说这种测试是“基于覆盖率的测试”。

测试内容包括语句覆盖测试、分支覆盖测试、条件覆盖测试、分支/条件覆盖测试、条件组合覆盖测试和基本路径测试。

三、程序代码

要求:实现对不少于10个随机输入的数的冒泡排序算法。

#include

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];

白盒测试实验报告

白盒测试实验报告

白盒测试实验报告

1. 引言

白盒测试是软件开发过程中非常重要的一环,它能够深入了解软件内部的实现细节,发现潜在的错误和漏洞。本次实验旨在对一款电商网站的后台管理系统进行白盒测试,并报告测试过程中发现的问题和提出的改进建议。

2. 测试环境和工具

为了开展白盒测试,我们构建了一套适用于该电商网站的测试环境。测试环境包括服务器、数据库和部署在服务器上的后台管理系统。在测试过程中,我们使用了一系列白盒测试工具,包括静态代码分析工具、代码覆盖率工具以及调试器。

3. 功能测试

在功能测试中,我们对后台管理系统的各个功能模块进行了测试。我们模拟了管理员登录、商品管理、订单管理、用户管理等多种场景进行测试,并详细记录了测试用例、测试数据以及测试结果。

在功能测试过程中,我们发现了一些问题。例如,某个功能模块在处理大量订单数据时出现了性能问题,导致系统响应变慢。此外,某个功能模块在处理特定边界条件时出现了异常情况,导致系统崩溃。

4. 安全性测试

在安全性测试中,我们对后台管理系统的安全性进行了评估。我们模拟了黑客攻击、SQL注入、XSS跨站脚本等多种攻击方式进行测试,并评估系统对这些攻击的防御能力。

安全性测试中,我们发现了系统对于某些攻击方式的防御能力较弱,容易受到黑客攻击。例如,系统在处理用户提交的数据时没有进行严格的输入验证,容易受到SQL注入攻击。

5. 性能测试

在性能测试中,我们对后台管理系统的响应时间、并发性能、负载能力等进行了评估。我们使用负载测试工具模拟了大量用户同时访问后台管理系统,以评估系统在高负载下的性能表现。

Python白盒测试实验报告

Python白盒测试实验报告

青岛科技大学实验报告

课程:软件测试基础实验项目:白盒测试

专业:计算机科学与技术班级:惠普测试142

姓名:闫伟明日期:2016-11-25

实验要求:

(1)根据下述C代码及对应流程图,将其转换成Python代码;

void DoWork (int x,int y,int z)

{

int k=0,j=0;

if ( (x>3)&&(z<10) )

{ k=x*y-1;

j=sqrt(k);

} //语句块1

if ( (x==4)||(y>5) )

{ j=x*y+10; } //语句块2

j=j%3; //语句块3

}

流程图:

Python代码:

#py001.py

import math

def DoWork(x,y,z):

k=0

j=0

if x>3 and z<10:

k=x*y-1

j=math.sqrt(k)

if x==4 or y>5:

j=x*y+10

j=j%3

return k,j

(2)根据Python代码设计白盒测试用例,包括:

➢语句覆盖;

测试用例输入为:{ x=5、y=6、z=7 }

程序执行的路径是:abd

➢判定覆盖;

测试用例的输入为:{x=5、y=6、z=7};{x=1、y=2、z=3}

程序执行的路径分别是:abd;ace

➢条件覆盖;

➢判定 / 条件覆盖;

➢组合覆盖

对DoWork函数中的各个判定的条件取值组合加以标记:

根据组合覆盖的思想,设计测试用例如下:

(3)根据设计的测试用例,使用 unittest 完成测试实验。

(注:每一个测试方法用一个py文件,共5个py文件)1.test001.py

实验三 逻辑测试 实验报告

实验三 逻辑测试  实验报告

一、实验目的

理解白盒测试的基本方法,掌握语句覆盖、分支覆盖、条件覆盖、路径覆盖等代码覆盖测试策略,并能应用白盒测试技术设计测试用例

二、实验内容

1.题目一:使用逻辑覆盖测试方法测试以下程序段(必做)

void DoWork (int x,int y,int z){

1 int k=0, j=0;

2 if ( (x>3)&&(z<10) )

3 {

4 k=x*y-1;

5 j=sqrt(k);

6 }

7 if((x==4)||(y>5))

8 j=x*y+10;

9 j=j%3;

10 }

说明:程序段中每行开头的数字(1~10)是对每条语句的编号。

(1)画出程序的控制流图(用题中给出的语句编号表示)。

(2)分别以语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖方法设计测试用例,并写出每个测试用例的执行路径(用题中给出的语句编号表示)。

(3)为各测试路径设计测试用例。

三、实验步骤

题目一:使用逻辑覆盖测试方法测试以下程序段(必做)

1、绘制出程序流程图,如图1;

图1 题目1的程序流程图2、绘制控制流图,如图2;

图 2 题目1 的控制流图

3、设计测试用例:

(1)语句覆盖:

语句覆盖是设计足够的测试用例使程序中的每一条可执行语句至少执行一次。

这题中,两个if语句的判定之后,只要确保使两个判定都为真,那么所有的执

行语句就都可以执行了,即可达到语句覆盖的要求。所以设计的测试用例如下:

x = 4 , y = 6 , z = 8 。

这组测试用例的执行路径是1—2—3—4—5—6—7—8—9—10

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

青岛科技大学实验报告

课程:软件测试基础实验项目:白盒测试

专业:计算机科学与技术班级:惠普测试142

姓名:闫伟明日期:2016-11-25

实验要求:

(1)根据下述C代码及对应流程图,将其转换成Python代码;

void DoWork (int x,int y,int z)

{

int k=0,j=0;

if ( (x>3)&&(z<10) )

{ k=x*y-1;

j=sqrt(k);

} //语句块1

if ( (x==4)||(y>5) )

{ j=x*y+10; } //语句块2

j=j%3; //语句块3

}

流程图:

Python代码:

#py001.py

import math

def DoWork(x,y,z):

k=0

j=0

if x>3 and z<10:

k=x*y-1

j=math.sqrt(k)

if x==4 or y>5:

j=x*y+10

j=j%3

return k,j

(2)根据Python代码设计白盒测试用例,包括:

➢语句覆盖;

测试用例输入为:{ x=5、y=6、z=7 }

程序执行的路径是:abd

➢判定覆盖;

测试用例的输入为:{x=5、y=6、z=7};{x=1、y=2、z=3}

程序执行的路径分别是:abd;ace

➢条件覆盖;

➢判定/ 条件覆盖;

➢组合覆盖

对DoWork函数中的各个判定的条件取值组合加以标记:

根据组合覆盖的思想,设计测试用例如下:

(3)根据设计的测试用例,使用unittest 完成测试实验。

(注:每一个测试方法用一个py文件,共5个py文件)

1.test001.py

# -*- encoding:utf8 -*-

import unittest

from py001 import DoWork

class Test001(unittest.TestCase):

"""

语句覆盖:

测试用例的输入为:{x=5、y=6、z=7}

"""

def test_yjfg(self):

self.assertEquals(DoWork(5,6,7),(29,1))

2.test002.py

# -*- encoding:utf8 -*-

import unittest

from py001 import DoWork

class Test002(unittest.TestCase):

"""

判定覆盖:

测试用例的输入为:{x=5、y=6、z=7};{x=1、y=2、z=3}

"""

def test_pdfg1(self):

self.assertEquals(DoWork(5,6,7),(29,1)) def test_pdfg2(self):

self.assertEquals(DoWork(1,2,3),(0,0))

3.test003.py

# -*- encoding:utf8 -*-

import unittest

from py001 import DoWork

class Test003(unittest.TestCase):

"""

条件覆盖:

测试用例的输入为:{x=4、y=6、z=7};{x=1,y=2,z=13}

"""

def test_tjfg1(self):

self.assertEquals(DoWork(4,6,7),(23,1)) def test_tjfg2(self):

self.assertEquals(DoWork(1,2,13),(0,0))

4.test004.py

# -*- encoding:utf8 -*-

import unittest

from py001 import DoWork

class Test004(unittest.TestCase):

"""

判定/条件覆盖:

测试用例的输入为:{x=4、y=6、z=9};{x=3,y=5,z=10}

"""

def test_pdtjfg1(self):

self.assertEquals(DoWork(4,6,9),(23,1)) def test_pdtjfg2(self):

self.assertEquals(DoWork(3,5,10),(0,0))

5.test005.py

# -*- encoding:utf8 -*-

import unittest

from py001 import DoWork

class Test005(unittest.TestCase):

"""

组合覆盖:

测试用例的输入为:

{x=4,y=6,z=6};{x=4,y=5,z=10};{x=3,y=6,z=6};{x=3,y=5,z=10};

{x=5,y=5,z=5}

"""

def test_zhfg1(self):

self.assertEquals(DoWork(4,6,6),(23,1))

def test_zhfg2(self):

self.assertEquals(DoWork(4,5,10),(0,0))

def test_zhfg3(self):

self.assertEquals(DoWork(3,6,6),(0,1))

def test_zhfg4(self):

self.assertEquals(DoWork(3,5,10),(0,0))

def test_zhfg5(self):

self.assertEquals(DoWork(5,5,5)

,(24,1.8989794855663558))

运行截图:

相关文档
最新文档