软件测试方法和技术幻灯片.ppt
《软件测试方法和技术幻灯片.ppt》由会员分享,可在线阅读,更多相关《软件测试方法和技术幻灯片.ppt(97页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件测试方法和技术第1页,共97页,编辑于2022年,星期三第五章回顾单元测试的定义与进行单元测试的重要性单元测试的定义与进行单元测试的重要性单元测试的目标与任务单元测试的目标与任务静态测试技术的运用静态测试技术的运用动态测试技术的运用动态测试技术的运用调试与评估调试与评估单元测试的过程与文档管理单元测试的过程与文档管理单元测试的常用工具简介单元测试的常用工具简介第2页,共97页,编辑于2022年,星期三第六章 集成测试和系统测试6.1 系统集成的模式与方法6.2 功能测试6.3 系统测试6.4 压力测试、容量测试和性能测试6.5安全性、可靠性和容错性测试第3页,共97页,编辑于2022年,星
2、期三6.16.1系统集成的模式与方法系统集成的模式与方法 软件集成测试前的准备软件集成测试前的准备 人员安排人员安排测试计划测试计划测试内容测试内容集成模式集成模式测试方法测试方法第4页,共97页,编辑于2022年,星期三为什么总是集成不起来?为什么总是集成不起来?第5页,共97页,编辑于2022年,星期三集成测试的模式集成测试的模式渐增式测试模式与非渐增式测试模式渐增式测试模式与非渐增式测试模式非渐增式测试模式非渐增式测试模式:先分别测试每个模块,再把所有模块按设计要求放在一起结合成所要的程序,如大棒模式。渐增式测试模式渐增式测试模式:把下一个要测试的模块同已经测试好的模块结合起来进行测试,
3、测试完以后再把下一个应该测试的模块结合进来测试。各自的优缺点各自的优缺点第6页,共97页,编辑于2022年,星期三自顶向下和自底向上集成方法自顶向下和自底向上集成方法驱动程序驱动程序/驱动模块驱动模块(driver),用以模拟被测模块的上级模块。驱动模块在集成测试中接受测试数据,把相关的数据传送给被测模块,启动被测模块,并打印出相应的结果。桩程序桩程序/桩模块桩模块(stub),),也有人称为存根程序,用以模拟被测模块工作过程中所调用的模块。桩模块由被测模块调用,它们一般只进行很少的数据处理,例如打印入口和返回,以便于检验被测模块与其下级模块的接口第7页,共97页,编辑于2022年,星期三自顶
4、向下法自顶向下法(Top-down Integration)自顶向下法的主要优缺点自顶向下法的主要优缺点第8页,共97页,编辑于2022年,星期三自底向上法自底向上法(Bottom-up Integration)自底向上法的主要优缺点自底向上法的主要优缺点第9页,共97页,编辑于2022年,星期三混合策略混合策略(Modified Top-down Integration)混合法:对软件结构中较上层,使用的是混合法:对软件结构中较上层,使用的是“自顶向下自顶向下”法;对软件结构中较下层,使用的法;对软件结构中较下层,使用的是是“自底向上自底向上”法,两者相结合法,两者相结合第10页,共97页,
5、编辑于2022年,星期三大棒集成方法大棒集成方法(Big-bang Integration)采用大棒集成方法采用大棒集成方法,先是对每一个子模块进行测试(单元测试阶段),然后将所有模先是对每一个子模块进行测试(单元测试阶段),然后将所有模块一次性的全部集成起来进行集成测试块一次性的全部集成起来进行集成测试。因为所有的模块一次集成的,所以很难确定出错的真正位置、所在的模块、错误的原因。这种方法并不推荐在任何系统中使用,适合在规模较小的应用系统中使用。第11页,共97页,编辑于2022年,星期三三明治集成方法三明治集成方法(Sandwich Integration)采用三明治方法的优点是:它将自顶
6、向下和自底向上的集成方法有机地结合起来,不需要写桩程序因为在测试初自底向上集成已经验证了底层模块的正确性。采用这种方法的主要缺点是:在真正集成之前每一个独立的模块没有完全测试过。第12页,共97页,编辑于2022年,星期三改善的三明治集成方法改善的三明治集成方法改进的三明治集成方法,不仅自两头向中间集成,而且保证每个模块得到单独的改进的三明治集成方法,不仅自两头向中间集成,而且保证每个模块得到单独的测试,使测试进行得比较彻底测试,使测试进行得比较彻底。第13页,共97页,编辑于2022年,星期三几种集成方法性能的比较几种集成方法性能的比较自底向上自底向上自自顶顶向下向下混合策略混合策略大棒大棒
7、三明治三明治改改进进三明治三明治集成集成早早早早早早晚晚早早早早基本程序能工作基本程序能工作时间时间晚晚早早早早晚晚早早早早需要需要驱动驱动程序程序是是否否是是是是是是是是需要需要桩桩程序程序否否是是是是是是是是是是工作并行性工作并行性中中低低中中高高中中高高特殊路径特殊路径测试测试容易容易难难容易容易容易容易中等中等容易容易计计划与控制划与控制容易容易难难难难容易容易难难难难第14页,共97页,编辑于2022年,星期三6.2功能测试功能测试功能测试的目的和内容功能测试的目的和内容n程序安装、启动正常,有相应的提示框、错误提示等n每项功能符合实际要求n系统的界面清晰、美观n菜单、按钮操作正常、
8、灵活,能处理一些异常操作n能接受正确的数据输入,对异常数据的输入可以进行提示、容错处理等n数据的输出结果准确,格式清晰,可以保存和读取n功能逻辑清楚,符合使用者习惯n系统的各种状态按照业务流程而变化,并保持稳定n支持各种应用的环境n能配合多种硬件周边设备n软件升级后,能继续支持旧版本的数据n与外部应用系统的接口有效第15页,共97页,编辑于2022年,星期三功能测试的方法功能测试的方法n1.等价类划分法等价类划分法n2.边界值分析法边界值分析法n3.错误推测法错误推测法n4.因果图法因果图法n5.组合分析法组合分析法第16页,共97页,编辑于2022年,星期三等价类划分法等价类划分法n数学含义
9、A=x=BC=y=1&=50”n两个无效等价类为“50”第18页,共97页,编辑于2022年,星期三确立等价类的原则确立等价类的原则n如果输入条件是一个布尔量,则可以确立一个有效等价类和一个无效等价类n如果规定了输入数据的一组值,而且程序要对每一个输入值分别进行处理,这时要对每一个规定的输入值确立一个有效等价类,而对于这组值之外的所有值确立一个无效等价类第19页,共97页,编辑于2022年,星期三确立等价类的原则确立等价类的原则n如果规定了输入数据必须遵守的规则,则可以确立一个有效等价类(即遵守规则的数据)和若干无效等价类(从不同角度违反规则的数据),例如:n测试密码域,要求密码必须是数字或字
10、母n有效等价类为“密码是数字和字母的组合”n无效等价类为“密码包括中文”、“密码包括其它符号”等n如果确知已划分的等价类中的各元素在程序中的处理方式不同,则应进一步划分成更小的等价类第20页,共97页,编辑于2022年,星期三等价类测试用例设计等价类测试用例设计n分析输入输出n划分有效等价类、无效等价类n设计测试用例,使其尽可能多的覆盖有效等价类n设计测试用例,使其一次只覆盖一个无效等价类第21页,共97页,编辑于2022年,星期三使用等价类划分法测试的实例n保险公司计算保费费率的程序保险公司计算保费费率的程序 某保险公司的人寿保险的保费计算方式为:投保额保险费率其中,保险费率依点数不同而有别
11、,10点及10点以上保险费率为0.6%,10点以下保险费率为0.1%;而点数又是由投保人的年龄、性别、婚姻状况和抚养人数来决定,具体规则如下:年龄年龄 性别性别婚姻婚姻抚养人数抚养人数 20392039 40594059 其它其它 MM FF 已婚已婚 未婚未婚 11人扣人扣0.50.5点点 最多扣最多扣3 3点点(四舍五入取整)(四舍五入取整)6 6点点 4 4点点 2 2点点 5 5点点 3 3点点 3 3点点5 5点点第22页,共97页,编辑于2022年,星期三计算保费费率的程序(1)分析程序规格说明中给出和隐含的对输入条件的要求,列出等价类表(包括有效等价类和无效等价类)。n年龄:一位
12、或两位非零整数,值的有效范围为199n性别:一位英文字符,只能取值M或Fn婚姻:字符,只能取值已婚或未婚n抚养人数:空白或一位非零整数(19)n点数:一位或两位非零整数,值的范围为199(2)根据(1)中的等价类表,设计能覆盖所有等价类的测试用例。第23页,共97页,编辑于2022年,星期三输入条件输入条件有效等价类有效等价类编号编号无效等价类无效等价类编号编号年龄年龄2039岁岁14059岁岁2119岁岁6099岁岁3小于小于112大于大于9913性别性别单个英文字符单个英文字符4非英文字符非英文字符14非单个英文字符非单个英文字符15M5除除M和和F之外之外的的其它单个字符其它单个字符16
13、F6婚姻婚姻已婚已婚7除除已婚已婚和和未婚未婚之外的其它字符之外的其它字符17未婚未婚8抚养人数抚养人数空白空白9除空白和数字之外除空白和数字之外的其它字符的其它字符1816人人10小于小于11969人人11大于大于920第24页,共97页,编辑于2022年,星期三测试用例测试用例编号编号输入数据输入数据预期输出预期输出年龄年龄性别性别婚姻婚姻抚养人数抚养人数保险费率保险费率127F未婚未婚空白空白0.6%250M已婚已婚20.6%370F已婚已婚70.1%40M未婚未婚空白空白无法推算无法推算5100F已婚已婚3无法推算无法推算699男男已婚已婚4无法推算无法推算71Child未婚未婚空白空
14、白无法推算无法推算845N已婚已婚5无法推算无法推算938F离婚离婚1无法推算无法推算1062M已婚已婚没有没有无法推算无法推算1118F未婚未婚0无法推算无法推算1240M未婚未婚10无法推算无法推算第25页,共97页,编辑于2022年,星期三等价类划分法等价类划分法n某一PASCAL语言版本中规定:“标识符是由字母打头,后跟字母或数字的任意组合构成。有效字符数为8个,最大字符数为80个”,且规定n标识符必须先说明,再使用n在同一说明语句中,标识符至少出现一个第26页,共97页,编辑于2022年,星期三等价类划分法等价类划分法划分好等价类测试:防止遗漏测试案例。划分好等价类测试:防止遗漏测试
15、案例。第27页,共97页,编辑于2022年,星期三例子:某城市电话号码由三部分组成,分别是:地区码空白或三位数字;前缀非0或1开头的三位数字;后缀4位数字。假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。要求:请选择适当的黑盒测试方法,写出选择该方法的原因,并使用该方法的步骤,给出测试用例表。第28页,共97页,编辑于2022年,星期三多于3位数字少于3位数字有非数字字符空白3位数字地区码编号无效等价类编号有效等价类输入条件前缀前缀200999有非数字字符有非数字字符起始位为起始位为0起始位为起始位为1少于少于3位数字位数字多于多于3位数字位数字后缀后缀4位数字位数
16、字有非数字字符有非数字字符少于少于4位数字位数字多于多于4位数字位数字341256789101112131415使用等价类划分法第29页,共97页,编辑于2022年,星期三测试用例测试用例编号编号输入数据输入数据预期输出预期输出地区码地区码前缀前缀后缀后缀1空白空白1234567接受(有效)接受(有效)21238059876接受(有效)接受(有效)320A1234567拒绝(无效)拒绝(无效)4332345678拒绝(无效)拒绝(无效)512342344567拒绝(无效)拒绝(无效)61232B31234拒绝(无效)拒绝(无效)71230131234拒绝(无效)拒绝(无效)8123123123
17、4拒绝(无效)拒绝(无效)9123231234拒绝(无效)拒绝(无效)1012323451234拒绝(无效)拒绝(无效)111232341B34拒绝(无效)拒绝(无效)1212323434拒绝(无效)拒绝(无效)1312323423345拒绝(无效)拒绝(无效)覆盖等价类覆盖等价类1,3,42,3,456789101112131415第30页,共97页,编辑于2022年,星期三NextDate函数包含三个变量:month、day和year,函数的输出为输入日期后一天的日期。例如,输入为2006年3月7日,则函数的输出为2006年3月8日。要求输入变量month、day和year均为整数值,并且
18、满足下列条件:1month121day311920year2050第31页,共97页,编辑于2022年,星期三边界值分析法边界值分析法n数学含义A=x=BC=y=D第32页,共97页,编辑于2022年,星期三n无数的测试实践表明,大量的故障往往发生在输入定义域或输出值域的边界上,而不是在其内部。n怎样用边界值分析法设计测试用例?(1)首先确定边界情况。通常输入或输出等价类的边界就是应该着重测试的边界情况。(2)选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值。第33页,共97页,编辑于2022年,星期三举例常见的边界值n对16-bit的整数而言32767
19、和-32768是边界n屏幕上光标在最左上、最右下位置n报表的第一行和最后一行n数组元素的第一个和最后一个n循环的第0次、第1次和倒数第2次、最后一次第34页,共97页,编辑于2022年,星期三边界值分析n边界值分析使用与等价类划分法相同的划分,只是边界值分析假定错误更多地存在于划分的边界上,因此在等价类的边界上以及两侧的情况设计测试用例。第35页,共97页,编辑于2022年,星期三边界值分析n通常情况下,软件测试所包含的边界检验有几种类型:数字、字符、位置、质量、大小、速度、方位、尺寸、空间等n相应地,以上类型的边界值应该在:最大/最小、首位/末位、上/下、最快/最慢、最高/最低、最短/最长、
20、空/满等情况下第36页,共97页,编辑于2022年,星期三举例利用边界值作为测试数据项边界值测试用例的设计思路字符起始-1个字符/结束+1个字符假设一个文本输入区域允许输入1个到255个字符,输入1个和255个字符作为有效等价类;输入0个和256个字符作为无效等价类,这几个数值都属于边界条件值。数值最小值-1/最大值+1假设某软件的数据输入域要求输入5位的数据值,可以使用10000作为最小值、99999作为最大值;然后使用刚好小于5位和大于5位的数值来作为边界条件。空间小于空余空间一点/大于满空间一点例如在用U盘存储数据时,使用比剩余磁盘空间大一点(几KB)的文件作为边界条件。第37页,共97
21、页,编辑于2022年,星期三内部边界值分析n某些边界值条件是不需要呈现给用户的,或者说用户是很难注意到的,但同时确实属于检验范畴内的边界条件,称为内部边界值条件或子边界值条件。n内部边界值条件主要有下面几种:n数值的边界值检验n字符的边界值检验n其它边界值检验第38页,共97页,编辑于2022年,星期三边界值分析法测试用例n在边界值分析法中获取测试用例的方法是:(1)每次保留程序中一个变量,让其余的变量取正常值,被保留的变量依次取min、min+、nom、max-和max。(2)对程序中的每个变量重复(1)。第41页,共97页,编辑于2022年,星期三边界值分析法测试用例n例例1:有两个输入变
22、量x1(ax1b)和x2(cx2d)的程序F的边界值分析测试用例如下:,x1x2abcd第42页,共97页,编辑于2022年,星期三边界值分析法测试用例(续)n例例2:有二元函数f(x,y),其中x1,12,y1,31。则采用边界值分析法设计的测试用例是:,n推论:对于一个含有推论:对于一个含有n个变量的程序,采用边界值个变量的程序,采用边界值分析法测试程序会产生分析法测试程序会产生4n+1个测试用例。个测试用例。第43页,共97页,编辑于2022年,星期三n练习:练习:有函数f(x,y,z),其中x1900,2100,y1,12,z1,31的。请写出该函数采用边界值分析法设计的测试用例。,第
23、44页,共97页,编辑于2022年,星期三健壮性测试n健壮性测试是作为边界值分析的一个简单的扩充,它除了对变量的5个边界值分析取值外,还需要增加一个略大于最大值(max+)以及略小于最小值(min-)的取值,检查超过极限值时系统的情况。因此,对于有n个变量的函数采用健壮性测试需要6n+1个测试用例。n前面例1中的程序F的健壮性测试如下图所示:x1x2abcdn练习:请为例2中的函数f(x,y)写出相应的健壮性测试用例。第45页,共97页,编辑于2022年,星期三n实例1三角形问题的边界值分析测试用例在三角形问题描述中,除了要求边长是整数外,没有给出其它的限制条件。在此,我们将三角形每边边长的取
24、范围值设值为1,100。说明:如果程序规格说明中没有显式地给出边界值,则可以在设计测试用例前先设定取值的下限值和上限值。n实例2NextDate函数的边界值分析测试用例在NextDate函数中,隐含规定了变量mouth和变量day的取值范围为1mouth12和1day31,并设定变量year的取值范围为1912year2050。边界值分析法测试举例第46页,共97页,编辑于2022年,星期三边界值分析法边界值分析法例如:测试一个排序程序的边界值分析法的例子,其边界条件有:n排序序列为空;n排序序列仅有一个数据;n排序序列为满,用猜错法补充一下测试用例;n排序序列已经按要求排好序;n排序序列的顺
25、序与要求的顺序恰好相反;n排序序列中的所有数据全部相等。因为错误最容易发生在边界值附近,所以边界值分析法对于多变量函数的测试很有效,尤其是对于像C/C+数据类型要求不是很严格的语言有利。第49页,共97页,编辑于2022年,星期三错误推测法错误推测法这个错误到底在哪?这个错误到底在哪?第50页,共97页,编辑于2022年,星期三因果图n因果图法最终生成的是决策表。利用因果图生成测试用例的基本步骤如下:(1)分析软件规格说明中哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。(2)分析软件规格说明中的语义,找出原因与结果之间、原因与原因之间对
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 方法 技术 幻灯片
限制150内