《最新51CTO下载-软件测试策略(共82张PPT课件).pptx》由会员分享,可在线阅读,更多相关《最新51CTO下载-软件测试策略(共82张PPT课件).pptx(82页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第一页,共八十二页。测试测试(csh)(csh)流程图流程图软件测试策略(cl)第二页,共八十二页。软件测试策略软件测试策略(cl)第三页,共八十二页。软件测试策略软件测试策略(cl)第四页,共八十二页。第五页,共八十二页。n在单元测试时,测试者需要依据详细设计说明书和源程序清单,了解该模块的I/O条件和模块的逻辑结构,主要采用白盒测试的测试用例,辅之以黑盒测试的测试用例,使之对任何合理的输入(shr)和不合理的输入(shr),都能鉴别和响应。第六页,共八十二页。第七页,共八十二页。n在单元测试的开始,应对进行测试。测试项目包括:n 调用本模块的输入参数是否正确(zhngqu);n 本模块调用
2、子模块时输入给子模块的参数是否正确;n 全局量的定义在各模块中是否一致; 第八页,共八十二页。n在做时要考虑:n 文件属性是否正确;n OPEN与CLOSE语句是否正确;n 缓冲区容量与记录长度是否匹配;n 在进行读写操作之前(zhqin)是否打开了文件;n 在结束文件处理时是否关闭了文件;n 正文书写输入错误,n IO错误是否检查并做了处理。第九页,共八十二页。n不正确或不一致的数据类型说明n使用尚未赋值或尚未初始化的变量n错误的初始值或错误的缺省值n变量名拼写(pnxi)错或书写错n不一致的数据类型n全局数据对模块的影响 第十页,共八十二页。n选择适当(shdng)的测试用例,对模块中进行
3、测试。n应当设计测试用例查找由于、或而导致的错误。n对基本执行路径和循环进行测试可以发现大量的路径错误。第十一页,共八十二页。n出错的描述是否难以理解(lji)n出错的描述是否能够对错误定位n显示的错误与实际的错误是否相符n对错误条件的处理正确与否n在对错误进行处理之前,错误条件是否已经引起系统的干预等第十二页,共八十二页。n注意(zh y)数据流、控制流中刚好等于、大于或小于确定的比较值时出错的可能性。对这些地方要仔细地选择测试用例,认真加以测试。n如果对模块运行时间有要求的话,还要专门进行关键路径测试,以确定最坏情况下和平均意义下影响模块运行时间的因素。第十三页,共八十二页。n模块并不是一
4、个独立的程序,在考虑测试模块时,同时要考虑它和外界的联系,用一些(yxi)辅助模块去模拟与被测模块相联系的其它模块。n n 存根模块第十四页,共八十二页。第十五页,共八十二页。n如果一个模块要完成多种功能,可以将这个模块看成由几个小程序组成。必须对其中的每个小程序先进行单元测试要做的工作,对关键模块还要做性能测试。n对支持某些标准规程的程序,更要着手进行互联测试。有人把这种情况特别(tbi)称为模块测试,以区别单元测试。第十六页,共八十二页。 主要测试以下五个方面:主要测试以下五个方面:1、模块接口:、模块接口: 内部检查:传输参数的数目、属性、单位、次序内部检查:传输参数的数目、属性、单位、
5、次序是否是否(sh fu)匹配;全程变量的定义是否匹配;全程变量的定义是否(sh fu)一致;只一致;只做输入的变元有无被修改,等等。做输入的变元有无被修改,等等。 外部检查:打开、结束、关闭文件的操作;文件和属外部检查:打开、结束、关闭文件的操作;文件和属性;性;IO错误处理;输出拼写,等等。错误处理;输出拼写,等等。2、局部数据结构:、局部数据结构: 数据说明数据说明(declaration);初始化与缺省值的设置;初始化与缺省值的设置;变量名拼写;数据类型的相容性;上变量名拼写;数据类型的相容性;上下溢出及地址异下溢出及地址异常,等等。常,等等。第十七页,共八十二页。3、重要的执行通路:
6、、重要的执行通路: 由于穷尽测试由于穷尽测试(csh)不可能,故通常针对最常见的错误不可能,故通常针对最常见的错误设计测试设计测试(csh)方案。较常见的错误有:方案。较常见的错误有:n计算次序问题计算次序问题n不同类型混合运算(例:比较类型不同的量)不同类型混合运算(例:比较类型不同的量)n初值设置错误初值设置错误n精度问题(例:精度不够导致两变量不可能相等,而程序精度问题(例:精度不够导致两变量不可能相等,而程序中等待相等条件的出现)中等待相等条件的出现)n表达式错误表达式错误n循环终止条件错误循环终止条件错误(例:次数差例:次数差1,或陷入死循环,或陷入死循环)第十八页,共八十二页。4、
7、出错处理通路:、出错处理通路: 预见出现预见出现(chxin)错误的条件,设置处理。较常错误的条件,设置处理。较常见的问题有:见的问题有: 输出的错误信息难以理解,不能确定错误位置输出的错误信息难以理解,不能确定错误位置 描述的错误与实际错误不符描述的错误与实际错误不符 处理之前系统已经干预处理之前系统已经干预 处理不正确处理不正确第十九页,共八十二页。1、代码审查、代码审查(code inspection) Walk-through: 例如例如 Lucent Technologies 的测试的测试策略,是由三人一组策略,是由三人一组(包括包括 author, reader, 和和record
8、er),逐行检查源代码。逐行检查源代码。 Rehearsal:由人扮演由人扮演(bnyn)computer,模拟执行情况模拟执行情况优点优点: 一次审查可发现多个错误一次审查可发现多个错误(cuw),不必改一个测一个。,不必改一个测一个。单元测试的主要单元测试的主要(zhyo)手段手段 :2、制做测试软件:、制做测试软件:Stub (存根)和存根)和 Driver(驱动)驱动)软件的编写,属额外开支。模块高内聚可简化这一软件的编写,属额外开支。模块高内聚可简化这一过程。过程。第二十页,共八十二页。u代码审查通常在开发人员之间开展,用眼睛检查代码是否代码审查通常在开发人员之间开展,用眼睛检查代码
9、是否符合编程规范。为什么有了软件测试,还要代码审查?符合编程规范。为什么有了软件测试,还要代码审查?u因为代码审查有一些独到的优点,可以弥补软件测试的不因为代码审查有一些独到的优点,可以弥补软件测试的不足:足:(1)软件测试不能发现)软件测试不能发现(fxin)代码风格不统一的问题,而代码代码风格不统一的问题,而代码审查则很容易做到;审查则很容易做到;(2)有经验的人可以一目十行地审查代码,很快就能抓住)有经验的人可以一目十行地审查代码,很快就能抓住一些一些Bug(主要是常见的主要是常见的Bug)。)。u开发小组在执行代码审查之前要制定开发小组在执行代码审查之前要制定“代码审查表代码审查表”,
10、从,从编程规范中提取最重要的规则。编程规范中提取最重要的规则。 u为了提高代码审查效率,检查者不必给每一个检查项填写为了提高代码审查效率,检查者不必给每一个检查项填写结论,凡是正确的就跳过去,仅仅记录缺陷就行了。结论,凡是正确的就跳过去,仅仅记录缺陷就行了。 第二十一页,共八十二页。第二十二页,共八十二页。第二十三页,共八十二页。第二十四页,共八十二页。第二十五页,共八十二页。n它是一种非增殖式组装方式。也叫做整体拼装。n使用这种方式,首先对每个模块分别进行模块测试,然后再把所有模块组装在一起进行测试,最终(zu zhn)得到要求的软件系统。第二十六页,共八十二页。第二十七页,共八十二页。n这
11、种组装方式又称n首先对一个个模块进行模块测试(csh),然后将这些模块逐步组装成较大的系统n在组装的过程中边连接边测试,以发现连接过程中产生的问题n通过增殖逐步组装成为要求的软件系统。第二十八页,共八十二页。n这种组装方式将模块,。n自顶向下的增殖方式在测试过程(guchng)中较早地验证了主要的控制和判断点。n选用按深度方向组装的方式,可以首先实现和验证一个完整的软件功能。第二十九页,共八十二页。第三十页,共八十二页。n这种组装的方式是从。n因为模块是自底向上进行组装,对于一个给定层次的模块,它的子模块(包括子模块的所有下属模块)已经组装并测试完成,所以。在模块的测试过程中需要从子模块得到的
12、信息(xnx)可以直接运行子模块得到。第三十一页,共八十二页。n自顶向下增殖(zngzh)的方式和自底向上增殖(zngzh)的方式各有优缺点。n一般来讲,一种方式的优点是另一种方式的缺点。第三十二页,共八十二页。n 首先对输入(shr)输出模块和引入新算法模块进行测试;n 再自底向上组装成为功能相当完整且相对独立的子系统;n 然后由主模块开始自顶向下进行增殖测试。第三十三页,共八十二页。n 首先对含读操作的子系统自底向上直至根结点模块进行组装和测试;n 然后对含写操作的子系统做自顶向下的组装与测试。n 这种方式(fngsh)采取自顶向下的方式(fngsh)测试被修改的模块及其子模块;n 然后将
13、这一部分视为子系统,再自底向上测试。第三十四页,共八十二页。n在组装测试时,应当确定关键模块,对这些关键模块及早进行测试。n关键模块的特征: 满足某些软件需求; 在程序的模块结构中位于较高的层次(高层控制模块); 较复杂、较易发生错误(cuw); 有明确定义的性能要求。第三十五页,共八十二页。1、非渐增式测试、非渐增式测试(csh) (Big-bang testing)Test A,B, C, DTestATestBTestCTestD第三十六页,共八十二页。两种方式的比较:两种方式的比较: Incremental testing 可以较早发现模块间的接口错误;可以较早发现模块间的接口错误;B
14、ig-bang testing 最后才组装,因此错误发现得晚。最后才组装,因此错误发现得晚。 Big-bang testing 中发现错误后难以诊断定位;中发现错误后难以诊断定位; Incremental testing 中,出现的错误往往跟最新加入的模块中,出现的错误往往跟最新加入的模块有关。有关。 Incremental testing 在不断在不断(bdun)集成的过程中使模块不断集成的过程中使模块不断(bdun)在新的条件下受到新的检测,测试更彻底。在新的条件下受到新的检测,测试更彻底。 Incremental testing 较较 Big-bang testing 费时。费时。 Bi
15、g-bang testing 可以同时并行测试所有模块,能充分利可以同时并行测试所有模块,能充分利用人力。用人力。2、渐增式测试、渐增式测试(csh) (Incremental testing)第三十七页,共八十二页。 Top-down testing第第1步:测试顶端模块,用存根程序步:测试顶端模块,用存根程序(stub)代替代替(dit)直直接附属的下层模块接附属的下层模块 Stub: to simulate the activity of the component which is not yet tested.3、Incremental testing 的几种的几种(j zhn)策略
16、策略MS1S2第三十八页,共八十二页。第第2步:根据深度优先或宽度优先的策略,每次用一步:根据深度优先或宽度优先的策略,每次用一个实际个实际(shj)模块代换一个模块代换一个stub。第第3步:在结合步:在结合(jih)进一个模块的同时进行测试。进一个模块的同时进行测试。MS1S2S3S4第第4步:回归测试步:回归测试(regression testing)全部或部分全部或部分(b fen)地重复以前做过的测试。地重复以前做过的测试。第三十九页,共八十二页。 Bottom - up testing第第1步:把低层模块组合成族,每族实现一个子功能。步:把低层模块组合成族,每族实现一个子功能。第第
17、2步:用驱动程序步:用驱动程序(Driver)协调协调(xitio)测试数据的测试数据的IO,测试子测试子功能族。功能族。优点:在早期即对主要控制及关键的抉择进行检验。优点:在早期即对主要控制及关键的抉择进行检验。问题:问题:Stub只是对低层模块的模拟,测试只是对低层模块的模拟,测试(csh)时没有重要的时没有重要的数据自下往上流,许多重要的测试数据自下往上流,许多重要的测试(csh)须推迟进行,须推迟进行,而且在早期不能充分展开人力。而且在早期不能充分展开人力。Driver: to call a particular component and passes a test case to
18、it.DM1M2第四十页,共八十二页。第第3 3步:去掉步:去掉DriverDriver,自下而上把子功能自下而上把子功能(gngnng)(gngnng)族族合成更大的子功能合成更大的子功能(gngnng)(gngnng)族。族。MMMMMMMMMMMM注意:注意:两种策略的两种策略的优、缺点刚好互补,优、缺点刚好互补,但单用其中任一种都但单用其中任一种都不实际,通常根据软不实际,通常根据软件件(run jin)的特点将二的特点将二者混用。者混用。第四十一页,共八十二页。第四十二页,共八十二页。任务:验收软件任务:验收软件(run jin)的有效性(功能和性能达标)。的有效性(功能和性能达标)
19、。手段:黑盒测试;用户参与;主要用实际数据进行测试。手段:黑盒测试;用户参与;主要用实际数据进行测试。内容:按合同规定审查软件配置;内容:按合同规定审查软件配置; 设设计测试计划,使通过测试保证软件能满足所有计测试计划,使通过测试保证软件能满足所有功能、性能要求;功能、性能要求; 文档与程文档与程序一致,具有维护阶段所必须的细节;序一致,具有维护阶段所必须的细节; 严格按用户手册操作,以检查手册的完整性和严格按用户手册操作,以检查手册的完整性和正确性。正确性。第四十三页,共八十二页。第四十四页,共八十二页。第四十五页,共八十二页。第四十六页,共八十二页。第四十七页,共八十二页。第四十八页,共八
20、十二页。第四十九页,共八十二页。n在测试过程中,除了考虑软件的功能和性能外,还应对软件的可移植性、兼容性、可维护性、错误的恢复功能等进行确认(qurn)。n确认测试应交付的文档有:n 确认测试分析报告n 最终的用户手册和操作手册n 项目开发总结报告。第五十页,共八十二页。n系统测试,是将通过确认测试的软件,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素结合在一起,对计算机系统进行一系列的组装测试和确认测试。n系统测试的目的在于。第五十一页,共八十二页。n在软件交付使用之后,用户将如何实际使用程序,对于开发者来说是无法预测的。n测试是由一个(y )用户在开发环境下进行的测试,也可以是
21、公司内部的用户在模拟实际操作环境下进行的测试。第五十二页,共八十二页。n测试的目的是评价软件产品的FLURPS(即功能、局域化、可使用性、可靠性、性能和支持)。尤其注重产品的界面和特色。n测试可以从软件产品编码结束之时开始,或在模块(子系统)测试完成之后开始,也可以在确认测试过程中产品达到一定(ydng)的稳定和可靠程度之后再开始。第五十三页,共八十二页。n测试是由软件(run jin)的多个用户在实际使用环境下进行的测试。这些用户返回有关错误信息给开发者。n测试时,开发者通常不在测试现场。因而,测试是在开发者无法控制的环境下进行的软件现场应用。n在测试中,由用户记下遇到的所有问题,包括真实的
22、以及主观认定的,定期向开发者报告。第五十四页,共八十二页。主要衡量产品的FLURPS。着重于产品的支持性,包括文档、客户培训和支持产品生产能力。n只有当达到一定的可靠程度时,才能开始。它处在整个测试的最后阶段。同时,产品的所有手册文本也应该在此阶段完全(wnqun)定稿。第五十五页,共八十二页。n软件测试是由一系列不同的测试组成。主要目的是对以计算机为基础的系统进行充分的测试。功能(gngnng)测试是在规定的一段时间内运行软件系统的所有功能(gngnng),以验证这个软件系统有无严重错误。第五十六页,共八十二页。n可靠性测试n如果系统需求说明书中有对可靠性的要求,则需进行可靠性测试。n 平均
23、失效间隔时间 MTBF (Mean Time Between Failures) 是否超过规定时限? 因故障而停机的时间(shjin) MTTR (Mean Time To Repairs) 在一年中应不超过多少时间。第五十七页,共八十二页。n强度测试n强度测试是要检查在系统运行环境不正常乃至发生故障的情况下,系统可以运行到何种程度的测试。例如:n 把输入数据速率提高一个数量级,确定输入功能将如何响应。n 设计需要(xyo)占用最大存储量或其它资源的测试用例进行测试。 第五十八页,共八十二页。n 设计出在虚拟存储管理机制中引起“颠簸”的测试用例进行测试。n 设计出会对磁盘常驻内存的数据过度访问
24、的测试用例进行测试。n强度测试的一个变种就是敏感性测试。在程序有效数据界限内一个小范围内的一组数据可能引起极端的或不平稳的错误处理出现,或者导致极度的性能下降的情况发生。此测试用以发现可能引起这种不稳定性或不正常(zhngchng)处理的某些数据组合。第五十九页,共八十二页。性能测试是要检查(jinch)系统是否满足在需求说明书中规定的性能。特别是对于实时系统或嵌入式系统。性能测试常常需要与强度测试结合起来进行,并常常要求同时进行硬件和软件检测。n通常,对软件性能的检测表现在以下几个方面:、,例如缓冲区,工作区的大小等、,等等。第六十页,共八十二页。恢复测试是要证实在克服硬件故障(包括掉电、硬
25、件或网络出错等)后,系统能否正常地继续进行工作,并不对系统造成任何损害n为此,可采用各种人工干预的手段,模拟硬件故障,故意造成软件(run jin)出错。并由此检查:n 系统能否发现硬件失效与故障;第六十一页,共八十二页。n 能否;n 在故障发生时能否;n 在系统恢复后能否,等等。n :其目的(md)是测试软件系统在发生电源中断时能否保护当时的状态且不毁坏数据,然后在电源恢复时从保留的断点处重新进行操作。第六十二页,共八十二页。这类测试的目的是验证在机器启动及关机阶段,软件系统正确处理的能力。这类测试包括n (例如,操作系统自举、网络的启动、应用程序的调用等)n 。第六十三页,共八十二页。n这
26、类测试是要检查计算机系统内各个设备或各种资源之间的相互联结和功能分配中的错误。n它主要包括以下几种:验证全部配置命令的可操作性(有效性);特别对最大配置和最小配置要进行测试。软件(run jin)配置和硬件配置都要测试。第六十四页,共八十二页。n :证明对每个设备物理与逻辑的,逻辑与功能的每次循环置换配置都能正常工作。n :检查每种配置状态及哪个设备是坏的。并用自动的或手工的方式进行(jnxng)配置状态间的转换。第六十五页,共八十二页。安全性测试是要检验在系统(xtng)中已经存在的系统(xtng)安全性、保密性措施是否发挥作用,有无漏洞。n力图破坏系统的保护机构以进入系统的主要方法有以下几
27、种:n 正面攻击或从侧面、背面攻击系统中易受损坏的那些部分;n 以系统输入为突破口,利用输入的容错性进行正面攻击;第六十六页,共八十二页。n 申请和占用过多的资源压垮系统,以破坏安全措施,从而进入系统;n 故意使系统出错,利用系统恢复的过程,窃取用户口令(kulng)及其它有用的信息;n 通过浏览残留在计算机各种资源中的垃圾(无用信息),以获取如口令,安全码,译码关键字等信息;n 浏览全局数据,期望从中找到进入系统的关键字;n 浏览那些逻辑上不存在,但物理上还存在的各种记录和资料等。 第六十七页,共八十二页。n可使用性测试主要从使用的和等角度对软件系统进行检查,发现人为因素或使用上的问题。n要
28、保证在足够详细的程度下,;、;、。第六十八页,共八十二页。这类测试是要验证系统的支持策略对于公司与用户方面是否切实可行。n它所采用的方法是n (如对有错部分打补丁的过程,热线界面等);n 对其结果(ji gu)进行;n ;n ;n 。第六十九页,共八十二页。安装测试的目的不是找软件错误,而是找安装错误。n在安装软件系统时,会有多种选择。n 要分配和装入文件与程序库n 布置适用的硬件配置n 进行程序(chngx)的联结。n而安装测试就是要找出在这些安装过程中出现的错误。第七十页,共八十二页。n安装测试是在系统安装之后进行测试。它要检验:n 用户选择的一套任选方案是否相容;n 系统的每一部分是否都
29、齐全;n 所有文件是否都已产生并确有所需要的内容(nirng);n 硬件的配置是否合理,等等。第七十一页,共八十二页。n在一些大型的系统中,部分工作由软件自动完成,其它工作则需由各种人员,包括操作员,数据库管理员,终端用户等,按一定规程同计算机配合,靠人工来完成。,这就是所谓的过程测试。第七十二页,共八十二页。n互连测试是要验证两个或多个(du )不同的系统之间的互连性。n这类测试主要想验证软件产品在不同版本之间的兼容性。有两类基本的兼容性测试:n 第七十三页,共八十二页。n容量测试是要检验系统的能力最高能达到什么程度。例如,n 对于(duy)编译程序,让它处理特别长的源程序n 对于操作系统,
30、让它的作业队列“满员”;n 对于信息检索系统,让它使用频率达到最大。在使系统的的情形下,。第七十四页,共八十二页。这种测试是检查(jinch)用户文档(如用户手册)的清晰性和精确性。n用户文档中所使用的例子必须在测试中一一试过,确保叙述正确无误。第七十五页,共八十二页。n 一条一条(y tio)(y tio)测试规律测试规律 一般情况下,在分析、设计、实现阶段的复审和测一般情况下,在分析、设计、实现阶段的复审和测试工作能够发现和避免试工作能够发现和避免80%80%的的BugBug,而系统而系统(xtng)(xtng)测试又测试又能找出其余能找出其余BugBug中的中的80%80%,最后的,最后
31、的5%5%的的BugBug可能只有可能只有在用户的大范围、长时间使用后才会曝露出来。因为在用户的大范围、长时间使用后才会曝露出来。因为测试只能够保证尽可能多地发现错误,无法保证能够测试只能够保证尽可能多地发现错误,无法保证能够发现所有的错误。发现所有的错误。 测试测试(csh)策略策略第七十六页,共八十二页。测试(csh)的组织通常,测试内部的个体分为测试人员和支持人员(管理人员属于支持人员)。测试的工作(gngzu)实体(最小组织单位)是测试小组和支持小组,分别由小组长全权负责。小组长向测试主管负责。 测试组织的方式测试组织的方式(fngsh)与结构与结构第七十七页,共八十二页。测试(csh
32、)的组织一般地,测试小组根据测试项目或评测项目的需要临时组建,小组长也是临时指定。与项目组的最大区别是生命周期短,一般是2周到4个月。在系统测试期间或系统评测期间,测试组长负责整个测试的计划、组织工作,对内完全负责组员的工作安排、工作检查和进度管理。测试组的其他成员由具有一定的分析、设计和测试经验的专业人员组成,人数(rn sh)根据具体情况可多可少,一般3人为宜。 第七十八页,共八十二页。测试(csh)的组织支持(zhch)小组按照内部相关条例负责测试的后勤保障和日常管理工作,机构设置一般相对比较稳定。主要负责文档管理、测试理论和技术应用、网络管理、数据备份、设备管理和维护、员工内部培训、日
33、常事务管理和检查等。 第七十九页,共八十二页。测试(csh)的组织测试工程师的素质测试工程师的素质 沟通沟通(gutng)能力能力 技术概念和能力技术概念和能力 熟悉业务的能力熟悉业务的能力 强的记忆力强的记忆力 耐心耐心 强的责任心强的责任心 洞察力洞察力第八十页,共八十二页。测试测试(csh)的组的组织织第八十一页,共八十二页。内容(nirng)总结软件测试策略。模块并不是一个独立的程序,在考虑测试模块时,同时要考虑它和外界的联系,用一些辅助模块去模拟与被测模块相联系的其它模块。一个模块的功能是否会对另一个模块的功能产生不利的影响。这种组装的方式是从程序模块结构的最底层的模块开始(kish)组装和测试。因为模块是自底向上进行组装,对于一个给定层次的模块,它的子模块(包括子模块的所有下属模块)已经组装并测试完成,所以不再需要桩模块第八十二页,共八十二页。