版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件测试方法和技术第一页,共九十七页,2022年,8月28日第五章回顾单元测试的定义与进行单元测试的重要性单元测试的目标与任务静态测试技术的运用动态测试技术的运用调试与评估单元测试的过程与文档管理单元测试的常用工具简介第二页,共九十七页,2022年,8月28日第六章集成测试和系统测试6.1系统集成的模式与方法6.2功能测试6.3系统测试6.4压力测试、容量测试和性能测试6.5安全性、可靠性和容错性测试第三页,共九十七页,2022年,8月28日6.1系统集成的模式与方法软件集成测试前的准备
人员安排
测试计划
测试内容
集成模式
测试方法第四页,共九十七页,2022年,8月28日为什么总是集成不起来?第五页,共九十七页,2022年,8月28日集成测试的模式渐增式测试模式与非渐增式测试模式非渐增式测试模式:先分别测试每个模块,再把所有模块按设计要求放在一起结合成所要的程序,如大棒模式。渐增式测试模式:把下一个要测试的模块同已经测试好的模块结合起来进行测试,测试完以后再把下一个应该测试的模块结合进来测试。各自的优缺点第六页,共九十七页,2022年,8月28日自顶向下和自底向上集成方法
驱动程序/驱动模块(driver),用以模拟被测模块的上级模块。驱动模块在集成测试中接受测试数据,把相关的数据传送给被测模块,启动被测模块,并打印出相应的结果。桩程序/桩模块(stub),也有人称为存根程序,用以模拟被测模块工作过程中所调用的模块。桩模块由被测模块调用,它们一般只进行很少的数据处理,例如打印入口和返回,以便于检验被测模块与其下级模块的接口第七页,共九十七页,2022年,8月28日自顶向下法(Top-downIntegration)
自顶向下法的主要优缺点第八页,共九十七页,2022年,8月28日自底向上法(Bottom-upIntegration)
自底向上法的主要优缺点第九页,共九十七页,2022年,8月28日混合策略(ModifiedTop-downIntegration)
混合法:对软件结构中较上层,使用的是“自顶向下”法;对软件结构中较下层,使用的是“自底向上”法,两者相结合
第十页,共九十七页,2022年,8月28日大棒集成方法(Big-bangIntegration)采用大棒集成方法,先是对每一个子模块进行测试(单元测试阶段),然后将所有模块一次性的全部集成起来进行集成测试。因为所有的模块一次集成的,所以很难确定出错的真正位置、所在的模块、错误的原因。这种方法并不推荐在任何系统中使用,适合在规模较小的应用系统中使用。第十一页,共九十七页,2022年,8月28日三明治集成方法(SandwichIntegration)
采用三明治方法的优点是:它将自顶向下和自底向上的集成方法有机地结合起来,不需要写桩程序因为在测试初自底向上集成已经验证了底层模块的正确性。采用这种方法的主要缺点是:在真正集成之前每一个独立的模块没有完全测试过。第十二页,共九十七页,2022年,8月28日改善的三明治集成方法改进的三明治集成方法,不仅自两头向中间集成,而且保证每个模块得到单独的测试,使测试进行得比较彻底。第十三页,共九十七页,2022年,8月28日几种集成方法性能的比较
自底向上自顶向下混合策略大棒三明治改进三明治集成早早早晚早早基本程序能工作时间晚早早晚早早需要驱动程序是否是是是是需要桩程序否是是是是是工作并行性中低中高中高特殊路径测试容易难容易容易中等容易计划与控制容易难难容易难难第十四页,共九十七页,2022年,8月28日6.2功能测试
功能测试的目的和内容
程序安装、启动正常,有相应的提示框、错误提示等每项功能符合实际要求系统的界面清晰、美观菜单、按钮操作正常、灵活,能处理一些异常操作能接受正确的数据输入,对异常数据的输入可以进行提示、容错处理等数据的输出结果准确,格式清晰,可以保存和读取功能逻辑清楚,符合使用者习惯系统的各种状态按照业务流程而变化,并保持稳定支持各种应用的环境能配合多种硬件周边设备软件升级后,能继续支持旧版本的数据与外部应用系统的接口有效第十五页,共九十七页,2022年,8月28日功能测试的方法
1.等价类划分法2.边界值分析法3.错误推测法4.因果图法5.组合分析法第十六页,共九十七页,2022年,8月28日等价类划分法数学含义A<=x<=BC<=y<=D第十七页,共九十七页,2022年,8月28日确立等价类的原则如果输入条件规定了取值范围,或者值的个数,则可以确立一个有效等价类和两个无效等价类,例如:数据范围是1~50有效等价类为“>=1&&<=50”两个无效等价类为“<1”和“>50”第十八页,共九十七页,2022年,8月28日确立等价类的原则如果输入条件是一个布尔量,则可以确立一个有效等价类和一个无效等价类如果规定了输入数据的一组值,而且程序要对每一个输入值分别进行处理,这时要对每一个规定的输入值确立一个有效等价类,而对于这组值之外的所有值确立一个无效等价类
第十九页,共九十七页,2022年,8月28日确立等价类的原则如果规定了输入数据必须遵守的规则,则可以确立一个有效等价类(即遵守规则的数据)和若干无效等价类(从不同角度违反规则的数据),例如:
测试密码域,要求密码必须是数字或字母
有效等价类为“密码是数字和字母的组合”
无效等价类为“密码包括中文”、“密码包括其它符号”等如果确知已划分的等价类中的各元素在程序中的处理方式不同,则应进一步划分成更小的等价类
第二十页,共九十七页,2022年,8月28日等价类测试用例设计分析输入输出划分有效等价类、无效等价类
设计测试用例,使其尽可能多的覆盖有效等价类
设计测试用例,使其一次只覆盖一个无效等价类
第二十一页,共九十七页,2022年,8月28日使用等价类划分法测试的实例保险公司计算保费费率的程序
某保险公司的人寿保险的保费计算方式为:投保额×保险费率其中,保险费率依点数不同而有别,10点及10点以上保险费率为0.6%,10点以下保险费率为0.1%;而点数又是由投保人的年龄、性别、婚姻状况和抚养人数来决定,具体规则如下:年龄
性别婚姻抚养人数
20~39
40~59
其它
M
F
已婚
未婚
1人扣0.5点最多扣3点(四舍五入取整)
6点
4点
2点
5点
3点
3点5点第二十二页,共九十七页,2022年,8月28日计算保费费率的程序(1)分析程序规格说明中给出和隐含的对输入条件的要求,列出等价类表(包括有效等价类和无效等价类)。年龄:一位或两位非零整数,值的有效范围为1~99性别:一位英文字符,只能取值‘M’或’F’婚姻:字符,只能取值‘已婚’或‘未婚’抚养人数:空白或一位非零整数(1~9)点数:一位或两位非零整数,值的范围为1~99(2)根据(1)中的等价类表,设计能覆盖所有等价类的测试用例。第二十三页,共九十七页,2022年,8月28日输入条件有效等价类编号无效等价类编号年龄20~39岁140~59岁21~19岁60~99岁3小于112大于9913性别单个英文字符4非英文字符14非单个英文字符15‘M’5除‘M’和‘F’之外的其它单个字符16‘F’6婚姻已婚7除’已婚’和’未婚’之外的其它字符17未婚8抚养人数空白9除空白和数字之外的其它字符181~6人10小于1196~9人11大于920第二十四页,共九十七页,2022年,8月28日测试用例编号输入数据预期输出年龄性别婚姻抚养人数保险费率127F未婚空白0.6%250M已婚20.6%370F已婚70.1%40M未婚空白无法推算5100F已婚3无法推算699男已婚4无法推算71Child未婚空白无法推算845N已婚5无法推算938F离婚1无法推算1062M已婚没有无法推算1118F未婚0无法推算1240M未婚10无法推算第二十五页,共九十七页,2022年,8月28日等价类划分法某一PASCAL语言版本中规定:“标识符是由字母打头,后跟字母或数字的任意组合构成。有效字符数为8个,最大字符数为80个”,且规定标识符必须先说明,再使用在同一说明语句中,标识符至少出现一个第二十六页,共九十七页,2022年,8月28日等价类划分法划分好等价类测试:防止遗漏测试案例。第二十七页,共九十七页,2022年,8月28日例子:
某城市电话号码由三部分组成,分别是:地区码——空白或三位数字;前缀——非‘0’或‘1’开头的三位数字;后缀——4位数字。假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。要求:
请选择适当的黑盒测试方法,写出选择该方法的原因,并使用该方法的步骤,给出测试用例表。第二十八页,共九十七页,2022年,8月28日多于3位数字少于3位数字有非数字字符空白3位数字地区码编号无效等价类编号有效等价类输入条件前缀200~999有非数字字符起始位为’0’起始位为’1’少于3位数字多于3位数字后缀4位数字有非数字字符少于4位数字多于4位数字341256789101112131415使用等价类划分法第二十九页,共九十七页,2022年,8月28日测试用例编号输入数据预期输出地区码前缀后缀1空白1234567接受(有效)21238059876接受(有效)320A1234567拒绝(无效)4332345678拒绝(无效)512342344567拒绝(无效)61232B31234拒绝(无效)71230131234拒绝(无效)81231231234拒绝(无效)9123231234拒绝(无效)1012323451234拒绝(无效)111232341B34拒绝(无效)1212323434拒绝(无效)1312323423345拒绝(无效)覆盖等价类1,3,42,3,456789101112131415第三十页,共九十七页,2022年,8月28日NextDate函数包含三个变量:month、day和year,函数的输出为输入日期后一天的日期。例如,输入为2006年3月7日,则函数的输出为2006年3月8日。要求输入变量month、day和year均为整数值,并且满足下列条件:
①1≤month≤12
②1≤day≤31
③1920≤year≤2050
第三十一页,共九十七页,2022年,8月28日边界值分析法数学含义A<=x<=BC<=y<=D第三十二页,共九十七页,2022年,8月28日无数的测试实践表明,大量的故障往往发生在输入定义域或输出值域的边界上,而不是在其内部。怎样用边界值分析法设计测试用例?(1)首先确定边界情况。通常输入或输出等价类的边界就是应该着重测试的边界情况。(2)选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值。第三十三页,共九十七页,2022年,8月28日举例——常见的边界值对16-bit的整数而言32767和-32768是边界屏幕上光标在最左上、最右下位置报表的第一行和最后一行数组元素的第一个和最后一个循环的第0次、第1次和倒数第2次、最后一次第三十四页,共九十七页,2022年,8月28日边界值分析边界值分析使用与等价类划分法相同的划分,只是边界值分析假定错误更多地存在于划分的边界上,因此在等价类的边界上以及两侧的情况设计测试用例。第三十五页,共九十七页,2022年,8月28日边界值分析通常情况下,软件测试所包含的边界检验有几种类型:数字、字符、位置、质量、大小、速度、方位、尺寸、空间等相应地,以上类型的边界值应该在:最大/最小、首位/末位、上/下、最快/最慢、最高/最低、最短/最长、空/满等情况下第三十六页,共九十七页,2022年,8月28日举例——利用边界值作为测试数据项边界值测试用例的设计思路字符起始-1个字符/结束+1个字符假设一个文本输入区域允许输入1个到255个字符,输入1个和255个字符作为有效等价类;输入0个和256个字符作为无效等价类,这几个数值都属于边界条件值。数值最小值-1/最大值+1假设某软件的数据输入域要求输入5位的数据值,可以使用10000作为最小值、99999作为最大值;然后使用刚好小于5位和大于5位的数值来作为边界条件。空间小于空余空间一点/大于满空间一点例如在用U盘存储数据时,使用比剩余磁盘空间大一点(几KB)的文件作为边界条件。第三十七页,共九十七页,2022年,8月28日内部边界值分析某些边界值条件是不需要呈现给用户的,或者说用户是很难注意到的,但同时确实属于检验范畴内的边界条件,称为内部边界值条件或子边界值条件。内部边界值条件主要有下面几种:数值的边界值检验字符的边界值检验其它边界值检验第三十八页,共九十七页,2022年,8月28日数值的边界值检验计算机是基于二进制进行工作的,因此,软件的任何数值运算都有一定的范围限制。项范围或值位(bit)0或1字节(byte)0~255字(word)0~65535(单字)或0~4294967295(双字)千(K)1024兆(M)1048576吉(G)1073741824计算机数值运算的范围第三十九页,共九十七页,2022年,8月28日字符的边界值检验在计算机软件中,字符也是很重要的表示元素,其中ASCII和Unicode是常见的编码方式。下表中列出了一些常用字符对应的ASCII码值。字符ASCII码值字符ASCII码值空(null)0A65空格(space)32a97斜杠(/)47Z90048z122冒号(:)58单引号(‘)96@64第四十页,共九十七页,2022年,8月28日边界值分析法测试用例在边界值分析法中获取测试用例的方法是:(1)每次保留程序中一个变量,让其余的变量取正常值,被保留的变量依次取min、min+、nom、max-和max。(2)对程序中的每个变量重复(1)。第四十一页,共九十七页,2022年,8月28日边界值分析法测试用例例1:有两个输入变量x1(a≤x1≤b)和x2(c≤x2≤d)的程序F的边界值分析测试用例如下:
{<x1nom,x2min>,<x1nom,x2min+>,<x1nom,x2nom>,<x1nom,x2max>,<x1nom,x2max->,<x1min,x2nom>,<x1min+,x2nom>,<x1max,x2nom>,<x1max-,x2nom>}x1x2abcd第四十二页,共九十七页,2022年,8月28日边界值分析法测试用例(续)例2:有二元函数f(x,y),其中x∈[1,12],y∈[1,31]。则采用边界值分析法设计的测试用例是:{<1,15>,<2,15>,<11,15>,<12,15>,<6,15>,<6,1>,<6,2>,<6,30>,<6,31>}推论:对于一个含有n个变量的程序,采用边界值分析法测试程序会产生4n+1个测试用例。第四十三页,共九十七页,2022年,8月28日练习:有函数f(x,y,z),其中x∈[1900,2100],y∈[1,12],z∈[1,31]的。请写出该函数采用边界值分析法设计的测试用例。{<2000,6,1>,<2000,6,2>,<2000,6,30>,<2000,6,31>,<2000,1,15>,<2000,2,15>,<2000,11,15>,<2000,12,15>,<1900,6,15>,<1901,6,15>,<2099,6,15>,<2100,6,15>,<2000,6,15>}第四十四页,共九十七页,2022年,8月28日健壮性测试健壮性测试是作为边界值分析的一个简单的扩充,它除了对变量的5个边界值分析取值外,还需要增加一个略大于最大值(max+)以及略小于最小值(min-)的取值,检查超过极限值时系统的情况。因此,对于有n个变量的函数采用健壮性测试需要6n+1个测试用例。前面例1中的程序F的健壮性测试如下图所示:x1x2abcd练习:请为例2中的函数f(x,y)写出相应的健壮性测试用例。第四十五页,共九十七页,2022年,8月28日实例1三角形问题的边界值分析测试用例在三角形问题描述中,除了要求边长是整数外,没有给出其它的限制条件。在此,我们将三角形每边边长的取范围值设值为[1,100]。说明:如果程序规格说明中没有显式地给出边界值,则可以在设计测试用例前先设定取值的下限值和上限值。实例2NextDate函数的边界值分析测试用例在NextDate函数中,隐含规定了变量mouth和变量day的取值范围为1≤mouth≤12和1≤day≤31,并设定变量year的取值范围为1912≤year≤2050。边界值分析法测试举例第四十六页,共九十七页,2022年,8月28日测试用例abc预期输出Test1Test2Test3Test4Test560606050506060605050126099100等腰三角形等腰三角形等边三角形等腰三角形非三角形Test6Test7Test8Test960605050129910060605050等腰三角形等腰三角形等腰三角形非三角形Test10Test11Test12Test1312991006060505060605050等腰三角形等腰三角形等腰三角形非三角形第四十七页,共九十七页,2022年,8月28日测试用例mouthdayyear预期输出Test1Test2Test3Test4Test5Test6Test766666661515151515151519111912191319752049205020511911.6.161912.6.161913.6.161975.6.162049.6.162050.6.162051.6.16Test8Test9Test10Test11Test12Test13666666-112303132200120012001200120012001day超出[1…31]2001.6.22001.6.32001.7.1输入日期超界day超出[1…31]Test14Test15Test16Test17Test18Test19-112111213151515151515200120012001200120012001Mouth超出[1…12]2001.1.162001.2.162001.11.162001.12.16Mouth超出[1…12]第四十八页,共九十七页,2022年,8月28日边界值分析法例如:测试一个排序程序的边界值分析法的例子,其边界条件有:排序序列为空;排序序列仅有一个数据;排序序列为满,用猜错法补充一下测试用例;排序序列已经按要求排好序;排序序列的顺序与要求的顺序恰好相反;排序序列中的所有数据全部相等。因为错误最容易发生在边界值附近,所以边界值分析法对于多变量函数的测试很有效,尤其是对于像C/C++数据类型要求不是很严格的语言有利。第四十九页,共九十七页,2022年,8月28日错误推测法这个错误到底在哪?第五十页,共九十七页,2022年,8月28日因果图因果图法最终生成的是决策表。利用因果图生成测试用例的基本步骤如下:(1)分析软件规格说明中哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。(2)分析软件规格说明中的语义,找出原因与结果之间、原因与原因之间对应的关系,根据这些关系画出因果图。(3)由于语法或环境的限制,有些原因与原因之间、原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号表明约束或限制条件。(4)把因果图转换为决策表。(5)根据决策表中的每一列设计测试用例。第五十一页,共九十七页,2022年,8月28日因果图法测试举例实例
用因果图法测试以下程序。程序的规格说明要求:输入的第一个字符必须是#或*,第二个字符必须是一个数字,此情况下进行文件的修改;如果第一个字符不是#或*,则给出信息N,如果第二个字符不是数字,则给出信息M。解题步骤:(1)分析程序的规格说明,列出原因和结果。(2)找出原因与结果之间的因果关系、原因与原因之间的约束关系,画出因果图。(3)将因果图转换成决策表。(4)根据(3)中的决策表,设计测试用例的输入数据和预期输出。第五十二页,共九十七页,2022年,8月28日因果图法测试举例(续)(1)分析程序规格说明中的原因和结果:(2)画出因果图(编号为10的中间结点是导出结果的进一步原因):原因结果c1:第一个字符是#e1:给出信息Nc2:第一个字符是*e2:修改文件c3:第二个字符是一个数字e3:给出信息Mc1c2c3e110e2e3~∨E~∧第五十三页,共九十七页,2022年,8月28日因果图法测试举例(续)(3)将因果图转换成如下所示的决策表:12345678条件:C1C2C310111110101110010111010100100000动作:e1e2e3不可能√√√√√√√√√测试用例#3#A*6*BA1GT规则选项第五十四页,共九十七页,2022年,8月28日因果图法测试举例(续)(4)根据决策表中的每一列设计测试用例:测试用例编号输入数据预期输出1#3修改文件2#A给出信息M3*6修改文件4*B给出信息M5A1给出信息N6GT给出信息N和信息M第五十五页,共九十七页,2022年,8月28日示例:为一个自动售货机(售出单价为5角钱的饮料)设计测试用例,其规格说明如下: 若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。 若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来; 若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。第五十六页,共九十七页,2022年,8月28日分析这一段说明,列出原因和结果结果:
21.售货机〖零钱找完〗灯亮
22.退还1元硬币
23.退还5角硬币
24.送出橙汁饮料
25.送出啤酒饮料原因:1.售货机有零钱找2.投入1元硬币3.投入5角硬币4.押下橙汁按钮5.押下啤酒按钮中间结点:11.投入1元硬币且押下饮料按钮12.押下〖橙汁〗或〖啤酒〗的按钮13.应当找5角零钱并且售货机有零钱找14.钱已付清第五十七页,共九十七页,2022年,8月28日画出因果图:第五十八页,共九十七页,2022年,8月28日转换成判定表:第五十九页,共九十七页,2022年,8月28日决策表法在所有的黑盒测试方法中,基于决策表(也称判定表)的测试是最为严格、最具有逻辑性的测试方法。决策表的概念:决策表是分析和表达多逻辑条件下执行不同操作的情况的工具。第六十页,共九十七页,2022年,8月28日规则选项12345678问题觉得疲倦?YYYYNNNN感兴趣吗?YYNNYYNN糊涂吗?YNYNYNYN建议重读√继续√跳下一章√√休息√√√√“阅读指南”决策表第六十一页,共九十七页,2022年,8月28日决策表的优点:能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利用决策表能够设计出完整的测试用例集合。在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作。决策表很适合于处理这类问题。第六十二页,共九十七页,2022年,8月28日决策表的组成决策表通常由以下4部分组成:条件桩—列出问题的所有条件条件项—针对条件桩给出的条件列出所有可能的取值动作桩—列出问题规定的可能采取的操作动作项—指出在条件项的各组取值情况下应采取的动作
条件桩动作桩条件项动作项规则将任何一个条件组合的特定取值及相应要执行的动作称为一条规则。在决策表中贯穿条件项和动作项的一列就是一条规则。第六十三页,共九十七页,2022年,8月28日决策表的生成构造决策表的5个步骤:(1)确定规则的个数。有n个条件的决策表有2n个规则(每个条件取真、假值)。(2)列出所有的条件桩和动作桩。(3)填入条件项。(4)填入动作项,得到初始决策表。(5)简化决策表,合并相似规则。若表中有两条以上规则具有相同的动作,并且在条件项之间存在极为相似的关系,便可以合并。合并后的条件项用符号“-”表示,说明执行的动作与该条件的取值无关,称为无关条件。第六十四页,共九十七页,2022年,8月28日三角形问题的决策表规则选项规则1-8规则9规则10规则11规则12规则13规则14规则15规则16条件:c1:a,b,c构成三角形?c2:a=b?c3:a=c?c4:b=c?
N---
YYYY
YYYN
YYNY
YYNN
YNYY
YNYN
YNNY
YNNN动作:a1:非三角形a2:一般三角形a3:等腰三角形a4:等边三角形a5:不可能
√
√
√
√√√√√√第六十五页,共九十七页,2022年,8月28日决策表应用NextDate函数的决策表测试用例设计问题分析:NextDate函数的三个变量之间在输入定义域中存在一定的逻辑依赖关系,由于等价类划分和边界值分析测试都假设了变量是独立的,如果采用上述两种方法设计测试用例,那么这些依赖关系在机械的选取输入值时可能会丢失。而采用决策表法则可以通过使用“不可能动作”的概念表示条件的不可能组合,来强调这种依赖关系。说明:当决策表规模(指规则的数目,n个条件的决策表有2n个规则)较大时,可以通过扩展条目决策表(条件使用等价类)、代数简化表、将大表“分解”为小表等方法。第六十六页,共九十七页,2022年,8月28日NextDate函数为了获得下一个日期,NextDate函数执行如下操作:如果输入日期不是当月最后一天,则把day变量的值加1;如果输入日期是1~11月份中某月的最后一天,则把day变量的值复位为1,month变量的值加1;如果输入日期是12月的最后一天,则day变量和month变量的值都复位为1,year变量的值加1。关于最后一天的判断:如果是有31天的月份(1,3,5,7,8,10,12),day变量值为31;如果是有30天的月份(4,6,9,11),day变量值为30;如果是有29天的月份(闰年的2月),day变量值为29;如果是有28天的月份(非闰年的2月),day变量值为28。第六十七页,共九十七页,2022年,8月28日NextDate函数的动作桩和条件桩根据所执行的操作,可列出NextDate函数的动作桩:a1:不可能;a2:day加1;a3:day复位;a4:month加1;a5:month复位;a6:year加1考虑到决策表的规模,条件使用month、day、year变量的等价类,在以下等价类集合上建立决策表:对于month变量的取值M1:{month:month有30天};M2:{month:month有31天,12月除外};M3:{month:month是12月};M4:{month:month是2月};对于day变量的取值D1:{day:1≤day≤27};D2:{day:day=28};D3:{day:day=29};D4:{day:day=30};D5:{day:day=31};对于year变量的取值Y1:{year:year是闰年};Y2:{year:year不是闰年}第六十八页,共九十七页,2022年,8月28日第六十九页,共九十七页,2022年,8月28日决策表应用(续)决策表测试法适用于具有以下特征的应用程序:if-then-else逻辑突出;输入变量之间存在逻辑关系;涉及输入变量子集的计算;输入与输出之间存在因果关系。适用于使用决策表设计测试用例的条件:规格说明以决策表形式给出,或较容易转换为决策表。条件的排列顺序不会也不应影响执行的操作。规则的排列顺序不会也不应影响执行的操作。当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则。如果某一规则的条件要执行多个操作,这些操作的执行顺序无关紧要。第七十页,共九十七页,2022年,8月28日场景法现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。这种在软件设计方面的思想也可以引入到软件测试中,可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,同时使测试用例更容易理解和执行。第七十一页,共九十七页,2022年,8月28日
图中经过用例的每条路径都用基本流和备选流来表示,直黑线表示基本流,是经过用例的最简单的路径。备选流用不同的色彩表示,一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中(如备选流1和3);也可能起源于另一个备选流(如备选流2),或者终止用例而不再重新加入到某个流(如备选流2和4)。第七十二页,共九十七页,2022年,8月28日例子描述:ATM的流程示意图。第七十三页,共九十七页,2022年,8月28日场景设计:下表所示是生成的场景场景1——成功提款基本流
场景2——ATM内没有现金基本流备选流2场景3——ATM内现金不足基本流备选流3场景4——PIN有误(还有输入机会)基本流备选流4场景5——PIN有误(不再有输入机会)基本流备选流4场景6——账户不存在/账户类型有误基本流备选流5场景7——账户余额不足基本流备选流6注:为方便起见,备选流3和6(场景3和7)内的循环以及循环组合未纳入上表。第七十四页,共九十七页,2022年,8月28日用例设计对于这7个场景中的每一个场景都需要确定测试用例。可以采用矩阵或决策表来确定和管理测试用例。下面显示了一种通用格式,其中各行代表各个测试用例,而各列则代表测试用例的信息。本示例中,对于每个测试用例,存在一个测试用例ID、条件(或说明)、测试用例中涉及的所有数据元素(作为输入或已经存在于数据库中)以及预期结果。第七十五页,共九十七页,2022年,8月28日TC(测试用例)ID号场景/条件PIN账号输入(或选择)的金额账面金额ATM内的金额预期结果CW1场景1:成功提款VVVVV成功提款CW2场景2:ATM内没有现金VVVVI提款选项不可用,用例结束CW3场景3:ATM内现金不足VVVVI警告消息,返回基本流,输入金额CW4场景4:PIN有误(还有不止一次输入机会)IVn/aVV警告消息,返回基本流,输入PINCW5场景4:PIN有误(还有一次输入机会)I
Vn/aVV警告消息,返回基本流,输入PINCW6场景4:PIN有误(不再有输入机会)IVn/aVV警告消息,卡予保留,用例结束第七十六页,共九十七页,2022年,8月28日数据设计
一旦确定了所有的测试用例,则应对这些用例进行复审和验证以确保其准确且适度,并取消多余或等效的测试用例。
测试用例一经认可,就可以确定实际数据值(在测试用例实施矩阵中)并且设定测试数据。第七十七页,共九十七页,2022年,8月28日TC(测试用例)ID号场景/条件PIN账号输入(或选择)的金额(元)账面
金额(元)ATM内的金额(元)预期结果CW1场景1:成功提款4987809-49850.00500.002000成功提款。账户余额被更新为450.00CW2场景2:ATM内没有现金4987809-498100.00500.000.00提款选项不可用,用例结束CW3场景3:ATM内现金不足4987809-498100.00500.0070.00警告消息,返回基本流,输入金额CW4场景4:PIN有误(还有不止一次输入机会)4978809-498n/a500.002000警告消息,返回基本流,输入PINCW5场景4:PIN有误(还有一次输入机会)4978809-498n/a500.002000警告消息,返回基本流,输入PINCW6场景4:PIN有误(不再有输入机会)4978809-498n/a500.002000警告消息,卡予保留,用例结束第七十八页,共九十七页,2022年,8月28日6.3系统测试压力测试(Stresstest)
容量测试(Capacitytest)
性能测试(Performancetest)安全测试(Securitytest)容错测试(Recoverytest)第七十九页,共九十七页,2022年,8月28日回归测试的目的所做的修改达到了预定的目的,如错误得到了改正,新功能得到了实现,能够适应新的运行环境等;不影响软件原有功能的正确性。
回归测试的方法再测试全部用例基于风险选择测试基于操作剖面选择测试再测试修改的部分回归测试
2000回归测试的组织和实施第八十页,共九十七页,2022年,8月28日回归测试
第八十一页,共九十七页,2022年,8月28日6.4压力测试、容量测试和性能测试
压力测试、容量测试和性能测试的测试目的虽然有所不同,但其手段和方法在一定程度上比较相似,通常会使用特定的测试工具,来模拟超常的数据量、负载等,监测系统的各项性能指标,如CPU和内存的使用情况、响应时间、数据传输量等。一定要设法破坏它!第八十二页,共九十七页,2022年,8月28日性能测试概念和目的性能测试的目的:
为了验证系统是否达到用户提出的性能指标,同时发现系统中存在的性能瓶颈,起到优化系统的目的。性能测试指标的来源:
用户对各项指标提出的明确需求;如果用户没有提出性能指标则根据用户需求、测试设计人员的经验来设计各项测试指标。(需求+经验)主要的性能指标:
服务器的各项指标(CPU、内存占用率等)、后台数据库的各项指标、网络流量、响应时间第八十三页,共九十七页,2022年,8月28日性能测试要点测试环境应尽量与用户环境保持一致,应单独运行尽量避免与其他软件同时使用。性能测试一般使用测试工具和测试人员编制测试脚本来完成。性能测试的重点在于前期数据的设计与后期数据的分析。性能测试的用例主要涉及到整个系统架构的问题,所以测试用例一旦生成,改动一般不大,所以做性能测试的重复使用率一般比较高。第八十四页,共九十七页,2022年,8月28日性能测试的方法和技巧
两种负载类型“flat”测试ramp-up测试
第八十五页,共九十七页,2022年,8月28日两种负载类型
“Flat”测试:对于一次给定的测试,应该取响应时间和吞吐量的平均值。精确地获得这些值的唯一方法是一次加载所有的用户,然后在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水解酵母干燥工安全生产规范竞赛考核试卷含答案
- 提升民宿竞争力-优化服务创新差异化策略
- 医院安保人员考核试题及答案
- 意式咖啡考试题目及答案
- 急性心梗急救考核试题及答案
- 《公差选用与零件测量》课件-5 键联接测量
- 2026年12星座色盲色弱测试题及答案
- 2022年金蝶实施岗年度考核考试题及满分答案
- 2023年青岛港湾综评提分秘卷 模拟题配答案考点无遗漏
- 2021秋招百度财务岗笔试原题及答案解析
- 《低压电工实操及考证》全套教学课件
- 人工智能导论-第2版-全套课件
- 《奔富系列宣传》课件
- 病理学与病理生理学(第5版) 课件 丁运良 第七章 发热;第八章 炎症
- 专题37 八年级名著导读梳理(讲义)
- 鲁科版高中化学必修第一册第1章章末复习建构课课件
- DB37T 1243-2017 旅游休闲购物街区质量评定
- 神经科学研究进展
- 部队夏季常见病
- 供应商漏货少货扣款协议书范文范本
- 新课标语文整本书阅读教学课件:童年(六下)
评论
0/150
提交评论