测试需求及需求分析讲师:马晓娜测试需求及需求分析•1测试需求概述–1.1什么是测试需求–1.2测试需求的特征–1.3为什么需要测试需求•2测试需求分析过程–2.1需求采集–2.2测试需求分析–2.3测试需求评审1.1什么是测试需求•测试需求主要解决“测什么”的问题,即指明被测对象中什么需要测试。•测试需求通常是以软件开发需求为基础进行分析,通过对开发需求的细化和分解,形成可测试的内容。•测试需求应全部覆盖已定义的业务流程,以及功能和非功能方面的需求;1.2测试需求的特征•制定的测试需求项必须是可核实的。即,它们必须有一个可观察、可评测的结果,无法核实的需求不是测试需求;•测试需求应指明满足需求的正常的前置条件,同时也要指明不满足需求时的出错条件;•测试需求不涉及具体的测试数据,测试数据设计是测试设计环节应解决的内容。1.3为什么需要测试需求•软件测试需求是开发测试用例的依据。•有助于保证测试的质量与进度。•测试需求是衡量测试覆盖率的重要指标。2测试需求分析过程2.1需求采集•需求采集的过程是将软件开发需求中的那些具有可测试性的需求或特性提取出来,形成原始测试需求。•可测试性是指这些提取的需求或特性必须存在一个可以明确预知的结果,可以用某种方法对这个明确的结果进行判断、验证,验证是否符合文档中的要求。2.1需求采集•需求采集的提取方法:–通过列表的形式对软件开发需求进行梳理,形成原始测试需求列表,列表的内容包括需求标识、原始测试需求描述、信息来源。–将每一条软件需求对应的开发文档及章节号作为软件需求标识。–使用软件需求的简述作为原始测试需求描述。–软件需求获取的来源信息作为信息来源。2.1需求采集•提取的原始测试需求中,可能存在重复和冗余,在提取原始测试需求过程中,可以通过以下方法整理原始测试需求:–删除:删除原始测试需求表中重复的、冗余的含有包含关系的原始测试需求描述;–细化:对太简略的原始测试需求描述进行细化;–合并:如果有类似的原测试始需求,在整理时需要对其进行合并。2.1需求采集-举例“人力资源管理系统”原始测试需求表序号软件需求标识原始测试需求描述信息来源13.1.1基本信息管理增加员工信息人事部门招聘专员对于新招聘的职员信息可以录入到HRMIS系统中,主要职员信息如下:姓名、性别、出生日期、政治面貌、文化水平、婚姻情况、家庭住址、身份证号、办公电话、移动电话、紧急情况下的联系人和联系方式、毕业院校、入职时间、岗位及职责,其中,性别包含男、女两个类别;婚姻情况包括未婚、已婚、离异三种情况。人力资源管理系统业务需求说明书删除员工信息删除需用户确认,可以逐条删除或多条一次删除GB/T17544-199823.2.2时间特性要求并发15个用户,平均登录时间小于10秒人力资源管理系统业务需求说明书3隐含需求:在使用中操作错误的易恢复性程序应对关键数据的操作给出警告或在执行前确认GB/T17544-19982.2测试需求分析2.2测试需求分析•a)对原始测试需求列表中列出的每一条开发需求,形成可测试的分层描述的测试要点;•b)对步骤a)形成的每一条测试要点,从GB/T16260.1-2006《软件工程产品质量第1部分:质量模型》中定义的软件内部/外部质量模型来确定软件产品的质量需求;•c)对步骤b)所确定的质量需求,分析测试执行时需要实施的测试类型;•d)建立测试需求跟踪矩阵,对测试需求进行管理。2.2.1测试要点分析•测试要点是对原始测试需求表每一条开发需求的细化和分解,形成的可测试的分层描述的软件需求。•对开发需求的细化和分解具体包括:–通过分析每条开发需求描述中的输入、输出、处理、限制、约束等,给出对应的验证内容;–通过分析各个功能模块之间的业务顺序,和各个功能模块之间传递的信息和数据(功能交互分析),对存在功能交互的功能项,给出对应的验证内容。2.2.1测试要点分析•功能交互分析2.2.1测试要点分析•进行细化和分解还需考虑:–需求的完整性,经过分解获得的需求必须能够充分覆盖软件需求的各种特征(包括隐含的特征),每个需求必须可以独立完成有意义的功能或功能组合,可以进行单独测试;–需求的规模,每个最低层次的需求能够使用数量相当的测试用例来实现,也即测试的粒度是均匀的2.2.1测试要点分析-举例原始需求描述标识测试要点1输入符合字典要求的各信息后执行保存,检查保存是否成功;2检查每个输入项的数据长度是否遵循数据字典的要求;3检查每个输入项的数据类型是否遵循数据字典的要求;4检查“培训费用”是否满足规定的精度要求;5检查在培训的起止时间早晚于截止时间时,所增加的记录是否保存成功;6检查“培训主题”、“培训内容”、“起止时间”、“培训费用”、“培训机构”是否为必填项;7验证系统对数据重复的检查。8针对页面中文字、表单、图片、表格等元素,检查每个页面各元素的位置是否协调,各元素的颜色是否协调,各元素的大小比例是否协调;9页面信息内容显示是否完整;10检查是否有功能标识,功能标识是否准确、清晰;一条完整的培训信息包括培训的主题、证书、内容、起止时间、费用、地点、机构,其中培训的主题、内容、起止时间、费用、机构为必填项。培训的起始时间不能晚于截止时间,培训费用精确到元角分。每一个输入项的数据规格在数据字典中可以得到。11最大化、最小化、还原、切换、移动窗口时是否能正常的显示页面。2.2.2质量特性分析•对每一条测试要点,从GB/T16260.1定义的软件质量子特性角度出发,确定所对应的质量子特性。2.2.2分析质量特性-举例质量特性对应表原始需求描述标识测试要点质量特性1输入符合字典要求的各信息后执行保存,检查保存是否成功;功能性/适合性2检查每个输入项的数据长度是否遵循数据字典的要求;功能性/适合性、可靠性/容错性3检查每个输入项的数据类型是否遵循数据字典的要求;功能性/适合性、可靠性/容错性4检查“培训费用”是否满足规定的精度要求;功能性/准确性5检查在培训的起止时间早晚于截止时间时,所增加的记录是否保存成功;功能性/适合性一条完整的培训信息包括培训的主题、证书、内容、起止时间、费用、地点、机构,其中培训的主题、内容、起止时间、费用、机构为必填项。培训的起始时间不能晚于截止时间,培训费用精确到元角分。每一个输入项的数据规格在数据字典中可以得到。6检查“培训主题”、“培训内容”、“起止时间”、“培训费用”、“培训机构”是否为必填项;功能性/适合性2.2.2分析质量特性-举例质量特性对应表原始需求描述标识测试要点质量特性7验证系统对数据重复的检查。功能性/适合性8针对页面中文字、表单、图片、表格等元素,检查每个页面各元素的位置是否协调,各元素的颜色是否协调,各元素的大小比例是协调;易用性/易操作性9页面信息内容显示是否完整;易用性/易操作性、易理解性10检查是否有功能标识,功能标识是否准确、清晰;易用性/易理解性一条完整的培训信息包括培训的主题、证书、内容、起止时间、费用、地点、机构,其中培训的主题、内容、起止时间、费用、机构为必填项。培训的起始时间不能晚于截止时间,培训费用精确到元角分。每一个输入项的数据规格在数据字典中可以得到。11最大化、最小化、还原、切换、移动窗口时是否能正常的显示页面。易用性/易操作性2.2.3分析测试类型•不同的质量子特性可以确定出不同的测试内容,这些测试内容可以通过不同的测试类型来实施。•软件测试可以划分为以下测试类型:功能测试、安全性测试、接口测试、容量测试、完整性测试、结构测试、用户界面测试、负载测试、压力测试、疲劳强度测试、恢复性测试、配置测试、兼容性测试、安装测试等。•根据质量子特性的定义,以及各测试类型的测试内容,可以分析出质量子特性与测试类型的对应关系。2.2.3分析测试类型质量子特性和测试类型的对应关系基准表2.2.3分析测试类型-举例质量特性对应表原始需求描述标识测试要点质量特性测试类型1输入符合字典要求的各信息后执行保存,检查保存是否成功;功能性/适合性功能测试2检查每个输入项的数据长度是否遵循数据字典的要求;功能性/适合性、可靠性/容错性功能测试、完整性测试3检查每个输入项的数据类型是否遵循数据字典的要求;功能性/适合性、可靠性/容错性功能测试、完整性测试4检查“培训费用”是否满足规定的精度要求;功能性/准确性功能测试5检查在培训的起止时间早晚于截止时间时,所增加的记录是否保存成功;功能性/适合性功能测试一条完整的培训信息包括培训的主题、证书、内容、起止时间、费用、地点、机构,其中培训的主题、内容、起止时间、费用、机构为必填项。培训的起始时间不能晚于截止时间,培训费用精确到元角分。每一个输入项的数据规格在数据字典中可以得到。6检查“培训主题”、“培训内容”、“起止时间”、“培训费用”、“培训机构”是否为必填项;功能性/适合性功能测试2.2.3分析测试类型-举例质量特性对应表原始需求描述标识测试要点质量特性测试类型7验证系统对数据重复的检查。功能性/适合性功能测试8针对页面中文字、表单、图片、表格等元素,检查每个页面各元素的位置是否协调,各元素的颜色是否协调,各元素的大小比例是协调;易用性/易操作性用户界面测试9页面信息内容显示是否完整;易用性/易操作性用户界面测试10检查是否有功能标识,功能标识是否准确、清晰;易用性/易理解性用户界面测试、功能测试一条完整的培训信息包括培训的主题、证书、内容、起止时间、费用、地点、机构,其中培训的主题、内容、起止时间、费用、机构为必填项。培训的起始时间不能晚于截止时间,培训费用精确到元角分。每一个输入项的数据规格在数据字典中可以得到。11最大化、最小化、还原、切换、移动窗口时是否能正常的显示页面。易用性/易操作性用户界面测试2.2.3分析测试类型•为了避免遗漏,在确定测试类型时,还需考虑:–文档中是否包含测试类型相对应的情况的说明;–列出的常见测试类型是否已完全覆盖了被测软件;–被测软件的某些特殊情况是否已包含在所列出的测试类型中。2.2.4测试需求跟踪矩阵•建立测试需求跟踪矩阵,对测试需求进行管理。将上述步骤分析、确定的开发需求、测试需求、测试类型填入测试跟踪需求矩阵。•测试需求跟踪矩阵为原始测试需求与测试要点的对应关系表,格式如下:软件需求测试需求软件需求标识软件需求描述测试需求标识测试要点测试类型2.2.4测试需求跟踪矩阵•建立测试需求跟踪矩阵,对测试需求进行管理。将上述步骤分析、确定的开发需求、测试需求、测试类型填入测试跟踪需求矩阵。•通过测试需求跟踪矩阵的方式对需求变更实施管理。软件需求一旦发生变化,就要对需求跟踪表进行维护,启动配置管理过程,将与软件需求变更相关的内容进行同步变更。2.2.4测试需求跟踪矩阵-举例HRMIS2.0测试需求跟踪矩阵软件需求测试需求软件需求标识软件需求描述测试需求标识测试要点测试类型1输入符合字典要求的各信息后执行保存,检查保存是否成功;功能测试2检查每个输入项的数据长度是否遵循数据字典的要求;功能测试、完整性测试3检查每个输入项的数据类型是否遵循数据字典的要求;功能测试、完整性测试4检查“培训费用”是否满足规定的精度要求;功能测试5检查在培训的起止时间早晚于截止时间时,所增加的记录是否保存成功;功能测试3.1.1基本信息管理增加员工信息一条完整的培训信息包括培训的主题、证书、内容、起止时间、费用、地点、机构,其中培训的主题、内容、起止时间、费用、机构为必填项。培训的起始时间不能晚于截止时间,培训费用精确到元角分。每一个输入项的数据规格应遵循数据字典的要求。6检查“培训主题”、“培训内容”、“起止时间”、“培训费用”、“培训机构”是否为必填项;功能测试增加培训信息2.2.4测试需求跟踪矩阵-举例HRMIS2.0测试需求跟踪矩阵软件需求测试需求软件需求标识软件需求描述测试需求标识测试要点测试类型7验证系统对数据重复的检查。功能测试8针对页面中文字、表单、图片、表格等元素,检查每个页面各元素的位置是否协调,各元素的颜色是否协调,各元素的大小比例是协调;用户界面测试9页面信息内容显示是否完整;用户界面