软件质量保证与测试-.ppt

  1. 1、本文档共97页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件质量保证与测试-.ppt

故障(fault)和失效 故障是一个或多个错误的表现。 程序员犯的错误,表现为含有故障的代码。 测试自动化 大型复杂软件、嵌入式软件的测试是劳动密集型工作。对测试自动化存在巨大的需求。 便于自动化测试的工作: 回归测试 图形用户界面测试 I/O设备驱动测试 自动化测试难于通用化 当前的一些自动化测试工具 QTP C++ Tester Loadrunner 开发人员vs.测试人员 开发人员写代码,测试人员测代码; 两种人员既有区别又互相补充; 同一个人在不同阶段可能充当不同的角色; 测试技术对两种人员都有用。 软件质量 (续.) 软件正确性 如果软件针对其输入域的所有元素都如期望的方式运行,那么这个软件是正确的。 可靠性 软件可靠性:是软件在预期环境下无故障运行的可能性。 软件可靠性与软件正确性的关系:一个是二元度量,一个是连续度量; 运行被测软件 运行被测软件是一个重要步骤; 软件运行的实际复杂性依赖于软件本身; 为运行被测软件,测试人员常常要搭建测试床。 初始化全局变量; 输入测试用例; 运行被测软件; 记录产生的输出; 程序行为的例子 可以用软件状态来定义软件行为; 软件的一个状态,是指软件当中所有变量当前值的集合,以及下一步要执行的语句的指称。 软件状态的转换序列被称为软件行为。 测试度量 测试度量是一些测量标准,用于在测试过程中定量描述软件测试的进度、质量、资源和规模。 软件测试可以在组织、过程、项目、产品等级别对测试进行度量。 产品级度量:通用度量 针对具体的产品,可以用一些度量来描述产品的相关特性。 圈复杂度:基于程序控制流图,用于描述程序的复杂性。公式:V(G) = E-N+2p。其中,E是节点数,N是边数,p是G中强连通分支数。V(G)值越大,说明程序的复杂性越高。 Halstead复杂性度量:用软件规模和功耗/工作量,估算在软件开发中出现的缺陷数量。 公式:B=7.6E0.667S0.333其中,E是工作量,S是软件的规模。 组织级、项目级和过程级度量 组织级度量 针对整体项目的规划和管理。这类度量部分来源于汇聚多个跨项目的相容度量。 这些度量有利于高层管理进行资源配置。 项目级度量 与具体项目有关的度量。用于对项目的跟踪和控制。 过程级度量 用于评价测试过程。 产品级度量:面向对象软件 现代程序设计语言,不完全符合Halstead复杂性度量。因此引入了其他一些方法对软件可靠性进行度量。 进度跟踪与趋势 在开发或测试过程中,按照固定时间间隔进行测试度量。测试结果将提供一种趋势。 通过统计这些度量的结果,可以总结出产品的状态。 例如统计累积发现的缺陷数目,可以得到一条累积缺陷数目随时间变化的曲线,当曲线趋于饱和时,说明产品质量趋于稳定。 静态度量与动态度量 静态度量不需要执行软件。 动态度量需要执行软件。 可测试性 IEEE定义:系统或组件有助于建立测试准则,执行测试以便判断这些准则是否满足的程度。 软件越复杂,软件可测试性越低。 软件测试VS.硬件测试 软件测试与硬件测试存在相似之处,也有差异。 软件不会磨损,不会因时间的推移而衰老。硬件不是这样。 软件错误主要是设计和开发时产生;硬件缺陷主要在制造阶段或后期产生。硬件设计可以采用内置自检技术。 硬件测试采用基于故障模型来设计测试;软件测试无统一的故障模型。 硬件测试和软件测试的另一个主要差别是测试域的不同。 软件测试VS.硬件测试 测试覆盖率问题:对于大型和复杂的软件和硬件而言,都不可能进行完全测试。 硬件测试中产生“可接受的测试覆盖率”。通过测试覆盖的故障数和理论的故障数的比率来度量测试的情况。 这种思想在软件测试中产生了变异测试方法。 缺陷管理 缺陷管理是软件开发和测试的重要组成部分。 缺陷管理包括:缺陷预防、缺陷发现、缺陷记录和报告、缺陷分类、缺陷纠正、缺陷预测等。 存在一些用于缺陷管理的工具。 执行历史 又称执行轨迹,是程序一次执行中收集到的程序各方面信息的有序集合。 可以用多种方法表示执行轨迹 语句的执行序列; 对象方法的访问序列; 程序变量值的变化的序列; 静态测试 静态测试最大特点是不需要执行被测软件; 走查:非正式的过程,对源代码和文档的检查。 审查:更加正规的检查过程。 使用静态代码分析工具 通过静态代码分析工具得到代码的相关信息。如:控制流信息、数据流信息等。 有商业化和开源的静态分析工具。 软件复杂性和静态测试 通过分析软件的复杂性,在静态测试中对较复杂的模型给予更多的关注。 可以用不同的复杂性度量来计算模块复杂性。 同时需要考虑模块功能的重要性。 基于模型的测试 基于模型的测试:对软件行为进行建模,以及根据软件的形式化模型设计测试活动。 模型检测 模型检测是指用于验证特定模型的一个或多个特性

文档评论(0)

文档资料 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档