第二章测试计划.ppt
《第二章测试计划.ppt》由会员分享,可在线阅读,更多相关《第二章测试计划.ppt(104页珍藏版)》请在三一办公上搜索。
1、1,软 件 测 试 技 术,2,第二章 测试计划,2.1 测试计划要点和制订过程2.2 测试软件需求2.3 测试策略 2.4 测试环境 2.5 测试管理 2.6 测试计划编写,3,通过本章的学习,可以:了解软件测试计划的重要性。了解软件测试计划的编写过程和主要内容。了解软件需求应该具有的特征。了解如何对软件需求进行静态测试。学会确定测试策略。学会定义测试环境。对软件测试管理工作有所了解,4,在一个工程活动中,了解需求和制定计划是所有工作的起点。在软件测试工作中,也首先需要分析需求和制定测试计划。,5,软件测试阶段组成,测试计划,测试开发,测试执行,6,2.1.1 为什么要写测试计划 软件测试计
2、划是指导测试过程的纲领性文件。借助软件测试计划,1)领导能够根据测试计划做宏观调控,进行相应资源配置等;2)测试人员能够了解整个项目测试情况以及项目测试不同阶段的所要进行的工作等;3)便于其他人员了解测试人员的工作内容,进行有关配合工作,2.1 测试计划要点和制订过程,7,2.1.2 测试计划内容和要点,一个软件项目的测试计划是一份描述软件测试工作的目标、范围、策略、方法和重点的文档。,8,测试计划编写包括6要素(5W 1H)1)why为什么要进行这些测试;2)what测试哪些方面,不同阶段的工作内容;3)when测试不同阶段的起止时间;4)where相应文档,缺陷的存放位置,测试环境等;5)
3、who项目有关人员组成,安排哪些测试人员进行测试 6)how如何去做,使用哪些测试工具以及测试方法进行测试。,9,测试活动进度综述,可供相关人员参考 测试方法;测试工具,包括如何和何时获取工具;实施测试和报告结果的过程;系统测试进入和结束准则;设计、开发和执行测试所需的人员;,测试计划要点,10,设备资源:需要什么样的机器和测试基准;恰当的测试覆盖率目标;测试所需的特殊软件和硬件配置;测试哪些特性,不测试哪些特性;风险和意外情况计划。,测试计划要点,11,2.1.3 测试计划制订过程,分析和测试软件需求,定义测试策略,定义测试环境,定义测试管理,编写和审核测试计划,12,在编写测试计划时,经过
4、五个步骤:(1)分析和测试软件需求 在需求分析阶段,软件测试人员就需要进入。在这个阶段,测试人员需要对需求有完整的理解,还需要对需求文档进行测试。(2)定义测试策略 测试策略,指的是确定总的测试范围、测试的方法、测试活动的进入/退出标准、自动化测试工具的选择、测试软件的编写等。,13,(3)定义测试环境 测试环境包括软件运行的硬件平台、软件平台,还包括一些特殊的外围设备。在制定测试计划时,需要定义测试工作将在什么样的测试环境中进行。(4)定义测试管理 测试过程中所涉及到的人、活动和工具都是很多的(特别是在大型软件的测试中),在制定测试计划时,要对这些因素加以管理。,14,(5)编写计划文档 在
5、上述几项工作完成后,需要编写测试计划文档,并需要被相关人员审核。测试计划阶段的原始依据是软件需求文档。测试计划阶段的输出是测试计划文档,15,2.2 分析和测试软件需求,为了编写测试计划和进行测试设计,测试人员需要软件需求说明书,软件需求是设计、编码和测试人员共同的工作起点。,16,需求分析就是完整、准确地定义系统的目标,确定系统必须做什么。在失败的项目中与需求分析相关的原因:不完善的需求分析(13.1)。缺乏用户的参与(12.4)。不切实际的期望值(9.9)。不断变更的需求和说明(8.7)。系统不再被需要(7.5)。51.6%,2.2.1 需求分析过程,17,经统计,一般的,如果在需求分析阶
6、段发现并解决问题花费$1,则在设计阶段解决同样的问题要花费$5,在编码阶段要花费$10,在交付使用后要解决同样的问题需花费$200。测试团队需要清晰、明确、可测试的需求说明书以便开始测试计划和测试设计工作。另一方面,测试团队通过对需求的分析实现对需求的静态测试,尽量在早期发现问题,减小后期修改的代价。因此,测试人员需要在需求分析阶段开始介入测试工作。,18,需求分析需经历五个主要步骤:(1)收集用户需求 通过客户访谈等途径收集客户需求。(2)编写需求定义文档 将客户需求整理并写成需求定义,需求定义文档用自然语言记录所有系统需求,这样用户和系统开发人员比较容易理解沟通。(3)编写软件功能说明 软
7、件功能说明用精确性和技术性语言描述所有系统需求,该文档主要被开发组织使用。,19,(4)编写软件需求跟踪矩阵 其目的是跟踪每一个需求以确保其被实现和测试。(5)审核软件需求文档 在需求文档编写完成后,要进行相应的审核工作。,20,各步骤工作重点:(1)收集用户需求 客户与开发人员的沟通对项目的成功是非常重要的,在沟通过程中客户与开发人员对相互背景知识的欠缺将会限制沟通效果,客户缺乏对软件开发过程的了解,不能用系统开发人员易理解的方式陈述他们的需求。正如设计一个客户的房子,客户没有足够的建筑方面的知识去精确地告诉建筑师自己的需要,因此客户与建筑师之间的沟通可能包括看样板房、图片、演示存在的软件是
8、非常有用的。测试人员通过客户与开发人员沟通后的结果来了解客户准备如何使用软件,并进行验收测试设计。,21,(2)编写需求定义 从测试人员看,需求定义应有如下特点:每个需求应被惟一地标识。当测试人员计划测试覆盖、设计测试用例、报告测试结果时能够清楚地识别需求:需求定义要从用户的角度描述。定义必须包括功能需求和非功能需求。功能需求描述系统要完成的功能,非功能需求描述系统操作中的约束,如系统能够支持的用户数。,22,(3)编写功能说明 功能说明描述的内容与需求定义文档相同,但文档是从系统设计者的角度来书写,由开发团队使用。,23,(4)编写需求跟踪矩阵 必须确定哪些测试用例对应目标功能。需求跟踪矩阵
9、提供下列信息:哪些测试用例检查一个特定的功能。哪些需求没有对应的测试用例。哪些功能仍然需要测试。,24,2.2.2 需求分析中测试人员工作,测试人员必须在需求阶段就进入原因:(1)测试人员需要在了解需求的情况下编写测试计划、测试用例、准备测试环境。(2)需求文档本身也需要被测试人员进行测试。(3)估算工作量,估算项目成本,编写开发计划。如果在此阶段不考虑测试本身的工作量和成本、测试工作需要持续的时间,那么对于整个项目的工作量、成本和时间的估算就会产生很大的偏差。,25,需求分析中测试人员工作理解需求,参与审核需求文档理解项目的目标、限制,了解用户应用背景编写测试计划准备资源包括了人员、资金、设
10、备、工具软件。如果测试人员对所测试的软件应用领域不熟悉,要进行相应的培训。在很多时候,需要购买设备来建立测试环境;,26,2.2.3 软件需求文档 需求文档是进行设计、编码、测试的基础文件,软件需求文档中,需要描述下列内容:说明一般描述各种限制条件、假定和依赖功能需求非功能需求参考 P244,27,1、需求跟踪矩阵 在整个开发过程中,对于需求文档中的每项需求,要确保以下问题:是否完成了相应的设计?是否编写完成了相应的代码?在哪里可以找到这些代码?是否编写完成了相应的单元测试用例?是否进行了单元测试?是否完成了相应的集成测试用例?是否进行了集成测试?需求跟踪矩阵即描述上述问题。,28,对于需求规
11、格RS2.2.4.1,其单元测试、集成测试、系统测试用例分别对应到D2.2.4.1、CC2.2.4.1、UT2.2.4.1、IT2.2.4.1.x、ST2.2.4。在编写测试用例时,就需要根据需求跟踪矩阵里面的编号规则进行标号。,N/A所代表的含义是:对应于此需求,没有对应的单元测试用例(也许是不需要,也许是不打算针对此需求进行单元测试)。,29,2、良好需求文档的特征具有清晰的格式和文档结构需求的内容正确 每个需求必须精确描述要交付的功能 需求的内容完整 不应该遗漏要求和必需的信息,认为有些内容理所当然而未明确写出来。需求具有可行性 如果需求文档中所描述的软件需求在已知的能力、有限的系统及其
12、环境中是不可能实现的,那么相关的需求就没有意义,30,必要性 需求中的每项内容都应该是必要的 对不同的需求的优先等级进行定义 当时间、人力、经费不足时,应该优先完成哪些功能,可以暂时放弃哪些功能?描述明确,无歧义、二义,上下文一致 避免使用一些对于作者很清楚但对于读者不清楚的主观词汇,例如:容易、简单、快速、有效、几个、艺术级、改善的、最大、最小等等。要注意在文档中表达同一个意思时所用的词是同一个。,31,可证实和可测试性 每个需求是否正确的实现 可修改性 通过良好的组织可以使需求易于修改 可追踪 软件需求应该能够与其原始材料相对应。另外,软件需求与设计元素、源代码、用于构造实现和验证需求的测
13、试也应该对应起来。需求文档被及时更新 如果程序员很高兴地宣布某个功能终于完成了,但接下去发现这个功能其实已经被取消了。,32,需求测试是软件测试的一个重要部分。软件本身是由代码、各种文档、数据来组成的,因此,软件测试的对象也不应该仅仅局限在代码和可执行程序,需求文档就是一个重要的被测试对象。在评审软件需求说明书时,软件测试主管和部分测试工程师一般会加入到评审小组中,他们会在会议前阅读软件需求,并在评审会议上发表自己的意见。,2.2.4 需求测试,33,1.需求测试内容 软件需求文档从以下几个方面来评价需求文档:需求文档是否符合公司的格式要求?需求是否正确?要保证需求文档中所描述的内容是真实可靠
14、的这是“真正的”需求吗?描述的产品是否就是要开发的产品?需求是否完备?第一个发布版本是否需要更多的功能?需求是否兼容?需求有可能是矛盾的。需求是否可实现?需求是否合理?在开发进度、开发费用、产品性能、可靠性之间存在着平衡关系。需求是否可测?,34,如果测试人员面对的是不可测试的需求,那么后续的所有工作将无法进行。假如在需求文档中出现了这样一段话“要求打印文档的速度足够快”,那么这段话就是不可测试的需求。在这种情况下,需要测试人员提出质疑。如果把它改为“要求打印文档的速度为不低于5张/min”,那么这段话就是可以被测试的。,35,2、需求测试的方法 需求测试是一种静态的测试。在这个阶段,没有一个
15、可以在计算机上运行的软件供测试人员进行测试。三种常用的静态测试方法:复查 复查一般是让工作中合作者检查产品并提出意见。发现文档缺陷同级互查的能力是三种方法中最弱的。走查 系统分析员做好需求分析,然后给相关人员讲解他的需求说明书,在开发人员讲解的过程中,其他人员如果有问题,可以提问。,36,审查 关键组件的审查通过会议进行,会前每个与会者需要进行准备,会议必须按规定的程序进行,缺陷被记录并形成会议报告。审查是非常有效的发现缺陷的方法。,37,2.3 测试策略,制订测试策略考虑的问题:(1)测试范围 由于软件是无法被完全测试的,对于被测试软件,要判断哪些功能、特性需要被测试。(2)测试方法 对于不
16、同的系统,需要采用不同的测试方法(3)测试标准 只有完成了一个阶段的测试(如集成测试),才能开始下一个阶段的测试(系统测试)。所以就需要为每个阶段测试在什么情况下可以开始、什么情况下可以结束定义标准。,38,(4)自动化测试工具的选择 需要判断是否使用自动化测试工具、使用什么自动化测试工具(5)测试软件的编写(6)与项目相关的一些特殊考虑 在测试策略中,需要考虑、回答上面问题,然后编写相应文档。,39,测试策略中需要完成的主要步骤:确定测试范围 确定测试方法 定义测试标准 选择测试工具,40,对于一个将被实际使用的软件来说,完全测试是不可能实现的。例如:一个计算器软件。如果要完全测试其中的两个
17、整数相加的功能,将把所有可能的组合都进行一次测试,而这个组合有2*1032*2*1032个,可以很容易地判断出进行这个完全测试是不可能的。而两个整数相加还只是计算器中的一个小小的功能。那么简单的计算器软件尚且如此,在实际被使用的一些软件系统,要想对其进行完全测试,是根本不可能实现的。,2.3.1 确定测试范围,41,有一些比较典型的情况可以事先要确定一个必须的测试范围而不是测试所有内容:(1)某些阶段的测试或者某些内容的测试可以简化 如果是在旧的软件版本的基础上进行新版本的开发。在旧版本中,有些软件模块已经被进行过多次单元测试,证明这个模块是足够坚固的,在这种时候,一般就不对这个模块进行单元测
18、试。但也不是可以完全地省略某个阶段的测试。,42,(2)当对原有系统进行修改升级时,某些测试不需要 例如,为某个软件添加打印功能,这个时候文件打开和保存功能就不需要进行很多测试。但是要慎重选择。有时候,程序员很自信地认为某个原有的功能绝对没有修改,绝对不会受到新加功能的影响,但事实上,可能会存在他们完全没有意料到的因素而导致原有的功能被破坏。,43,(3)某些测试根本不可能进行 例如,银行发行了新的取款机软件,根本不可能让所有信用卡的持有者在某个时间段去试用一下,而只能采取一些模拟的手段来进行测试。测试过度,则在测试覆盖中存在大量冗余;测试范围过小,则存在遗漏错误的风险。定义测试范围是一个在测
19、试时间、费用和质量风险之间寻找平衡的过程。期望花费更少的时间和费用,就必须承担更大的质量风险。,44,定义测试范围需要考虑下列一些因素:首先测试最高优先级的需求。(在时间和资源的限制下)测试新的功能和代码或者改进的旧功能。(如果代码改动过,就需要回归测试)使用等价类划分来减小测试范围 重点测试经常出问题的地方,45,确定测试范围方法 可采用提问单的方式来确定测试范围哪些功能是软件的特色?哪些功能是用户最常用的?如果系统可以分块卖的话,哪些功能块在销售时最昂贵?哪些功能出错将导致用户不满或索赔?哪些程序是最复杂、最容易出错的?哪些程序是相对独立,应当提前测试的?哪些程序最容易扩散错误?哪些程序是
20、全系统的性能瓶颈所在?哪些程序是开发者最没有信心的?,需求分析人员、设计人员、程序员,市场、销售人员,公司工程管理人员、客户都有可能加入到这个过程中。,46,2.3.2 选择测试方法,在不同的开发阶段,需要选择不同的测试方法。在软件开发的不同的阶段可以选择的不同的测试方法。,(1)需求分析阶段 静态测试(2)概要设计与详细设计阶段 静态测试(3)编码和单元测试阶段:静态测试和动态测试、白盒测试(4)集成测试阶段:动态测试、白盒测试、黑盒测试(5)系统测试阶段:动态测试、黑盒测试(6)验收测试阶段:动态测试、黑盒测试,47,2.3.3 定义测试标准,定义测试标准的目的是设置测试中遵循的规则。需要
21、制订以下几种标准:测试入口标准测试暂停与继续标准测试出口标准,48,(1)测试的入口标准 在什么情况下可以开始某个阶段的测试?测试的入口标准,指的是在开始某个阶段测试之前,需要完成的工作。不同的公司、不同的项目、不同的测试阶段所需要的入口标准是有所差异的,需要测试人员根据实际情况,会同项目组其他成员制定入口标准。,49,如在开始系统测试之前,需要完成的工作:完整的软件包(指软件安装光盘和相应的手册);系统测试计划;测试数据;所需要的测试环境;软件已经通过了集成测试。,50,(2)测试暂停与继续标准 测试暂停标准就是定义在什么情况下,测试工作需要暂时停止。例如,当测试人员在第一个测试工作日发现的
22、缺陷数量大于50个时,集成测试工作暂停。另外还有其他原因会导致测试工作暂停,例如,测试环境未能准备好;测试工具未能准备好或者未完成人员培训。测试继续标准说明的是,当问题被解决,而且能够有方法确认被解决了之后,测试可以继续进行。,51,(3)测试出口标准 定义在什么情况下可以结束某个阶段的测试。以系统测试阶段为例,在测试出口标准中,就会要求所有的测试案例都已经被执行,并且未能通过的测试案例小于某个数值。注意:一个阶段的出口标准和下个阶段的入口标准是不一样的。要想进行下个阶段的测试,首先要达到上个阶段的测试出口标准,还要为下个阶段的测试准备额外的内容。例如,在进行系统测试时,并不是说完成了集成测试
23、就可以做系统测试了,至少还要准备、审查系统测试的测试计划、测试案例,然后才可以启动系统测试。,52,制订测试标准常用规则,(1)基于测试用例的规则 当测试用例的不通过率达到某一百分比时,则拒绝继续测试。当功能性测试用例通过率达到100,非功能性测试用例通过率达到90时,允许正常结束测试。(2)基于“测试期缺陷密度”的规则“测试期缺陷密度”:测试一个CPU小时发现的缺陷数。如果在相邻n个CPU小时内“测试期缺陷密度”全部低于某个值m时,则允许正常结束测试。,53,(3)基于“运行期缺陷密度”的规则“运行期缺陷密度”:软件运行一个CPU小时发现的缺陷数。如果在相邻n个CPU小时内“运行期缺陷密度”
24、全部低于某个值m时,则允许正常结束测试。,54,一般来说,软件产品的质量标准,往往不是“无错误”,例如:严重Bug不允许存在;次要Bug数量小于5个。在开发合约中,也往往对递交时的缺陷数量进行约束。例如,开发合约描述向用户最终递交软件时的质量标准:灾难级Bug=0;严重级Bug=0;重要级Bug=O;一般级Bug6;次要级Bug15。,55,2.3.4 自动化测试工具的选择,在制定测试计划时,需要确定:在本项目的测试过程中,是否使用自动化测试工具;如果使用,在什么阶段,使用哪种测试工具。使用测试工具可以带来下面一些主要的好处:能够很好地进行性能测试和压力测试能够缩短测试周期能够提高测试工作的可
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第二 测试 计划
链接地址:https://www.31ppt.com/p-5331033.html