第2章-测试用例课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第2章-测试用例课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 测试 课件
- 资源描述:
-
1、 本章介绍网上购物系统的测试用例的设计与编写。测试用例设计的目的是为每一个测试需求确定测试用例集(Test Case Suite)。本章重点:测试用例编写规范测试用例设计方法测试用例是为有效发现软件缺陷而编写的包含测试目的、测试步骤、期望测试结果的特定集合,是测试的基础。设计测试用例是在了解软件业务流程的基础上进行的。设计测试用例的原则是受最小的影响提供最多的测试信息,设计测试用例的目标是一次尽可能的包含多个测试要素。这些测试用例必须是测试工具可以实现的,不同的测试场景将测试不同的功能。工作任务2.1 Test Suite用户管理2.1.1 Test Suite添加注册信息1工作任务描述用户管
2、理是网上购物系统的基本模块,而添加用户注册信息是用户管理模块中的基本功能,也是必需的功能。当用户在浏览器的地址栏中输入本系统的网址时,系统弹出如图2-1所示的主页面。单击注册按钮,转到如图2-2所示的页面中,用户填写用户名、姓名、密码和邮寄地址等信息进行注册,填写完之后单击提交按钮进行注册。如果注册成功则会跳转到如图2-3所示的页面。由于系统会对注册信息进行一个简单的验证,如果验证注册信息失败,则系统会提示注册失败信息。图2-2 用户注册界面图2-3 注册成功界面本节任务就是对添加注册信息功能进行测试,编写测试用例集。在此我们使用了场景法、边界值法、错误推测法等测试用例设计方法。2工作过程编写
3、测试用例集:以下是用户管理模块中添加注册信息功能的测试用例集。详细测试用例参见教材25-32页.2.1.2 Test Suite管理员登录1工作任务描述在本系统中,管理员可以对商品信息和商品的类别信息进行管理。管理员登录界面如图2-4所示,当管理员成功登录后,则进入后台管理主界面如图2-5所示。图2-4 登录界面图2-5 后台管理主界面本节任务就是对管理员登录功能进行测试,编写测试用例集。在此我们使用了场景法、错误推测法等测试用例设计方法。2工作过程编写测试用例集。以下是用户管理模块的子功能管理员登录的测试用例集。详细测试用例参见书33-35页2.1.3 Test Suite注册用户登录1工作
4、任务描述用户注册成功后,就可以登录网站了,用户登录的页面如图2-6所示。登录成功后进入商品购买主界面如图2-7所示。本节任务就是编写已注册过的用户登录功能的测试用例集。在此我们使用了场景法、错误推测法、边界值法等测试用例设计方法。图2-6 主页面图2-7 商品购买主界面2工作过程编写测试用例集。以下是注册用户登录的测试用例集。详细测试用例参见书36-40页。2.1.4 Test Suite修改注册信息1工作任务描述用户成功登录系统后,可以对自己的信息进行修改。修改注册信息的界面如图2-8所示。本节任务就是编写修改注册信息功能的测试用例集。在此我们使用了场景法、错误推测法、边界值法等测试用例设计
5、方法。图2-8 修改注册信息2工作过程编写测试用例集。以下是修改注册信息的测试用例集。详细测试用例参见书41-45页2.1.5 应知应会1什么是测试用例测试用例(Test Case)是按一定的顺序执行的并与测试目标相关的测试活动的描述,它确定“怎样”测试。测试用例是有效发现软件缺陷的最小测试执行单元,是软件的测试规格说明书。目前也没有测试用例这个词汇的经典定义,常见的说法是:指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略,内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。在测试工作中,测试用例的设计是非常重要的,是测试执行的正确性、有效
6、性的基础。如何有效地设计测试用例一直是测试人员所关注的问题,设计好的测试用例是保证测试工作的最关键的因素之一。如果问测试工程师测试用例如何编写,就像是问程序员如何编写代码得到的答案一样,每个人都会给出不同的编写方法,但实用的测试用例却像优秀的程序一样难以编写。目前在国内,测试工程师却时常要面对“已经延期几倍计划时间的项目”,测试用例如何发挥更大的作用,是一个迫切需要解决的问题。事实上,完全可以把测试用例看成是测试工程师编写的程序:这个“程序”是为了辅助测试工作的进行而开发的,目的是为了发现软件问题,同时“顺便”证明软件功能是否符合要求。测试用例主要用在集成测试、系统测试以及回归测试中。测试人员
7、按照已规定好的测试用例实施测试,而不得做随意的变动。因为测试用例是分测试等级的,集成测试应测试哪些用例,系统测试应包含哪些用例,以及回归测试又该实施什么样的测试用例,在设计测试用例时都是由专门人员明确规定并形成文档的。在实施测试时测试用例作为测试的标准,测试人员一定要按照测试用例严格按用例项目和测试步骤逐一实施测试,并且要把测试结果详细记录下来,以便形成测试结果文档,等下一轮测试时作为参考之用。在本书给出的测试用例中,测试数据是给定的,但是有时候在实践当中,测试数据与测试用例是分离的,根据测试用例设计,需要准备大量原始数据及标准测试期望的结果,这些 数据包括各种情况下的输入数据尤其是必须设计出
8、大量的边缘数据和错误数据,这些设计用例的方法在后续内容中会有详细介绍。当测试实施完成后,对测试结果的评估是非常重要的。要判断软件测试是否完成,衡量测试质量需要一些量化的结果(测试覆盖率多少、测试合格率多少、重要测试合格率多少),这样把测试用例及实施结果作为度量标准使测试更加准确有效。通过实施测试用例,将系统缺陷(Bug)尽量收集全面,把测试用例和缺陷数据进行对比,分析是漏测还是缺陷复现,最终使系统逐步完善软件质量。当然,测试用例本身在形成文档后也是在不断修改更新与完善,原因有三个:第一,在测试过程中发现设计测试用例时考虑不周,需要完善;第二,在软件交付使用后反馈的软件缺陷,而缺陷又是因测试用例
9、存在漏洞造成的;第三,软件自身的新增功能以及软件版本的更新,测试用例也必须配套修改更新。一些小的修改直接在原测试用例文档里更正就可以了,但是文档中要有此次更正的记录。软件的版本是会升级更新的,测试用例也一样,随着软件的升级而编制新的版本。测试用例的形成可以分为简单的七个步骤:1理清模块需求2提出测试需求3设计测试思路4测试用例编写5测试用例评审6执行用例7用例效率计算在本书后续应知应会中会有详细用例编写的介绍,在此不再赘述。2测试的阶段和种类性能测试、压力测试、负载测试、强度测试、稳定性测试、健壮性测试、功能测试、接口测试,这么多眼花缭乱的测试类型名称,估计很少有人能准确地区分并说出定义来,至
10、于对应的测试用例如何编写和执行,就更不用说了。这里给读者做一下较为系统的说明。2测试的阶段和种类性能测试、压力测试、负载测试、强度测试、稳定性测试、健壮性测试、功能测试、接口测试,这么多眼花缭乱的测试类型名称,估计很少有人能准确地区分并说出定义来,至于对应的测试用例如何编写和执行,就更不用说了。这里给读者做一下较为系统的说明。(1)软件测试阶段软件的测试阶段就是测试将按照什么样的思路和方式进行。通常,软件测试要经过单元测试、集成测试、确认测试、系统测试以及验收测试。这些阶段和开发过程是相对应的。关于测试阶段的叫法有多种,比如测试类型,测试策略等。单元测试:单元测试是针对软件设计的最小单位程序模
11、块甚至代码段进行正确性检验的测试工作,通常由开发人员进行。集成测试:集成测试是将模块按照设计要求组装起来进行测试,主要目的是发现与接口有关的问题。由于在产品提交到测试部门前,产品开发小组都要进行联合调试,因此在大部分企业中集成测试是由开发人员来完成的。时常有这样的情况发生,每个模块都能单独工作,但这些模块集成在一起之后却不能正常工作。主要原因是,模块相互调用时接口会引入许多新问题。例如,数据经过接口可能丢失;一个模块对另一模块可能造成不应有的影响;几个子功能组合起来不能实现主功能;误差不断积累达到不可接受的程度;全局数据结构出现错误,等等。综合测试是组装软件的系统测试技术,按设计要求把通过单元
12、测试的各个模块组装在一起之后,进行综合测试以便发现与接口有关的各种错误。某设计人员习惯于把所有模块按设计要求一次全部组装起来,然后进行整体测试,这称为非增量式集成。这种方法容易出现混乱。因为测试时可能发现一大堆错误,为每个错误定位和纠正非常困难,并且在改正一个错误的同时又可能引入新的错误,新旧错误混杂,更难断定出错的原因和位置。与之相反的是增量式集成方法,程序一段一段地扩展,测试的范围一步一步地增大,错误易于定位和纠正,界面的测试亦可做到完全彻底。下面讨论两种增量式集成方法。a自顶向下集成自顶向下集成是构造程序结构的一种增量式方式,它从主控模块开始,按照软件的控制层次结构,以深度优先或广度优先
13、的策略,逐步把各个模块集成在一起。深度优先策略首先是把主控制路径上的模块集成在一起,至于选择哪一条路径作为主控制路径,这多少带有随意性,一般根据问题的特性确定。以图2-9为例,若选择了最左一条路径,首先将模块M1,M2,M5和M8集成在一起,再将M6集成起来,然后考虑中间和右边的路径。广度优先策略则不然,它沿控制层次结构水平地向下移动。仍然以图2-9为例,它首先把M2、M3和M4与主控模块集成在一起,再将M5和M6和其他模块集成起来。由于下文用到桩模块的概念,在此先向读者介绍一下。在集成测试前要为被测模块编制一些模拟其下级模块功能的“替身”模块,以代替被测模块的接口,接受或传递被测模块的数据,
14、这些专供测试用的“假”模块称为被测模块的桩模块。自顶向下综合测试的具体步骤为:以主控模块作为测试驱动模块,把对主控模块进行单元测试时引入的所有桩模块用实际模块替代;依据所选的集成策略(深度优先或广度优先),每次只替代一个桩模块;每集成一个模块立即测试一遍;只有每组测试完成后,才着手替换下一个桩模块;为避免引入新错误,须不断地进行回归测试(即全部或部分地重复已做过的测试)。从第二步开始,循环执行上述步骤,直至整个程序结构构造完毕。图2-9中,实线表示已部分完成的结构,若采用深度优先策略,下一步将用模块M7替换桩模块S7,当然M7本身可能又带有桩模块,随后将被对应的实际模块替代。最后直至桩模块S4
15、被替代完毕为止。自顶向下集成的优点在于能尽早地对程序的主要控制和决策机制进行检验,因此较早地发现错误。缺点是在测试较高层模块时,低层处理采用桩模块替代,不能反映真实情况,重要数据不能及时回送到上层模块,因此测试并不充分。解决这个问题有几种办法,第一种是把某些测试推迟到用真实模块替代桩模块之后进行,第二种是开发能模拟真实模块的桩模块;第三种是自底向上集成模块。第一种方法又回退为非增量式的集成方法,使错误难于定位和纠正,并且失去了在组装模块时进行一些特定测试的可能性;第二种方法无疑要大大增加开销;第三种方法比较切实可行,下面专门讨论。b自底向上集成自底向上测试是从“原子”模块(即软件结构最低层的模
16、块)开始组装测试,因测试到较高层模块时,所需的下层模块功能均已具备,所以不再需要桩模块。自底向上综合测试的步骤分为:把底层模块组织成实现某个子功能的模块群(cluster);开发一个测试驱动模块,控制测试数据的输入和测试结果的输出;对每个模块群进行测试;删除测试使用的驱动模块,用较高层模块把模块群组织成为完成更大功能的新模块群。从第一步开始循环执行上述各步骤,直至整个程序构造完毕。图2-10说明了上述过程。首先“原子”模块被分为三个模块群,每个模块群引入一个驱动模块进行测试。因模块群1、模块群2中的模块均隶属于模块Ma,因此在驱动模块D1、D2去掉后,模块群1与模块群2直接与Ma接口,这时可将
17、D3去掉,将Mb与模块群3直接接口,对Mb进行集成测试。这样继续下去,直至最后将驱动模块D4、D5也去掉,最后Ma、Mb和Mc全部集成在一起进行测试。自底向上集成方法不用桩模块,测试用例的设计亦相对简单,但缺点是程序最后一个模块加入时才具有整体形象。它与自顶向下综合测试方法优缺点正好相反。因此,在测试软件系统时,应根据软件的特点和工程的进度,选用适当的测试策略,有时混和使用两种策略更为有效,上层模块用自顶向下的方法,下层模块用自底向上的方法。此外,在综合测试中尤其要注意关键模块,所谓关键模块一般都具有下述一或多个特征:对应几条需求;具有高层控制功能;复杂、易出错;有特殊的性能要求。关键模块应尽
18、早测试,并反复进行回归测试。系统测试:系统测试是在集成测试通过后进行的,目的是充分运行系统,验证各子系统是否都能正常工作并完成设计的要求。它主要由测试部门进行,是测试部门最大最重要的一个测试,对产品的质量有重大的影响。计算机软件是基于计算机系统的一个重要组成部分,软件开发完毕后应与系统中其他成分集成在一起,此时需要进行一系列系统集成和确认测试。对这些测试的详细讨论已超出软件工程的范围,这些测试也不可能仅由软件开发人员完成。在系统测试之前,软件工程师应完成下列工作:为测试软件系统的输入信息设计出错处理通路;设计测试用例,模拟错误数据和软件界面可能发生的错误,记录测试结果,为系统测试提供经验和帮助
19、;参与系统测试的规划和设计,保证软件测试的合理性。系统测试应该由若干个不同测试组成,目的是充分运行系统,验证系统各部件是否都能正常工作并完成所赋予的任务。下面简单讨论几类系统测试。a恢复测试恢复测试主要检查系统的容错能力。当系统出错时,能否在指定时间间隔内修正错误并重新启动系统。恢复测试首先要采用各种办法强迫系统失败,然后验证系统是否能尽快恢复。对于自动恢复需验证重新初始化(reinitialization)、检查点(checkpointing mechanisms)、数据恢复(data recovery)和重新启动(restart)等机制的正确性;对于人工干预的恢复系统,还需估测平均修复时间
20、,确定其是否在可接受的范围内。b安全测试安全测试检查系统对非法侵入的防范能力。安全测试期间,测试人员假扮非法入侵者,采用各种办法试图突破防线。例如,想方设法截取或破译口令;专门定做软件破坏系统的保护机制;故意导致系统失败,企图趁恢复之机非法进入;试图通过浏览非保密数据,推导所需信息,等等。理论上讲,只要有足够的时间和资源,没有不可进入的系统。因此系统安全设计的准则是,使非法侵入的代价超过被保护信息的价值。此时非法侵入者已无利可图。c强度测试强度测试检查程序对异常情况的抵抗能力。强度测试总是迫使系统在异常的资源配置下运行。例如,当中断的正常频率为每秒一至两个时,运行每秒产生十个中断的测试用例;定
21、量地增长数据输入率,检查输入子功能的反应能力;运行需要最大存储空间(或其他资源)的测试用例;运行可能导致操作系统崩溃或磁盘数据剧烈抖动的测试用例,等等。d性能测试对于那些实时和嵌入式系统,软件部分即使满足功能要求,也未必能够满足性能要求,虽然从单元测试起,每一测试步骤都包含性能测试,但只有当系统真正集成之后,在真实环境中才能全面、可靠地测试运行操作系统,性能测试就是为了完成这一任务。性能测试有时与强度测试相结合,经常需要其他软硬件的配套支持。验收测试:验收测试(acceptance testing)以需求阶段的需求规格说明书为验收标准,测试时要求模拟实际用户的运行环境。对于实际项目可以和客户共
22、同进行,对于产品来说就是最后一次的系统测试。测试内容为对功能模块的全面测试,尤其要进行文档测试。验收测试是系统开发生命周期方法论的一个阶段,这时相关的用户和/或独立测试人员根据测试计划和结果对系统进行测试和接收。它让系统用户决定是否接收系统。它是一项确定产品是否能够满足合同或用户所规定需求的测试。这是管理性和防御性控制。验收测试是部署软件之前的最后一个测试操作。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。验收测试是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就
23、应该进一步验证软件的有效性,这就是验收测试的任务,即软件的功能和性能如同用户所期待的那样。通过综合测试之后,软件已完全组装起来,接口方面的错误也已排除,软件测试的最后一步确认测试即可开始。确认测试应检查软件能否按合同要求进行工作,即是否满足软件需求说明书中的确认标准。实现软件确认要通过一系列黑盒测试。确认测试同样需要制订测试计划和过程,测试计划应规定测试的种类和测试进度,测试过程则定义一些特殊的测试用例,旨在说明软件与需求是否一致。无论是计划还是过程,都应该着重考虑软件是否满足合同规定的所有功能和性能,文档资料是否完整、准确,人机界面和其他方面(例如,可移植性、兼容性、错误恢复能力和可维护性等
24、)是否令用户满意。确认测试的结果有两种可能,一种是功能和性能指标满足软件需求说明的要求,用户可以接受;另一种是软件不满足软件需求说明的要求,用户无法接受。项目进行到这个阶段才发现严重错误和偏差一般很难在预定的工期内改正,因此必须与用户协商,寻求一个妥善解决问题的方法。确认测试的另一个重要环节是配置复审。复审的目的在于保证软件配置齐全、分类有序,并且包括软件维护所必须的细节。事实上,软件开发人员不可能完全预见用户实际使用程序的情况。例如,用户可能错误的理解命令,或提供一些奇怪的数据组合,亦可能对设计者自认明了的输出信息迷惑不解,等等。因此,软件是否真正满足最终用户的要求,应由用户进行一系列“验收
25、测试”。验收测试既可以是非正式的测试,也可以有计划、有系统的测试。有时,验收测试长达数周甚至数月,不断暴露错误,导致开发延期。一个软件产品,可能拥有众多用户,不可能由每个用户验收,此时多采用称为a、b测试的过程,以便发现那些似乎只有最终用户才能发现的问题。a测试是指软件开发公司组织内部人员模拟各类用户对即将面市的软件产品(称为a版本)进行测试,试图发现错误并修正。a测试的关键在于尽可能逼真地模拟实际运行环境和用户对软件产品的操作并尽最大努力涵盖所有可能的用户操作方式。经过a测试调整的软件产品称为b版本。紧随其后的b测试是指软件开发公司组织各方面的典型用户在日常工作中实际使用b版本,并要求用户报
展开阅读全文