1、一、等价类划分 例题:等价类测试用例的设计: 弱一般等价类 强一般等价类 弱健壮等价类 强健壮等价类函数 f(x,y)有两个输入变量, x 的取值范围是10,30,y 的取值范围40,70根据需求:x 的有效等价类为10,20,21,30,无效等价类30y 的有效等价类为40,50,51,60,61,70无效等价类701、弱一般等价类测试用例(x 和 y 的有效等价类的值至少取一次即可)测试用例编号 X y 预期输出15 4525 5515 652、强一般等价类测试用例(x 和 y 的有效等价类的值做笛卡尔乘积)测试用例编号 X y 预期输出15 4515 5515 6525 4525 552
2、5 653、弱健壮等价类(强一般等价类+其中一个变量取无效值,其他变量取有效值的情况)测试用例编号 X y 预期输出15 4515 5515 6525 4525 5525 655 455 555 6535 4535 5535 6515 3525 3515 7525 754、强健壮等价类(在弱健壮等价类的基础上+都取无效值的情况,只是针对两个变量)测试用例编号 X y 预期输出15 4515 5515 6525 4525 5525 655 455 555 6535 4535 5535 6515 3525 3515 7525 755 355 355 755 7535 3535 3535 7535
3、75注册界面的需求如下: 用户名和密码 6-20 的字母数字组合 邮箱满足 xxxxxx.xx 格式 年龄必须是数字写出有效等价类和无效等价类,再写出弱健壮等价类测试用例有效等价类 无效等价类用户名 1、6-20 的字母数字组合 5、全字母6、全数字7、20 位的字母数字组合密码 2、6-20 的字母数字组合 9、全字母10、全数字11、20 位的字母数字组合邮箱 3、XXXXXX.XX 格式 17、非 XXXXXX.XX 格式年龄 4、数字 18、非数字弱健壮等价类测试用例测试用例编号用户名 密码 邮箱 年龄 预期输出abc123456 cde111200 20dtgfyu cde1112
4、00 20abc123456 124689545 20abc123456 cde111200 Wrf.512 20abc123456 cde111200 jjk2、边界值分析1、边界值的取值:(正确的数据) 最小值(min) 稍高于最小值(min+) 正常值(nom) 稍低于最大值(max-) 最大值(max)例 1:程序的规格说明:“重量在 1050 公斤范围内的邮件,其计算邮费” ,测试用例选择:取 10 公斤,10.01 公斤,25 公斤,49.99 公斤,50 公斤2、边界值测试用例例,已知函数 f(x,y),x 的取值为 10,20,y 的取值为50,80。第一步,找出 x 和
5、 y 的边界值:X 的边界值:10,11,15,19,20Y 的边界值:50,51,65,79,80第二步,写边界值测试用例。测试用例编号 X Y 预期输出15 5015 5115 6515 7915 8010 6511 6515 6519 6520 653、健壮测试用例取值,除了上面 5 个值以外,一个略超过最大值的取值(max+) ,以及一个略小于最小值(min-)的取值。例,已知函数 f(x,y),x 的取值为 10,20,y 的取值为50,80。第一步,找出 x 和 y 的边界值:X 的边界值:9,10,11,15,19,20,21Y 的边界值:49,50,51,65,79,80,81
6、第二步,写边界值测试用例。测试用例编号 X Y 预期输出15 4915 5015 5115 6515 7915 8015 819 6510 6511 6515 6519 6520 6521 654、练习边界值实验的内容。3、因果图1、概念因果图方法(Cause 一 Effect Graphics):一种黑盒测试方法方法的依据:需求规格说明中的因果关系能够帮助我们按一定步骤,高效率地选择测试用例,同时还指出,程序规格说明描述中存在着的问题。2、因果图方法最终生成决策表,导出用例需要经过以下几个步骤:分析程序规格说明的描述中,哪些是原因,哪些是结果。原因常常是输入条件或是输入条件的等价类。而结果是
7、输出条件。分析程序规格说明的描述中语义的内容,并将其表示成连接各个原因与各个结果的“因果图” 。由于语法或环境的限制,有些原因和结果的组合情况是不可能出现的。为表明这些特定的情况,在因果图上使用若干个特殊的符号标明约束条件。把因果图转换成判定表。 把判定表中每一列表示的情况写成测试用例。3、例 1:软件规格说明书“第一列字符必须是或*,第二列字符必须是一个数字,在此情况下进行文件的修改。但如果第一列字符不正确,则给出信息 N,如果第二列字符不是数字,则给出信息 M。 ”分析原因和结果:原因:C1第一列字符是 #;C2第一列字符是 *;C3第二列字符是一数字。结果:E1第一列字符不是,*给出信息
8、 N ;E2修改文件;E3第二列字符不是数字给出信息 M。4、例 2:有一个处理单价为 5 角钱的饮料的自动售货机软件测试用例的设计。其规格说明如下:若投入 5 角钱或 1 元钱的硬币,押下橙汁或啤酒的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示零钱找完的红灯亮,这时在投入 1 元硬币并押下按钮后,饮料不送出来而且 1 元硬币也退出来;若有零钱找,则显示零钱找完的红灯灭,在送出饮料的同时退还 5 角硬币。原因:1.售货机有零钱找2.投入 1 元硬币3.投入 5 角硬币 4.押下橙汁按钮5.押下啤酒按钮 结果: 21.售货机零钱找完灯亮 22.退还 1 元硬币23.退还 5 角硬币
9、 24.送出橙汁饮料25.送出啤酒饮料5、复习因果图实验4、决策表1、概念在一些数据处理问题中,某些操作是否实施依赖于多个逻辑条件的取值。在这些逻辑条件取值的组合所构成的多种情况下,分别执行不同的操作。处理这类问题的一个非常有力的分析和表达工具是决策表,或判定表(Decision Table)2、判定表的组成条件桩、条件项、动作桩、动作项和规则3、适合使用决策表设计测试用例的情况有规格说明以判定表形式给出,或是很容易转换成判定表。条件的排列顺序不会也不应影响执行哪些操作。规则的排列顺序不会也不应影响执行哪些操作。每当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则。如果某一规则得
10、到满足要执行多个操作,这些操作的执行顺序无关紧要。4、例:1、 某公司为本科以上学历的人重新分配工作,分配原则如下:(1) 如果年龄不满 18 岁,学历是本科,男性要求报考研究生,女性则担任行政工作。(2) 如果年龄满 18 岁不满 50 岁,学历本科,不分男女,任中层领导职务,学历是硕士,不分男女,任课题组组长。(3) 如果年龄满 50 岁,学历本科,男性任科研人员,女性则担任资料员,学历是硕士不分男女,任课题组组长。要求:找出条件和动作,画出分析过程,得出决策表,并进行化简。5、白盒逻辑覆盖1、什么是白盒测试?相对黑盒测试而言也称结构测试或逻辑驱动测试前提:知道软件产品内部工作过程目标:通
11、过测试来检测软件产品内部动作是否按照规格说明书的规定正常进行重点:按照软件内部的结构测试程序,软件中的每条通路是否都能按预定要求正确工作穷举路径测试:早期发现软件缺陷最有效的方法2、白盒测试 VS 黑盒测试黑盒测试:不涉及程序结构用软件规格说明生成测试用例某些代码段得不到测试可适用于从单元测试到系统联试需要用白盒测试加以补充白盒测试:考查程序逻辑结构用程序结构信息生成测试用例通常适用于单元测试和集成测试3、白盒测试的主要目的:保证一个模块中的所有独立路径至少被执行一次;对所有的逻辑值均需要测试真、假两个分支;在上下边界及可操作范围内运行所有循环;检查内部数据结构以确保其有效性。4、逻辑覆盖以程
12、序内部的逻辑结构为基础设计测试用例,要求对被测程序的逻辑结构有清楚的了解,逻辑结构可分为:语句覆盖判断覆盖条件覆盖判断/条件覆盖路径覆盖例:设计一个函数,函数功能描述如下: 设计 DoWork 函数,函数有三个整形参数,x,y,z, 当输入参数 x3 且 z5 时计算 j=x*y+10 语句块 2 最后输出 j%3 的值. 语句块 3程序流程图试验内容要求:(1)编写语句覆盖测试用例 当输入参数 x3 且 z5 时计算 j=x*y+10 测试用例 x 变量 1 y 变量 2 z 变量 3 语句覆盖YesNoab c21YesdNo e3(x3)&(z5)4 6 9 1,2,3(3)编写判断覆盖
13、测试用例测试用例 变量 1 变量 2 变量 3 所走路径 判断分支4 6 92 4 11(4)编写条件覆盖测试用例条件说明:(自己填写)X3 取真值X3 取假值Z5 取真值Y5 取假值T1 T1 T2 T2 T3 T3 T4 T4测试用例格式参考测试用例 x 变量 1 y 变量 2 z 变量 3 所走路径 覆盖条件4 6 9 T1,t2,T3,T42 4 11 T1,T2,T3,T4(5)编写条件/判断覆盖测试用例组合情况:(自己填写)1 2 3 4 5 6 7 8X3,Z3,Z=10X10X=4,Y5X=4,Y5X!=4,Y=5测试用例格式参考测试用例 X 变量 1 Y 变量 2 Z 变量
14、3 所走路径 覆盖组合4 6 9 1,54 4 11 2,62 6 9 3,72 4 11 4,86、编写路径覆盖测试用例测试用例格式参考测试用例 变量 1 变量 2 变量 3 所走路径六、 基础知识1、软件测试的概念使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。2、测试的目的 验证软件需求和功能是否得到完整实现 验证软件是否可以发布使用 发现软件系统的缺陷、错误及不足 获取软件产品的质量信息 预防下一版可能出现的问题 预防用户使用软件时可能出现的问题 提前发现开发过程中的问题和风险 提供可以用以分析的测试结果数据3、缺陷
15、定义软件缺陷就是软件产品中所存在的问题,最终表现为用户所需要的功能没有完全实现,不能满足或不能全部满足用户的需求。4、软件测试分类软件测试从开发生命周期的阶段来划分,可分为:需求评审设计评审单元测试集成测试功能测试系统测试验收测试5、软件测试和开发的关系下面是 W 模型,还有 V 模型。6、软件开发模型包括:瀑布模型、螺旋模型、增量模型7、测试过程中,测试计划描述用于描述测试的整体方案,测试缺陷报告描述依据测试案例找出的问题。8、什么是驱动模块,什么是桩模块驱动模块:用以模拟被测模块的上级模块,用来驱动或传送测试用例给被测模块。桩模块:模拟被测程序被调用模块,以便检查被测模块与其下级模块之间的
16、接口9、什么是兼容性测试检测软件之间能否正确地交互和共享信息,其目标是保证软件按照用户期望的方式进行交互,是用其他软件检查软件操作过程。黑盒测试定义黑盒测试是在已知软件产品的功能设计的情况下,对其进行测试,以确认其是否实现了软件产品的功能要求。黑盒测试不考虑程序内部的逻辑结构和内部特性,只依据软件的需求功能说明进行10、动态测试的基本要素:被测试程序,测试用例11、黑盒测试具体任务是否有不正确的功能,是否有遗漏的功能在接口上,是否能够正确地接收输入数据并产生正确的输出结果是否有数据结构错误或外部信息访问错误性能上是否能够满足要求,是否有程序初始化和终止方面的错误12、黑盒测试优点黑盒测试不考虑
17、软件的具体实现,当软件内部实现发生变化时,测试用例仍然可以使用黑盒测试用例的设计可以和软件开发同时进行,这样能够压缩总的开发时间黑盒测试适用于各个测试阶段从产品功能角度进行测试13、黑盒测试缺点某些代码得不到测试无法发现软件需求说明书本身的错误不易进行充分性测试对一些外购软件,参数化软件包以及某些自动生成的软件,由于无法得到源程序,只能选择黑盒测试对其进行测试14、单元测试的测试依据,黑盒测试的测试依据,白盒测试的测试依据黑盒测试依据:软件规格说明书;白盒测试依据:详细设计说明书15、集成测试包括哪两种,分别是什么增量集成测试和非增量集成测试。增量集成测试:就是不断的将待测试的模块连接到已侧过
18、的模块集上,对代测模块进行测试,直到最后一个模块测试完毕。非增量集成测试:先对 N 个模块进行单元测试将所有模块集成到一起,把连接后的程序当做一个整体进行测试。16、集成测试的内容:集成测试也叫组装测试或者联合测试; 在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失;一个模块的功能是否会对另一个模块的功能产生不利的影响; 各个子功能组合起来,能否达到预期要求的父功能; 全局数据结构是否有问题; 单个模块的误差累积起来,是否会放大,从而达到不能接受的程度17、测试设计员的职责包括:设计测试用例,设计测试过程、脚本。18、软件开发周期包括需求、架构、设计、编码和维护19、什么是黑盒测试、什
19、么是白盒测试黑盒测试:(1)是在已知软件产品的功能设计的情况下,对其进行测试,以确认其是否实现了软件产品的功能要求。 (2)黑盒测试不考虑程序内部的逻辑结构和内部特性,只依据软件的需求功能说明进行 白盒测试: 相对黑盒测试而言 也称结构测试或逻辑驱动测试 前提:知道软件产品内部工作过程 目标:通过测试来检测 软件产品内部动作 是否按照规格说明书的规定正常进行 重点:按照软件内部的结构测试程序,软件中的每条 通路 是否都能按预定要求正工作 穷举路径测试:早期发现软件缺陷最有效的方法20、软件测试按照测试层次可以分为:单元测试、集成测试和系统测试21、黑盒测试方法有哪几种,白盒测试方法有哪几种黑盒
20、测试:黑盒测试等价类划分、边界值分析、决策表测试、因果图白盒测试:代码检测法、静态结构分析法、静态质量试题法、逻辑覆盖法、基本路径测试法、域测试、符号测试、路径覆盖、程序变异22、软件质量特性是指软件的功能性、可靠性、易用性、效率、可维护性、可移植性23、缺陷改正的越早,代价越小,因此如果软件需求说明书出错,是导致软件缺陷最大的原因24、什么是调试在测试过程中,可能会发现被测软件当中存在错误,当测试发现了错误,这个确定错误原因以及纠正错误的过程叫做调试。25、缺陷修复代价:缺陷发现的越早,缺陷修复的代价越小。26、什么是单元测试单元测试是开发人员对于程序的每个单元的测试工作,是软件开发过程中的
21、首次测试活动,或者说是开发人员针对软件设计的最小单位程序模块进行的测试工作。27、什么是压力测试Web 服务的特点: Web 服务处于分布式计算的核心位置,它们之间的交互通常很难测试。 分布式开发可能使 Web 服务的开发变得越来越容易隐藏错误。压力测试是检测这些代码的有效方法,要弄清被测的 web 服务是不是能够做我们认为能做的事,而且在被施加强度压力的情况下仍然继续正常工作。28、分别解释如下概念:条件覆盖、语句覆盖、判定覆盖、条件/判定覆盖和路径覆盖。1、 语句覆盖:要求设计若干测试用例,运行被测程序,使程序中的每个可执行语句至少被执行一次。2、 条件覆盖:要求设计若干测试用例,运行被测程序,使程序中的每个判断的每个条件的可能取值至少被执行一次。3、 判定覆盖:要求设计若干测试用例,运行被测程序,使程序中的每个判断的取真分支和取假分支至少被执行一次,即判断的真假值均要被检测。4、 条件/判定覆盖:要求设计若干测试用例,运行被测程序,使判断中每个条件的所有可能取值至少被执行一次。同时每个判断的所有可能判断结果也至少执行一次。5、 路径覆盖:要求设计若干测试用例,运行被测程序,覆盖程序中所有可能的路径