软件工程白盒测试实验

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

实验三软件测试(白盒测试)

预习报告

一、实验目的

1掌握覆盖率的计算方法。

2 掌握语句覆盖,分支覆盖(判定覆盖),条件覆盖,条件。

分支组合覆盖,条件组合覆盖,组合覆盖的含义及区别。

3 掌握使用各种覆盖法,设计测试用例的方法。

二、实验原理

1测试覆盖率

测试覆盖率是指用于确定测试所执行到的覆盖项的百分比。其中的覆盖项是指作为测试基础的一个入口或属性,比如语句、分支、条件等。

测试覆盖率可以表示出测试的充分性,在测试分析报告中可以作为量化指标的依据,测试覆盖率越高效果越好。但覆盖率不是目标,只是一种手段。测试覆盖率包括功能点覆盖率和结构覆盖率。

功能点覆盖率大致用于表示软件已经实现的功能与软件需要实现的功能之间的比例关系。

结构覆盖率包括语句覆盖率、分支覆盖率、循环覆盖率、路径覆盖率等。

(1) 语句覆盖率

语句覆盖率=至少被执行一次的语句数量可执行的语句总数*10%

(2) 判定覆盖率

判定覆盖率=判定结果被评价的次数/判定结果的总数*100%

(3) 条件覆盖率

条件覆盖率=条件操作数值至少被评价一次的数量/条件操作数值的总数*10% (4) 定/条件覆盖率

判定/条件覆盖率=条件操作数值或判定结果值至少被评价一次的数量/ (条件操作数值总数+判定结果总数) *100%

(5) 条件组合覆盖率

条件组合覆盖率涤件操作数值至少被评价一次的数量/条件操作数值的所有组合总数*100%

2 逻辑覆盖

根据覆盖目标的不同和覆盖源程序语句的详尽程度,逻辑覆盖又可分为语句覆盖、判定覆盖、条件覆盖、条件判定组合覆盖、多条件覆盖(条件组合覆盖)、组合覆盖。

(1) 语句覆盖

语句覆盖是选择足够多的测试数据,使得程序中的每个可执行语句至少执行一次。语句覆盖的缺点是对程序执行逻辑的覆盖率很低。

为使程序中每个语句至少执行一次,只需设计一个能通过路径ace的例子就可以了,例如选择输入数据为:A=2,B=0,X=3,就可达到“语句覆盖”标准。

为使程序中每个语句至少执行一次,只需设计一个能通过路径ace的例子就可以了,例如选择输入数据为:A=2,B=0,X=3,就可达到“语句覆盖”标准。

(2) 判定覆盖

判定覆盖是通过设计足够多的测试用例,使得程序中的每一个判定至少获得一次

真值和假值,或者使得程序中的每一个取真的分支或取假的分支至少经历一次,也称为分支覆盖。判定覆盖的缺点是主要对整个

表达式的最终取值进行度量,忽略了表达式的内部取值。对图3-1的程序,如果设计两个用例,使它们能通过路径ace和abd,或者通过路径acd和abe,就可达到“判定覆盖”标准,为此,可以选择输入数据为:

A=3,B=0,X=1(沿路径acd执行) ;

A=2,B=1,X=3(沿路径abe执行)。

(3) 条件覆盖

条件覆盖是通过设计足够多的测试用例,使得程序中每个判定包含的每个条件的可能取值(真/假) 都至少满足一次。条件覆盖的缺点是不能够满足判定覆盖。

图3-1的程序有四个条件: A>1、B=0、A=2、x>1

为了达到“条件覆盖”标准,需要执行足够的测试用例使得在a点有: A>1、A<1、B=0、B中0等各种结果出现,以及在b点有: A=2、牛2、x>1、X<1等各种结果出现。现在只需设计以下两个测试用例就可满

足这一标准:

A=2,B=0,X=4 (沿路径ace执行) ;

A=1,B=1,X=1(沿路径abd执行)。

(4 )条件判定组合覆盖

条件判定组合覆盖(判定条件覆盖) 是通过设计足够多的测试用例,使得程序中每个判定包合的每个条件的所有情况(真/假) 至少出现一次,并且每个判定本身的判定结果(真/假) 也至少出现一次。条件

判定组合覆盖的测试用例一定同时满足判定覆盖和条件覆盖。条件判定组合覆盖的缺点是没有考虑单个判定对整体结果的影响,无法发现逻辑错误。对图3-1的程序; 可以设计两个测试用例满足条件判定组合覆盖:

A=2,B=0,X=4(沿路径ace执行);

A=1,B=1,X=1(沿路径abd执行)。

(5) 条件组合覆盖

条件组合覆盖也称多条件覆盖,是通过设计足够多的测试用例,使得每个判定中条件的各种可能组合都至少出现一次(以数轴形式划分区域,提取交集,建立最少的测试用例)。条件组合覆盖的缺点是判定语

句较多时,条件组合值比较多。

再看图3-1的程序,我们需要选择适当的例子,使得下面8种条件组合都能出现: DA>1,B=0DA>1,B去0目A<1,B=0@A<1,去0

回A=2,X>1回A=2,X<1口A牛2,X>1回8牛2,X<1

必须注意到,回、回、回、@四种情况是第二个I语句的条件组合,而x的值在该语句之前是要经过计算的,所以还必须根据程序的逻辑推算出在程序的入口点X的输入值应是什么。

下面四个例子可以使上述8种条件组合至少出现一次:

A=2,B=0,K=4使D、回两种情况出现;

&=2,B=1,X=1使@、@两种情况出现;

8=1,B=0,X=2使国、O两种情况出现;

&=1,B=1,X=1使@、回两种情况出现。

(6) 组合覆盖

组合覆盖是通过执行足够多的测试用例,使得程序中每个判定的所有可能的条件取值组合都至少出现一次。满足组合覆盖的测试用例一定满足判定覆盖、条件覆盖和条件判定组合覆盖。

实验报告三、实验内容

软件工程期末试题(含答案)解析

一、填空题(每空1分,共25分) 1.软件生存周期一般可以划分为,问题定义、可行性研究、需求分析、设计、编码、测试和运行 和维护。 2.基于软件的功能划分,软件可以划分成___系统软件_、支撑软件、应用软件__三种。 3.可行性研究,应从经济可行性、技术可行性、运行可行性、法律可行性和开放方 案可行性等方面研究。 4.系统流程图是描绘物理系统的传统工具。它的基本思想是用图形符号以黑盒子 形式描绘系统里面的每个部件 5.数据流图的基本四种成分:数据输入的源点和数据输出汇点、加工、数据流和数据存储文 件。 6.结构化分析方法是面向_数据流_进行需求分析的方法。结构化分析方法使用_数据流图DFD_与_ 数据字典_来描述。 7.继承性是自动地共享类、子类和对象中的方法和数据的机制。 8.软件详细设计工具可分为3类,即_图示工具_、_设计语言_和_表格工具_。 9.为了在软件开发过程中保证软件的质量,主要采取下述措施:_审查__、复查和管理复审、___ 测试_。 10.大型软件测试包括单元测试、集成测试、确认测试和系统测试四个步骤。 二、单项选择题(每小题2分,共20分) 1.软件设计中划分模块的一个准则是(C )。 A、低内聚低耦合 B.低内聚高耦合C.高内聚低耦合 D.高内聚高耦合 2.Jackson设计方法是由英国的M. Jackson提出的,它是一种面向( C )的软件设计方法。 A、对象 B.数据流 C.数据结构 D.控制结构 3.试判断下列叙述中,哪个(些)是正确的( C )。 a、软件系统中所有的信息流都可以认为是事务流 b、软件系统中所有的信息流都可以认为是变换流 c、事务分析和变换分析的设计步骤是基本相似的 A、a B、b C、c D、b和c 4.( A )是用户和设计交换最频繁的方法。 A、原型化方法 B、瀑布模型方法 C. 螺旋模型方法D、构件组装模型 5.软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证 是( C )。 A、硬件环境 B、软件开发的环境 C.软件开发工具和软件开发的环境 D、开发人员的素质 6.20世纪50年代以来,出现了许多不同的程序设计语言,下列语言中哪个语言是低级语言 ( D )。 A、PASCAL B、 VISUAL BASIC C. C++ D、汇编语言 7.软件测试的目的是?( D ) A、证明软件的正确性 B.找出软件系统中存在的所有错误 C.证明软件系统中存在错误 D.尽可能多的发现软件系统中的错误 8.使用白盒测试方法时,确定测试数据应根据( A )和指定的覆盖标准。 A、程序的内部逻辑 B、程序的复杂程度 C、该软件的编辑人员 D、程序的功能 9.软件维护工作的最主要部分是( C )。 A、校正性维护 B、适应性维护 C.完善性维护 D、预防性维护

软件测试实验二(三角形白盒测试)报告

实验二测试报告 一、核心程序代码 /** 判断三角形的类 */ 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; } } }

二、程序流程图 ① N a + b > c && b + c > a && a + c > b Y ② Y a == b && b ==c N ④ a == b || b == c || a == c N Y ③⑥⑦⑤ Return 3 Return 1 Return 2 Return 0 Exit 三、测试用例 1.语句覆盖测试用例: 输入期望输出覆盖对象测试结果 Case1 Case2 Case3 Case4 a=1, b=2, c=3 a=3, b=4, c=5 1 2 3 ①,⑤0 1 2 3 ①,②,④,⑥ ①,②,④,⑦ ①,②,③ a=3, b=3, c=4 a=3, b=4, c=5 2.判定覆盖测试用例 输入期望输出覆盖对象测试结果 Case11 Case12 Case13 Case14 a=1, b=2, c=3 a=3, b=4, c=5 a=3, b=3, c=4 a=3, b=4, c=5 1 2 3 ①,⑤0 1 2 3 ①,②,④,⑥ ①,②,④,⑦ ①,②,③

软件工程实验1-软件测试

电子与信息工程学院实验报告 班级学号姓名吴前斌同组 实验课程:软件工程 实验项目:软件测试 实验日期:2019 年10 月22 日

程序执行流程图如下图1所示; 1 2 3 4 5 6 7T F T F 图1 路径1:1、4、6、7 测试用例不存在 路径2:1、4、5、6、7 测试用例a= -1,b=0,x=3路径3:1、2、4、6、7 测试用例a=2,b=1,x=3 路径4:1、2、3、4、6、7 测试用例a=2,b=0,x=4

路径5:1、4、5、7 测试用例a=-1,b=0,x=0 P42-1: 首先点击工具条的【连接到文件夹】按钮,打开连接到文件夹对话框,选择实验数据所在目录,单击【确定】按钮,实现所需要的文件夹在目录树中显示出来,如下图1所示; 图1 接着在该文件夹下建立个人地理数据库单击【新建】、【个人地理数据库】,并且命名为“沈阳”,之后在该个人地理数据库中新建一个要素集,右击个人地理数据库单击【新建】、【要素数据集】,在打开的对话框中输入“shenyang”,如下图2所示; 图2 接着在要素集下选择一个为“Xi‘an 1980”地理坐标系,如下图3所示;

图3 接着点击个人地理数据库,新建一个要素类命名为“路灯”,如下图4所示; 图4 点击新建好的路灯要素集,选择【导入】、【要素类(多个)】,导入实验所需要的实验数据\1\vector文件夹下的street.shp,donut.shp(shift多选)单击确定即可,展示的效果如下图5,图6、图7、所示; 图5 图6

图7 P42-2: 首先打开arcmap连接个人地理数据库TEXT1.mdb,接着在图层中添加库中的road、street、river这个三个要素,使用滚轮放大缩小进行查看,如下图1、图2所示; 图1 图2 点击图标arctoolbox工具进行添加一个新的工具箱,工具箱命名为“personal”,接着导入一些常规的工具即可,如下图3、图4所示。 图3 图4

软件测试技术实验指导书2016版

《软件测试技术》实验指导书 吴鸿韬

河北工业大学计算机科学与软件学院 2016年9月 目录

第一章实验要求 (1) 第二章白盒测试实践 (3) 第三章黑盒测试实践 (6) 第四章自动化单元测试实践 (7) 第五章自动化功能测试实践 (35) 第六章自动化性能测试实践 (56) 附录1实验报告封皮参考模版 (71) 附录2小组实验报告封皮参考模版 (72) 附录3软件测试计划参考模版 (73) 附录4 测试用例参考模版 (77) 附录5单元测试检查表参考模版 (81) 附录6测试报告参考模版 (82) 附录7软件测试分析报告参考模版 (87)

第一章实验要求 一、实验意义和目的 软件测试是软件工程专业的一门重要的专业课,本课程教学目的是通过实际的测试实验,使学生系统地理解软件测试的基本概念和基本理论,掌握软件测试和软件测试过程的基本方法和基本工具,熟练掌握软件测试的流程、会设计测试用例、书写测试报告,为学生将来从事实际软件测试工作和进一步深入研究打下坚实的理论基础和实践基础。 本实验指导书共设计了2个设计型、3个验证型实验和一个综合型实验,如表1所示。设计型实验包括白盒测试实践和黑盒测试实践,验证型实验包括自动化单元测试实践、自动化功能测试和自动化性能测试实践,主要目标是注重培养学生软件测试的实际动手能力,增强软件工程项目的质量管理意识。通过实践教学,使学生掌握软件测试的方法和技术,并能运用测试工具软件进行自动化测试。综合型实验以《软件设计与编程实践》课程相关实验题目为原型、在开发过程中进行测试设计与分析,实现软件开发过程中的测试管理,完成应用软件的测试工作,提高软件测试技能,进一步培养综合分析问题和解决问题的能力。 表1 实验内容安排 实验内容学时实验性质实验要求 实验一白盒测试实践 4 设计必做 实验二黑盒测试实践 4 设计必做 实验三自动化单元测试实践 4 验证必做 实验四自动化功能测试实践 4 验证必做 实验五自动化性能测试实践 4 验证必做 实验六、综合测试实践课外综合选做 二、实验环境 NUnit、JUnit、LoadRunner、Quick Test Professional、VC6.0、Visual

软件工程考试试卷答案

一.选择题 1、TURBO C是(D)软件· A、系统软件 B、人工智能 C、事务软件 D、应用软件. 2、计算机辅助软件工程,简称(D) A、SA B、SD C、SC D、CASE' 3、在数据流图中,O(椭圆)代表(C) A、源点 B、终点 C、处理 D、模块、 4、模块聚度越高,说明模块各成分彼此结合的程度越(B) A、松散 B、紧密 C、无法判断 D、相等、 5、软件维护是软件生命周期中的固有阶段,一般认为,各种不同的软件维护中以( C)维护所占维护量最小。 A、纠错性维护 B、代码维护 C、预防性维护 D、文档维护、 6、软件需求分析是保证软件质量的重要步骤,它的实施应该是在(C) A、编码阶段 B、软件开发全过程 C、软件定义阶段 D、软件设计阶段. 7、软件测试方法,黑盒、白盒测试法是常用的方法,其中白盒测试主要用于测试(D) A、结构合理性 B、软件外部功能 C、程序正确性 D、程序部逻輯. 8、软件的结构化设计(SD)方法中,一般分为概要设计和详细设计两阶段,其中详细设计主要是要(D) A、软件结构 B、软件过程 C、软件模型 D、软件模块、 9、软件文档不仅是软件开发各阶段的重要依据,而且与影响软件的(B) A、可理解性 B、可维护性 C、可扩展性 D、可移植性. 10、在瀑布模型中,将软件划分为若干个时期,软件项目的可行性研究一般归属于(B) A、维护时期 B、计划时期 C、运行时期 D、开发时期, 11、系统定义明确之后,应对系统的可行性进行研究。可行性研究应包括(A) A. 软件环境可行性、技术可行性、经济可行性、社会可行性 B. 经济可行性、技术可行性、操作可行性 C. 经济可行性、社会可行性、系统可行性 D. 经济可行性、实用性、社会可行性 12、(C),则说明模块的独立性越强 A、耦合越强 B、扇入数越高 C、耦合越弱 D、扇入数越低 13、面向数据结构的设计方法(JACKSON方法)是进行(B )的形式化的方法 A.系统设计B、详细设计C、软件设计D、编码 14、模块聚度越高,说明模块各成分彼此结合的程度越(B)。 A、松散 B、紧密 C、无法判断 D、相等. 15、软件测试的目的是(C) A.评价软件的质量 B.发现软件的错误. C.找出软件的所有错误 D.证明软件是正确的. 16、结构化设计方法是面向(A )的设计。 A.数据流 B.数据编码 C.数据库 D.数据结构 17、在编程安全方面,一般来说无法做到(B) A、避开错误 B、完美无缺,绝无错误 C、冗余 D、涉及防错程序, 18、数据耦合、公共耦合、标记耦合、控制耦合的耦合性从低到高的序是(B) A.数据、公共、标记、控制 B.数据、标记、控制、公共 C.控制、数据、标记、公共 D.控制、数据、公共、标记.。 19、需求分析最终结果是产生(B) A.项目开发计划B需求规格说明书 C.设计说明书 D.可行性分析报告

软件测试实验报告(测试计划+黑盒测试+白盒测试)

河北民族师范学院 软件测试课程设计报告 题目:NextDate函数 姓名: 班级: 学号: 指导老师: 2014.10.9 目录 第1章软件测试的概念和设计要求 (3) 1.1 测试目的 (3) 1.2 测试选题 (4) 1.3测试人员 (4) 1.4测试方法 (4) 1.5 测试资料及参考书 (4) 1.6关于黑盒测试 (4) 1.7 关于白盒测试 (5) 1.8、黑盒测试与白盒测试的比较 (6) 1.9 软件测试过程 (6) 1.10数据整理 (7) 第2章NextDate函数问题 (8) 2.1NextDate函数的黑盒测试 (8) 2.1.1.问题描述: (8) 2.1.2.程序代码(开发环境:Windowsxp xp、java): (8) 2.1.3.测试方法 (9) 2.1.4.测试用例设计 (9)

2-2NextDate函数的白盒测试 (11) 2.2.1核心程序代码 (11) 2.2.2程序流程图 (12) 2.2.3 测试用例 (12) 2.2.4程序控制流图 (14) 设计心得与体会 (14) 第1章软件测试的概念和设计要求 1.1 测试目的 1.练习和掌握软件测试管理的一般过程与步骤; 2.掌握测试管理的人工过程和能够通过相关管理软件实现以下工作: a)配置软件资产信息、软件需求、软件模型和缺陷数据库; b)创建和管理多个测试组和用户; c)配置测试环境、编写详细测试计划、安排测试进度; d)设计测试脚本、测试用例; e)实施测试、执行测试和评估测试。 1.2 测试选题 NextDate函数; 1.3测试人员 张@@:软件测试计划及相关资料的编写与收集。 李@@:对特定问题编写程序代码,并对其进行黑盒测试。 王@@:对特定问题编写程序代码,并对其进行白盒测试。 1.4测试方法 对于选题,使用黑盒测试技术,测试内容包括等价类划分测试、边界值分析测试、决策表方法使用。 使用白盒测试技术,测试内容包括语句覆盖测试、分支覆盖测试、条件覆盖测试、分支/条件覆盖测试、条件组合覆盖测试及基本路径测试。

软件工程测试实验

淮海工学院计算机科学系实验报告书 课程名:《软件工程》 题目:软件测试实验 班级:软件121 学号:2012122722 姓名:朱德坤

软件测试验报告要求 1目的与要求: 1)系统学习和理解结构化软件工程实现阶段的基本概念、原理、技术和方法; 2)掌握软件测试的基本技术和方法,特别是白盒测试与黑盒测试技术和方法; 3)通过实验,要逐步提高白盒测试与黑盒测试技术的实际应用能力; 4)熟悉C++编程环境下编写、调试单元代码的基本操作技术和方法; 5)按照实验题目要求独立完成本次试验任务,严禁拷贝、抄袭他人设计成果; 6)认真书写实验报告(要求给出完整的测试信息,如测试程序、测试用例,测试结果分析等),并于5月5日以前提交。 2 实验内容或题目 1.选择结构化详细设计试验中自己设计的某一具有代表性控制结构模块(含有分支和循环结 构),并用C语言实现(提前准备好,每种测试用例分别写在作业本上,上机时带上检查),而后分别完成下述2、3、4各题测试用例设计和测试结果分析; 2.采用白盒测试技术中逻辑覆盖方法(至少包含语句覆盖、判定覆盖、条件覆盖、条件组合 覆盖)设计测试用例,完成测试(测试屏幕截图)和测试结果分析; 3.采用白盒控制结构测试技术的基本路径测试和边界测试方法设计相应测试用例,并完成测 试和测试结果分析; 4.采用黑盒测试技术中的等价类划分方法设计相应测试用例(可重选适合黑盒测试技术的模 块),并完成程序测试和测试结果分析; 3 实验步骤与源程序 程序流程图:

流图:

程序: //拥有超级用户superuser,密码zdk #include #include #include #include #include using namespace std; int PD; //全局判断执行码 void SetPos(int i,int j) //界面光标位置函数{ COORD pos= {i-1,j-1}; HANDLE Out=GetStdHandle(STD_OUTPUT_HANDLE);

软件测试实验报告96812

实验一:软件测试方法 一:实验题目 采用白盒测试技术和黑盒测试技术对给出的案例进行测试 二:试验目的 本次实验的目的是采用软件测试中的白盒测试技术和黑盒测试技术对给出的案例进行测试用例设计。从而巩固所学的软件测试知识,对软件测试有更深层的理解。 三:实验设备 个人PC机(装有数据库和集成开发环境软件) 四:实验内容 1):为以下流程图所示的程序段设计一组测,分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖。并在各题下面写出测试用例、覆盖路径及结果等。 2):画出下列代码相应的程序流程图,并采用基本路径测试方法为以下程序段设计测试用例(需列出具体实验步骤)。 void Do (int X,int A,int B) { 1 if ( (A>1)&&(B==0) ) 2 X = X/A; 3 if ( (A==2)||(X>1) ) 4 X = X+1;

5 } 采用基本路经测试方法测试用例,并写出具体步骤 3):在某网站申请免费信箱时,要求用户必须输入用户名、密码及确认密码,对每一项输入条件的要求如下: 用户名:要求为4位以上,16位以下,使用英文字母、数字、“-”、“_”,并且首字符必须为字母或数字; 密码:要求为6~16位之间,只能使用英文字母、数字以及“-”、“_”,并且区分大小写。测试以上用例。 用所学的语言进行编码,然后进行等价类测试,当用户名和密码正确输入时提示注册成功;当错误输入时,显示不同的错误提示 通过分析测试用例以及最后得到的测试用例表分析所测程序的正确性,最后总结自己在这次试验中的收获并写出自己在这次试验中的心得体会。 五:实验步骤 1) (1)用语句覆盖方法进行测试 语句覆盖的基本思想是设计若干测试用例,运行被测程序,使程序中每个可执行语句至少被执行一次。由流程图可知该程序有四条不同的路径: P1:A-B-D P2:A-B-E P3:A-C-F P4:A-C-G 由于p1p2p4包含了所有可执行的语句,按照语句覆盖的测试用力设计原则,设计测试用例 无法检测出逻辑错误 (2)用判定覆盖方法进行测试 判定覆盖的基本思想是设计若干测试用例,运行被测程序,使得程序每个判断的取真和取假分支至少各执行一次,即判断条件真假均被满足。 条件覆盖测试用例 (3)用条件覆盖进行测试 条件覆盖的基本思想是设计若干测试用例,执行被测程序后要使每个判断中每个条件的可能取值至少满足一次。对于第一个判定条件A,可以分割如下: ?条件x>8:取真时为T1,取假时为F1;

软件工程复习题及答案

软件工程复习题(一) 一、选择题 1、瀑布模型本质上是一种() A、线性顺序模型 B、顺序迭代模型 C、线性迭代模型 D、及早见产品模型 2、使用程序设计的控制结构导出测试用例的测试方法是() A、黑盒测试 B、白盒测试 C、边界测试 D、系统测试 3、软件结构图的形态特征能反映程序重用率的是() A、深度 B、宽度 C、扇入 D、扇出 4、软件结构图中,模块框之间若有直线连接,表示它们之间存在() A、调用关系 B、组成关系 C、链接关系 D、顺序执行关系 5、需求分析最终结果是产生() A、项目开发计划 B、需求规格说明书 C、设计说明书 D、可行性分析报告 6、快速原型模型的主要特点之一是( ) A、开发完毕才见到产品 B、及早提供全部完整的软件产品 C、开发完毕后才见到工作软件 D、及早提供工作软件 7、若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是( ) A、条件覆盖法 B、等价分类法 C、边界值分析法 D、错误推测法 8、软件详细设计主要采用的方法是( ) A、模块设计 B、结构化设计 C、PDL语言 D、结构化程序设计 9、开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( ) A、.软件工程 B、软件周期 C、软件危机 D、软件产生 10、按软件生命周期方法设计软件的过程中,画数据流图属于下面哪个阶段的工作() A、需求分析 B、概要设计 C、详细设计 D、软件维护 11、在快速原型模型的开发过程中,仅作为需求说明的补充形式的原型是() A、探索型模型 B、演化型模型 C、实验型模型 D、提交型模型 12、程序设计语言的工程特性之一为( ) A、软件的可重用性 B、数据结构的描述性 C、抽象类型的描述性 D、数据库的易操作性 13、软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为( ) A、可用性 B、可靠性 C、正确性 D、完整性 14、模块设计中,最不希望的内聚是() A、功能内聚 B、通信内聚 C、过程内聚 D、偶然内聚 15、实施快速原型模型方法开发软件的关键在于() A、CASE工具的支持 B、如何开发演化型模型 C、项目主管的支持 D、开发人员的素质 16、程序流程图(框图)中的箭头代表( )。 A、数据流 B、控制流 C、调用关系 D、组成关系 17、一个只有顺序结构的程序,其环形复杂度是( )。 A、0 B、1 C、3 D、不确定的

(上课)软件工程实验一

实验指导书课程名称软件工程导论 学院信息工程学院 班级 学号 姓名 2018年 2 月 24 日

系统简介:某单位准备开发一个购买办公用品与设备的总务办公管理系统。办公用品的购买申请由各科室提出,由负责总务工作的办公室统一收集。其中,购买申请的金额低于500元(含500元)可以由总务办公室直接审批,而高于500元的购买申请由机构主管领导审批,批准的购买申请形成采购清单由采购员负责购买,同时应记录每次实际购买清单,进行入账。在提出购买申请时要包括下述数据:申请单位、物品名称、物品数量、预计价格、物品用途等。每次购买完成后应记录以下数据:物品名称、物品数量、价格、总金额、购买日期、经办人等。 案例二:火车票预订系统 系统简介:某高校后勤集团为了学生寒暑假返乡,办理代学生预订返乡火车票事务,订票必须提前三天办理,后勤订票处提前三天向火车站办理购票事务。订票处使用一台微机处理订票后购票事务,学生订票一次称为一个事务,由订票员将其输入在微机中,系统核实订单后,将订票信息记录放在订票库中。系统每天打印预订三天的购票单,并更新订票库。 请对以上系统进行业务流程分析后,绘制出该系统的系统流程图。 实验原理: 系统流程图就是描绘物理系统的传统工具。就是用图形符号以黑盒子形式描绘系统里面的每个部件(程序、文件、数据库、表格、人工过程等等)。表达的就是信息在系统各部件之间流动的情况,而不就是对信息进行加工处理的控制过程。 系统业务流程图的符号:

基本符号 系统符号实验过程与结果: 一、操作步骤: 1.运行Microsoft Office Visio 2010

2.选择流程图中的基本流程图模板 3.用鼠标选拉图标进行绘图 二、实验结果:

软件测试实验报告材料58877

标准实用 本科实验报告 课程名称:软件测试技术 实验项目:软件测试技术试验实验地点:实验楼211 专业班级:软件工程学号: 学生:戴超 指导教师:兰方鹏 2015年10月7 日

理工大学学生实验报告 学院名称计算机与软件学院专业班级软件工程实验成绩学生戴超学号实验日期2015.10. 课程名称软件测试实验题目实验一白盒测试方法 一、实验目的和要求 (1)熟练掌握白盒测试方法中的逻辑覆盖和路径覆盖方法。 (2)通过实验掌握逻辑覆盖测试的测试用例设计,掌握程序流图的绘制。 (3)运用所学理论,完成实验研究的基本训练过程。 二、实验容和原理 测试以下程序段 void dowork(int x,int y,int z) { (1)int k=0,j=0; (2)if((x>0)&&(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)是对每条语句的编号。

A 画出程序的控制流图(用题中给出的语句编号表示)。 B 分别用语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖方法设计测试用例,并写出每个测试用例的执行路径(用题中给出的语句编号表示)。 C 编写完整的C 程序(含输入和输出),使用你所设计的测试用例运行上述程序段。完整填写相应的测试用例表(语句覆盖测试用例表、判定覆盖测试用例表、条件覆盖测试用例表、判定/条件覆盖测试用例表、条件组合覆盖测试用例表、路径覆盖测试用例表、基本路径测试用例表) 流程图为: 开始 开始 k=0,j=0 (x>0)&&(z<1) k=x*y-1 j=sqrt(k) (x==4)||(y>5) j=x*y+10 j=j%3 结束 1 2 5 7 8 9

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

7.使用白盒测试用例设计方法为下面的程序设计测试用例: ·程序要求:10个铅球中有一个假球(比其他铅球的重量要轻),用天平三次称出假球。 ·程序设计思路:第一次使用天平分别称5个球,判断轻的一边有假球;拿出轻的5个球,拿出其中4个称,两边分别放2个球;如果两边同重,则剩下的球为假球;若两边不同重,拿出轻的两个球称第三次,轻的为假球。 【源程序】 using System; using System.Collections.Generic; using System.Linq; using System.Text; using NUnit.Framework; namespace Test3_7 { [TestFixture] public class TestGetMinValue { [Test] public void AddTwoNumbers() { Random r = new Random(); int n; int[] a=new int[10]; n = r.Next(0, 9); for (int i = 0; i < a.Length; i++) { if (i == n) a[i] = 5; else a[i] = 10; } GetMin gm = new GetMin(); Assert.AreEqual(n,gm.getMinvalue(a)); }

} public class GetMin { public int getMinvalue(int[] m) { double m1 = 0, m2 = 0, m3 = 0, m4 = 0; for (int i = 0; i < 5; i++) { m1 = m1 + m[i]; } for (int i = 5; i < 10; i++) { m2 = m2 + m[i]; } if (m1 < m2) { m3 = m[1] + m[0]; m4 = m[3] + m[4]; if (m3 > m4) { if (m[3] > m[4]) return 4; else return 3; } else if (m3 < m4) { if (m[0] > m[1]) return 1; else return 0; } else return 2; } else { m3 = m[5] + m[6]; m4 = m[8] + m[9]; if (m3 < m4) { if (m[5] > m[6]) return 6;

软件工程实验报告

1.1 实验一结构化需求分析 一.实验类型 图书馆管理系统 假定校图书馆需要你设计一个图书馆管理系统,要求包括以下功能: ●图书管理员可以管理馆藏图书,包括每本图书的藏书编号、书名、编著者、 ISBN号、出版社、出版时间、入馆时间、馆藏数量(如果馆藏数量为1,则标明为孤本图书)、在馆数量、学科类别等(或其它你认为有用的信息); ●管理员可以查询、统计所有图书、每一类图书或每一本书的借阅记录; ●图书管理员可以管理所有读者的信息,包括读者类型(学生、教师、社会人 士)、姓名、图书证编号、办证时间、证件状态(正常、挂失、冻结)等信息; ●图书管理员可以查询和统计所有读者、每一类读者或每一个读者的借阅记录; ●读者可以通过本系统查询馆藏图书; ●读者可以通过本系统借阅读书。但对于孤本图书或在馆数量为1的图书则不 准外借; ●管理员可以对超期未归还图书的读者发送电子邮件进行提醒,对于超期一年 不归还图书的读者冻结其图书证; ●读者可以通地本系统归还图书。如果图书超期,则自动计算罚款金额。二.实验目的 1.掌握数据流的分析技术 2.掌握软件需求分析的过程和方法。 3.熟悉项目开发计划和需求规格说明书的制定方法。 三.实验内容和要求 1.用结构化数据流分析技术进行软件系统需求分析,得出系统的数据流图和数据字典。 2.正确运用图表工具进行表示。 3.按规范正确编写软件文档。

四.实验步骤 1.理解所承担项目的业务流程和业务内容。 本软件项目是面向中小型学校、单位机构对于图书管理的基于服务的一款便捷式软件。能满足一系列常用图书管理的功能模块,提供简介、准确的操作性,可以很大程度减少人为因素带来的数据错误,统计错误,系统逻辑错误。并且规模小,很容易进行推广。 ●本项目的参与对象有图书管理员及读者。 ●对于读者,能通过该软件浏览馆藏的所有图书。读者在图书馆找到自己喜欢 的书后,能自行通过该软件操作完成借阅操作。若读者是第一次借书,必须通过图书管理员进行添加读者记录,登记读者信息。读者在登陆后方能完成借阅操作,对于孤本图书(即图书馆中馆藏只有一本的图书)则拒绝进行借阅操作。在规定期限内,读者可以通过该软件完成还书操作,对于超期的图书,应将扣除一定罚款金额,对于超期一年不归还图书的读者冻结其图书证。 并且读者能修改个人信息。 ●对于图书管理员,能管理自己和比自己低一级管理权限的管理员。一级管理 员能完成维护管理员的基本信息和二级管理员的一切操作。二级管理员则能维护自己的信息和添加读者、添加图书的功能。管理员可以对超期未归还图书的读者发送电子邮件进行提醒,对于超期一年不归还图书的读者冻结其图书证; 2.按照系统的功能及性能要求,系统的作业范围等,确定软件系统的开发环境(操作系统、开发工具、程序设计语言等)。 根据软件编程经验,本系统将采用面向对象的设计方法,使用Eclipse开发工具,java窗体应用程序,操作系统使用Win8。 3.绘制数据流图、功能分析图等。

软件工程导论实验报告 白盒测试 黑盒测试

《软件工程导论》实验报告 学生姓名: 学号: 班级: 指导老师: 专业: 实验日期:

白盒测试 一、实验目的 通过简单程序白盒测试,熟悉测试过程,对软件测试形成初步了解,并养成良好的测试习惯。熟练掌握如何运用基路径测试方法进行测试用例设计,初步熟悉如何利用程序插装技术进行逻辑覆盖率分析。 二、实验内容: 1、被测试程序功能:求解系数为整数的方程ax2+bx+c=0 2、程序定义:键盘输入3个数字a,b,c,求解方程ax2+bx+c=0 3、测试环境:Windows 8.1、Eclipse 4、说明:本次测试采用插桩测试法,由于程序比较简单,手动输入测试用例。 四、实验步骤 1、程序流程图

2、代码: import java.util.Scanner; public class test { public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("请输入3个整数a,b,c:"); String as; String bs; String cs; int a=0; int b=0; int c=0; double x, x1, x2; as=sc.nextLine(); bs=sc.nextLine(); cs=sc.nextLine(); try{ a=Integer.parseInt(as); b=Integer.parseInt(bs); c=Integer.parseInt(cs); }catch(Exception e){ System.out.println("输入错误"); System.exit(0); } if (a == 0) { if (b == 0) { if (c == 0) System.out.println("无穷多解" ); else

软件测试中如何编写单元测试用例(白盒测试)

软件测试中如何编写单元测试用例(白盒测试) 测试用例(T est Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。 测试用例(T est Case)目前没有经典的定义。比较通常的说法是:指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。 不同类别的软件,测试用例是不同的。不同于诸如系统、工具、控制、游戏软件,管理软件的用户需求更加不统一,变化更大、更快。笔者主要从事企业管理软件的测试。因此我们的做法是把测试数据和测试脚本从测试用例中划分出来。测试用例更趋于是针对软件产品的功能、业务规则和业务处理所设计的测试方案。对软件的每个特定功能或运行操作路径的测试构成了一个个测试用例。 随着中国软件业的日益壮大和逐步走向成熟,软件测试也在不断发展。从最初的由软件编程人员兼职测试到软件公司组建独立专职测试部门。测试工作也从简单测试演变为包括:编制测试计划、编写测试用例、准备测试数据、编写测试脚本、实施测试、测试评估等多项内容的正规测试。测试方式则由单纯手工测试发展为手工、自动兼之,并有向第三方专业测试公司发展的趋势。 要使最终用户对软件感到满意,最有力的举措就是对最终用户的期望加以明确阐述,以便对这些期望进行核实并确认其有效性。测试用例反映了要核实的需求。然而,核实这些需求可能通过不同的方式并由不同的测试员来实施。例如,执行软件以便验证它的功能和性能,这项操作可能由某个测试员采用自动测试技术来实现;计算机系统的关机步骤可通过手工测试和观察来完成;不过,市场占有率和销售数据(以及产品需求),只能通过评测产品和竞争销售数据来完成。 既然可能无法(或不必负责)核实所有的需求,那么是否能为测试挑选最适合或最关键的需求则关系到项目的成败。选中要核实的需求将是对成本、风险和对该需求进行核实的必要性这三者权衡考虑的结果。 确定测试用例之所以很重要,原因有以下几方面。 测试用例构成了设计和制定测试过程的基础。测试的“深度”与测试用例的数量成比例。由于每个测试用例反映不同的场景、条件或经由产品的事件流,因而,随着测试用例数量的增加,您对产品质量和测试流程也就越有信心。判断测试是否完全的一个主要评测方法是基于需求的覆盖,而这又是以确定、实施和/或执行的测试用例的数量为依据的。类似下面这样的说明:“95 % 的关键测试用例已得以执行和验证”,远比“我们已完成95 % 的测试”更有意义。测试工作量与测试用例的数量成比例。根据全面且细化的测试用例,可以更准确地估计测试周期各连续阶段的时间安排。测试设计和开发的类型以及所需的资源主要都受控于测试用例。测试用例通常根据它们所关联关系的测试类型或测试需求来分类,而且将随类型和需求进行相应地改变。最佳方案是为每个测试需求至少编制两个测试用例:·一个测试用例用于证明该需求已经满足,通常称作正面测试用例;·另一个测试用例反映某个无法接受、反常或意外的条件或数据,用于论证只有在所需条件下才能够满足该需求,这个测试用例称作负面测试用例。 前段时间公司进行有关测试的培训,集成测试,性能测试,压力测试说了很多。由于本人还处于Coder阶段,只是对单元测试有了些了解。写下来怕以后自己忘记了。都是些自己的看法,不一定准确,欢迎高手指教。 一、单元测试的概念 单元通俗的说就是指一个实现简单功能的函数。单元测试就是只用一组特定的输入(测试用

软件测试技术实验报告

《软件测试技术》 实验报告 河北工业大学计算机科学与软件学院 2017年9月

软件说明 电话号码问题 某城市电话号码由三部分组成。它们的名称和内容分别是:地区码:空白或三位数字; 前缀:非'0'或'1'的三位数字; 后缀:4位数字。 流程图 源代码 import java.awt.*; import java.awt.event.*; public class PhoneNumber extends Frame implements ActionListener{ /** * */ private static final long serialVersionUID = 1L;

private final String[] st = {"Name","Local","Prefix","Suffix"}; static int c_person=0; TextField t_name,t_local,t_prefix,t_suffix; RecordDialog d_record; MessageDialog d_message; person a[]=new person[100]; public PhoneNumber() { super("电话号码"); this.setSize(250,250); this.setLocation(300,240); Panel panel1 = new Panel(new GridLayout(4, 1)); for (int i = 0; i < st.length; i++) panel1.add(new Label(st[i],0)); Panel panel2 = new Panel(new GridLayout(4, 1)); t_name =new TextField("",20); t_local =new TextField(""); t_prefix=new TextField(""); t_suffix=new TextField(""); panel2.add(t_name); panel2.add(t_local); panel2.add(t_prefix); panel2.add(t_suffix); Panel panel3 = new Panel(new FlowLayout()); Button b_save = new Button("Save"); Button b_record= new Button("Record"); panel3.add(b_save); panel3.add(b_record); this.setLayout(new BorderLayout()); this.add("West", panel1); this.add("East", panel2); this.add("South", panel3); addWindowListener(new WindowCloser()); b_save.addActionListener(this); b_record.addActionListener(this); d_record=new RecordDialog(this); d_message=new MessageDialog(this); this.setVisible(true);

软件工程白盒测试练习及解答

白盒测试练习 1、什么是白盒测试? 白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。这一方法是把测试对象看作一个打开的盒子,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。 2、什么是测试用例? 一组由前提条件、输入、执行条件、预期结果等组成,以完成对某个特定需求或者目标测试的数据,体现测试方案、方法、技术和策略的文档 3、写出以上程序的所有路径; L1(1->2->3) L2(1->4->5->3) L3(1->2->6->7) L4(1->4->5->6->7) 4、尝试用表格的形式描述满足以下情况的测试用例:

a)写出满足语句覆盖需要的测试用例; 解:语句覆盖就是程序中每一个语句至少能被执行一次 运行结果 b)写出满足判定覆盖(分支覆盖)需要的测试用例; 解:判定覆盖就是程序中每个判定至少有一次为真值,有一次为假值,使得程序中 每个分支至少执行一次 运行结果

c) 写出满足条件覆盖需要的测试用例; 解:条件覆盖是程序各判定中的每个条件获得各种可能的取值至少满足一次 运行结果 d) 写出满足判定/条件覆盖需要的测试用例; 解:判定/条件覆盖是程序中每个判定至少有一次为真值,有一次为假值,使得程序中每个分支至少执行一次,且使得各判定中的每个条件获得各种可能的取值至少满足一次。

运行结果 e) 写出满足条件组合覆盖需要的测试用例。 解:条件组合覆盖是判定中条件的各种组合都至少被执行一次 运行结果

软件测试白盒测试用例练习题

白盒测试用例练习 一、为以下所示的程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖,并画出相应的程序流程图。 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 }

由这个流程图可以看出,该程序模块有4条不同的路径: P1:(a-c-e) P2:(a-c-d) P3:(a-b-e) P4:(a-b-d) 将里面的判定条件和过程记录如下: 判定条件M={x>3 and z<10} 判定条件N={x=4 or y>5} 1、语句覆盖 2、判定覆盖 p1和p4可以作为测试用例,其中p1作为取真的路径,p4作为取反的路径。 也可以让测试用例测试路径P2和P3。相应的两组输入数据如下:

3、条件覆盖 对于M:x>3取真时T1,取假时F1; z<10取真时T2,取假时F2; 对于N:x=4取真时T3,取假时F3; y>5取真时T4,取假时F4。 条件:x>3,z<10,x=4,y>5 条件:x<=3,z>=10,x!=4,y<=5 根据条件覆盖的基本思路,和这8个条件取值,组合测试用例如表所示: 4、判定/条件覆盖

5、组合覆盖 条件组合 1)x>3,z<10 2)x>3,z>=10 3) x<=3,z<10 4)x<=3,z>=10 5)x=4,y>5 6)x=4,y<=5 7)x!=4,y>5 8)x!=4,y<=5 6、路径覆盖

相关文档
最新文档