《软件测试项目阶段与测试小组.ppt》由会员分享,可在线阅读,更多相关《软件测试项目阶段与测试小组.ppt(85页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、无无忧忧PPTPPT整理整理发发布布第第1313章章软件测试项目阶段软件测试项目阶段与测试小组与测试小组无无忧忧PPTPPT整理整理发发布布本章内容提要本章内容提要 软件件测试项目目阶段段 测试小小组的构成与的构成与职责无无忧忧PPTPPT整理整理发发布布第十三章第一节第十三章第一节软件测试项目阶段软件测试项目阶段无无忧忧PPTPPT整理整理发发布布13.1 软件测试项目阶段软件测试项目阶段 现实世界中,项目经理必须不断地在现实世界中,项目经理必须不断地在4 4种因素种因素间进行权衡:可靠性、特征集、项目成本以及间进行权衡:可靠性、特征集、项目成本以及发布日期。发布日期。此外,即使项目经理想要
2、使产品质量最佳,他此外,即使项目经理想要使产品质量最佳,他仍然要在可靠性和特征集的丰富程度之间进行仍然要在可靠性和特征集的丰富程度之间进行权衡。权衡。为了使投入的资金有价值,必须要提高客户的为了使投入的资金有价值,必须要提高客户的满意度,并增加公司的利润。可以为几乎所有满意度,并增加公司的利润。可以为几乎所有具有合法成本证明的工作获取资金支持,而测具有合法成本证明的工作获取资金支持,而测试本是庞大的质量相关成本的一部分。试本是庞大的质量相关成本的一部分。无无忧忧PPTPPT整理整理发发布布13.1 软件测试项目阶段软件测试项目阶段与质量相关的成本通常划分为与质量相关的成本通常划分为4 4种类型
3、:种类型:1、预防成本预防成本 2、评价(包括测试)成本、评价(包括测试)成本 3、内部故障处理成本、内部故障处理成本 4、外部故障处理成本、外部故障处理成本 无无忧忧PPTPPT整理整理发发布布13.1 软件测试项目阶段软件测试项目阶段 在项目早期,优秀的项目经理会充分考虑其方在项目早期,优秀的项目经理会充分考虑其方法,以便做出必要的权衡,并采用一个合理融法,以便做出必要的权衡,并采用一个合理融合了结构和灵活性的开发模型。可以采用一个合了结构和灵活性的开发模型。可以采用一个现有的模型(如瀑布模型或演化模型),也可现有的模型(如瀑布模型或演化模型),也可采用自己的模型。采用自己的模型。必须理解
4、项目经理的模型必须理解项目经理的模型否则就会出错,如否则就会出错,如在程序的用户界面确定之后就安排大量可用性在程序的用户界面确定之后就安排大量可用性测试。我们之所以称这些为测试。我们之所以称这些为“错误错误”,是因为,是因为下面的典型结果:大多数问题报告被暂缓是因下面的典型结果:大多数问题报告被暂缓是因为太迟了而无法进行改动,而且大多数改动都为太迟了而无法进行改动,而且大多数改动都会打乱其他项目计划。每个人都遭受了损失。会打乱其他项目计划。每个人都遭受了损失。无无忧忧PPTPPT整理整理发发布布13.1 软件测试项目阶段软件测试项目阶段 当理解了项目经理的开发权衡、公司的当理解了项目经理的开发
5、权衡、公司的质量成本权衡以及项目经理开发模型的质量成本权衡以及项目经理开发模型的约束时,就会处于最佳状态之中。这种约束时,就会处于最佳状态之中。这种理解让你用项目经理及其管理层可以接理解让你用项目经理及其管理层可以接受的方式来说明:在项目期间,资金应受的方式来说明:在项目期间,资金应当花费在何种类型的测试上,必须完成当花费在何种类型的测试上,必须完成多少测试,以及如果项目经理不采纳你多少测试,以及如果项目经理不采纳你的建议,他将面对何种类型的风险。的建议,他将面对何种类型的风险。无无忧忧PPTPPT整理整理发发布布13.1 软件测试项目阶段软件测试项目阶段 软件项目都有一个开发时间基线,包含软
6、件项目都有一个开发时间基线,包含一系列的里程碑,最常见的里程碑被称一系列的里程碑,最常见的里程碑被称作作“”和和“”。对于这些里程碑的。对于这些里程碑的准确定义,不同的公司差异很大,不过准确定义,不同的公司差异很大,不过大体上来说,大体上来说,软件是初级的,充满缺软件是初级的,充满缺陷的但可用的软件,而陷的但可用的软件,而软件则是近乎软件则是近乎完整的软件。完整的软件。无无忧忧PPTPPT整理整理发发布布13.1 软件测试项目阶段软件测试项目阶段 如图是一个项如图是一个项目时间基线的目时间基线的例子,显示了例子,显示了这些里程碑。这些里程碑。无无忧忧PPTPPT整理整理发发布布13.1 软件测
7、试项目阶段软件测试项目阶段 这种基于里程碑的方法很实用。这种基于里程碑的方法很实用。它认为它认为编程、测试、手册编写编程、测试、手册编写以及许多其他活动都是并行进以及许多其他活动都是并行进行的,并把它们都映射到同一行的,并把它们都映射到同一时间基线上。时间基线上。根据项目的时间基线,我们可根据项目的时间基线,我们可以把软件项目划分成几个阶段:以把软件项目划分成几个阶段:软件设计、分段编码、软件设计、分段编码、预最终测试、最终完整性测、预最终测试、最终完整性测试、发布。试、发布。本章我们接着讲述从本章我们接着讲述从到发布到发布的各个阶段的测试。的各个阶段的测试。无无忧忧PPTPPT整理整理发发布
8、布第十三章第二节第十三章第二节测试阶段测试阶段 无无忧忧PPTPPT整理整理发发布布13.2 测试阶段测试阶段 的定义的定义非常广泛:非常广泛:在在里程碑中里程碑中,大部分功能已经存在,但有少数功能遗,大部分功能已经存在,但有少数功能遗漏或者不可测试。程序清楚展示了它的本质和风格。背漏或者不可测试。程序清楚展示了它的本质和风格。背景音乐、一些视频模式以及许多打印机可能不起作用。景音乐、一些视频模式以及许多打印机可能不起作用。在在测试阶段测试阶段,所有功能已经完成编码,尽管有些代码,所有功能已经完成编码,尽管有些代码中可能存在严重的缺陷。所有类型的设备都能工作(如中可能存在严重的缺陷。所有类型的
9、设备都能工作(如打印机可以工作),但是每种类型可能只有少数设备能打印机可以工作),但是每种类型可能只有少数设备能运转。规格说明和设计已充分完成,并且没有留下任何运转。规格说明和设计已充分完成,并且没有留下任何重大的编码风险。重大的编码风险。在在测试阶段测试阶段,所有的关键附加特征都在其中:最低限,所有的关键附加特征都在其中:最低限度可验收产品已经完成。可以使用该产品,并了解其感度可验收产品已经完成。可以使用该产品,并了解其感观,但是还有许多特征还没有实现。观,但是还有许多特征还没有实现。无无忧忧PPTPPT整理整理发发布布13.2.1 13.2.1 阶段的测试活动阶段的测试活动 在许多公司中,
10、测试在在许多公司中,测试在阶段开始。我阶段开始。我们建议早一些开始,并在们建议早一些开始,并在阶段持续执阶段持续执行早期测试。行早期测试。越快找到一个缺陷,就越容易对它进行越快找到一个缺陷,就越容易对它进行改正,而且该改正对程序其他部分的影改正,而且该改正对程序其他部分的影响就越小。响就越小。早期测试目标是发现程序的每个区域中早期测试目标是发现程序的每个区域中所有容易发现的问题。测试持续是广泛所有容易发现的问题。测试持续是广泛的、表面的主流测试。的、表面的主流测试。无无忧忧PPTPPT整理整理发发布布13.2.1 13.2.1 阶段的测试活动阶段的测试活动 只要一拿到手册的草稿,就对它进行测试
11、。只要一拿到手册的草稿,就对它进行测试。检查手册中的每个例子,一个接一个地击破,检查手册中的每个例子,一个接一个地击破,验证每一个声明,检查明显结论。验证每一个声明,检查明显结论。在测试的第一或第二个周期中,程序可能很不在测试的第一或第二个周期中,程序可能很不稳定,因此无法通过手册中的很多东西。但最稳定,因此无法通过手册中的很多东西。但最终会完成所有内容的。在过渡时期,你会报告终会完成所有内容的。在过渡时期,你会报告很多问题,也有很多时间来思考。很多问题,也有很多时间来思考。但到了第一个完整测试周期结束时,应当完成但到了第一个完整测试周期结束时,应当完成下列工作:下列工作:无无忧忧PPTPPT
12、整理整理发发布布13.2.1 13.2.1 阶段的测试活动阶段的测试活动 轰轰烈烈地开始。轰轰烈烈地开始。让劳动显而易见,让工作效率显而易让劳动显而易见,让工作效率显而易见,而且要让每个人都忙着改正缺陷。见,而且要让每个人都忙着改正缺陷。了解产品。了解产品。测试人员可能不是一个专家用户,但是会尽测试人员可能不是一个专家用户,但是会尽力尝试每种特征一次或两次。力尝试每种特征一次或两次。使测试计划对于由测试组经理进行的评审而言足够完整。使测试计划对于由测试组经理进行的评审而言足够完整。测试计划初稿或者接下来不久以后开发的草稿,都应当测试计划初稿或者接下来不久以后开发的草稿,都应当交给项目经理进行评
13、审。不要被说服,把测试计划和测交给项目经理进行评审。不要被说服,把测试计划和测试看作是各自独立的活动。试看作是各自独立的活动。提出设计问题,包括可用性观察。提出设计问题,包括可用性观察。测试手册。测试手册。检查每个事实和暗示。把一份做过标记的副检查每个事实和暗示。把一份做过标记的副本返回给编写人员。本返回给编写人员。评价产品全面质量。评价产品全面质量。形成程序每个主要区域的稳定性印象。形成程序每个主要区域的稳定性印象。确定并评论没有确定并评论没有准备好进行测试的弱区。准备好进行测试的弱区。估计程序可能的可靠性。估计程序可能的可靠性。预计需要多少个测试周期?期预计需要多少个测试周期?期望发现多少
14、缺陷?望发现多少缺陷?无无忧忧PPTPPT整理整理发发布布13.2.1 13.2.1 阶段的测试活动阶段的测试活动 阶段后不久:阶段后不久:阶段后不久:阶段后不久:从项目经理那里获得最终支持设备清单的结柬信号从项目经理那里获得最终支持设备清单的结柬信号。把把该清单放到测试计划中。该清单放到测试计划中。开始进行第一轮设备测试。开始进行第一轮设备测试。到到末期,应当至少完成一末期,应当至少完成一次完全通过的设备(所有打印机、调制解调器等)测试。次完全通过的设备(所有打印机、调制解调器等)测试。开始向测试计划中增加回归测试。开始向测试计划中增加回归测试。应当周期性地对该测应当周期性地对该测试集重新进
15、行评价。试集重新进行评价。对资源需求进行评审,并公布测试里程碑。对资源需求进行评审,并公布测试里程碑。仔细列出测仔细列出测试任务,并估计有多少人,每个人会花费多长时间。该试任务,并估计有多少人,每个人会花费多长时间。该清单应该完整,如果其中的每项任务都得以完成,而其清单应该完整,如果其中的每项任务都得以完成,而其他什么也没做,那么便会同意已经进行了足够的测试。他什么也没做,那么便会同意已经进行了足够的测试。清单中的个别任务要求用超过半天但少于一周的时间来清单中的个别任务要求用超过半天但少于一周的时间来执行。把该清单映射到一个时间基线上,以显示何时这执行。把该清单映射到一个时间基线上,以显示何时
16、这些任务会完成。这一清单是测试人员和项目经理用来对些任务会完成。这一清单是测试人员和项目经理用来对照测试进度对测试进展进行评审的工具。照测试进度对测试进展进行评审的工具。无无忧忧PPTPPT整理整理发发布布13.2.1 13.2.1 阶段的测试活动阶段的测试活动随着随着阶段的进展,则会阶段的进展,则会扩展测试计划,深化测试级别扩展测试计划,深化测试级别。如果需要,开发并公布一个验收测试(一个验收测试是程序的如果需要,开发并公布一个验收测试(一个验收测试是程序的每个版本在提交进行更详细的测试之前都必须通过的一组测试)每个版本在提交进行更详细的测试之前都必须通过的一组测试)。大多数测试团体并不希望
17、直到大多数测试团体并不希望直到测试阶段程序才通过验收测测试阶段程序才通过验收测试,因此他们直到试,因此他们直到阶段后(或者与项目经理协商的其他日期)阶段后(或者与项目经理协商的其他日期),才会把一个没通过测试的程序版本踢出测试之外。可以早些,才会把一个没通过测试的程序版本踢出测试之外。可以早些公布该测试,但不要早早地就执行。公布该测试,但不要早早地就执行。设计并填写测试计划清单和图表。设计并填写测试计划清单和图表。它们包括:它们包括:清单、图表、矩阵等。清单、图表、矩阵等。想要创建什么样的测试记录?想要运行什么样的测试或者想要想要创建什么样的测试记录?想要运行什么样的测试或者想要找到什么样的缺
18、陷,与任何这些记录都不符合的那些缺陷?用找到什么样的缺陷,与任何这些记录都不符合的那些缺陷?用附录作为缺陷的资料来源,来检查覆盖率。这个清单可以帮助附录作为缺陷的资料来源,来检查覆盖率。这个清单可以帮助测试人员达到一个关键的早期目标。必须开发出一个任务清单,测试人员达到一个关键的早期目标。必须开发出一个任务清单,这样的话如果完成了所有的任务,就可以确信已经按照认为应这样的话如果完成了所有的任务,就可以确信已经按照认为应对程序进行的测试来执行了测试。另外,还需要用它来进行进对程序进行的测试来执行了测试。另外,还需要用它来进行进度制定、资源安排和预算制定。度制定、资源安排和预算制定。无无忧忧PPT
19、PPT整理整理发发布布13.2.1 13.2.1 阶段的测试活动阶段的测试活动 输入边界图表。输入边界图表。输出边界图表。输出边界图表。功能清单,包括寻找控制流问题的策略,如初始状态错功能清单,包括寻找控制流问题的策略,如初始状态错误、在一组状态之间来回的影响、再次进入一个状态或误、在一组状态之间来回的影响、再次进入一个状态或者在没有提供必需输入的情况下退出一个状态。者在没有提供必需输入的情况下退出一个状态。所有错误信息的清单。所有错误信息的清单。打印机(及其他设备)配置测试矩阵。打印机(及其他设备)配置测试矩阵。跨测试版本并针对竞争产品的性能测试基准。跨测试版本并针对竞争产品的性能测试基准。
20、负载和强度测试描述。负载和强度测试描述。数据流测试策略及现存数据任何变化的追踪结果的策略。数据流测试策略及现存数据任何变化的追踪结果的策略。确定程序的每个区域中的每个键的功能的图表(如果这确定程序的每个区域中的每个键的功能的图表(如果这些键在程序每处以相同的方式工作,这就是个简单图表,些键在程序每处以相同的方式工作,这就是个简单图表,但要确保针对它对程序的大量区域都进行了测试,因为但要确保针对它对程序的大量区域都进行了测试,因为许多项目经理和程序员错误地宣布键在每处都以相同的许多项目经理和程序员错误地宣布键在每处都以相同的方式工作)。方式工作)。无无忧忧PPTPPT整理整理发发布布13.2.1
21、 13.2.1 阶段的测试活动阶段的测试活动 发现竞争条件以及有关消息、共享数据、中断和其他耍发现竞争条件以及有关消息、共享数据、中断和其他耍点等在程序的一个简单线性分析中不会出现的问题的策点等在程序的一个简单线性分析中不会出现的问题的策略。略。显示输入值或特征设置之间交互的矩阵。显示输入值或特征设置之间交互的矩阵。内存内存/活动图表,显示程序中不同位置的不同活动、命活动图表,显示程序中不同位置的不同活动、命令等的内存使用量。令等的内存使用量。这些是调查工具,可能无法向其中这些是调查工具,可能无法向其中填写数据,直到决定需要研究内存的使用来跟踪一个不填写数据,直到决定需要研究内存的使用来跟踪一
22、个不可再现的缺陷才可以。但是当收集数据时要保留它,迟可再现的缺陷才可以。但是当收集数据时要保留它,迟早派得上用场。早派得上用场。其他。其他。附录是一个很长的缺陷清单。阅读该清单,发现附录是一个很长的缺陷清单。阅读该清单,发现需要查找的缺陷,或者测试计划没有考虑到的区域。需要查找的缺陷,或者测试计划没有考虑到的区域。再次提醒再次提醒,不要尝试一次进行所有这些任务。不管正在做,不要尝试一次进行所有这些任务。不管正在做其他的什么事,总是要留出时间来发现和报告缺陷。不其他的什么事,总是要留出时间来发现和报告缺陷。不要尝试正好到要尝试正好到测试阶段结束时就能完成每件事。构造测试阶段结束时就能完成每件事。
23、构造这些清单,然后当开始理解程序时,逐渐向其中增加内这些清单,然后当开始理解程序时,逐渐向其中增加内容。另一方面,在进展过程中,切实对这些材料进行改容。另一方面,在进展过程中,切实对这些材料进行改进。这些是测试人员的记录进。这些是测试人员的记录如果它们是肤浅的、不完如果它们是肤浅的、不完整的,那能对测试说明些什么?整的,那能对测试说明些什么?无无忧忧PPTPPT整理整理发发布布13.2.1 13.2.1 阶段的测试活动阶段的测试活动 最后,在最后,在期间,应当开始安排期间,应当开始安排自动测试自动测试。自动测试自动测试是是计算机为测试人员或者帮助测试人员运行的计算机为测试人员或者帮助测试人员运
24、行的回归测试回归测试。它们展示了节省测试时间的希望。花在重新执行旧测试它们展示了节省测试时间的希望。花在重新执行旧测试上的时间越少,就会获得越多的时间来创建新的测试。上的时间越少,就会获得越多的时间来创建新的测试。把重大数据文件存档,因为是为了测试的目的创建它们把重大数据文件存档,因为是为了测试的目的创建它们的。的。确保记录下这些文件包含什么内容。记录可以很简确保记录下这些文件包含什么内容。记录可以很简洁,但它们必须足以提醒该文件的详细内容。不要在每洁,但它们必须足以提醒该文件的详细内容。不要在每次使用时,都强迫自己指出一个给定的文件包含什么内次使用时,都强迫自己指出一个给定的文件包含什么内容
25、。最好不要从头开始重新创建。如果主要记录是文件容。最好不要从头开始重新创建。如果主要记录是文件中的注释,那就要准备好外部文档(例如索引和解释性中的注释,那就要准备好外部文档(例如索引和解释性文本)来帮助读者定位这些文件中的测试用例。文本)来帮助读者定位这些文件中的测试用例。把任何可重用的批处理文件、测试驱动程序、数据文件把任何可重用的批处理文件、测试驱动程序、数据文件和捕获的击键系列存档。和捕获的击键系列存档。把这些可用资源分为两组。充把这些可用资源分为两组。充分证明最关键的以及最容易用文件证明的内容,使这些分证明最关键的以及最容易用文件证明的内容,使这些文档对其他测试人员来说随时可用。稍微用
26、文件证明一文档对其他测试人员来说随时可用。稍微用文件证明一下其他测试文件,把这些作为私人材料,因为没有其他下其他测试文件,把这些作为私人材料,因为没有其他人能理解它们。人能理解它们。无无忧忧PPTPPT整理整理发发布布13.2.1 13.2.1 阶段的测试活动阶段的测试活动 准备打印机测试文件。准备打印机测试文件。开始准备会用来测试每台打印机的一个开始准备会用来测试每台打印机的一个标准的输入文件组。用它们进行测试,把输出打印到磁盘,也标准的输入文件组。用它们进行测试,把输出打印到磁盘,也打印到纸上。创建批处理文件以便下次自动执行这些测试,通打印到纸上。创建批处理文件以便下次自动执行这些测试,通
27、过一个给定的打印机驱动程序来比较某个程序版本与下一版本过一个给定的打印机驱动程序来比较某个程序版本与下一版本的输出。的输出。准备配置测试。准备配置测试。列出将要对程序进行测试的环境。获取每个操列出将要对程序进行测试的环境。获取每个操作系统、内存管理器、桌面管理器、字体显示管理器等的必要作系统、内存管理器、桌面管理器、字体显示管理器等的必要版本。将如何把这些组合成一个可以管理的小的测试集,获取版本。将如何把这些组合成一个可以管理的小的测试集,获取其他设备(调制解调器、鼠标、视频卡等一你应该按照和打印其他设备(调制解调器、鼠标、视频卡等一你应该按照和打印机一样的方式和进度从生产厂商处获得这些)的必
28、需型号,并机一样的方式和进度从生产厂商处获得这些)的必需型号,并开始准备要逐个检查程序兼容性的测试文件。开始准备要逐个检查程序兼容性的测试文件。自动化验收测试。自动化验收测试。如果每次程序接受测试时的确想要运行一个如果每次程序接受测试时的确想要运行一个简短的标准测试系列,而且一旦它在该测试系列上失败,就把简短的标准测试系列,而且一旦它在该测试系列上失败,就把这一版本踢出测试,那就要运行这些测试很多很多次。必须能这一版本踢出测试,那就要运行这些测试很多很多次。必须能够重新进行按键和鼠标击键操作,以捕获所有的输出(输出到够重新进行按键和鼠标击键操作,以捕获所有的输出(输出到由程序支持的所有视频模式
29、),并在屏幕上屏蔽日期和版本信由程序支持的所有视频模式),并在屏幕上屏蔽日期和版本信息。接着可以把已知的有效行为与目前版本的行为相比较。要息。接着可以把已知的有效行为与目前版本的行为相比较。要确保从提供确保从提供3030天退款保证的销售商那里购买你自己的工具。天退款保证的销售商那里购买你自己的工具。无无忧忧PPTPPT整理整理发发布布13.2.1 13.2.1 阶段的测试活动阶段的测试活动 自动化方面存在一个困难的权衡。对测试进行自动化并加以文自动化方面存在一个困难的权衡。对测试进行自动化并加以文档记录所花费的时间,可能是创建并运行它们一次的时间的十档记录所花费的时间,可能是创建并运行它们一次
30、的时间的十倍。倍。这是因为:这是因为:应当尽可能早地进行自动化,否则你将无法补偿自动化成本的应当尽可能早地进行自动化,否则你将无法补偿自动化成本的损失。损失。不应该过早进行自动化,是因为在早期测试期间,那样做会减不应该过早进行自动化,是因为在早期测试期间,那样做会减少可用的测试时间,这就推迟了发现和纠正许多错误的时间。少可用的测试时间,这就推迟了发现和纠正许多错误的时间。应当较早进行自动化,因为在缺陷发现的巅峰时期较晚进行自应当较早进行自动化,因为在缺陷发现的巅峰时期较晚进行自动化会降低测试生产率。动化会降低测试生产率。不应该过早进行自动化,因为程序会发生很大的变化。程序是不应该过早进行自动化
31、,因为程序会发生很大的变化。程序是不稳定的,而且容易发生重大的设计变更。不稳定的,而且容易发生重大的设计变更。应当较早进行自动化来创建一个标准的验收测试,因为会运行应当较早进行自动化来创建一个标准的验收测试,因为会运行该测试许多次,这样手动运行它的每一分钟都浪费掉了。该测试许多次,这样手动运行它的每一分钟都浪费掉了。不应该过早进行自动化,因为它会引起行政问题。不应该过早进行自动化,因为它会引起行政问题。自动化测试,自动化测试,不要多到会因为推迟测试而受到责罚。即使预期有大量测试周不要多到会因为推迟测试而受到责罚。即使预期有大量测试周期的经理,也可能对在测试自动化中的一个巨大初始投资的判期的经理
32、,也可能对在测试自动化中的一个巨大初始投资的判断提出质疑。断提出质疑。在该问题上,必须依靠在该问题上,必须依靠自己的正确判断。自己的正确判断。无无忧忧PPTPPT整理整理发发布布13.2.213.2.2 测试的深度与广度测试的深度与广度 在每个测试周期中,了解在每个测试周期中,了解测试的深度和广度之测试的深度和广度之间的权衡间的权衡是至关重要的。是至关重要的。把程序看作是所关心的许多区域的把程序看作是所关心的许多区域的一个集合一个集合。列出并测试其中的列出并测试其中的每个区域每个区域。我们并不想要把。我们并不想要把“区域区域”定义得过分严格。可能会集中于定义得过分严格。可能会集中于某一某一类问
33、题、某个特征、某个模块、某个功能、某类问题、某个特征、某个模块、某个功能、某个菜单或其他什么个菜单或其他什么。如果能脱离程序的其余部。如果能脱离程序的其余部分对其单独思考,那它就是一个分对其单独思考,那它就是一个“关注区域关注区域”。无无忧忧PPTPPT整理整理发发布布13.2.213.2.2 测试的深度与广度测试的深度与广度 当集中于某一类问题时当集中于某一类问题时,问一问这类问题可能在程序,问一问这类问题可能在程序的哪些部分出现。在程序中每个合理之处对该问题运的哪些部分出现。在程序中每个合理之处对该问题运行测试。行测试。例如例如,当集中于配置问题时,尝试设想操作软件可能,当集中于配置问题时
34、,尝试设想操作软件可能影响到的程序的每个方面。当改变配置时,要对这些影响到的程序的每个方面。当改变配置时,要对这些方面的每一个都进行行测试。方面的每一个都进行行测试。当集中于一个模块、一个功能或一个特征时当集中于一个模块、一个功能或一个特征时,问一问,问一问它可能存在什么类型的问题。找出所有这些问题。它可能存在什么类型的问题。找出所有这些问题。例如例如,可以对显示或打印图形的例程中的每个可能故,可以对显示或打印图形的例程中的每个可能故障都进行测试。障都进行测试。无无忧忧PPTPPT整理整理发发布布13.2.2 13.2.2 测试的深度与广度测试的深度与广度 在每个测试周期中,都要尽力在每个测试
35、周期中,都要尽力测试所关注的每个区域。不过,测试所关注的每个区域。不过,在任何给定的周期中,对某些在任何给定的周期中,对某些区域的测试要比其他区域更彻区域的测试要比其他区域更彻底。可以在以下任何级别上进底。可以在以下任何级别上进行测试。行测试。下面我们将作具体说明:下面我们将作具体说明:无无忧忧PPTPPT整理整理发发布布13.2.2 13.2.2 测试的深度与广度测试的深度与广度1 1主流测试:主流测试:相对温和的测试,它询问程序在相对温和的测试,它询问程序在“正常正常”使用下进展如何。使用下进展如何。在早期阶段,在早期阶段,程序为响应大量的问题报告和对用户界面的程序为响应大量的问题报告和对
36、用户界面的批评而不断地更改。这些更改会很容易发生错误(可能每批评而不断地更改。这些更改会很容易发生错误(可能每三处更改就发生一个错误),有些新的错误会出现在新代三处更改就发生一个错误),有些新的错误会出现在新代码中,而大量其他错误会造成对过去起作用的代码的破坏。码中,而大量其他错误会造成对过去起作用的代码的破坏。因此,因此,即使主流级别的测试也会持续暴露错误。即使主流级别的测试也会持续暴露错误。在每个测试周期中在每个测试周期中对程序的每个区域对程序的每个区域进行测试。进行测试。如果之前没有对某个区域进行严格的测试,而在这个周期如果之前没有对某个区域进行严格的测试,而在这个周期内又没有时间,那就
37、使用以前曾用过的主流测试。如果发内又没有时间,那就使用以前曾用过的主流测试。如果发现了新的边界,或者想到了任何有益的测试,就把它们增现了新的边界,或者想到了任何有益的测试,就把它们增加到测试计划中。即使没有正式的规划,这样做也会逐渐加到测试计划中。即使没有正式的规划,这样做也会逐渐增加该区域的测试级别。增加该区域的测试级别。无无忧忧PPTPPT整理整理发发布布13.2.2 13.2.2 测试的深度与广度测试的深度与广度2 2突击测试:突击测试:能快速想到的一能快速想到的一个简短的最严重个简短的最严重的测试系列。的测试系列。决定决定集中于程序集中于程序的哪些区域的哪些区域,并,并且现在就开始对且
38、现在就开始对它们进行测试。它们进行测试。在可用的时间内,在可用的时间内,尽量使测试严苛。尽量使测试严苛。尝试进行一些使尝试进行一些使用这些特征的用这些特征的真真实测试(也就是实测试(也就是客户可能想要去客户可能想要去做的)。做的)。接着,接着,当了解了当了解了边界值边界值,就可以使用它们就可以使用它们了。了。按照对按照对暴露错误的直觉暴露错误的直觉来行,来行,目标目标是:是:早些清除缺陷。早些清除缺陷。在开始正式设计之前,在开始正式设计之前,让混乱平定下来。查找最佳测试用例、让混乱平定下来。查找最佳测试用例、做笔记并进行文档测试要花费很长时做笔记并进行文档测试要花费很长时间。尝试找到最坏的问题
39、,并在详细间。尝试找到最坏的问题,并在详细测试开始之前引发主要的重新设计。测试开始之前引发主要的重新设计。给自己一些思考的时间。给自己一些思考的时间。只要花上一只要花上一段足以形成出一个对可能问题和所需段足以形成出一个对可能问题和所需测试类型进行正确评价的时间就行了。测试类型进行正确评价的时间就行了。要对该区域进行足够的测试,以暴露要对该区域进行足够的测试,以暴露其最糟的问题。其最糟的问题。早些开始改正问题。早些开始改正问题。越早对一个问题越早对一个问题进行报告,它就越可能得到改正。进行报告,它就越可能得到改正。把测试级别拉平。把测试级别拉平。突击测试是简短而突击测试是简短而非正式的,但是却要
40、比主流测试强得非正式的,但是却要比主流测试强得多。它们比更集中的测试要快得多,多。它们比更集中的测试要快得多,因此能在该级别测试程序的更多区域。因此能在该级别测试程序的更多区域。无无忧忧PPTPPT整理整理发发布布13.2.2 13.2.2 测试的深度与广度测试的深度与广度3 3认真计划的测试:认真计划的测试:包包括括暴暴露露这这个个关关注注区区域域中中问问题题的的最最佳佳提提议议的的一一个个较较长长测测试试系列。系列。选择程序的某个区选择程序的某个区域,并集中于此。域,并集中于此。当测试继续时,会当测试继续时,会在突击测试和集中在突击测试和集中的计划好的测试上的计划好的测试上花费更多的时间。
41、花费更多的时间。这将会是一个逐步这将会是一个逐步的过渡过程。现在的过渡过程。现在就开始,首先花费就开始,首先花费少量时间对某个区少量时间对某个区域进行域进行彻底测试。彻底测试。要决定要决定首先专攻何处首先专攻何处是很困难的。是很困难的。这里描述了这里描述了6 6个个合理的选择:合理的选择:在初始测试中看起来在初始测试中看起来最弱的区域最弱的区域也就是也就是最容易发生错误的区域。最容易发生错误的区域。错误最明显的区域。错误最明显的区域。程序中最常使用的区域。程序中最常使用的区域。把程序与其竞争对象相区分或者把程序与其竞争对象相区分或者对客户或评审人员而言尤其对客户或评审人员而言尤其有意有意义的区
42、域。义的区域。如果发生损坏,将会如果发生损坏,将会最难改正的最难改正的区域。区域。最理解的区域。最理解的区域。无无忧忧PPTPPT整理整理发发布布13.2.2 13.2.2 测试的深度与广度测试的深度与广度 我们通常会执行我们通常会执行早期突击测试早期突击测试,而不是为程序的最弱,而不是为程序的最弱部分编写详细的测试计划,这样做是希望大量的缺陷部分编写详细的测试计划,这样做是希望大量的缺陷报告能使混乱的状态得到清理。在一到两个提交报告报告能使混乱的状态得到清理。在一到两个提交报告的周期中,我们会把注意力转向这些不可靠的区域。的周期中,我们会把注意力转向这些不可靠的区域。在一个测试周期中在一个测
43、试周期中,可能并没有足够的时间来安排和,可能并没有足够的时间来安排和处理一个区域的所有测试。尽可能使用看起来合理的处理一个区域的所有测试。尽可能使用看起来合理的时间进行规划、建档以及执行计划好的测试。把剩下时间进行规划、建档以及执行计划好的测试。把剩下的可用时间用来对该区域进行快速的测试。的可用时间用来对该区域进行快速的测试。在下一个测试周期中在下一个测试周期中,可能要花时间来完成该区域测,可能要花时间来完成该区域测试的规划和建立文档的工作,否则要把完成时间推迟试的规划和建立文档的工作,否则要把完成时间推迟到很晚。到很晚。无无忧忧PPTPPT整理整理发发布布13.2.2 13.2.2 测试的深
44、度与广度测试的深度与广度4 4回归测试:回归测试:每每个个周周期期都都要要运运行行的的测测试试系系列列。理理想想的的测测试试系系列列在在一一个个最最小小的的时时间量内检查关注区域的每个方面。间量内检查关注区域的每个方面。回归测试的回归测试的目的目的就是要提供可与集中工作进行比较的覆盖率,就是要提供可与集中工作进行比较的覆盖率,但但不包括时间成本。不包括时间成本。回归测试系列总是包含对最近回归测试系列总是包含对最近缺陷修复的测试。缺陷修复的测试。一个回归测试集应当是一个回归测试集应当是覆盖程序某区域的可能测试的最少集覆盖程序某区域的可能测试的最少集合。合。它还应当尽可能多地覆盖该区域的许多方面(
45、子功能、它还应当尽可能多地覆盖该区域的许多方面(子功能、边界条件等),使用尽可能少的测试和执行时间。边界条件等),使用尽可能少的测试和执行时间。回归测试集应该包括回归测试集应该包括对已修复的缺陷的最令人感兴趣的或者对已修复的缺陷的最令人感兴趣的或者最有用的重新测试,以及迄今为止运行得最好的其他测试。最有用的重新测试,以及迄今为止运行得最好的其他测试。在主流测试和突击测试期间,把它们增加到测试记录中去。在主流测试和突击测试期间,把它们增加到测试记录中去。而在进行更详细的测试规划时,向其中加入更多的测试。而在进行更详细的测试规划时,向其中加入更多的测试。考虑构建自己的回归测试系列,以便每有一个新的
46、版本时运行考虑构建自己的回归测试系列,以便每有一个新的版本时运行一些测试;有时每隔两到三个版本运行一些测试,有时则频一些测试;有时每隔两到三个版本运行一些测试,有时则频率更低。为了应付一批又一批的新版本(通常在接近测试末率更低。为了应付一批又一批的新版本(通常在接近测试末期时),每次使用一个期时),每次使用一个不同的回归测试子集不同的回归测试子集来使得抽样检查来使得抽样检查每个区域的可靠性变得更加容易。每个区域的可靠性变得更加容易。无无忧忧PPTPPT整理整理发发布布13.2.3 测试周期的记录测试周期的记录o理想的测试周期包括产品理想的测试周期包括产品某个版本的测试的一个完整过程。某个版本的
47、测试的一个完整过程。实际上,测试的实际上,测试的数量随着版本的不同会发生数量随着版本的不同会发生变化。变化。o在许多公司中,程序员认为某个产品的一个新版本会通过一个完整测试周期,在许多公司中,程序员认为某个产品的一个新版本会通过一个完整测试周期,这才提交其进行测试。这才提交其进行测试。o而在其他许多公司中,程序员对程序而在其他许多公司中,程序员对程序做出大量修改,做出大量修改,这样他们(或你)认为这样他们(或你)认为对新代码进行测试比对旧代码进行测试更明智,之后才提交一个新版本进行对新代码进行测试比对旧代码进行测试更明智,之后才提交一个新版本进行测试。测试。o要注意的是,版本的转换如此之快,以
48、至于会花费大部分时间在要注意的是,版本的转换如此之快,以至于会花费大部分时间在验收测试、验收测试、验收文书工作、相同的旧的回归测试以及测试周期末期验收文书工作、相同的旧的回归测试以及测试周期末期的文书工作之上。这的文书工作之上。这可不是发现错误的方式。有些编程团队会尝试每天测试一个新版本,并提出可不是发现错误的方式。有些编程团队会尝试每天测试一个新版本,并提出论点,有些甚至拒绝阅读在旧版本中发现缺陷的新报告。这些人的行为通常论点,有些甚至拒绝阅读在旧版本中发现缺陷的新报告。这些人的行为通常看起来很有诚意,但是,看起来很有诚意,但是,他们可以使用大量粗制滥造的版本来削弱测试效率,他们可以使用大量
49、粗制滥造的版本来削弱测试效率,而且,如果他们尝试用一个很差的产品来满足严格的进度要求,并且他们不而且,如果他们尝试用一个很差的产品来满足严格的进度要求,并且他们不关心产品是否会带着缺陷发布,关心产品是否会带着缺陷发布,这就是他们能够并且会用来限制发现新错误这就是他们能够并且会用来限制发现新错误的能力的一个重要伎俩。的能力的一个重要伎俩。o尝试设定一个允许花费尝试设定一个允许花费25%25%50%50%的时间来安排和执行新测试工作的进度。这的时间来安排和执行新测试工作的进度。这些测试是最可能暴露问题的测试。在最初的几个测试周期中,这很容易,但些测试是最可能暴露问题的测试。在最初的几个测试周期中,
50、这很容易,但是一旦有了一大组的回归测试要做,就很难把是一旦有了一大组的回归测试要做,就很难把25%25%的时间分配给新的测试。的时间分配给新的测试。必须保持必须保持回归测试组足够紧凑,并使测试周期足够长,回归测试组足够紧凑,并使测试周期足够长,这样就不会只是一个这样就不会只是一个周期接着一个周期地重新运行回归测试。周期接着一个周期地重新运行回归测试。无无忧忧PPTPPT整理整理发发布布第十三章第三节第十三章第三节 测试阶段测试阶段无无忧忧PPTPPT整理整理发发布布13.3 测试阶段测试阶段 如果公司使用如果公司使用里程碑作为一个活动触发器,或者以产品到达里程碑作为一个活动触发器,或者以产品到