白盒测试用例模板
举例黑白盒测试

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)画出程序的流图(控制流程图)。
软件测试技术5白盒测试图文模板

白盒测试 白盒测试(White Box Testing )
白盒测试又叫结构测试,逻辑驱动测试或基于程序本身的测试。
白盒测试
源程序
分析
测试用例
覆盖情况分析
被测程序 执行路径
彻底的白盒测试
例:含4个分支,循环次数≤20, B的可能路径。
计算从A到 A
B
白盒测试
白盒测试方法:
控制流测试
路径覆盖
路径覆盖要求覆盖程序中所有可能的路径。本例中可能
的执行路径有四条: x=4、y=6、z=5,其执行路径是:1-2-3-4-5-6-7-8 x=4、y=5、z=15,其执行路径是:1-2-5-6-7-8 x=5、y=5、z=5,其执行路径是:1-2-3-4-5-6-8 x=2、y=5、z=15,其执行路径是:1-2-5-6-8
能路径:
=5 +15 +..2+5 +5 19 20 ≈10
14
B
1. 程序环路复杂性
程序的环路复杂性即McCabe复杂性度量,简单的定义为 控制流图的区域数。
程序环路复杂性又叫圈复杂度。
圈复杂度
圈复杂度:是一种为程序逻辑复杂性提供定量测度的软件度量, 将该度量用于计算程序的基本的独立路径数目。
设计测试用例(续)
判定-条件覆盖
要求同时满足判定和条件覆盖,设计的测试用例为:
x=4、y=6、z=5,其执行路径是:1-2-3-4-5-6-7-8 x=2、y=5、z=15,其执行路径是:1-2-5-6-8
设计测试用例(续)
条件组合覆盖
条件组合覆盖要求每个判定的所有可能条件取值组合至
少执行一次。
5
6
7
8
白盒测试测试报告模板

白盒测试测试报告模板:测试报告模板测试白盒测试方法黑盒测试和白盒测试接口测试是白盒测试吗篇一:白盒测试实验报告-范例广西科技大学计算机学院《软件测试技术》实验报告书实验一白盒测试学生姓名: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可覆盖所有条件。
判定/条件覆盖是指选择足够多的测试用例,使得程序判定中每个条件取得条件可能的值,并使每个判定取到各种可能的结果(每个分支都通过一次)。
软件测试案例-白盒测试覆盖案例

测试用例 通过路径
条件取值
x=4、y=6、z=5 abd
T1、T2、T3、T4
覆盖分支 bd
x=2、y=5、z=11 ace
-T1、-T2、-T3、- ce T4
分支条件覆盖从表面来看,它测试了所有条件的取值,
但是实际上某些条件掩盖了另一些条件。例如对于条件表达 式(x>3)&&(z<10)来说,必须两个条件都满足才能确定表达 式为真。如果(x>3)为假则一般的编译器不在判断是否 z<10了。对于第二个表达式(x= =4)||(y>5)来说,若 x==4测试结果为真,就认为表达式的结果为真,这时不再检 查(y>5)条件了。因此,采用分支条件覆盖,逻辑表达式 中的错误不一定能够查出来了。
ace
-T1、-T2、-T3、-T4 4和8
上面的测试用例覆盖了所有条件的可能取值的组合,覆 盖了所有判断的可取分支,但是却丢失了一条路径abe。
路径测试:
路径测试就是设计足够多的测试用例,覆盖被测试对象 中的所有可能路径。
在上面的测试用例中再添加一个测试用例则可对程序进 行了全部的路径覆盖。
测试用例 x=4、y=6、z=5 x=4、y=5、z=15 x=2、y=6、z=15 x=5、y=6、z=5
测试用例的输入为: { x=4、y=5、z=5} { x=2、y=5、z=5}
上面的两个测试用例虽然能够满足条件覆盖的要求,但 是也不能对判断条件进行检查,例如把第二个条件y>5错误 的写成y<5,、上面的测试用例同样满足了分支覆盖。
条件覆盖
条件覆盖就是设计若干个测试用例,运行被测试对象, 使得程序中每个判断的每个条件的可能取值至少执行一次。
白盒和黑盒测试用例设计方法

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.黑盒测试规范(规格)导出法规范导出的测试是根据相关的规范描述来设计测试用例。
白盒测试用例设计方法_逻辑覆盖

6
3、测试的充分性:
假设第一个判断语句if(x>0 && y>0)中的“&&”被 程序员错误地写成了“||”, 即if(x>0 || y>0),使用上面设计出来的一组测试用 例来进行测试,仍然可以达到100%的语句覆盖, 所以语句覆盖无法发现上述的逻辑错误。 在六种逻辑覆盖标准中,语句覆盖标准是最弱的。
17
2、测试用例:
C1和C2处于同一判断语句中,它们的所有取值的组合都被满足了一次。
C1 x>0 F C2 y>0 F 数据 C3 P1 P2 路径
{x=-3, y=0}
T
F
T
a-c-e-f
{x=-3, y=2}
F
T
T
F
T
a-c-e-f
{x=3, y=0}
T
F
T
F
T
a-c-e-f
{x=3, y=3}
16
条件组合覆盖
1、概念: 设计足够多的测试用例,使得被测试程序中的每个判断 的所有可能条件取值的组合至少被满足一次。 注意: a、条件组合只针对同一个判断语句内存在多个条件的 情况,让这些条件的取值进行笛卡尔乘积组合。 b、不同的判断语句内的条件取值之间无需组合。 c、对于单条件的判断语句,只需要满足自己的所有取 值即可。
3、测试的充分性:
由上表可见,100%满足路径覆盖,但并不一 定能100%满足条件覆盖(C2只取到了真), 但一定能100%满足判定覆盖标准(因为路径 就是从判断的某条分支走的)
22
六种逻辑覆盖的强弱关系
在外面很多的教程都认为这六种逻辑覆盖从弱 到强的排列顺序是: 语句覆盖->判定覆盖->条件覆盖->判定-条件覆 盖->条件组合覆盖->路径覆盖
白盒测试模板

白盒测试指南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 填写测试报告测试记录需详细填写具体实施方法中的相关列表;上交的测试报告只需填写未通过的项。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
测试用例:
测试用例号
输入参数
理论返回值
实际输出值
备注
关键测试用例代码:
<提示:对关键的测试用例给出部分代码或伪代码。>
备注:(可选)
6.1.2
目的:
测试API函数的健壮性
测试描述:
在每一个模块测试中,调用所有的API接口函数。对API函数参数输入合法参数值,并且以正确的(Normal)顺序调用,打印输出函数返回值
<例如:见下
1.注册
2.注册状态:注册是否成功>
<例如:同一邮箱不可重复注册>
……
6
6.1
6.1.1
目的:
测试API函数合法的输入参数及正确的调用顺序
测试描述:
在每一个模块测试中,调用所有的API接口函数。对API函数参数输入合法参数值,并且以正确的(Normal)顺序调用,打印输出函数返回值
前置条件(可选):
白盒测试用例
发布
作者
完成日期
文档模板
SSP-VER-T13-V1.0
密级
变更历史
版本
完成日期
变更记录
作者
批准签字
1
2
3
术语/缩写
说明
4
编号
模块名称
优先级
F1
<例如:flash>
<例如:高>
F2
F3
F4
F5
F6
F7
F8
……
Fn
5
5.1
5.2
模块名称
功能
备注
<例如:注册接口>
前置条件(可选):
<提示:测试所需流的类型、内容,测试所需要的前提条件>。
测试用例:
测试用例号
输入参数
理论返回值
理论输出值
备注
关键测试用例代码:
<提示:对关键的测试用例给出部分代码或伪代码。>
备注:(可选)
附录 A
附录 B