软件测试,从零起步!

上传人:第*** 文档编号:54394900 上传时间:2018-09-12 格式:PPT 页数:36 大小:446.50KB
返回 下载 相关 举报
软件测试,从零起步!_第1页
第1页 / 共36页
软件测试,从零起步!_第2页
第2页 / 共36页
软件测试,从零起步!_第3页
第3页 / 共36页
软件测试,从零起步!_第4页
第4页 / 共36页
软件测试,从零起步!_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《软件测试,从零起步!》由会员分享,可在线阅读,更多相关《软件测试,从零起步!(36页珍藏版)》请在金锄头文库上搜索。

1、2018/9/12,http:/ 测试目标 测试原则(重点) 测试模型(重点) 测试方法(重点) 测试分类(重点) 测试工具(重点) 测试文档(重点) 职业规划 外包软件测试 面试技巧,2018/9/12,http:/ 软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。 使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别.,2018/9/12,http:/ 2实施测

2、试来降低所发现的风险 3确定测试何时可以结束 4在开发项目的过程中将测试看作是一个标准项目,2018/9/12,http:/ W模型(重点) H模型 X模型 前置模型,2018/9/12,http:/ 集成测试 系统测试 实现意义 V模型是软件开发瀑布模型的变种,它反映了测试活动与分析和设计的关系 。 从左到右,描述了基本的开发过程和测试行为,非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系 。 左边依次下降的是开发过程各阶段,与此相对应的是右边依次上升的部分,即各测试过程的各个阶段。 用户需求 验收测试 需求分析和系统设计 确认测试和系统测

3、试 概要设计 集成测试 详细设计 单元测试 编码 软件测试V模型 V模型问题 1.测试是开发之后的一个阶段。 2.测试的对象就是程序本身。 3.实际应用中容易导致需求阶段的错误一直到最后系统测试阶段才被发现。 4.整个软件产品的过程质量保证完全依赖于开发人员的能力和对工作的责任心,而且上一步的结果必须是充分和正确的,如果任何一个环节出了问题,则必将严重的影响整个工程的质量和预期进度,2018/9/12,http:/ 软件测试过程活动完全独立,贯穿于整个产品的周期,与其他流程并发地进行,某个测试点准备就绪时,就可以从测试准备阶段进行到测试执行阶段。软件测试可以尽早的进行,并且可以根据被测物的不同

4、而分层次进行。 软件测试 这个示意图演示了在整个生产周期中某个层次上的一次测试“微循环”。图中标注的其它流程可以是任意的开发流程,例如设计流程或者编码流程。也就是说, 只要测试条件成熟了,测试准备活动完成了,测试执行活动就可以进行了。 H模型揭示了一个原理:软件测试是一个独立的流程,贯穿产品整个生命周期,与其他流程并发地进行。H模型指出软件测试要尽早准备, 尽早执行。不同的测试活动可以是按照某个次序先后进行的,但也可能是反复的,只要某个测试达到准备就绪点,测试执行活动就可以开展。,2018/9/12,http:/ W模型强调:测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、设计等

5、同样要测试,也就是说,测试与开发是同步进行的。W模型有利于尽早地全面的发现问题。例如,需求分析完成后,测试人员就应该参与到对需求的验证和确认活动中,以尽早地找出缺陷所在。同时,对需求的测试也有利于及时了解项目难度和测试风险,及早制定应对措施,这将显著减少总体测试时间,加快项目进度。 但W模型也存在局限性。在W模型中,需求、设计、编码等活动被视为串行的,同时,测试和开发活动也保持着一种线性的前后关系,上一阶段完全结束,才可正式开始下一个阶段工作。这样就无法支持迭代的开发模型。对于当前软件开发复杂多变的情况,W模型并不能解除测试管理面临着困惑。,2018/9/12,http:/ 边界值分析 因果图

6、法(决策表),2018/9/12,http:/ 从是否关心软件内部结构和具体实现的角度划分 A.白盒测试 B.黑盒测试 C.灰盒测试 从是否执行程序的角度 A.静态测试 B.动态测试。 阶段细分 从软件开发的过程按阶段划分有 A.单元测试 B.集成测试 C.确认测试 D.系统测试 E.验收测试,2018/9/12,http:/ 测试过程按4个步骤进行,即单元测试、集成测试、确认测试和系统测试及发版测试。 * 开始是单元测试,集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能。 * 集成测试把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试

7、。 * 确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。 * 系统测试把已经经过确认的软件纳入实际运行环境中,与其它系统成份组合在一起进行测试。,2018/9/12,http:/ (Unit Testing),* 单元测试又称模块测试,是针对软件设计的最小单位 程序模块,进行正确性检验的测试工作。其目的在于发现各模块内部可能存在的各种差错。 * 单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。,2018/9/12,http:/ (Unit Testing),1. 单元测试的内容 * 在单元测试时,测试者需要依

8、据详细设计说明书和源程序清单,了解该模块的I/O条件和模块的逻辑结构,主要采用白盒测试的测试用例,辅之以黑盒测试的测试用例,使之对任何合理的输入和不合理的输入,都能鉴别和响应。 (1) 模块接口测试 * 在单元测试的开始,应对通过被测模块的数据流进行测试。测试项目包括: 调用本模块的输入参数是否正确; 本模块调用子模块时输入给子模块的参数是否正确; 全局量的定义在各模块中是否一致 * 在做内外存交换时要考虑: 文件属性是否正确; OPEN与CLOSE语句是否正确; 缓冲区容量与记录长度是否匹配; 在进行读写操作之前是否打开了文件; 在结束文件处理时是否关闭了文件; 正文书写/输入错误, I/O

9、错误是否检查并做了处理。 (2) 局部数据结构测试 * 不正确或不一致的数据类型说明 * 使用尚未赋值或尚未初始化的变量 * 错误的初始值或错误的缺省值 * 变量名拼写错或书写错 * 不一致的数据类型 * 全局数据对模块的影响 (3) 路径测试 * 选择适当的测试用例,对模块中重要的执行路径进行测试。 * 应当设计测试用例查找由于错误的计算、不正确的比较或不正常的控制流而导致的错误。 * 对基本执行路径和循环进行测试可以发现大量的路径错误。 (4) 错误处理测试 * 出错的描述是否难以理解 * 出错的描述是否能够对错误定位 * 显示的错误与实际的错误是否相符 * 对错误条件的处理正确与否 *

10、在对错误进行处理之前,错误条件是否已经引起系统的干预等 (5) 边界测试 * 注意数据流、控制流中刚好等于、大于或小于确定的比较值时出错的可能性。对这些地方要仔细地选择测试用例,认真加以测试。 * 如果对模块运行时间有要求的话,还要专门进行关键路径测试,以确定最坏情况下和平均意义下影响模块运行时间的因素。,2018/9/12,http:/ (Unit Testing),2. 单元测试的步骤 * 模块并不是一个独立的程序,在考虑测试模块时,同时要考虑它和外界的联系,用一些辅助模块去模拟与被测模块相联系的其它模块。 驱动模块 (driver) 桩模块 (stub) 存根模块 * 如果一个模块要完成

11、多种功能,可以将这个模块看成由几个小程序组成。必须对其中的每个小程序先进行单元测试要做的工作,对关键模块还要做性能测试。 * 对支持某些标准规程的程序,更要着手进行互联测试。有人把这种情况特别称为模块测试,以区别单元测试。,2018/9/12,http:/ Testing),* 集成测试 (集成测试、联合测试) * 通常,在单元测试的基础上,需要将所有模块按照设计要求组装成为系统。这时需要考虑的问题是: 在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失; 一个模块的功能是否会对另一个模块的功能产生不利的影响 各个子功能组合起来,能否达到预期要求的父功能; 全局数据结构是否有问题; 单个

12、模块的误差累积起来,是否会放大,从而达到不能接受的程度。 在单元测试的同时可进行集成测试, 发现并排除在模块连接中可能出现 的问题,最终构成要求的软件系统。 * 子系统的集成测试特别称为部件测试,它所做的工作是要找出集成后的子系统与系统需求规格说明之间的不一致。 * 通常,把模块集成成为系统的方式有两种 一次性集成方式 增殖式集成方式,2018/9/12,http:/ Testing),1. 一次性集成方式(big bang) * 它是一种非增殖式组装方式。也叫做整体拼装。 * 使用这种方式,首先对每个模块分别进行模块测试,然后再把所有模块组装在一起进行测试,最终得到要求的软件系统。 2. 增

13、殖式集成方式 * 这种集成方式又称渐增式集成 * 首先对一个个模块进行模块测试,然后将这些模块逐步组装成较大的系统 * 在集成的过程中边连接边测试,以发现连接过程中产生的问题 * 通过增殖逐步组装成为要求的软件系统。 (1) 自顶向下的增殖方式 * 这种集成方式将模块按系统程序结构,沿控制层次自顶向下进行组装。 * 自顶向下的增殖方式在测试过程中较早地验证了主要的控制和判断点。 * 选用按深度方向组装的方式,可以首先实现和验证一个完整的软件功能。 (2) 自底向上的增殖方式 * 这种集成的方式是从程序模块结构的最底层的模块开始集成和测试。 * 因为模块是自底向上进行组装,对于一个给定层次的模块

14、,它的子模块(包括子模块的所有下属模块)已经组装并测试完成,所以不再需要桩模块。在模块的测试过程中需要从子模块得到的信息可以直接运行子模块得到。 * 自顶向下增殖的方式和自底向上增殖的方式各有优缺点。 * 一般来讲,一种方式的优点是另一种方式的缺点。 (3) 混合增殖式测试 * 衍变的自顶向下的增殖测试 首先对输入/输出模块和引入新算法模块进行测试; 再自底向上组装成为功能相当完整且相对独立的子系统; 然后由主模块开始自顶向下进行增殖测试。 * 自底向上-自顶向下的增殖测试 首先对含读操作的子系统自底向上直至根结点模块进行组装和测试; 然后对含写操作的子系统做自顶向下的组装与测试。 * 回归测试 这种方式采取自顶向下的方式测试被修改的模块及其子模块; 然后将这一部分视为子系统,再自底向上测试。 关键模块问题 * 在组装测试时,应当确定关键模块,对这些关键模块及早进行测试。 * 关键模块的特征: 满足某些软件需求 在程序的模块结构中位于较高的层次(高层控制模块) 较复杂、较易发生错误 有明确定义的性能要求。,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号