功能测试教案-第1章-软件功能测试概论《软件功能测试及工具应用》教案第1章软件功能测试概论1. 回顾上一章: [0分钟] (2)2. 课程知识点讲解: (2)2.1. 软件功能需求:[5分钟] (2)2.2. 软件功能测试需求分析:[10分钟] (3)2.3. 等价类划分法[10分钟] (10)2.4. 边界值分析法[10分钟] (14)2.5. 因果图法[10分钟] (16)2.6. 场景法:[10分钟] (17)3. 本章总结[5分钟] (21)4. 考核点 (21)5. 测试题 (22)6. 扩展部分 (22)7. 学员问题汇总 (22)8. 作业 (22)授课教师:XXX课时:2小时●本章主要目的介绍软件测试的相关基本概念掌握软件功能测试需求分析方法掌握基本的功能测试测试用例设计方法◆等价类方法◆边界值方法◆因果图方法◆场景法●本章重点功能测试需求分析方法●功能测试用例设计方法●本章难点●功能测试用例设计方法1.回顾上一章: [0分钟]2.课程知识点讲解:2.1.软件功能需求:[5分钟]1、需求的概念1997年IEEE在《软件工程标准词汇表》定义:用户为解决某一问题或为达到某个目标所需要的条件或能力。
系统或系统部件为满足合同、标准、规格说明或其他正式的强制性文档所必须具有的条件或能力。
软件需求包括3个不同的层次:业务需求、用户需求、系统需求。
业务需求:反映了组织或客户高层的目标需求。
2.2.软件功能测试需求分析:[10分钟]●软件测试需求的介绍测试需求主要解决“测什么”的问题,即指明被测对象中什么需要测试。
测试需要明确测试需求(What),才能决定怎么测试(How),测试时间(When),需要多少人(Who)测试需求分析要了解测试的规模、复杂程度、可能的风险。
对于测试人员,理解需求主要有如下几个方面对需求进行理解:(1)流程理解:站在测试人的角度,理解需求时首先应该理解清楚的是系统的流程,流程是系统的主线,主线通了才有能往后续步骤走,如果流程不通畅,会影响后期的进一步分析;(2)功能理解:在流程通畅的前提下就要进行具体功能理解,主要是系统包含哪些主要的功能,每个功能的期望值是什么;界面美观性的需求理解:一个有完备功能的系统是可用的,但使用时间长了大家会感到厌倦,因为(3)页面的美观程度较差会使用户整体感官差,时间长了就会出现厌倦情绪,另外,系统给人的第一印象是很重要的;(4)易用性的需求理解:系统能满足用户需求,但过于复杂的操作步骤或与用户经常使用的操作步骤相左,用户操作起来很不顺手,时间长了用户会觉得某个功能操作很难用、别扭,这就需要需求分析时在系统功能分析完成后要考虑系统功能能的易用性。
测试需求通常是以软件开发需求为基础进行分析,通过对开发需求的细化和分解,形成可测试的内容。
测试需求应全部覆盖已定义的业务流程,以及功能和非功能方面的需求。
●测试需求的特性(1)指定的测试需求必须是可核实的。
即,它们必须有一个可观察、可评测的结果,无法核实的需求不是测试需求。
(2)测试需求应指明满足需求的正常的前置条件,同时也要指明不满足需求时的出错条件;(3)测试需求不涉及具体的测试数据,测试数据设计是测试设计环节应解决的内容。
●测试需求分析过程测试需求分析过程包括需求采集、需求分析和需求评审三个环节。
其中测试需求采集的输入是需求规格说明书,测试需求分析的输入是测试要点分析、功能交互分析、质量特性分析和测试类型分析,而需求评审的输入是测试需求。
测试需求分析的输出包括:原始测试需求表、测试需求跟踪矩阵和评审结论。
图1-1 软件测试需求分析过程1.需求采集需求采集的过程是将软件开发需求中的那些具有可测试性的需求或特性的需求或特性提取出来,形成原始测试需求。
(可测试性是指这些提取的需求或特性必须存在一个可以明确预知的结果,可以用某种方法对这个明确的结果进行判断、验证,验证是否符合文档中的要求。
)需求采集的方法一般通过列表的形式对软件开发需求进行梳理,形成原始测试数据需求列表,列表的内容包括需求标识,原始测试需求描述、信息来源等。
其中,将每一条软件需求对应的开发文档及章节号作为软件需求标识;使用软件需求的简述作为原始测试需求描述;软件需求的来源信息作为信息来源。
在提取的原始测试需求中,可能存在重复和冗余,在提取原始测试需求过程中,可以通过以下方法整理原始测试需求:(1)删除:删除原始测试需求表中重复的、冗余的含有包含关系的原始测试需求描述。
(2)细化:对太简略的原始测试需求描述进行细化。
(3)合并:如果有类似的原始测试需求,在整理时需要对其进行合并。
测试需求采集的示例如表1-1所示:2.需求分析在进行相关测试需求信息收集后,下一个环节就是进行测试需求的分析。
测试需求分析的流程包括测试要点分析、质量特性分析以及测试类型分析三个环节,如图1-2所示。
图1-2 测试需求分析过程通过图1-2可知,测试需求分析的过程具体来讲包括如下三个环节:(1)首先对原始测试需求列表中列出的每一条开发需求,形成可测试的分层描述的测试要点;(2)对所形成的每一条测试要点,从GB/T 16260.1-2006 《软件工程产品质量第1部分:质量模型》中定义的软件内部/外部质量模型来确定软件产品的质量需求;(3)对步骤2中所确定的质量需求,分别测试执行时需要实施的测试类型;(4)建立测试需求跟踪矩阵,对测试需求进行管理。
以下具体说明测试需求分析过程的几项活动:(1)测试要点分析,具体流程如图1-3所示:对开发需求的细化和分解具体包括:①通过分析每条开发需求描述中的输入、输出、处理、限制、约束等,给出对应的验证内容;②通过分析各个功能模块之间的业务顺序,和各个功能模块之间传递的信息和数量(功能交互分析),对存在功能交互的功能项,给出对应的验证内容。
在细化时要考虑如下问题③需求的完整性,经过分解获得的需求必须能够充分覆盖软件需求的各种特征(包括隐含的特性),每个需求必须可以独立完成有意义的功能和功能组合,可以进行单独测试;④需求的规模:每个最低层次的需求能够使用数量想当的测试用例来实现,也即测试的粒度是均匀的。
(2)质量特性分析质量特性分析:对于每一条测试要点,从GB/T16260.1 定义的软件质量子特性。
GB/T16260.1所定义的质量特性包括:①功能性:具体包括适应性和准确性。
其中适应性指的是软件产品为指定的任务和用户目标提供一组合的功能的能力;②准确性指的是软件产品提供具有所需精度的正确性或相符的结果或效果的能力;③可靠性:具体指的是系统的容错性,即在软件出现故障或违反其制定接口的情况下,软件产品维持规定的性能级别的能力;④易用性:包括易理解性和易操作性。
其中易理解性指的是软件产品使用户能理解软件是否合适以及如何能将软件用于特定的任务和使用条件的能力;易操作性指软件产品使用户能理解和操作它的能力。
(3)确定测试类型确定测试类型:根据质量子特性的定义,以及各测试类型的测试内容,可以分析出质量子特性与测试类型的对应关系:①功能测试:侧重于验证测试目标预期功能,确保满足提供所需的服务、方法或用例。
针对不同测试目标(包括单元、集成单元、应用程序和系统)实施和执行测试;②完整性测试:侧重于评估测试目标的健壮性(防止故障)和语言、语法和资源用途的技术一致性。
针对不同测试目标(包括单元和集成单元)实施并执行测试;③容量测试:侧重于验证测试目标处理大量数量的能力,可以是输入和输出或数据库中驻留的数据;④安全性测试:侧重于确保测试目标数据只供预定好的那些参与者访问;⑤接口测试:侧重于验证测试目标的数据接口的正确性和对其设计的遵循性;⑥结构测试:侧重于评估测试目标对其设计和形式的遵循性。
通常,对支持Web的应用程序执行此测试,以确保链接所有链接,显示合适的内容和未孤立任何内容。
表1-4 质量特性与测试类型对应关系表为了避免有所遗漏,在确定测试类型时,还需要考虑:文档中是否包含测试类型相对应的情况说明;列出的常见测试类型是否已经完全覆盖了被测软件;被测软件的某些特殊情况是否已经包含在所列出的测试类型中。
(4)测试需求跟踪矩阵的设定测试需求跟踪矩阵需要不断维护。
一方面,软件需求一旦发生变化,应启动配置管理过程,将与软件需求变更相关的内容进行同步变更;另一方面,随着测试工作的进行,会不断添加新的跟踪内容,对跟踪进行扩展。
测试需求跟踪矩阵示例表3.需求评审测试需求评审需要对以下内容进行评审:①完整性评审②准确性审查测试需求的评审所采用的形式一般是相互评审、轮查、走查、小组评审和审查等方式。
案例讲解:/* 范例名称:实型变量精度的示例* 源文件名称:example02_02.cpp* 要点:1.2.例题内容:2.3.等价类划分法[10分钟]●等价类划分方法等价类划分法是典型的黑盒测试方法,它完全不考虑程序的内部结构,只根据对程序的要求和说明来进行测试用例的设计。
等价类划分法定义:是将程序的输入域划分为若干部分,然后从每个部分中选取少数代表性数据当作测试用例。
需要两个过程:分类和抽象。
等价类定义:是指某个输入域的子集合,在该子集合中,各个输入数据对于被测程序中的错误都是等效的,它们具有等价特性。
有效等价类和无效等价类定义:有效等价类:是指完全满足程序输入的规格说明,有效、有意义的输入数据所构成的集合。
利用有效等价类可以检验程序是否满足规格说明所规定的功能和性能。
无效等价类:和有效等价类相反,即不满足程序输入要求或者无效的输入数据构成的集合。
使用无效等价类,可以鉴别程序异常情况的处理。
●等价类划分法的测试运用在UFT中提供了一个飞机票预定的案例应用系统。
该系统完成的基本功能包括:①用户登录管理②航空预定信息管理:包括增加航空预定信息、查询航空预定信息、修改航空预定信息③航空预定传真信息的管理④航空信息分析与报表对上述需求的应用系统,采用等价类方法进行测试设计:Flight Reservation案例截图Flight Reservation等价类测试用例老师提问:问题1:问题2:2.4.边界值分析法[10分钟]●边界值分析方法边界值分析法定义:是等价类划分法的补充,是对输入的边界值进行测试,在测试过程中,可能会忽略边界值的条件,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部,如做一个出除法运算,如果测试者忽略被除数为0的情况会导致问题的遗漏。
因此,在测试用例设计中,需要对输入的条件进行分析并且吸取其中的边界值条件,通过对这些边界值的测试来查出更多的错误。
项边界值测试用例的设计字符起始-1个字符/结束+1字符假设一个文本输入区域要求允许输入1到255个字符,输入1个和255个字符作为有效等价类;输入0个和256个字符作为无效等价类,这几个数值都属于边界条件值数值开始位-1/结束位+1 例如软件要求数据的输入域需要输入9位的数据,可以使用最简单的00000~00000作为最小和99999~99999作为最大值,然后刚好使用小于9位和大于9位的数值来作为边界条件方向刚刚超过/刚刚低于??㏒琰茞??ü空间小于空余空间一点/大于满空间一点例如在做软盘的数据存储时候,使用比最小剩余磁盘大一点儿的文件作为最大值检验定的边界条件●Flight Reservation案例截图2.5.因果图法[10分钟]●因果图法的原理因果图法的引入:测试时必须考虑输入条件的各种组合,相应地产生多个动作的形式来考虑设计测试用例,这就需要利用因果图。