第四部分白盒测试ppt课件.ppt
《第四部分白盒测试ppt课件.ppt》由会员分享,可在线阅读,更多相关《第四部分白盒测试ppt课件.ppt(108页珍藏版)》请在三一文库上搜索。
1、第四部分 白盒测试,结构流分析 程序结构分析 数据流分析 控制流分析 逻辑覆盖:语句覆盖、判定覆盖、条件覆盖、 判定条件覆盖、路径覆盖等 程序插桩:方法简介、断言语句 其他白盒测试简介,如图显示某程序的逻辑结构。试为它设计足够的测试用例,分别实现对程序的判定覆盖、条件覆盖和条件组合覆盖。,如图显示某程序的逻辑结构。试为它设计足够的测试用例,分别实现对程序的判定覆盖、条件覆盖和条件组合覆盖。,S1,S2,A0 and B=0,最少测试用例计算,众所周知,结构化程序是由3种基本控制结构组成的: 顺序型构成串行操作; 选择型构成分支操作; 重复型构成循环操作。 为了把问题简化,避免出现测试用例太多的
2、组合,把构成循环操作的重复型结构用选择结构代替,只对循环体检验一次。这样,任一循环便改造成进入循环体或不进入循环体的分支操作了。 在做了以上简化循环的假设以后,对于一般的程序控制流,只要考虑选择型结构。,N-S图表示的基本控制结构,S,DOWHILE型,DOUNTIL型,C,N,Y,D,最少测试用例计算,例1:两个串行分支结构的N-S图,Y,P1,a,N,b,Y,P2,d,c,N,最少测试用例 224,例2:最少测试用例计算,Y,1,Y,N,N,Y,N,Y,3,2,N,N,Y,N,4,N,Y,5,Y,6,N,Y,7,N,Y,9,8,条件测试路径选择,当程序中判定多于一个时,形成的分支结构可以分
3、为两类:嵌套型分支结构和连锁型分支结构。 对于嵌套型分支结构,若有n个判定语句,需要n+1个测试用例; 对于连锁型分支结构, 若有n个判定语句,需要有2n个测试用例,覆盖它的2n条路径。当n较大时将无法测试。,3 路经分析,着眼于路径分析的测试为路径测试; 完成路经测试的理想情况时做到路径覆盖; 一、路径表达式和路径数 可用弧序列或节点序列表示某一条具体路径。给出路径通式时用弧序列表示。 1、路径表达式 路径表达式有两个运算符:相乘和相加,3 路经分析,(1)弧a和弧b相乘,表示为ab,它表明路径是实现经历弧a接着再经历弧b,弧a和弧b是先后相继的。 (2)弧a和弧b相加,表示为a+b,它表明
4、弧a和弧b是并立的(或的关系),即两条路径是并行关系。 举例:pg53,3 路经分析,(3)运算规律 加法交换律 加法结合律 加法幂等律 乘法结合律 分配律 对路径表达式化简,3 路经分析,2、路经数计算 将路径表达式中的弧都用数字1代入,然后,按照相乘、湘价计算出数值,即为该程序的路径数。 注:程序的圈复杂度和路径数有着直接的关系,3 路经分析,二、基本路经测试 如果一个程序的独立路径都被测试过,那么可以认为程序中的每个语句都以检验过了,也就达到了语句覆盖,这种方式就是基本路经测试方法。 独立路经测试基本路经测试 复习:独立路径的概念,3 路经分析,举例: 要求:最多输入100个值(以-99
5、9为输入结束标志),计算落在给定范围内的那些值(成为有效输入值)的个数、总和和平均值。 下面的程序片断为主程序调用的求平均值的函数average(),变量sum为总和,total为有效值的个数,两者都为全局变量。 主程序main()完成数据输入(调用时传给value数组)及平均值、总和、有效值个数的输出。,3 路经分析,具体步骤 (1)根据程序给出流图; (2)确定圈复杂性度量V(G); (3)确定独立路径集; (4)为每个独立路径的执行,设计测试用例,3 路经分析,分析:确定每个节点代表的程序 复习while 语句的流图框架,3 路经分析,考虑符合条件中的单个条件,(1)流图,3 路经分析,
6、(2)圈复杂性V(G) V(G)=6 (围成的区域数) V(G)=17(边)-13(节点) +2=6 V(G)=5(判定节点)+1=6,3 路经分析,(3)六条独立路径 路径1 1-2-10-11-13(aloq) 路径2 1-2-10-12-13 路径3 1-2-3-10-11-13 路径4 1-2-3-4-5-8-9-2 路径5 1-2-3-4-5-6-7-8-9-2 路径6 1-2-3-4-5-6-8-9-2,3 路经分析,(4)设计测试用例 路径1 1-2-10-11-13(aloq) 执行的条件情况: 节点2,条件value(I)!=-999为假; 程序结束以输入-999退出whil
7、e 循环 节点10,条件total0为真 要求有有效的输入数据。 假如最大值为maximum,如150; 最小值为minimum,如22,3 路经分析,可如下设计一组测试用例数据,如5个数,分别是:12,26,58,160,-999 期望结果是: 平均值:42 总和:84 有效值个数:2 通用的测试用例表示: Value(k)=有效输入,kI Value(i)=-999,2=I=100,输入I个值,I大于2,小于100。最后一个值value(I)为-999,I个值中一定有有效值,如,第k个值。,3 路经分析,路径2 1-2-10-12-13 执行的条件情况: 节点2,条件value(I)!=-
8、999为假; 程序结束以输入-999退出while 循环 节点10,条件total0为false,即输入的一组数据中没有一个是有效值。 假如最大值为maximum,如100; 最小值为minimum,如22,3 路经分析,可如下设计一组测试用例数据,如5个数,分别是:12,21,158,160,-999 期望结果是: 平均值:-999 总和:0 有效值个数:0 通用的测试用例表示: 任何Value(k)都为无效输入,kI Value(i)=-999,2=I=100,输入I个值,I大于2,小于100。最后一个值value(I)为-999,I个值中没有一个有效值。,3 路经分析,路径3 1-2-3
9、-10-11-13 执行的条件情况: 节点2,条件value(I)!=-999为真; 程序以输入-999退出while 循环 节点10,条件total0为真,即输入的一组数据中至有一个是有效值。 节点3,inputnum100为假,程序以输入数据超过100个,退出while 循环。 假如最大值为maximum,如150; 最小值为minimum,如22。,3 路经分析,测试用例设计: 试图输入101个数或更多,数中没有-999,前100个数中至少有一个是有效数。 期望结果:计算100个之后,程序应结束,期望的平均值、有效值总数、平均值根据前100个值中的有效值计算。,3 路经分析,课堂作业(小
10、测验): 假如输入个数最多为10个,请为本题的独立路径4、5、6涉及具体的测试用例,并给出期望结果。,三、循环测试路径选择,循环分为4种不同类型:简单循环、连锁循环、嵌套循环和非结构循环。 (1) 简单循环 零次循环:从循环入口到出口 一次循环:检查循环初始值 二次循环:检查多次循环 m次循环: 检查在多次循环 最大次数循环、比最大次数多一次、少一次的循环。,3 路经分析,例:求最小值,k = i; for ( j = i+1; j = n; j+ ) if ( Aj Ak ) then k = j; ,a,b,e,c,j=n,k=j,j+,测试用例选择,(2) 嵌套循环 对最内层循环做简单循
11、环的全部测试。所有其它层的循环变量置为最小值; 逐步外推,对其外面一层循环进行测试。测试时保持所有外层循环的循环变量取最小值,所有其它嵌套内层循环的循环变量取“典型”值。 反复进行,直到所有各层循环测试完毕。, 对全部各层循环同时取最小循环次 数,或者同时取最大循环次数 (3) 连锁循环 如果各个循环互相独立,则可以用与简单循环相同的方法进行测试。但如果几个循环不是互相独立的,则需要使用测试嵌套循环的办法来处理。 (4) 非结构循环 这一类循环应该使用结构化程序设计方法重新设计测试用例。,Z路径覆盖下的循环测试策略,简化循环意义下的路径覆盖称为Z路径覆盖 循环简化的含义是限制循环的次数。无论循
12、环的形式和循环体实际执行的次数,简化后的循环测试只考虑执行循环体1次和0次(不执行)两种情况。 一旦循环结构简化为选择结构后,路径的数量将大大减少,通过枚举的办法得到所有的路径是完全有可能的。,两种典型循环结构,简化后的选择结构,例:输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。程序如下,请按路径分析方法设计测试用例。 要求:1、画出流图;2、分析复杂性;3、给出独立路径;4、设计测试用例。 #include”stdio.h” main() char c; int letters=0,space=0,digit=0,other=0; printf(“请输入一行字符:n”);
13、 while(c=getchar()!=n) if(c=a ,1、流图; #include”stdio.h” main() char c; int letters=0,space=0,digit=0,other=0; printf(“请输入一行字符:n”); while(c=getchar()!=n) if(c=a ,1,2,3,5,7,4,6,8,9,10,11,(2)复杂性为:5 (3)独立路径为: ab acdfn acegin acehjln acehkmn (4) 测试用例为,a2 and b1,x=a+2,x6,Y=x+b,y,y,n,n,给出如下一段程序,按照条件覆盖、分支覆盖、
14、条件/分支覆盖、条件组合覆盖给出测试用例。,(1)分支覆盖,(2)条件覆盖,(3)条件/分支覆盖,a2 记t1 b1 记t2 x6 记t3 每个判定可能的条件有:(1)t1 t2,(2)t1 t2,(3)t1 t2,(4)t1 t2 (5)t3 (6)t3 设计4个测试用例,覆盖以上6种条件组合,(4)条件组合覆盖,四、路径分析 基本路径测试归纳,基本路径测试方法把覆盖的路径数压缩到一定限度内,程序中的循环体最多只执行一次独立路径覆盖。 它是在程序控制流图的基础上,分析控制构造的环路复杂性,导出基本可执行路径集合,设计测试用例的方法。设计出的测试用例要保证在测试中,程序的每一个可执行语句至少要
15、执行一次。,4 程序插桩,程序插桩(program instrumentation)是一种基本的测试手段,在软件测试中有着广泛的作用。 一、方法简介 程序插桩方法简单的说是借助于往被测程序中插入操作来实现测试目的的方法。 以计算整数X和Y的最大公约数程序为例,说明插桩方法的要点。, 4 程序插桩,图中的虚线框并不是原来的内容,而是为了纪录语句执行次数而插入的。这些虚线框要完成的工作都是计数语句。 C(i)=C(i)+1,在程序入口处插入对计数器C(i)的初始化语句,在程序出口处加入打印语句,即构成完整的插桩程序, 4 程序插桩,二、设计程序插桩时序考虑的问题 (1)探测哪些信息? (2)在程序
16、的那些地方设置探测点; (3)需要设置那些探测点。,1、2需结合具体的问题解决,可根据控制结构考虑,在没有分支结构的程序段只需一个插桩语句, 4 程序插桩, 4 程序插桩,三、断言(assertions)语句,这里仅对断言做一个简单的说明,以后我们还要进一步讨论, 4 程序插桩, 4 程序插桩,粗略的观测和分析可以用一下, 4 程序插桩, 4 程序插桩, 4 程序插桩, 4 程序插桩, 5 界面测试考虑,目前流行的界面风格有三种方式:多窗体、单窗体以及资源管理器风格,无论那种风格,以下规则是应该被重视的。 1:易用性 2: 规范性 3:帮助设施 4:合理性 5:美观与协调性 6:菜单位置 7:
17、独特性 8:快捷方式的组合 9:安全性考虑 10:多窗口的应用与系统资源, 5 界面测试考虑,1:易用性 按钮名称应该易懂,用词准确,要与同一界面上的其他按钮易于区分,能望文知意最好。理想的情况是用户不用查阅帮助就能知道该界面的功能并进行相关的正确操作。 易用性细则: 1):完成相同或相近功能的按钮用Frame框起来,常用按钮要支持快捷方式。 2):完成同一功能或任务的元素放在集中位置,减少鼠标移动的距离。 3):按功能将界面划分区域块,用Frame框括起来,并要有功能说明或标题。, 5 界面测试考虑,4):界面要支持键盘自动浏览按钮功能,即按Tab键、回車鍵的自动切换功能。 5):界面上首先
18、要输入的和重要信息的控件在Tab顺序中应当靠前,位置也应放在窗口上较醒目的位置。 6):同一界面上的控件数最好不要超过10个,多于10个时可以考虑使用分页界面显示。 7):分页界面要支持在页面间的快捷切换,常用组合快捷键Ctrl+Tab 8):默认按钮要支持Enter及选操作,即按Enter后自动执行默认按钮对应操作。, 5 界面测试考虑,9):可寫控制項檢測到非法輸入後應給出說明並能自動獲得焦點。 10):Tab键的顺序与控件排列顺序要一致,目前流行总体从上到下,同时行间从左到右的方式。 11):核取方塊和選項框按選擇幾率的高底而先後排列。 12):核取方塊和選項框要有默認選項,並支援Tab
19、選擇。 13):選項數相同時多用選項框而不用下拉清單框。, 5 界面测试考虑,14):界面空间较小时使用下拉框而不用选项框。 15):选项数較少时使用选项框,相反使用下拉列表框。 16):专业性强的软件要使用相关的专业术语,通用性界面则提倡使用通用性词语。, 5 界面测试考虑,2: 规范性 通常界面设计都按Windows界面的规范来设计,可以说:界面遵循规范化的程度越高,则易用性相应的就越好。小型软件一般不提供工具厢。 规范性细则: 1):常用菜单要有命令快捷方式。 2):完成相同或相近功能的菜单用横线隔开放在同一位置。 3):菜单前的图标能直观的代表要完成的操作。 4):菜单深度一般要求最多
20、控制在三层以内。, 5 界面测试考虑,5):工具栏要求可以根据用户的要求自己选择定制。 6):相同或相近功能的工具栏放在一起。 7):工具栏中的每一个按钮要有及时提示信息。 8):一条工具栏的长度最长不能超出屏幕宽度。 9): 工具栏的图标能直观的代表要完成的操作。 10):系统常用的工具栏设置默认放置位置。 11):工具栏太多时可以考虑使用工具箱。, 5 界面测试考虑,12):工具箱要具有可增减性,由用户自己根据需求定制。 13):工具箱的默认总宽度不要超过屏幕宽度的1/5。 14): 状态条要能显示用户切实需要的信息,常用的有: 目前的操作、系统状态、用户位置、用户信息、提示信息、错误信息
21、等,如果某一操作需要的时间较长,还应该显示进度条和进程提示。 15):滚动条的长度要根据显示信息的长度或宽度能及时变换,以利于用户了解显示信息的位置和百分比。, 5 界面测试考虑,16):状态条的高度以放置五号字为宜,滚动条的宽度比状态条的略窄。 17):菜单和工具条要有清楚的界限;菜单要求凸出显示,这样在移走工具条时仍有立体感。 18):菜单和状态条中通常使用5号字体。工具条一般比菜单要宽,但不要宽的太多,否则看起来很不协调。 19): 右键快捷菜单采用与菜单相同的准则。, 5 界面测试考虑,3:帮助设施: 系统应该提供详尽而可靠的帮助文档,在用户使用产生迷惑时可以自己寻求解决方法。 帮助设
22、施细则: 1):帮助文档中的性能介绍与说明要与系统性能配套一致。(我们的系统帮助文档都是系统的祖先时期的说明,让人困惑)。 2):打包新系统时,对作了修改的地方在帮助文档中要做相应的修改。 3):操作时要提供及时调用系统帮助的功能。常用F1。, 5 界面测试考虑,4):在界面上调用帮助时应该能够及时定位到与该操作相对的帮助位置。也就是说帮助要有即时针对性。 5):最好提供目前流行的联机帮助格式或HTML帮助格式。 6):用户可以用关键词在帮助索引中搜索所要的帮助,当然也应该提供帮助主题词。 7):如果没有提供书面的帮助文档的话,最好有打印帮助的功能。 8):在帮助中应该提供我们的技术支持方式,
23、一旦用户难以自己解决可以方便的寻求新的帮助方式。, 5 界面测试考虑,4:合理性: 屏幕对角线相交的位置是用户直视的地方,正上方四分之一处为易吸引用户注意力的位置,在放置窗体时要注意利用这两个位置。 合理性细则: 1):父窗体或主窗体的中心位置应该在对角线焦点附近。 2):子窗体位置应该在主窗体的左上角或正中。 3):多个子窗体弹出时应该依次向右下方偏移,以显示窗体出标题为宜。, 5 界面测试考虑,4):重要的命令按钮与使用较频繁的按钮要放在界面上注目的位置。 5):错误使用容易引起界面退出或关闭的按钮不应该放在易点击的位置。横排开头或最后与竖排最后为易点位置。 6):与正在进行的操作无关的按
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四 部分 测试 ppt 课件
链接地址:https://www.31doc.com/p-2571910.html