08软件测试ppt课件.ppt_第1页
08软件测试ppt课件.ppt_第2页
08软件测试ppt课件.ppt_第3页
08软件测试ppt课件.ppt_第4页
08软件测试ppt课件.ppt_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程第八章软件测试 2020 4 15 1 2 2020 4 15 目标 了解测试各个阶段 从开发过程中的测试到系统客户的验收测试 介绍可以帮助客户选择测试案例的技术以发现程序的缺陷 了解测试优先的开发 掌握组件测试 系统测试和发布测试的主要差异 以及了解用户测试过程和技术 3 2020 4 15 主要内容 开发测试测试驱动的开发发布测试用户测试 程序测试 测试是试图说明一个程序可以做我们期望它所做的工作和在投入使用之前发现程序的缺陷 当测试软件时 使用人工数据来执行这个程序 审查测试运行的结果 找出关于程序的非功能属性的错误 异常或其他信息 能够揭示程序的错误 测试是检查和验证过程的组成部分之一 4 2020 4 15 程序测试目标 向开发者和用户展示软件满足需求 对于定制软件 意味着对用户和系统需求文档中的每个需求至少要有一个测试 对通用软件 意味着对每个集成在产品发布版本中的所有系统特征以及这些特征组合进行测试 找出软件中缺陷和不足 即软件行为是不正确的 所不希望的或不符合它的描述 找出所有不希望出现的系统行为的根源 如 系统崩溃 与其他系统不期望的交互 不正确的计算和数据毁坏 5 2020 4 15 6 2020 4 15 有效性和缺陷测试 有效性测试 是否满足需求 向开发者或系统客户展示软件满足了其需求 一个成功的测试表明系统运行符合预期 缺陷测试 是否存在缺陷 发现系统中行为不正确或不满足需求规格说明的错误或缺陷 一个成功的测试是是系统执行不正确的测试或暴露系统缺陷的测试 7 2020 4 15 程序测试的输入和输出模型 测试只能证明存在错误 而不能证明它们不存在 检验和验证 检验我们在建立正确的产品吗 验证我们建立的产品正确吗 软件行为符合用户的期望 8 2020 4 15 检验和验证的信心 检验和验证过程的最终目的是建立信心 即这个软件系统是 达到目的 的 这个信心水平取决于系统的目的 用户期望和市场环境软件目的这个软件越重要 他的可靠性就越重要用户期望市场环境 9 2020 4 15 审查和测试 软件审查 是分析和检查系统需求 设计模型 程序源代码 甚至是建议的系统测试 是一种静态的检验 软件测试 是执行动作 观察行为 是一种动态的检验 10 2020 4 15 审查和测试 11 2020 4 15 软件审查 主要审查系统的源代码 审查不必执行系统 所以可以在系统实现之前进行 任何可读的软件表示 都被审查 需求 设计 配置数据 测试数据 审查是发现程序错误的一个有效的方式 12 2020 4 15 审查的优势 在测试期间 一个错误可能会掩盖其他错误 审查是一个静态的过程 可以不必关心错误之间的相互作用 审查一个系统的不完整版本不需要额外的代价 除了搜索程序缺陷 审查也可以考虑一个程序更广泛的质量属性 13 2020 4 15 软件测试过程模型 14 2020 4 15 测试的阶段 开发测试 即在开发过程中进行系统软件测试来发现故障和缺陷 发布测试 即一个测试小组对一个系统的完整版本进行测试 用户测试 即系统的用户或潜在的用户在他们自己的环境中测试这个系统 15 2020 4 15 8 1开发测试 开发测试包括系统开发团队所进行的所有测试活动 单元测试 即对单独的程序单元或对象类进行测试组件测试 即将多个程序单元整合创建一个合成的组件系统测试 即集成系统中的一些或所有的组件作为一个整体进行测试 16 2020 4 15 8 1 1单元测试 单元测试是测试单个组件的过程这是一个发现缺陷的测试过程单元可以是 单个函数或对象中的方法带有属性和方法的对象类带有访问他们功能的接口的复合组件 17 2020 4 15 对象类测试 完整测试一个类包括测试与对象相关的所有操作设置和检查与对象相关的所有属性测试对象所有可能的状态继承使得设计对象类的测试更加困难 因为 被测试的信息不适本地化的 18 2020 4 15 气象站系统对象接口 19 2020 4 15 气象站测试 需要为与对象相关的所有方法定义测试用例 如 reportWeather reportStatus 使用状态模型识别出需要测试的状态转换的序列 并指定迫使这些状态转换发生的事件序列 例如 Shutdown Running ShutdownConfiguring Running Testing Transmitting RunningRunning Collecting Running Summarizing Transmitting Running 20 2020 4 15 自动测试 只要可能的话 应该使单元测试自动化 在自动化单元测试中 应该充分利用测试自动化框架 例如JUnit 来编写和运行程序测试 单元测试框架提供了一个通用的测试类 只需扩展它来形成新的测试案例 21 2020 4 15 自动测试组件 准备部分 用测试用例初始化系统 即输入和期望的输出 调用部分 即调用所要测试的对象或方法 断言部分 即比较调用的结果和预期的结果是否相同 如果断言取值为真 那么测试成功 如果断言取值为假 那么测试失败 22 2020 4 15 8 1 2选择单元测试案例 测试案例应该表明 当按照预期的方式使用时 所测试的组件能够像假设的那样去执行 如果在组件中有缺陷 这些缺陷应该被测试案例发现 两类测试案例反映一个程序的正常操作 并能显示出组件工作正常建立在对通常问题的经验基础上 应该使用非正常的输入来检测是否得到正常处理 或者是否使得组件崩溃 23 2020 4 15 测试策略 划分测试 即识别具有共同特性和以同样的方法处理的一组数据我们应该从这些组中选择测试数据基于准则测试 即使用测试准则来选择测试案例这些准则反映了程序员在开发组件时对经常犯的各种错误的经验 24 2020 4 15 划分测试 程序的输入和输出结果总是落在几个不同且有共同特征的类中 程序通常对一个类中的所有成员其行为都是差不多的 由于这些等价的行为 这些类通常叫做等价划分或是域 所设计的测试案例要使得输入和输出落在这些划分中 划分测试即可以用来设计系统的测试案例 也可以用来设计组件的测试案例 25 2020 4 15 等价划分 26 2020 4 15 系统 输入等价划分 输出划分 可能输入 可能输出 正确输出 等价分类 27 2020 4 15 测试指导 序列 用一个只有单个值的序列来测试程序在不同的测试中使用不同规模的多个序列导出一个测试 让第一个 中间一个和最后一个元素得到测试测试序列长度为零时的情况 28 2020 4 15 一般的测试原则 选择能够迫使系统产生所有错误信息的输入设计能够使系统的输入缓冲溢出的输入重复相同的输入或一系列输入很多次迫使产生无效的输出迫使输出结果太大或太小 29 2020 4 15 8 1 3组件测试 软件组件通常是由许多彼此交互的对象组合的复合组件例如 在气象站系统中 再配置组件包括处理再配置各个方面的各对象可以通过它们定义的接口来访问它们的功能这时可以测试组件的接口行为是否符合它们的描述假定组件的单个对象的单元测试已经完成 30 2020 4 15 接口测试 31 2020 4 15 接口测试 目标是检测接口错误或无效的接口假设引起的故障接口的类型参数接口 主要是数据和函数指针 由一个组件传递到另一个组件共享内存接口 有一个被子系统共享的内存块程序接口 子系统封装一组程序 这些程序可以被其他子系统调用消息传递接口 子系统通过消息传递来请求其他子系统上的服务 32 2020 4 15 接口错误 接口误用调用者组件在调用其他组件接口时使用不当而产生的接口错误接口误解调用者组件误解了被调用组件的接口描述而产生接口错误 对被调用组件行为进行了错误的假设时序错误系统使用了共享内存接口或消息传递接口而产生接口错误 33 2020 4 15 接口测试一般准则 审查要测试的代码并明确地列出对外部组件的每个调用 当有指针从接口传递时 总用空指针参数来测试接口 设计一些容易引起组件失效的测试 在消息传递系统中进行强度测试 当组件通过共享内存来交互时 设计测试使其对激活组件次序有所改变 34 2020 4 15 8 1 4系统测试 系统测试包括集成组件来形成一个新版本的系统 然后测试集成后的系统系统测试强调测试组件之间的交互系统测试确保组件是可兼容的 能正确地进行交互 以及通过它们的接口在适当的时候传送正确的数据系统测试测试系统的总体行为 35 2020 4 15 系统和组件测试的区别 在系统测试中 单独开发的可复用组件和商业现货系统可能会与新开发的组件集成到一起 然后对完整的系统进行测试不同小组成员或群组开发的组件可能在这个阶段集成 系统测试是一个集体的过程而不是一个独自的过程在一些公司中 系统测试可能由一个独立的测试小组执行 没有设计人员和程序员的参与 36 2020 4 15 用例测试 用例被用来定义系统之间的交互 可以作为系统测试的基础每个用例通常涉及多个系统组件 因此测试这个用例 迫使这些相互作用发生 序列图建模用例的实现 可以看到交互中涉及的对象或组件 从而进行测试 37 2020 4 15 38 2020 4 15 收集气象数据的序列图 测试策略 无遗漏测试是不可能的 因此需要建立一个可能的测试子集 根据子集进行测试测试策略例子所有的能从菜单中得到的系统功能都应该被测试到可以从同一个菜单中访问的组合功能需要被测试在提供用户输入的地方 所有的功能都必须对正确的和不正确的输入进行测试 39 2020 4 15 8 2测试驱动的开发 测试驱动的开发 TDD 是一种程序开发方法 交错进行测试和代码开发 代码通过测试 是开发的关键驱动力 开发代码增量 一起测试该增量 不移动到下一个增量 直到你已经开发的代码 通过其测试 TDD的引入是作为如极限编程这样敏捷方法的一个部分 但是 它也可用于计划驱动的开发过程中 40 2020 4 15 测试驱动的开发 41 2020 4 15 TDD的过程活动 从识别所需要的功能增量开始 这个通常比较小 用几行代码就可以实现 针对此功能编写一个测试并实现为一个自动测试 然后运行此测试 以及所有已实现的其他测试 最初 并没有实现这个功能 因此这个新的测试是失败的 然后实现这个功能 并重新运行这个测试 一旦所有的测试成功 就可以转去实现下一个功能块 42 2020 4 15 测试驱动开发的好处 代码覆盖每个代码片段都至少有一个测试回归测试随着一个程序的开发 一个测试套件也增量式的开发出来简化调试当一个测试失败时 问题出在何处是很明显的系统文档测试本身就表现为一种文档形式 它描述代码应该做什么 43 2020 4 15 回归测试 回归测试就是测试系统 检查变化没有 破坏 以前的工作代码 在手动测试过程中 回归测试是昂贵的 但是 自动化测试 它是简单明了的 当程序每次改变时所有的测试都重新运行 程序在改变之前测试必须 成功 44 2020 4 15 8 3发布测试 发布测试是为开发组以外的用户使用系统的一个特殊版本所做的测试过程发布测试过程中的主要目标是说服供应商 该系统是足够使用的 因此 发布的测试表明 该系统提供了其指定的功能 性能和可靠性 在正常使用过程中 不会出错 发布测试通常是一个黑盒测试过程 测试从系统描述导出 45 2020 4 15 黑盒测试 白盒测试 黑盒测试 已知产品的功能设计规格 可以进行测试证明每个实现了的功能是否符合要求 白盒测试 已知产品的内部工作过程 可以进行测试证明每种内部操作是否符合设计规格要求 所有内部成分是否经过检查 46 2020 4 15 46 黑盒测试与白盒测试的区别 黑盒测试测试特点 测试功能 测试依据 需求规格说明书方法举例 等价类划分 边界值测试优点 能站在用户的立场上进行测试缺点 不能测试程序内部特定部位 如程序有误 则无法发现 白盒测试测试特点 测试程序接口与结构测试依据 软件程序方法举例 逻辑覆盖优点 对程序内部特定部位进行覆盖测试 缺点 无法检验程序外部特性 47 2020 4 15 47 黑盒测试与白盒测试的区别 黑盒测试把程序看作一个不能打开的黑盒子 在完全不考虑程序内部结构和内部特性的情况下 针对 软件界面 和 软件功能 进行测试 只检查功能是否符合需求规格说明书能正常使用 因此黑盒测试又叫功能测试或数据驱动测试 白盒测试是对软件的过程性细节做细致的检查 这种方法是把测试对象看作一个打开的盒子 他允许测试人员利用程序内部的逻辑结构及有关信息 设计或选择测试用例 对程序所有逻辑路径进行测试 因此白盒测试又称为 结构测试 或 逻辑驱动测试 白盒测试是按照程序内部的结构来测试程序 通过测试检验产品内部动作是否按照设计规格说明书的要求正常进行 检验程序中的每条通道是否都按照规定正常工作 48 2020 4 15 48 发布测试和系统测试 发布测试是系统测试的一种形式 重要区别一个独立的与系统开发无关的小组应该负责发布测试 开发组的系统测试的重点是在系统中发现错误 缺陷测试 发布测试的目标是检查系统符合它的需求描述 并且足可以对外销售 有效性验证测试 49 2020 4 15 50 2020 4 15 8 3 1基于需求的测试 需求工程的的一个基本原则是需求应该是可以测试的 基于需求的测试是有效性验证测试而不是缺陷测试 它努力证明系统已经正确地实现了它的需求 MHC PMS需求如果知道病人对药物过敏 该药物处方导致系统向用户报警 如果医生忽略报警信号 需提供忽略原因 需求测试 建立一个没有已知过敏史的病历记录 建立一个有已知过敏史的病历记录 建立一个病历记录 期中包括两个或两个以上过敏药物 为病人开带两个过敏药的处方 检查发出两个正确的警告信息 开带过敏药物处方 发出警告 医生拒绝警告 检查系统允许用户提供信息解释警告被拒绝的原因 51 2020 4 15 8 3 2情景测试 情景测试也叫脚本测试 或场景测试 是发布测试的一个方法 需要设计典型的使用场景 并为系统开发测试用例 一个情景是一个故事 描述系统使用的一种方式 情景测试应该现实 且真实的系统用户应该能将它与自己的工作联系起来 52 2020 4 15 MHC PMS诊断情景 通过登录到系统进行身份验证 下载和上传特定病人的病历到笔记本电脑 家庭出诊时间安排 在移动设备上加密和解密病历 记录检索和修改 连接包含副作用信息的药物数据库 电话提示系统 53 2020 4 15 53 8 3 3性能测试 发布测试可能包括测试系统的总体特性 如性能和可靠性 性能测试通常包括对一系列测试的规划 这里的测试是要让负荷稳定地增长直到系统性能不可接受为止 压力测试是性能测试一种形式 通过压力测试可以让系统暴露出在正常情况下不会暴露的缺陷 54 2020 4 15 8 4用户测试 用户测试是测试过程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论