软件测试-实验4
- 格式:doc
- 大小:65.98 KB
- 文档页数:5
软件测试实验报告
一、实验内容
本次实验的目的是通过白盒测试技术来对一个接口进行测试,目的是
为了评估接口的可用性和功能性,以及其在各种参数下的表现。
二、实验方法
1.确定测试的边界值:首先,根据接口文档,确定出各个参数的最小值、最大值和正常值,并根据边界值理论,选择出8个典型的测试值,即
最小值、最小值减一、最小值加一、正常值、正常值减一、正常值加一、
最大值、最大值加一,用于确定测试的边界。
2.编写测试用例:用确定的边界值,编写测试用例,以检测接口的可
用性和功能性。
3.执行测试:将编写的测试用例应用到实际情况中,对接口进行测试,并获得测试结果。
三、实验结果
1.测试结果:经过本次白盒测试,发现接口在各个参数下能够正常工作。
2.整体结论:在确定的边界值范围内,接口表现正常,可以满足对该
接口的功能和可用性的要求。
四、实验的建议
本次实验证明,白盒测试在评估接口的可用性和功能性方面是有效的。
但是,为了进一步提高接口的性能,还需要进行更加全面的测试,比如性
能测试、安全测试等,以便获得更好的测试效果。
软件测试技术-实验四实验四.结构性测试1 实验类型实验类型为验证型,4个学时。
2 实验⽬的(1)掌握结构性测试技术,并能应⽤结构性测试技术设计测试⽤例;(2)对测试⽤例进⾏优化设计;3 背景知识结构性测试是知道产品内部⼯作过程,检测产品内部动作是否按照规格说明书的规定正常进⾏。
结构性测试允许测试⼈员利⽤程序内部的逻辑结构及有关信息,设计或选择测试⽤例,对程序所有逻辑路径进⾏测试。
通过在不同点检查程序的状态,确定实际的状态是否与预期的状态⼀致。
⼀、逻辑覆盖结构性测试⼒求提⾼测试覆盖率。
逻辑覆盖是对⼀系列测试过程的总称,它是在使⽤⽩盒测试法时,选⽤测试⽤例执⾏程序逻辑路径的⽅法。
逻辑覆盖按覆盖程度由低到⾼⼤致分为以下⼏类:(1)语句覆盖:设计若⼲测试⽤例,使程序中每⼀可执⾏语句⾄少执⾏⼀次;(2)判断覆盖:设计⽤例,使程序中的每个逻辑判断的取真取假分⽀⾄少经历⼀次;(3)条件覆盖:设计⽤例,使判断中的每个条件的可能取值⾄少满⾜⼀次;(4)判断/条件覆盖:设计⽤例,使得判断中的每个条件的所有可能结果⾄少出现⼀次,⽽且判断本⾝所有可能结果也⾄少出现⼀次;(5)条件组合覆盖。
设计⽤例,使得每个判断表达式中条件的各种可能组合都⾄少出现⼀次;显然,满⾜⑤的测试⽤例也⼀定是满⾜②、③、④的测试⽤例。
(6)路径覆盖。
设计⾜够的测试⽤例,使程序的每条可能路径都⾄少执⾏⼀次。
如果把路径覆盖和条件组合覆盖结合起来,可以设计出检错能⼒更强的测试数据⽤例。
⼆、基本路径测试如果把覆盖的路径数压缩到⼀定限度内,例如,程序中的循环体只执⾏零次和⼀次,就成为基本路径测试。
它是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执⾏路径集合,从⽽设计测试⽤例的⽅法。
设计出的测试⽤例要保证在测试中,程序的每⼀个可执⾏语句⾄少要执⾏⼀次。
①程序的控制流图控制流图是描述程序控制流的⼀种图⽰⽅法。
基本控制构造的图形符号如图所⽰。
软件测试技术实验指导书公司内部编号:(GOOD-TMMT-MMUT-UUPTY-UUYY-DTTI-《软件测试技术》实验指导书实验1、自由测试一、实验目的1.理解软件测试的概念。
2.提高反向思维的能力。
二、实验任务针对某产品Beta的版本,对照其竞争对手的产品,进行测试,以发现该软件产品潜在的任何问题,记录下来。
Discuz! X beta 对比 PHPWind实验2、黑盒测试方法:等价类划分法+边界值分析方法一、实验目的1.掌握等价类、有效等价类、无效等价类、边界值等概念。
2.掌握边界值分析法、等价类划分法的测试用例设计方法。
3.能够将这两种方法结合起来,灵活运用二、实验任务以下三个任务、至少完成一个1、对三角问题综合运用边界值分析方法、等价类划分方法设计测试用例。
三角形问题:void Triangle (int a, int b, int c)函数规定输入三个整数a、b、c分别作为三边的边长构成三角形。
通过程序判定所构成的三角形的类型(等边三角形、等腰三角形、一般三角形、构不成三角形),并在屏幕上输出。
1<=a,b,c<=200。
实验步骤:①划分等价类,得到等价类表。
等价类表格式如下:②综合运用这两种方法设测试用例,得到测试用例表:③综合运用这两种方法设测试用例,得到测试用例表:④根据上述测试用例表,能否进行优化,获得最小测试用例集合:2、对于找零钱最佳组合问题运用边界值分析法设计测试用例。
实验步骤:①分析边界值。
②运用健壮性边界条件法设计测试用例,得到测试用例表(测试用例表格式同实验1)。
③执行测试,填写软件缺陷报告(软件缺陷报告格式同实验1)。
3、现有一个程序int CheckTel(char *rc, char *n)执行电话号码有效性检查功能,中国的固定电话号码由两部分组成。
这两部分的名称和内容分别是:地区码(rc):以0开头的三位或者四位数字(包括0)。
电话号码(n):以非0、非1开头的七位或者八位数字。
软件工程实验四软件工程实验四实验目的本次实验旨在加深学生对软件工程的理解,通过实践的方式巩固和应用所学的软件工程知识,加强对软件开发过程的掌握,并学习使用项目管理工具和版本控制工具。
实验过程1. 创建项目首先,我们需要创建一个新的软件项目。
在本次实验中,我们将创建一个简单的待办事项管理系统。
2. 需求分析在开始开发之前,我们需要进行需求分析,明确系统的功能和特性。
根据实验要求,我们的待办事项管理系统应该具备以下功能:- 用户可以添加待办事项- 用户可以查看待办事项列表- 用户可以更新待办事项的状态(进行中/已完成)- 用户可以删除待办事项3. 设计系统架构在进行具体开发之前,我们需要设计系统的架构。
首先,我们决定使用Web技术来实现我们的系统,并选择使用MVC架构模式。
- 模型(Model):负责数据的存储和处理- 视图(View):负责用户界面的展示和与用户的交互- 控制器(Controller):负责接收用户的请求,并调用模型和视图进行处理4. 编码实现根据需求分析和系统设计,我们可以开始进行编码实现了。
首先,我们创建一个`Todo`模型,用于表示待办事项的数据结构。
然后,我们创建一个`TodoController`控制器,用于接收用户的请求并调用相应的模型方法进行处理。
最后,我们创建一个`TodoView`视图,用于展示待办事项列表并与用户进行交互。
5. 软件测试在完成编码实现之后,我们需要进行软件测试,确保系统的功能和特性都能正常工作。
我们可以编写一些测试用例,并使用自动化测试工具来运行这些测试用例。
如果测试通过,则说明系统的功能正常;如果测试失败,则需要进行修复和优化。
6. 版本控制为了方便团队协作和代码管理,我们可以使用版本控制工具来管理我们的代码。
常见的版本控制工具包括Git和SVN等。
我们可以根据需要选择合适的版本控制工具,并进行代码的提交、更新和协作开发。
实验总结通过本次实验,我进一步了解了软件工程的概念和方法,学会了使用项目管理工具和版本控制工具。
软件测试课程实验——稳定性、破坏性压力测试文档一、实验介绍与目的本次实验要求通过LoadRunner对已经完成的自有系统进行性能测试和稳定性、破坏性压力测试。
本次实验的目的在于下列几点,请注意,这也将会作为期末考核演示的评分点:1、通过实践课程所学,了解性能测试与压力测试的意义。
2、掌握LoadRunner的基本功能部件的使用方法,包括VuGen,Controller和Analysis。
3、尝试进行有针对性的性能测试与稳定性、破坏性压力测试,其中包括进行测试计划与策略的制定,测试用例(场景与操作脚本)的设计等。
4、依赖测试结果,尝试对被测系统的性能状况(容量与瓶颈)进行分析以及鼓励提出调优的方案。
5、锻炼测试工作组织分配能力与文档编写表达能力。
二、实验原理本次进行的实验是关于对已经完成的自有系统的性能与稳定性、破坏性压力测试(稳定性压力测试、破坏性压力测试)。
首先必须明白性能测试与稳定性、破坏性压力测试的定义、意义和方法,需要注意的是,性能测试的关注点在于,对系统在不同的负载情况下,获取各个方面的性能参数,如响应时间,CPU占用率,内存占用率;另一方面,压力测试的关注点在于,以长时间恒定负载或以特定时间内的反常负载加载到系统上,以观察其稳定性。
其次,我们需要了解LoadRunner的性能与稳定性、破坏性压力测试工具的基本使用方法。
LoadRunner主要依赖于三个功能部件,实现对各种具有不同交互协议的系统的性能与压力测试。
第一步,通过VuGen录制或编写Virtual User的操作脚本。
LoadRunner将测试的层次定义在了虚拟用户交互之上,并为此提供了相关的机制,即任意多个Virtual User的对象,根据预先定义好的脚本,模拟对系统进行交互。
我们可以通过录制用例,并且将当中不同的子操作定制为Action。
完成录制后,我们可以将其回放以验证,此时可以选择当中的Action并且定义他们的顺序。
武汉轻工大学软件工程实验报告院系:数学和计算机学院班级:软件工程1504姓名:赵佳璐学号:1508100065实验一结构化分析实验1实验目的:通过此实验了解结构化分析的特点和步骤,以及结构化分析所采用的基本图形工具。
2.实验内容:假设你在一所职业高中工作,负责该校信息系统的建设和维护。
财务科长请你研究用学校拥有的pc机生成工资明细表和各种财务报表的可能性。
3.实验要求:1.问题定义:请在这个阶段描述你需要解决的问题。
包括用户面临的问题和预期的项目规模。
最后生成一份问题定义报告书。
2.可行性研究:在这个阶段产生处理工资事务的大致过程,画出高层逻辑模型,并且画出相应的数据流图,建立数据字典。
3.对此系统进行成本效益分析。
4.实验步骤:4.1问题定义报告书1.项目名称:工资支付2.问题描述:该校一直由会计人工计算工资并编制财务报表,随着学校规模扩大工作量也越来越大。
目前每个月都需要两名会计紧张工作半个月才能完成,不仅效率低而且成本高。
今后学校规模将进一步扩大,人工计算工资的成本还会进一步提高。
3.项目目标:1)研究开发费用较低的新工资支付系统的可能性。
4项目规模:1)开发成本应该不超过7.2万元5.初步设想:1)用学校自己的计算机系统生成工资明细表和财务报表6.可行性研究:为了更全面地研究工资支付项目的可能性,建议进行大约历时两周的可行性研究。
这个研究的成本不超过4000元。
4.2可行性研究:1.处理工资事务的大致过程:1)每月月末教师把他们当月实际授课时数登记在课时表上,由各系汇总后交给财务科,职工把他们当月完成承包任务的情况登记在任务表上,汇总后交给财务科。
2)两名会计根据这些原始数据计算每名教职工的工资,编制工资表、工资明细表和财务报表。
然后,把记有每名教职工工资总额的工资表报送银行。
3)由银行把钱打到每名教职工的工资存折上,同时把工资明细表发给每名教职工。
2高层逻辑模型:3.数据流图:4.数据字典:1)名字:授课情况登记表别名:描述:记录每个教师的当月完成的课时及任务。
北京林业大学2014 学年- 2015学年第 1 学期软件工程(A)实验报告书专业:计算机科学与技术班级:姓名:学号:实验地点:计算中心T08 任课教师:赵方实验题目:实验四软件测试实验环境:一台装有MS VISIO 和WinRunner软件的PC机实验内容:对现有系统进行测试,了解WinRunner的一般功能,使用WinRunner进行功能测试,并能对测试结果进行分析。
实现目的:1.了解软件测试基本概念和基本过程。
2.掌握使用WinRunner进行功能测试的基本步骤。
实验要求:1.在已有系统的基础上,使用WinRunner工具编写和修改测试脚本。
2.创建测试,在测试中创建同步点和检查点;执行功能测试的方法。
3.撰写实验报告并对测试结果进行分析。
实验过程:一、设定GUI Map步骤一:开启Flight Reservation 并登入执行【开始】->【程序】->【WinRunner】->【Sample Applications】->【Flight 4A】,登入窗口会开启。
在【Agent Name】输入名字,至少四个英文字母,【Password】输入mercury,按下【OK】按钮登入Flight Reservation。
步骤二:开启WinRunner执行【开始】->【程序】->【WinRunner】->【WinRunner】,如果是第一次执行WinRunner,会开启欢迎窗口,则点选【New Test】;如果没有开启欢迎窗口,则点选【File】->【New】。
步骤三:开启RapidTest Script Wizard点选【Insert】->【RapidTest Script Wizard…】开启RapidTest Script Wizard 欢迎窗口,按下【Next】到下一个画面。
步骤四:指定要测试的应用程序点选然后点选Flight Reservation 任一位置,在【Window Name】会出现Flight Reservation 的窗口名称,按下【Next】。
软件测试lab4--使⽤mujava进⾏变异测试软件测试技术第四次实验报告⼀、需求分析(描述具体需求)1. 安装MuJava。
2. 根据给定的两个⼩程序使⽤MuJava⽣成对应的变异体。
3. 使⽤Junit给两个程序编写测试集。
4. 使⽤MuJava和测试集测试这些变异体。
⼆、概要设计(简单描述设计思路,配合UML图)1. 设计思路⾸先安装mujava.jar,openjava.jar和junit.jar等需要⽤到的包,在进⾏环境变量的配置,⽣成需要的变异体。
接着编写对应的测试集,再对这些变异体进⾏测试。
三、详细设计(详细描述具体如何实现,附代码及说明)1. 安装MuJava。
将下载好的jar包添加到环境变量中,在CLASSPATH中添加这些jar包的路径,结果如下图所⽰:新建⼀个mujava.config⽂件,并在其中写⼊MuJava_HOME的地址,该地址为新建的MujavaHome的地址。
再新建两个命令脚本⽂件,GenMutants.cmd和RunTest.cmd,在其中分别写⼊如下图所⽰的内容。
2. ⽣成变异体。
先在MujavaHome⽂件夹中新建四个⽂件夹,分别是src,classes,result,testset。
在src⽂件夹中放⼊两个给定的源程序,在classes⽂件夹中放⼊两个源程序在eclipse中编译⽣成的class⽂件。
点击运⾏GenMutants.cmd⽂件,弹出如下图形界⾯,并勾选上所有的变异算⼦。
点击‘Generate’按钮,⽣成变异体,下图分别是BackPack和BubbleSort的变异体:其中,只⽣成了method级别的变异体,没有class级别的变异体。
⽣成变异体后,可以在result⽂件夹内找到⽣成的变异体⽂件。
3. 编写测试⽤例。
(1) backpack的测试⽤例:import org.junit.Assert;import org.junit.After;import org.junit.Before;import org.junit.Test;public class testBackPack {private BackPack c;@Beforepublic void setUp() throws Exception {// setUp()⽤于测试前的初始化c = new BackPack();}@Testpublic void test2() {int m = 10;int n = 3;int w[] = {3, 4, 5};int p[] = {4, 5, 6};int a[][] = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},{0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4},{0, 0, 0, 4, 5, 5, 5, 9, 9, 9, 9},{0, 0, 0, 4, 5, 6, 6, 9, 10, 11, 11}};Assert.assertArrayEquals(a,c.BackPack_Solution(m, n, w, p)); }@Afterpublic void tearDown() throws Exception {// tearDown()⽤于测试后的善后c = null;}}(2) bubblesort的测试⽤例:import static org.junit.Assert.*;import java.util.Arrays;import org.junit.After;import org.junit.Before;import org.junit.Test;public class testBubbleSort {private BubbleSort c;@Beforepublic void setUp() throws Exception {// setUp()⽤于测试前的初始化c = new BubbleSort();}@Testpublic void test1() {int a[] = new int[]{1,6,2,2,5};int b[]=new int[]{2,2,2,1,2,13};int a1[] = new int[]{1,2,2,5,6};int b1[]=new int[]{1,2,2,2,2,13};assertEquals(Arrays.toString(a1), Arrays.toString(c.BubbleSort(a)));assertEquals(Arrays.toString(b1), Arrays.toString(c.BubbleSort(b)));}@Afterpublic void tearDown() throws Exception {// tearDown()⽤于测试后的善后c = null;}}4. 对变异体进⾏测试。
软件测试实验报告
专业:
学号:
姓名:
任课老师:
代码覆盖工具使用(Eclemam)
1、开发工具
Eclipse、JUnit、Eclemma开源工具
2、实验目的
1)安装Eclemma插件
2)熟练掌握Eclemma的插件用法
3、实验要求
查阅Triangle类的覆盖率是否达到100%,若未达到100%,通过添加测试用例,使之达到100%。
4、实验结果
5、心得体会
在测试实验前,我以为不会难做。
就像以前的物理实验一样,做做实验,做过之后交一份实验报告就好了。
直到做实验的时候我才知道其实并不容易做,但是学到的知识与实验的难度成正比,这使我受益匪浅。
在做实验之前一定要将课本上的知识吃透,因为这是实验的基础,否则,在老师讲解实验的时候就会听不懂,这将增加实验的难度,浪费时间。
同时在做实验时老师还会给我们讲一些自己的亲身体会和老师们在做的时候遇到的问题以及会将一些课本上没有的知识告诉我们使我们对这门课的了解更加深入。
通过这次实验,我学到不少实用的知识,更重要的是,做实验的过程,思考问题的方法与其他实验的方法是相通的,真正使我受益匪浅。
提交方式:以“学号姓名”命名的word文档。
有一个处理单价为1元5角钱的盒装饮料的自动售货机软件。
若投入1元5角硬币,按下“可乐”、“雪碧”或“红茶”按钮,相应的饮料就送出来。
若投入的是两元硬币,在送出饮料的同时退还5角硬币。
要求:用因果图法(列出原因和结果,画出因果图,制定决策表)来设计测试用
例。
原因:
C1:投入1元5角硬币
C2:投入2元硬币
C3:按下可乐按钮
C4:按下雪碧按钮
C5:按下红茶按钮
中间原因:
I1:已投币
I2:已按钮
结果:
E1:退回5角硬币
E2:送出可乐
E3: 送出雪碧
E4:送出红茶
因果图
C1 E1
^
E vI1
^E2 C2
C3 ^E3
E C4 vI2
^
C5 E4 决策表:
用例1投入1.5元硬币按下可乐按钮送出可乐
用例2投入1.5元硬币按下雪碧按钮送出雪碧
用例3投入1.5元硬币按下红茶按钮送出红茶
用例4投入1.5元硬币不按下按钮
用例5投入2元硬币按下可乐按钮送出可乐,并退回5角硬币
用例6投入2元硬币按下雪碧按钮送出雪碧,并退回5角硬币
用例7投入2元硬币按下红茶按钮送出红茶,并退回5角硬币
用例8投入2元硬币不按下按钮用例9未投入硬币按下可乐按钮用例10未投入硬币按下雪碧按钮用例11未投入硬币按下红茶按钮。
《软件测试》课程教学大纲一课程说明1。
课程基本情况课程名称:软件测试英文名称:Software Testing课程编号:2413231开课专业:计算机科学与技术开课学期:6学分/周学时:3/3课程类型:任选课2.课程性质(本课程在该专业的地位作用)本课程是计算机科学与技术专业的专业选修课。
3.本课程的教学目的和任务本课程的目的是让学生深刻理解软件测试思想和基本理论;熟悉多种软件的测试方法、相关技术和系统地软件测试过程;会熟练编写测试计划,测试用例,测试报告,并熟悉几种自动化测试工具,从而从工程化角度提高和培养学生从事大型软件的测试技术和能力。
4.本课程与相关课程的关系、教材体系特点及具体要求先修课程:离散数学、数据结构、数据库原理、操作系统原理、高级程序设计语言、软件工程、面向对象软件工程5.教学时数及课时分配二教材及主要参考书参考书:1.赵斌。
软件测试技术经典教程。
北京: 科学出版社,20072。
贺平。
软件测试教程。
北京: 电子工业出版社,20053.朱少民。
软件测试方法和技术. 北京: 清华大学出版社,20054.古乐,史九林. 软件测试案例与实践教程。
北京:清华大学出版社,20075.陆璐王柏勇. 软件自动化测试技术. 北京:清华大学出版社,20066.曲朝阳. 软件测试技术. 北京: 中国水利水电出版社,20067。
赵瑞莲. 软件测试。
北京:高等教育出版社,20058。
佟伟光. 软件测试技术. 北京:人民邮电出版社,2005三教学方法和教学手段说明采用案例教学,并让学生了解工程项目中软件测试的具体实施过程,将理论与实践紧密联系在一起。
四成绩考核办法本课程为考查课程。
考查内容包括实验报告和平时表现、作业成绩,每次实验按优秀、良好、中等、及格和不及格五个等级评分,期末再给定实验总评。
本课程有课后作业、实验报告和中期测验以及一次期末考试,各部分所占总分的比例如下:中期测验 20%课后作业 10%实验报告10%期末总评60%五教学内容第1章绪论(理论4学时)一、教学目的了解软件测试的基础知识掌握软件测试的定义、原则与工作流程二、教学重点软件测试的定义和原则三、教学难点软件测试的定义和原则四、讲授要求多媒体授课,案例讲解五、讲授要点软件测试的发展历史;软件测试技术的分类;软件测试的定义和原则;软件测试和软件开发之间的关系模型;软件测试的工作流程;测试人员的能力要求和职业前景等。
本科实验报告课程名称:软件测试技术实验项目:软件测试技术试验实验地点:实验楼专业班级:学生姓名:指导教师:谢红薇2015年10月14 日太原理工大学学生实验报告int dowork(int x,int y,int z){int k=0,j=0;if((x>0)&&(z<10)){k=x*y-1;j=sqrt(k);}if((x==4)||(y>5))j=x*y+10;j=j%3;return j;}void main(){int x, y ,z,j;printf("输入x,y,z的值");scanf("%d%d%d",&x,&y,&z);j=dowork(x,y,z);printf("j的值%d",j);}3、设计用例并运行记录分析设判定条件M=(x>0)&&(z<10)N=(x==4)||(y>5)设路径P1( abcdefhijl)=M and NP2(abcdefhkl)=M and /NP3(abgijl)=/M and NP4(abgkl)=/M and/N1.语句覆盖输入{x=4,y=8,z=9} 输出{j=0} 覆盖路径P1(abcdefhijl)2.判定覆盖输入{x=4,y=8,z=9} 输出{j=0} 覆盖路径P1(abcdefhijl)输入{x=4,y=4,z=15} 输出{j=0} 覆盖路径P3(abgijl)3.条件覆盖对于第一个判定条件M,分割如下条件x>0取真时为T1,取假时为F1。
条件z<10取真时为T2,取假时为F2。
对于第二个判定条件N,分割如下条件x==4取真时为T3,取假时为F3。
条件y>5取真时为T4,取假时为F4。
测试用例取值条件具体取值通过路径输入{x=4,y=3,z=15}输出{j=1}T1,F2,T3,F4 x>0,z>=10,x==4,y<=5 P3(abgijl)输入{x=0,y=8,z=7}输出{j=1}F1T2,F3,T4 x<=0,z<10,x!=4,y>5 P3(abgijl)4.判定-条件覆盖测试用例取值条件具体取值判定条件通过路径输入{x=4,y=8,z=8} 输出{j=2,k=27} T1,T2,T3,T4 x>0,z<10,x==4,y>5 M,N P1(abcdefhijl)输入{x=0,y=3,z=15} 输出{j=0,k=0} F1F2,F3,F4 x<=0,z>=10,x!=4,y<=5/M,/N P4(abgkl)5.条件组合覆盖组合编号覆盖条件取值判定条件取值判定条件组合1 TI,T2 M x>0,z<10,M取真2 TI,F2 /M x>0,z>=10,M取假3 FI,T2 /M x<=0,z<10,M取假4 FI,F2 /M x<=0,z>=10,M取假5 T3,T4 N x==4,y>5,N取真6 T3,F4 N x==4,y<=5,N取真7 F3T4 N x!=4,y>5,N取真8 F3,F4 /N x!=4,y<=5,N取假测试用例测试用例取值条件覆盖路径覆盖组合T1,T2,T3,T4 P1(abcdefhijl) 1,5 输入{x=4,y=8,z=8}输出{j=0}输入{x=4,y=4,z=15}T1F2,T3,F4 P3(abgijl) 2,6 输出{j=2}F1,T2,F3,T4 P3(abgijl) 3,7 输入{x=0,y=8,z=8}输出{j=1}F1F2,F3,F4 P4(abgkl) 4,8 输入{x=0,y=3,z=15}输出{j=0}6.路径覆盖测试用例覆盖路径覆盖条件覆盖组合P1(abcdefhijl) T1,T2,T3,T4 1,5 输入{x=4,y=8,z=8}输出{j=0}输入{x=3,y=3,z=8}P2(abcdefhkl) T1F2,F3,F4 1,8 输出{j=2}P3(abgijl) F1,F2,F3,T4 4,7 输入{x=0,y=7,z=15}输出{j=1}P4(abgkl) F1F2,F3,F4 4,8 输入{x=0,y=4,z=15}输出{j=0}五、讨论心得在试验过程中,我们对于白盒测试还是没有熟练的掌握,还需要不断地练习,但是我们也已经收获了很多,特别是路径测试,我们掌握到了路径测试的一些方法,知道了划分路径的方法,,怎样设计测试用例。
学号:201241402102 姓名:温燕姿
班级:12计科1班指导教师:张福勇地点:7A202, 时间:2014-11-4
实验四基路径测试
一、实验目的(实验所要达到那些目的)
1、理解基路径测试的原理和方法。
2、掌握由基路径产生测试用例的方法。
3、能够对软件进行基路径测试。
二、实验内容或实验过程(实验所做的内容)
内容:1、自编软件的基路径测试:(只测主要函数或过程)
1)、由给定软件规格说明书写出源程序并运行。
(见附录)
2)、用基路径方法产生测试用例。
3)、运行软件,输入测试用例并记录结果。
4)、分析结果,调试源程序。
(注意:调试前一定要保存上一个版本)
5)、重复步骤3),直到所有测试用例的输出与预期的一致。
附录1 规格说明:编制一元二次方程式AX2+BX+C=0的求根程序。
程序有以下功能:
1. 输入A、B、C三个系数;-200<=A、B、C<=200
2.输出根的性质的信息:包括两个相等实根、两个不相等的实根、一个实根、两个虚根、有无数根、无根等。
过程:先编写出就一元二次方程式的求根程序,给每一句代码标号,并画出流程图,再根据流程图画出DD路径图,再找出所有的基路径,最后依照基路径设计测试用例。
三、实验中出错信息及处理方法(可选)
四、实验结果(包括实验处理结果和设计心得)
程序代码:
1.#include <stdio.h>
2.void formula(int a,int b,int c){
3.int i=0;
4.i=b*b-4*a*c;
5.if(a<-200||a>200||b<-200||b>200||c<-200||c>200){
6.printf("输入的系数有误\n");}
7.else{
8.if(a==0){
9.if(b==0){
10.if(c==0)
11.printf("此二元一次方程有无数个根\n");
12.else printf("此二元一次方程无根\n");}
13.else printf("此二元一次方程有1个实根");}
14.if (a!=0){
15.if(i>0)
16.printf("此二元一次方程有2个不相等的实根");
17. if(i==0)
18. printf("此二元一次方程有2个相等的实根");
19. else printf("此二元一次方程有2个虚根");}
20.}
21.}
22.void main(){
23.int a,b,c;
24.printf("请输入一元二次方程Ax^2+Bx+C的系数ABC:(注意:输入以逗号为间隔;
ABC均为整数,且每个数都在-200到+200间)");
25.scanf("%d,%d,%d",&a,&b,&c);
26.formula(a,b,c);
27.}
程序图如下:
相应的DD路径图如下:
A:1,2,3,4,5,22,23,24,25,26 Array B:6
C:7
D:14
E:8
F:19
G:17,18
H:15,16
I:13
J:9
K:12
L:10,11
M:20
N:21
O:27
P1:A-C-E-J-L-M-N-O
P2:A-B-N-O
P3:A-C-D-H-M-N-O
P4:A-C-E-I-M-N-O
P5:A-C-E-J-K-M-N-O
P6:A-C-D-G-M-N-O
P7:A-C-D-F-M-N-O
处理结果:所有的预计输出和实际输出是一样的
设计心得:通过这次实验我知道了:设计基路径测试用例的关键是画出DD路径图找全基路径。
需要注意的是要找准基路径对应的if条件的真假。
测试用例如下:。