您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 邓松软件测试实验指导书(20140907采用)
软件测试实验指导书编制人:邓松江西财经大学软通学院2014.5实验一书写测试计划(6学时)……………………………………………………………2实验二白盒测试(2学时)……………………………………………………………………12实验三JUnit测试框架的使用(4学时)……………………………………………………36实验四黑盒测试(2学时)…………………………………………………………………50实验五集成测试(2学时)……………………………………………………………………62实验六QTP综合测试(8学时)……………………………………………………………74实验七LoadRunner认识实验(4学时)…………………………………………………18实验八TestDirector错误报告与管理(2学时)………………………………………………26实验一测试计划(6学时)一、实验目的1.掌握测试计划的内容和编制。2.通过给定案例练习编写测试计划。二、基本知识1.具有微软Windows和officeWord的使用经验2.熟悉软件测试的基本知识3.熟悉测试计划的概念和内容4.了解案例的功能和使用步骤。三、实验设备及环境1.Windows操作系统2.OfficeWord应用软件3.案例系统软件4.系统软件需求分析说明书和开发计划四、实验内容班级管理系统测试计划1.需求描述(学生考勤情况管理、学生学习记录、学生活动情况、班级活动情况管理、住宿情况管理、各位班干部工作事项汇报子系统(工作完成情况可用仪表盘表示)等)。请各位同学细化各项目功能,使用原型法完成相应软件。2.测试计划标识符FR201011-001-ST3.引言1)目标班级管理系统测试计划的目标是:1.找出班级管理系统功能的缺陷;2.找出班级管理系统中对特殊数据处理的漏洞;3.找出班级管理系统运行过程中的BUG;4.找出班级管理系统登陆权限的差错;(此处学生填写相应目标)2)背景a.待开发软件系统的名称:班级管理系统;b.本项目任务提出者:《软件质量保证与测试》的授课教师用户:班级信息管理人员,班级学生;c.参考资料:《软件工程》《软件测试方法与技术》d.本系统的主要功能有:学生信息管理功能:方便学生信息的查询,增加,删除,修改;课程管理:管理员可通过编写表格的形式修改课程等相关的信息;成绩管理:管理员可通过数据库中的学生成绩信息进行修改,增加;学分管理:管理员对班级学生的荣誉情况,获奖信息,活动培训等学分机制的数量统计。班级信息管理功能:管理员可通过此功能对班级信息进行查询,修改,增加,删除;班干配备管理:管理员根据班级干部平日工作考察评比分配班干任免;班级活动管理:管理员配合组织委员对一定时间内的班级集体活动作出计划和安排;班级卫生管理:管理员配合勤工委员对班级寝室卫生考察并以表格的形式表现各个寝室卫生的具体情况。(填写)3)范围所选择的测试用例基本上能够检查到所有合法与不合法的输入和输出;局限性在于数据库设计存在的缺陷,可能存在学号相同但是其他信息完全一致的情况出现。(此处学生填写相应内容)4)引用文档(暂空)4.测试依据GB/T5.方法6.测试项通过准则7.暂停准则和恢复要求8.测试交付项9.测试任务10.环境要求11.职责12.人员配备、培训要求和资源配置13.进度登陆界面,班级管理员系统和学生信息系统的测试;学生课程信息系统的检测;14.风险和应急实验二白盒测试(2学时)实验目的(1)掌握结构性测试技术,并能应用结构性测试技术设计测试用例;(2)对测试用例进行优化设计;背景知识结构性测试是知道产品内部工作过程,检测产品内部动作是否按照规格说明书的规定正常进行。结构性测试允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。一、逻辑覆盖结构性测试力求提高测试覆盖率。逻辑覆盖是对一系列测试过程的总称,它是在使用白盒测试法时,选用测试用例执行程序逻辑路径的方法。逻辑覆盖按覆盖程度由低到高大致分为以下几类:(1)语句覆盖:设计若干测试用例,使程序中每一可执行语句至少执行一次;(2)判断覆盖:设计用例,使程序中的每个逻辑判断的取真取假分支至少经历一次;(3)条件覆盖:设计用例,使判断中的每个条件的可能取值至少满足一次;(4)判断/条件覆盖:设计用例,使得判断中的每个条件的所有可能结果至少出现一次,而且判断本身所有可能结果也至少出现一次;(5)条件组合覆盖。设计用例,使得每个判断表达式中条件的各种可能组合都至少出现一次;显然,满足⑤的测试用例也一定是满足②、③、④的测试用例。(6)路径覆盖。设计足够的测试用例,使程序的每条可能路径都至少执行一次。如果把路径覆盖和条件组合覆盖结合起来,可以设计出检错能力更强的测试数据用例。二、基本路径测试如果把覆盖的路径数压缩到一定限度内,例如,程序中的循环体只执行零次和一次,就成为基本路径测试。它是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。设计出的测试用例要保证在测试中,程序的每一个可执行语句至少要执行一次。①程序的控制流图控制流图是描述程序控制流的一种图示方法。基本控制构造的图形符号如图所示。符号○称为控制流图的一个结点,一组顺序处理框可以映射为一个单一的结点。控制流图中的箭头称为边,它表示了控制流的方向,在选择或多分支结构中分支的汇聚处,即使没有执行语句也应该有一个汇聚结点。边和结点圈定的区域叫做区域,当对区域计数时,图形外的区域也应记为一个区域。图3-.1控制流图的各种图形符号如果判定中的条件表达式是复合条件时,即条件表达式是由一个或多个逻辑运算符(OR,AND,NAND,NOR)连接的逻辑表达式,则需要改复合条件的判定为一系列只有单个条件的嵌套的判定。例如对应图3-2.(a)的复合条件的判定,应该画成如图3-2.(b)所示的控制流图。条件语句ifaORb中条件a和条件b各有一个只有单个条件的判定结点。图3-2复合逻辑下的控制流图②计算程序环路复杂性进行程序的基本路径测试时,程序的环路复杂性给出了程序基本路径集合中的独立路径条数,这是确保程序中每个可执行语句至少执行一次所必需的测试用例数目的上界。所谓独立路径,是指包括一组以前没有处理的语句或条件的一条路径。如在图3-3(b)所示的控制流图中,一组独立的路径是:path1:1-11path2:1-2-3-4-5-10-1-11path3:1-2-3-6-8-9-10-1-11path4:1-2-3-6-7-9-10-1-11路径path1,path2,path3,path4组成了图3-3(b)所示控制流图的一个基本路径集。只要设计出的测试用例能够确保这些基本路径的执行,就可以使得程序中的每个可执行语句至少执行一次,每个条件的取真分支和取假分支也能得到测试。基本路径集不是唯一的,对于给定的控制流图,可以得到不同的基本路径集。(a)程序流程图(b)控制流图图3-3程序流程图与对应的控制流图通常环路复杂性可用以下三种方法求得。将环路复杂性定义为控制流图中的区域数。设E为控制流图的边数,N为图的结点数,则定义环路复杂性为V(G)=E-N+2。若设P为控制流图中的判定结点数,则有V(G)=P+1。因为图5.14(b)所示控制流图有4个区域。其环路复杂性为4。它是构成基本路径集的独立路径数的上界。可以据此得到应该设计的测试用例的数目。③导出测试用例利用逻辑覆盖方法生成测试用例,确保基本路径集中每条路径的执行。3.2.1实验设备主流PC机一套,要求安装windows操作系统、VisualC++开发工具和OFFICE工具;3.2.2实验内容题目一:使用逻辑覆盖测试方法测试以下程序段voidDoWork(intx,inty,intz){1intk=0,j=0;2if((x3)&&(z10))3{4k=x*y-1;5j=sqrt(k);6}7if((x==4)||(y5))8j=x*y+10;9j=j%3;10}说明:程序段中每行开头的数字(1~10)是对每条语句的编号。(1)画出程序的控制流图(用题中给出的语句编号表示)。(2)分别以语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖方法设计测试用例,并写出每个测试用例的执行路径(用题中给出的语句编号表示)。题目二:三角形问题在三角形计算中,要求输入三角型的三个边长:A、B和C。当三边不可能构成三角形时提示错误,可构成三角形时计算三角形周长。若是等腰三角形打印“等腰三角形”,若是等边三角形,则提示“等边三角形”。画出程序流程图、控制流程图、计算圈复杂度V(g),找出基本测试路径。题目三:计算生日是星期几已知公元1年1月1日是星期一。编写一个程序,只要输入年月日,就能回答那天是星期几。应用逻辑覆盖方法和基路径测试方法为上面的问题设计测试用例。题目四:选择排序下面是选择排序的程序,其中datalist是数据表,它有两个数据成员:一是元素类型为Element的数组V,另一个是数组大小n。算法中用到两个操作,一是取某数组元素V[i]的关键码操作getKey(),一是交换两数组元素内容的操作Swap()::voidSelectSort(datalist&list){/对表list.V[0]到list.V[n-1]进行排序,n是表当前长度。for(inti=0;ilist.n-1;i++){intk=i;//在list.V[i].key到list.V[n-1].key中找具有最小关键码的对象for(intj=i+1;jlist.n;j++)if(list.V[j].getKey()list.V[k].getKey())k=j;//当前具最小关键码的对象if(k!=i)Swap(list.V[i],list.V[k]);//交换}}(1)试计算此程序段的McCabe复杂性;(2)用基本路径覆盖法给出测试路径;(3)为各测试路径设计测试用例。3.2.3实验步骤(1)根据结构性测试技术设计测试用例,主要考虑逻辑覆盖测试(语句覆盖、判断覆盖、条件覆盖、判断/条件覆盖、条件组合覆盖、路径覆盖)和基路径测试技术;(2)根据所学知识确定优化策略(原则:用最少的用例检测出更多的缺陷、软件测试的充分性与冗余性考虑),设计两套测试用例集;(3)根据设计的两套测试用例集进行测试、参照表2所示的缺陷等级给出缺陷列表;(4)计算测试用例的分支覆盖率、条件覆盖率和语句覆盖率等测试管理指标;3.2.4实验要求(1)根据题目要求编写测试用例(参照表1进行用例设计);(2)实验结果要求给出两套测试用例集测试效果比较;计算测试用例的分支覆盖率、条件覆盖率和语句覆盖率等测试管理指标;(3)撰写实验报告;3.2.5实验思考(1)使用公式e-n+p/e-n+2p确定的McCabe基路径与实际分析的是否完全一致?(2)DD-路径和MM-路径的区别与联系。实验三JUnit测试框架的使用(4学时)一、实验目的1、掌握Junit测试框架的使用2、掌握测试用例的编写二、基本知识1、熟悉java编程语言和Eclipse集成开发环境2、熟悉单元测试概念3、熟悉测试设计技术三、实验环境①windows操作系统+IE浏览器②Eclipse集成开发环境+Junit测试框架四、实验内容1、学习Junit框架的使用可通过以下两个示例进行学习。A、Junit使用方法示例11)把Junit引入当前项目库中新建一个Java工程—coolJUnit,打开项目coolJUnit的属性页-选择“JavaBuildPath”子选项-点选“AddLibrary…”按钮-在弹出的“AddLibrary”对话框中选择JUnit(图1),并在下一页中选择版本Junit4后点击“Finish”按钮。这样便把JUnit引入到当前项目库中了。图1为项目添加JUnit库2)新建单元测试代码目录单元测试代码是不会出现在最终软件产品中的,所以最好为单元测试代码与被测试代码创建单独的目录,并
本文标题:邓松软件测试实验指导书(20140907采用)
链接地址:https://www.777doc.com/doc-5728498 .html