白盒测试用例模板
- 格式:docx
- 大小:34.65 KB
- 文档页数:6
1 客户信息管理模块1.1模块功能简要说明本模块主要是对客户基本信息的输入,可以对客户的信息进行添加、删除、修改和保存客户信息。
可以根据在客户信息表中的已去景点,想去景点,收入水平,年龄段,按单位或个人来了解客户的需求和兴趣,实行相应的优惠关怀政策,以稳定和扩大客源,加强销售管理水平。
1.2模块的界面(图1-1)图1-1 客户信息管理界面1.3模块输入或输出数据要求1.4模块处理过程的流程图描述(图1-2)图1-21.5白盒测试用例(路径覆盖)表1-11.6黑盒测试用例(等价类划分)表1-31.7控件测试用例1.按下“添加”按钮, 会把所有的textbox控件、radioButton控件和comboBox控件清空,等待管理员输入新的数据。
2.按下“删除”按钮,会把当前显示的信息删除,且会显示下一条客户的基本信息。
3.按下“修改”按钮,当前的信息都变为可写,即所有textbox控件的属性Readonly变为false,管理员可以修改上面的信息。
4.按下“保存”按钮,则可以把前面“添加按钮”、“删除按钮”、“修改按钮”所做的操作都可以保存到数据库中;但是如果姓名、性别、身份证号、联系电话、紧急联系人电话有为空的,都会弹出一个窗口告诉用户这些信息不能为空。
5.按下“重写”按钮,会把所有刚写在textbox控件、radioButton 控件和comboBox控件的内容清空,让管理员重新输入正确的信息。
6.按下“关闭”按钮,会关闭当前窗口。
2员工信息查询模块2.1模块功能简要说明本模块可以添加新员工的基本信息,可以对员工的信息进行修改、删除、保存,还可以在界面上重写信息,能直观地管理员工的基本信息。
2.2模块的界面 (图2-1)图2-1 员工信息管理界面2.3模块输入或输出数据要求2.4模块处理过程的流程图描述(图2-2)图2-22.5白盒测试用例(路径覆盖)表2-12.6黑盒测试用例(等价类划分)表2-2表2-32.7控件测试用例1.按下“添加”按钮, 会把所有的textbox控件、radioButton控件和comboBox控件清空,等待管理员输入新的数据。
20 14 —20 15 学年第 2 学期
软件测试技术课程
实验报告
学院:计算机科学技术
专业:软件工程
班级:软件12401
*名:***
学号:*********
任课教师:***
实验日期:2015年 6 月16 日实验题目实验5、白盒测试:路径测试及测试用例设计
实验目的1、掌握独立路径,程序基本路径测试的概念。
2、掌握独立路径测试法。
实验内容
程序int binsearch(int array[],int key)实现折半查找的功能。
数组array元素按升序排列,length为数组array的长度,key为要查找的值。
试用独立路径集测试法测试该程序,撰写实验报告。
关键代码如下(Java实现)
public static int binsearch(int array[],int key)
{
int low = 0;
int high = array.length - 1;
int middle;
while(low <= high)
{
middle = (low+high)/2;
if(array.[middle] == key)
{
return middle;
}else
if(array.[middle] < key)
{
low = middle +1;
}else
{
high = middle - 1;
}
}
return -1;
}
实验步骤:
1)画出程序的流图(控制流程图)。
白盒测试测试报告模板:测试报告模板测试白盒测试方法黑盒测试和白盒测试接口测试是白盒测试吗篇一:白盒测试实验报告-范例广西科技大学计算机学院《软件测试技术》实验报告书实验一白盒测试学生姓名:xxxx 学号:xxxx 班级:xxxx 指导老师:xxxxx 专业:计算机学院软件工程提交日期:2014年10月20日白盒测试实验报告一实验内容1、系统地学习和理解白盒测试的基本概念、原理,掌握白盒测试的基本技术和方法;2、举例进行白盒测试,使用语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖、路径覆盖进行测试。
3、通过试验和应用,要逐步提高和运用白盒测试技术解决实际测试问题的能力;4、熟悉C++编程环境下编写、调试单元代码的基本操作技术和方法;5、完成实验并认真书写实验报告(要求给出完整的测试信息,如测试程序、测试用例,测试报告等)二实验原理白盒测试原理:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否已经过检查。
它是把测试对象看作装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。
这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作。
其又称为结构测试。
对于该实验的例子给出其流程图如下图所示,我们来了解白盒测试的基本技术和方法。
语句覆盖是指选择足够的测试用例,使得程序中每个语句至少执行一次。
如上例选择测试用例x=1,y=1和x=1,y=-1可覆盖所有语句。
判定覆盖是指选择足够的测试用例,使得程序中每一个判定至少获得一次”真”值和“假”值,从而使得程序的每个分支都通过一次(不是所有的逻辑路径)。
选择测试用例x=1,y=1和x=1,y=-1可覆盖所有判定。
条件覆盖是指选择语句多数的测试用例,使得程序判定中的每个条件能获得各种不同的结果。
选择测试用例x=1,y=1和x=-1,y=-1可覆盖所有条件。
判定/条件覆盖是指选择足够多的测试用例,使得程序判定中每个条件取得条件可能的值,并使每个判定取到各种可能的结果(每个分支都通过一次)。
1.白盒测试方法语句覆盖语句覆盖就是设计若干个测试用例, 运行所测程序,使得每一可执行语句至少执行一次. 对上面例子, 正好所有的可执行语句都在路径L1上, 所以选择路径L1来设计测试用例,就可覆盖所有的可执行语句.测试用例的设计格式如下:[输入(A,B,X), 预期的输出(A,B,X)]可设计出满足语句覆盖的测试用例是:[(2,0,4), (2,0,3)], 覆盖ace [L1]从每个执行语句都得到执行这一点来看, 语句覆盖的方法似乎能够比较全面地经验每个可执行语句. 但实际上并非如此.不足:假如该程序段中的两个逻辑运算有问题, 例如, 第一个判断中的逻辑运算符"∧"错写成了"∨", 或者第二个判断中的逻辑运算符"∨"错写成了"∧", 利用上面的测试用例, 仍然可覆盖所有4个可执行语句. 这说明虽然做到了语句覆盖测试, 但可能发现不了判断中逻辑运算中出现的错误.语句覆盖是最弱的逻辑覆盖准则.判定覆盖判定覆盖就是设计若干个测试用例, 运行所测程序, 使得程序中每个判断的取TURE分支和取FALSE分支至少经历一次. 判断覆盖又称分支覆盖.根据定义,可分别选择路径L1 和L2 或路径L3和L4设计测试用例.如果选择路径L1 和L2, 可得到满足要求的测试用例:[(2,0,4), (2,0,3)], 覆盖ace[L1][(1,1,1), (1,1,1)], 覆盖abd[L2]如果选择路径L3和L4, 可设计另一组测试用例:[(2,1,1), (2,1,2)], 覆盖abe[L3][(3,0,3), (3,1,1)], 覆盖acd[L4]可看出,测试用例的选择不唯一.不足: 假如第二个判断中的条件x>1被错写成了x<1, 利用上面两组测试用例, 仍能得到同样的结果. 这表明, 只是判断覆盖, 还不能保证一定能查出在判断的条件中存在的错误. 条件覆盖条件覆盖就是设计若干个测试用例, 运行所测程序, 使得程序中每个判断的每个条件的可能取值至少执行一次. 因此首先要对所有的条件加以标记:对第一个判断: 条件A>1 取TURE 时为T1, 取FALSE时为F1条件B=0 取TURE 时为T2, 取FALSE时为F2 对第二个判断: 条件A=2 取TURE 时为T3, 取FALSE时为F3条件x>1 取TURE 时为T4, 取FALSE时为F4根据这8个条件取值, 可分别设计如下两组测试用例:表1(第一组):表2(第二组)从表1和2可看出, 两组测试用例都满足了条件覆盖, 即覆盖了所有的条件取值.不足: 第一组测试用例不满足判定(分支)覆盖要求.判定-条件覆盖判定-条件覆盖就是设计足够的测试用例,使得判断中每个条件的所有可能取值至少执行一次,同时每个判断的所有可能判断结果至少执行一次. 也就是说要求各个判断的所有可能的条件取值组合至少执行一次.根据判定-条件覆盖的定义,只需设计下面两个测试用例便可覆盖例子的8个条件取值以及4个判断分支.不足: 表面来看, 判断-条件覆盖测试了所有条件的取值, 但实际上并非如此, 而是某些条件掩盖了另一些条件(由于多重条件判定). 例如, 对条件表达式(A>1) AND (B=0) 来说, 若(A>1)的测试结果为FALSE 时, 可以立即确定表达式的结果为FALSE, 这时往往就不再测试(B=0)的取值了, 因此, 条件(B=0)就没有被检查. 同样, 对条件表达式(A=2) OR (x>1)来说, 若(A=2)的测试结果为TURE时, 就立即确定表达式的结果为TURE, 这时, 条件(x>1)就没有被检查.因此, 采用判定-条件覆盖测试, 逻辑表达式中的错误不一定能够查得出来.条件组合覆盖条件组合覆盖就是实际足够得测试用例, 运行所测程序, 使得每个判断得所有可能得条件取值组合至少执行一次.针对上面的例子, 先对各个判断的条件取值组合加以标记:对每个判断,要求所有可能的条件取值的组合都必须取到. 每个判断各有两个条件, 所以各有4个条件取值的组合. 注: 这里没有要求第一个判断的4个组合再与第二个判断的4 个组合进行组合(16).设计4个测试用例, 就可覆盖上面8种条件组合.这些测试用例覆盖了所有条件的可能取值的组合, 覆盖了所有判断的可取分支.不足: 没有覆盖路径L4, 这样测试还不完全.路径覆盖路径测试就是设计足够的测试用例, 覆盖程序中所有可能的路径. 可设计下面的4个测试用例覆盖全部4条路径.不足: 没有全部覆盖判断的条件取值的组合. 如②③⑥测试用例的组合和优化对该例子, 采用逻辑覆盖方法中的一种,都不能满足所有需求, 如果每种方法都采用, 又有测试用例的重复. 如何用最少的测试例而实现最多的需求? 在测试设计中, 是一个值得考虑和解决的问题. 对本例子, 我们采用条件组合覆盖和路径覆盖两种方法设计测试用例, 并进行优化, 可得采用上面的6个测试用例, 可满足所有逻辑覆盖测试.注1:基本路径测试: 实际中, 一个模块中的路径可能非常多, 由于时间和资源, 不可能一一测试到. 这就需要把测试所有可能路径的目标减少到测试足够多的路径以获得对于模块的信心. 要测试的最小路径集--基本测试路径集要保证: ①每个确定语句的每一个方向要测试到;②每条语句最少执行一次.由于时间, 有关基本路径测试的方法这里省略.注2: 循环测试: 测试循环是一种特殊的路径测试. 因为循环比其他语句都复杂一些,循环测试值得一提.循环中错误的发生机会比其他代码构成部分都多.因此对于任何给定的循环的测试应该包括测试下面每一个条件的测试用例:①循环不执行;②执行一次循环;③执行两次循环;④反映执行典型的循环的执行次数;⑤如果有最大循环次数,最大循环次数减一;⑥最大循环次数;⑦大于最大循环次数. 对于增量和减量不是 1 的FOR 语句,要特别注意, 因为程序员习惯1 增量.注3: 循环嵌套: 循环嵌套使逻辑的次数呈几何级数增长. 设计测试嵌套循环的测试用例应该包括的测试条件有: ①把外循环设置为最小值并运行内循环所有可能的情况;②把内循环设置为最小值并运行外循环所有可能的情况;③把所有的循环变量都设置为最小值运行;④把所有的循环变量都设置为最大值运行;⑤把外循环设置为最大值并运行内循环所有可能的情况;⑥把内循环设置为最大值并运行外循环所有可能的情况.注4: 边界值测试: 是指专门设计用来测试当条件语句中引用的值处在边界或边界附近时系统反映的测试. 被测试语句的最好的例子就是"IF--THEN...ELSE-ENDIF"部分.这样语句的例子如:IF a<=123 THENb=1ELSEIF a>=123 THENb=2ELSEb=31ENDIF上面例子的边界值测试用例应该至少包括a的以下值: 122,123,124. 当A=123时, b=1还是2?.2.黑盒测试规范(规格)导出法规范导出的测试是根据相关的规范描述来设计测试用例。
白盒测试指南1.目的本方案主要《学生成绩管理系统》程序代码的白盒测试。
使界面符合设计规范,适用于用户;保证程序创建的类与接口的完整与正确,以及程序模块单独正常运行。
保证局部模块功能完备性,运行正确性与稳定性。
2.测试项所要测试的类。
如:nc.ui.bd.*nc.bs.bd.*nc.vo.bd.*3.测试依据1.《学生成绩管理系统》需求报告;需求规格说明书2.设计文档;3.界面规范4.编码规范5.开发命名标准4.通过的准则1.界面测试通过的标准:界面的样式、大小、颜色、整体布局的设置;各种标签控件的使用及主题描述以及事件源控件的使用、快捷键使用都应符合《需求报告》和《设计文档的相关规范》。
2.程序代码通过的标准:创建的类、接口、方法、属性应与《设计文档》保持一致;程序的各种命名、注释、代码行的格式等应符合《程序开发命名标准》和《编码规范》;程序模块能独立稳定运行。
5.测试环境配置1.软件环境:操作系统:中文windowsXP或windows7开发环境:VS2008专业版2.DB Server端:DBMS:SQL SERVER2008或ACCESS2007及以上6.白盒测试流程6.1 配置好测试环境;6.2 静态测试,走查代码;代码走查使用测试用例启发检测错误,沿程序逻辑走一遍,检测程序结构和实现上是否有问题6.3 动态测试●界面初始化状态测试;●界面控件功能测试;(正反用例);●业务功能测试(正反用例);●数据流关联测试(涉及多表的增、删、改)等。
●数据传递和接收一致,数据计算或处理后状态正确;●组合模块整体运行稳定,不出现死机;6.4 确定问题属性:分为四类:错误、缺陷、失效、故障错误是指计算值、观测值、测量值之间,或条件与真值之间,不符合规定的或理论上的正确值或条件缺陷是指与期望值或特征值的偏差故障是指功能部件不能执行所要求的功能。
故障可能由错误、缺陷或失效引起。
失效是指功能部件执行其功能的能力丧失,系统或系统部件丧失了在规定限度内执行所要求功能的能力6.5 确定问题类别:6.6 填写测试报告测试记录需详细填写具体实施方法中的相关列表;上交的测试报告只需填写未通过的项。
白盒测试白盒测试(White-box Testing,又称逻辑驱动测试,结构测试)是把测试对象看作一个打开的盒子。
利用白盒测试法进行动态测试时,需要测试软件产品的内部结构和处理过程,不需测试软件产品的功能。
白盒测试又称为结构测试和逻辑驱动测试。
白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。
其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。
六种覆盖标准:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖发现错误的能力呈由弱至强的变化。
语句覆盖每条语句至少执行一次。
判定覆盖每个判定的每个分支至少执行一次。
条件覆盖每个判定的每个条件应取到各种可能的值。
判定/条件覆盖同时满足判定覆盖条件覆盖。
条件组合覆盖每个判定中各条件的每一种组合至少出现一次。
路径覆盖使程序中每一条可能的路径至少执行一次。
白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。
"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。
"白盒"法是穷举路径测试。
在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。
贯穿程序的独立路径数是天文数字。
但即使每条路径都测试了仍然可能有错误。
第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。
第二,穷举路径测试不可能查出程序中因遗漏路径而出错。
第三,穷举路径测试可能发现不了一些与数据相关的错误。
白盒测试六种覆盖方法摘要:白盒测试作为测试人员常用的一种测试方法,越来越受到测试工程师的重视。
白盒测试并不是简单的按照代码设计用例,而是需要根据不同的测试需求,结合不同的测试对象,使用适合的方法进行测试。
实验十一白盒测试用例设计(解析)一、题目二、程序伪代码MAXSALERS = 0;ERRCODE = 0;if(ESIZE <= 0 || DSIZE <= 0)ERRCODE = 1;else{for(i = 1; i < DSIZE ; i++) //选出各部门中最大的销售额值if(SALES[i] > MAXSALES)for(j = 1; j < DSIZE; j++) //循环找出销售额最大的部门if(SALES[j] == MAXSALES){FOUND = false;for(int k = 1; k < ESIZE ; k++) //检查销售额最大部门的所有人员if(EMPTAB.DEPT(k) == DEPTTAB.DEPT(j)){FOUND = true;if(SALARY(k) >= 15000.00 or JOB(k) = 'M') //满足条件的人员加工资SALARY(k) = SALARY(k) + 100.00;elseSALARY(k) = SALARY(k) + 200.00;}if(FOUND == false)ERRCODE == 2;}}注意:1)参数表中EMPTAB 为职员表,DEPTTAB为部门表;2 ) ESIZE为职员表长度,DSIZE为部门表长度;3)ERRCODE为出错码三、程序流程图《软件测试基础》-白盒用例设计(解析)第 2 页共6 页《软件测试基础》-白盒用例设计(解析)第 3 页共6 页四、解析步骤一:分析流程图,挑选判定对程序中判定进行分析(即粉红色图形if语句)判定如下:if(ESIZE <= 0 || DSIZE <= 0)if(SALES[i] > MAXSALES)if(SALES[j] == MAXSALES)if(EMPTAB.DEPT(k) == DEPTTAB.DEPT(j))if(SALARY(k) >= 15000.00 or JOB(k) = 'M')if(FOUND == false)步骤二:分析判定真假值采用“判定覆盖”标准,使得上述6个判定都取到“真”“假”两种结果,则分析如下:值即可,即设计尽可能少的用例覆盖上表中列举的情况即可,不一定非要分析流程图。
实训白盒测试用例设计实训1、实训目的1、掌握白盒测试用例的设计方法。
2、综合运用所学的白盒测试方法设计测试用例。
2、实训准备1、白盒测试用例的设计方法。
2、测试用例模板。
3、实训内容3.1基本训练实验一:下面是快速排序算法中的一趟划分算法,其中datalist是数据表,它有两个数据成员:一是元素类型为Element的数组V,另一个是数组大小n。
算法中用到两个操作,一是取某数组元素V[i]的关键码操作getKey( ),一是交换两数组元素内容的操作Swap( ):int Partition ( datalist &list, int low, int high ) {//在区间[ low, high ]以第一个对象为基准进行一次划分,k返回基准对象回放位置。
int k = low; Element pivot = list.V[low]; //基准对象for ( int i = low+1; i <= high; i++ ) //检测整个序列,进行划分if ( list.V[i].getKey ( ) < pivot.getKey( ) && ++ k != i ) Swap ( list.V[k], list.V[i] ); //小于基准的交换到左侧去Swap ( list.V[low], list.V[k] ); //将基准对象就位return k; //返回基准对象位置}(1)试画出它的程序流程图;(2)试利用路径覆盖方法为它设计足够的测试用例(循环次数限定为0次,1次和2次)。
实验二:下面是选择排序的程序,其中datalist是数据表,它有两个数据成员:一是元素类型为Element的数组V,另一个是数组大小n。
算法中用到两个操作,一是取某数组元素V[ i]的关键码操作getKey ( ),一是交换两数组元素内容的操作Swap( ):void SelectSort ( datalist & list ) {//对表list.V[0]到list.V[n-1]进行排序,n是表当前长度。
软件测试的两个方面而已。
白盒测试:是通过程序的源代码进行测试而不使用用户界面。
这种类型的测试需要从代码句法发现内部代码在算法,溢出,路径,条件等等中的缺点或者错误,进而加以修正。
黑盒测试:是通过使用整个软件或某种软件功能来严格地测试, 而并没有通过检查程序的源代码或者很清楚地了解该软件的源代码程序具体是怎样设计的。
测试人员通过输入他们的数据然后看输出的结果从而了解软件怎样工作。
在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收和正确的输出。
白盒测试实例之一——需求说明三角形的问题在很多软件测试的书籍中都出现过,问题虽小,五脏俱全,是个很不错的软件测试的教学例子。
本文借助这个例子结合教学经验,从更高的视角来探讨需求分析、软件设计、软件开发与软件测试之间的关系与作用。
题目:根据下面给出的三角形的需求完成程序并完成测试:一、输入条件:1、条件1:a+b>c2、条件2:a+c>b3、条件3:b+c>a4、条件4:0<a<2005、条件5:0<b<2006、条件6:0<c<2007、条件7:a==b8、条件8:a==c9、条件9:b==c10、条件10:a2+b2==c211、条件11:a2+ c2== b212、条件12:c2+b2== a2二、输出结果:1、不能组成三角形2、等边三角形3、等腰三角形4、直角三角形5、一般三角形6、某些边不满足限制白盒测试实例之二——答案很多初学者一看到这个需求(详见白盒测试实例之一——需求说明收藏),都觉得很简单,然后立刻就开始动手写代码了,这并不是一个很好的习惯。
如果你的第一直觉也是这样的,不妨耐心看到文章的最后。
大部分人的思路:1、首先建立一个main函数,main函数第一件事是提示用户输入三角形的三边,然后获取用户的输入(假设用户的输入都是整数的情况),用C语言来写,这一步基本上不是问题(printf和scanf),但是要求用java来写的话,很多学生就马上遇到问题了,java5.0及之前的版本不容易获取用户的输入。
白盒测试用例方法实例2009-7-131示例:程序源代码分析Dim a, b As IntegerDim c As DoubleIf (a>0 And b>0) Thenc=c/aEnd IfIf (a>1 Or c>1) Thenc=c+1End Ifc=b+c示例:程序源代码分析程序流程图示例:程序源代码分析•由上述的流程图1可以看出,该程序模块有4条不同的路径:–P1(1-2-4)–P2(1-2-5)–P3(1-3-4)–P4(1-3-5)•将里面的判定条件和过程记录为图2–条件M={a>0 and b>0}–条件N={a>1 or c>1}示例:程序源代码分析•程序的4条路径可以表示为:(/表示取反)–P1(1-2-4)=M and N–P2(1-2-5)=M and /N–P3(1-3-4)=/M and N–P4(1-3-5)=/M and /N示例:语句覆盖•语句覆盖,就是要满足条件M和条件N,那么按照语句覆盖的原则,测试用例为:{a=2,b=1,c=6}对应输出为:{a=2,b=1,c=5}语句覆盖优缺点•优点:可以很直观地从源代码得到测试用例,无须细分每条判定表达式。
•缺点:由于这种测试方法仅仅针对程序逻辑中显式存在的语句,但对于隐藏的条件和可能到达的隐式逻辑分支,是无法测试的。
判定覆盖•判定覆盖就是设计若干个测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次。
•判定覆盖又称为分支覆盖。
示例:判定覆盖•按照判定覆盖的基本思路,将前面提到的代码示例进行测试用例设计:–P1和P4可以作为测试用例–其中P1作为取真的路径,P4作为取反的路径,那么输入{a=2,b=1,c=6}和输出{a=2,b=1,c=5}覆盖了路径P1输入{a=-1,b=2,c=1}和输出{a=-1,b=2,c=3}覆盖了路径P4判定覆盖优缺点•优点:判定覆盖比语句覆盖要多几乎一倍的测试路径,当然也就具有比语句覆盖更强的测试能力。