




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
测 试 知 识 总 结 测试分类单元测试构造测试集成测试系统测试交付测试 单元测试l 概要l 优点l 步骤l 注意事项单元测试概要单元测试(unit testing)也称为模块测试,是指对软件中的最小可测试单元进行检查和验证。是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。与单元测试联系起来的另外一些开发活动包括代码走读(Code review),静态分析(Static analysis)和动态分析(Dynamic analysis)。1. 静态分析: 对源代码进行研读,查找错误或收据度量数据。2. 动态分析:观察软件运行时动作来执行跟踪,时间分析以及测试覆盖度方面的信息。优点【优点一】:是一种验证行为,程序每个功能都是测试验证其正确性,为代码重构提供保障。【优点二】:是一种设计行为,先写测试(test-first),迫使我们把程序设计成易于调用和可测试的,解除了软件中的耦合。【优点三】:是一种编写文档的行为,单元测试是无价的文档,可编译可运行且永远保持最新。【优点四】: 具有回归性。自动化的单元测试避免了代码出现回归,编写完成之后,可以随时随地的快速运行测试。步骤【step1】理解需求和设计搞清楚被测试模块在整个软件中所处的位置以及功能。【step2】揽概源代码1. 初步检查编码标准和规范2. 大致估算测试工作量3. 确定模块复杂程度【step3】精读源代码1. 理解业务逻辑2. 检查代码与设计是否相符3. 采用检查列表来检查程序可能会出现的问题【step4】设计测试用例综合白盒测试方法(和结合黑盒测试方法)来设计测试用例,包括功能测试、性能测试,要达到一定的测试覆盖率。【step5】搭建单元测试环境 搭建单元测试环境要避免在main函数中使用printf和scanf函数来跟测试人员交互来达到获取测试用例数据的信息和结果。【step6】执行测试【step7】补充和完善测试用例【step8】分析结果,给出评价根据测试的结果分析、查找错误的原因,并找到解决的办法。测试结束之后,根据测试过程的数据统计,给出被测试对象评价并写成报告提交。注意事项1. 对于C+,所有在源文件编写实现的函数都要进行测试(构造函数和析构函数除外)。单元测试应该由程序员完成。2. 单元测试应避免编写桩代码。 3. 编码完成并编译通过后才能开始进行单元测试。构造测试构造测试概要构造测试是对类的构造函数进行测试,属于单元测试的一部分。构造函数是类的一种特殊方法,用来在创建对象时初始化对象 即为对象成员变量赋初始值。目的:验证被传递给构造函数的参数是否被设置成正确的属性值。 构造函数测试用例 1 .类能看到可读的属性值2.类不能看到可读的属性值集成测试l 概要l 分类l 步骤l 注意事项集成测试概要集成测试(也叫组装测试,联合测试)是单元测试的逻辑扩展。将已经测试过的单元组合为一个组件测试它们之间的接口。一个有效的集成测试有助于解决相关的软件与其它系统的兼容性和可操作性的问题,而且能间接地验证概要设计是否具有可行性。集成测试的测试技术:1. 功能性测试:使用黑盒测试技术针对被测模块的接口规格说明进行测试。2. 非功能性测试:对模块的性能和可靠性测试。集成测试的组装方式:1. 一次性组装方式2. 增值式组装方式目的:确保各单元组合在一起后能够按既定意图协作运行,并确保增量的行为正确。它所测试的内容包括单元间的接口以及集成后的功能。使用黑盒测试方法测试集成的功能,并且对以前的集成进行回归测试。分类(实施方案)1. 自底向上集成测试(Bottom-Up Integration)从程序模块结构中最底层的模块开始组装和测试。2. 自顶向下集成测试(Top-Down Integration)方式是一个递增的组装软件结构的方法,从主控模块(主程序)开始沿控制层向下移动。方法一:先深度;方法二:先宽度。3. Big-Bang集成测试4. 三明治集成测试5. 核心集成测试6. 分层集成测试7. 基于使用的集成测试步骤自底向上集成测试【step1】根据概要设计明确被测模块。 【step2】按时间线序关系,将软件单元集成为模块群,并进行测试。【step3】将各软件模块集成为子系统(分系统)。检测是否能正常工作。【step4】将各子系统集成为最终用户系统,测试是否存在各分系统存在的问题,并测试能否在最终用户系统中正常工作。自顶向下集成测试【step1】主控模块作为测试驱动程序,其直接下属模块用承接模块来代替。【step2】根据所选择的集成测试法(先深度/先宽度),每次用实际模块代替下属的承接模块。【step3】组合每个实际模块时都要进行测试。【step4】完成一组测试后再用一个实际模块代替另一个承接模块。【step5】回归测试注意事项1. 自底向上集成测试:最为常用,优点:管理方便,测试人员能较好地锁定软件故障所在位置,但XP开发方法不适合;缺点:程序最后模块加入时才有整体形象。2. 自顶向下集成测试:优点:能尽早的对程序的主要控制和策略进行检测。缺点:测试到高层模块时,底层模块用桩替代,主要数据无法及时返回至上层模块,造成测试不充分。3. 综合其优缺点最好的方案是:上层用自顶向下,下层用自底向上。4. 自底向上集成测试不需要编制桩模块。5. 在集成测试之前,必须进行单元测试,集成测试中所使用的对象都应该是已经经过单元测试的软件单元。6. 自底向上和自顶向下都是增量测试(将测试的模块组装到测试完成的模块集合中,再进行测试)。系统测试l 概要l 分类l 步骤l 注意事项系统测试概要1. 【System Testing】: 将已确定的计算机软件,硬件,外设,网络等元素结合在一起进行信息系统的各种组装测试和确认测试。2. 目的:验证系统是否满足了客户需求,找出与需求不符或矛盾的地方,从而提出好的解决方案。是基于系统整体需求说明书的黑盒类测试,应覆盖所有部件3. 系统测试是将经过集成测试的软件,作为系统计算机的一个部分,与系统中其他部分结合起来,在实际环境下对计算机系统进行严格有效的测试。主要内容包含:1.功能测试:根据测试文档,测试软件系统的功能是否正确。2.健壮性测试:测试软件系统在异常情况下的运行能力,包含一容错能力(网络中的一些组件不能工作时也可以继续执行其正常的功能);二恢复能力。分类1. 恢复测试主要关注导致软件运行失败的各种条件,并验证其恢复过程能否正确执行2. 安全测试用来验证系统内部的保护机制,以防止非法侵入3. 压力测试指在正常资源下使用异常的访问量、频率或数据量来执行系统步骤【Step1】制定系统测试计划 根据制定模板起草系统测试计划主要包括:1. 测试范围(内容)2. 测试方法3. 测试环境与测试工具4. 测试完成准则5. 人员与任务表【Step2】设计系统测试用例 依据系统测试计划和指定的模板,设计(撰写)系统测试用例,然后与同行对用例进行技术评审。【Step3】执行系统测试依据系统测试计划和系统测试用例执行系统测试,将测试结果记录在系统测试报告中,用“缺陷管理工具”(记录所有缺陷的状态信息,并自动产生缺陷管理报告)来管理所发现的缺陷并及时通知开发人员。【Step4】缺陷管理与改错注意事项1. 开发人员应及时消除发现的缺陷,消除后要及时进入回归测试。2. 要建立系统(Bug)缺陷库,以便清楚系统测试阶段项目不同生命周期的缺陷记录和缺陷状态跟踪情况。交付测试l 概要l 分类l 注意事项交付测试概要指在软件系统在正式发布之前的测试,用以检查系统控制程序的完整性和准确性,保证用户对所交付的系统的满意。其主要的测试参与者是目标客户,该测试不由程序员和测试员完成。分类1. 安装测试测试软件系统能否在模拟环境下或实际现场由目标用户顺利完成在目标机器上的安装。2. 可用性测试测试软件系统在完成安装以后能否完成用户的模拟任务或现场任务。3. alpha测试(测试)由一个用户在开发环境下对软件系统进行类似于黑盒的测试,目的是从用户的角度评价软件产品的功能、可使用性、可靠性、性能和支持,尤其注重产品的界面和特色。4. beta 测试(测试)由多个用户在实际使用环境下使用软件系统一段时间,把使用中出现的各类故障或缺陷反馈给beta 测试负责人员,由测试负责人员移交给软件开发者,再由开发人员负责修正并完善软件系统。目的:确保软件产品交付给全体用户之前能部分或全面地修正其在实际应用中可能出现的各类缺陷或不足。并验收产品是否满足软件需求说明书的确认标准。注意事项1.alpha测试和beta测试都属于验收测试。实现验收的策略:1. 正式验收2. 非正式验收和alpha测试3. Beta测试2.(测试)和(测试)的区别:是在模拟开发环境下由一个用户进行时间很短,而是在实际开发环境下由多个用户同时进行且测试周期较长。3.交付测试的时间:软件编码结束后模块(子系统)测试结束后 确认测试中产品达到一定可靠和稳定程度后测试计划l 概要l 编写条件测试计划概要(Testing plan)描述了要进行的测试活动的范围、方法、资源和进度的文档。它确定被测项、被测特性、测试任务、测试人员、各种可能的风险。测试计划可以有效预防计划的风险,保障计划的顺利实施。范围:1. 列出测试对象中将接受测试或将不接受测试的性能和功能。2. 列出可能会影响测试设计、开发或实施的某些假设。3. 列出可能会影响测试设计、开发或实施的所有风险或意外事件。 4. 列出可能会影响测试设计、开发或实施的所有约束。注:要从宏观上反映项目的测试任务、测试阶段、资源需求。编写条件1. 编写测试计划的原因1) 便于领导做宏观调控,惊醒相应的资源配置。2) 便于测试人员了解项目测试情况及项目不同阶段所需要做的工作。3) 便于其他人了解测试人员工作,好进行配合工作。2. 编写测试计划的时间测试需求分析前总体测试计划书/测试需求分析后详细测试计划书3. 编写测试计划的人员有丰富经验的项目测试负责人4. 编写测试计划6要素1)why为什么要进行这些测试; 2) what测试哪些方面,不同阶段的工作内容; 3) when测试不同阶段的起止时间; 4) where相应文档,缺陷的存放位置,测试环境等; 5) who项目有关人员组成,安排哪些测试人员进行测试; 6) how如何去做,使用哪些测试工具以及测试方法进行测试。测试用例l 概要l 技术l 做法l 作用测试用例概要(Test Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。测试用例制定的原则:1. 测试用例要包括欲测试的功能、应输入的数据和预期的输出结果。2. 测试数据应该选用少量、高效的测试数据进行尽可能完备的测试。测试用例技术(一)白盒技术白盒测试是结构测试,所以被测对象基本上是源程序,以程序的内部逻辑为基础设计测试用例1. 逻辑覆盖1) 语句覆盖2) 判定覆盖3) 条件覆盖4) 判定/条件测试5) 条件组合覆盖6) 路径覆盖2. 循环覆盖3. 基本路径覆盖(二)黑盒技术1. 等价划分1) 划分等价类2) 确定测试用例2. 边界值分析3. 错误推测4. 因果图5. 综合策略测试用例具体做法(一) 测试用例文档测试用例文档由简介和测试用例两部分组成,应该有文档模板,须符合内部的规范要求。(二) 测试用例设置设置测试用例的依据,最简捷的是按功能测试。(三) 设计策划用例测试用例可以分为基本事件、备选事件和异常事件。测试用例作用1、 指导测试的实施实施测试时测试用例是测试的标准。2、规划测试数据的准备3、编写测试脚本的设计规格说明书 编写测试脚本(一个特定测试的一系列指令,可以被自动化测试工具执行)4、评估测试结果的度量基准采用测试用例作度量基准更加准确、有效5、分析缺陷的标准 测试用例流程图测试报告l 概要l 内容l 注意事项测试报告概要1. 报告是测试阶段最后的文档产出物,包括产品质量和测试过程的评价,测试报告基于测试中的数据采集以及对最终的测试结果分析。2. 测试报告就是把测试的过程和结果写成文档,并对发现的问题和缺陷进行分析,为纠正软件的存在的质量问题提供依据,同时为软件验收和交付打下基础。测试报告内容1. 首页2. 引言3. 测试概要4. 测试结果与缺陷分析总汇各种数据并进行度量,度量包括对测试过程的度量和能力评估、对软件产品的质量度量和产品评估。Y表示:全部通过P表示:部分通过N表示: 全部不通过N/A表示:不可测试或者测试用例不可用。1. 需求覆盖率计算 Y项/需求总数 100%2. 测试覆盖率计算 执行数/用例总数 100%3. 缺陷发现效率 = 缺陷总数/执行测试用时4. 用例质量 = 缺陷总数/测试用例总数 100%5. 缺陷密度 = 缺陷总数/功能点总数5. 测试结论与建议6. 附录报告注意事项问题严重度的界定:1) 高导致系统死机或后续部分测试项功能不能实现;2) 中影响该部分的测试功能的完整性且急需解决;3) 低仅属于系统中的小bug,或根据测试过程发现的需要调整的部分,但并非急需解决。测试工具l 概要l 分类测试工具概述通过一些工具使软件的一些简单问题直观的显示在用户的面前,也能使测试人员更好的找出软件错误的所在。分类:自动化软件测试工具和测试管理工具。目的:提高测试效率,用软件代替人工输入测试管理工具是为了复用测试用例,提高软件测试的价值。测试工具分类(一) 自动化软件测试工具1. AutoRunner是一种黑盒测试工具,用来执行重复的手工测试,主要用于功能测试和回归测试,采用数据驱动和参数化的理念,通过录制用户对被测系统的操作,生成自动化脚本,让计算机执行自动化脚本,提高测试效率,降低人工测试成本。2. loadrunner是一种预测系统行为和性能的负载测试工具,通过模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,适用于各种体系架构的自动测试工具,能预测系统行为并优化系统性能。 模拟用户过程图3. junit是一种JAVA单元回归测试框架(regression testing framework),用于编写和运行可重复的测试,由程序员自己测试,即所谓的白盒测试,通过继承TestCase类完成。在极限编程和重构(refactor)中被极力推荐。4. QTP(quicktest Professional)的简称,是一种自动测试工具,用于回归测试和测试同一软甲的新版本。5. watir基于网页模式的自动化功能测试工具, 可使用多版本浏览器进行Web应用程序测试。6. Jmeter是Apache组织开发的基于Java的压力测试工具(性能自动化测试工具),用于测试静态和动态资源,对服务器、网络或对象模拟巨大的负载,来在不同压力类别下测试它们的强度和分析整体性能,能够对应用程序做功能/回归测试,通过断言验证是否与期望结果相符(应允许用正则表达式断言)。优点:高可扩展性1.能够对HTTP和FTP服务器进行压力和性能测试, 也可以对任何数据库进行同样的测试(通过JDBC)。 2.完全的可移植性和100% 纯java。 3.完全 Swing 和轻量组件支持(预编译的JAR使用 javax.swing.*)包。 4.完全多线程 框架允许通过多个线程并发取样和 通过单独的线程组对不同的功能同时取样。 5.GUI设计允许快速操作和更精确的计时。 6.缓存和离线分析/回放测试结果。 (二) 测试管理工具测试管理工具,指用工具对软件的整个测试输入、执行过程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业安全实操培训的作用
- 工业安全培训模板课件
- 委外单位安全培训记录课件
- FHND5071-1H-生命科学试剂-MCE
- exo-α-1-2-Fucosidase-Bifidobacterium-bifidum-生命科学试剂-MCE
- 西安国医医院招聘笔试真题2024
- 平遥安全培训课件
- 农发行安康市紫阳县2025秋招半结构化面试15问及话术
- 农发行大连市沙河口区2025秋招笔试热点题型专练及答案
- 农发行邢台市沙河市2025秋招笔试综合模拟题库及答案
- 大数据分析方法与应用 课件全套 耿秀丽 第1-9章 大数据概述-神经网络
- 2024公安机关人民警察高级执法资格考试题(解析版)
- 质量为纲-华为公司质量理念与实践
- 放射科诊断报告改进措施
- 医疗健康人工智能辅助诊疗与护理技术培训
- 《工程建设标准强制性条文电力工程部分2023年版》
- 航天禁(限)用工艺目录(2021版)-发文稿(公开)
- 临床医学职业规划
- 江苏中职学业水平(会计类)专业综合理论历年考试真题题库汇总及答案
- EPC项目设计管理机构的构成和设计力量的配备
- 创业计划书EXCEL版
评论
0/150
提交评论