软件自动化测试理论应用

上传人:仙*** 文档编号:47415463 上传时间:2021-12-20 格式:PPT 页数:64 大小:236.50KB
返回 下载 相关 举报
软件自动化测试理论应用_第1页
第1页 / 共64页
软件自动化测试理论应用_第2页
第2页 / 共64页
软件自动化测试理论应用_第3页
第3页 / 共64页
点击查看更多>>
资源描述
1第五章第五章 软件自动化测试理论及应用软件自动化测试理论及应用一个例子:一个例子:Rational Funtional Tester2第五章第五章 软件自动化测试理论及应用软件自动化测试理论及应用5.1自动化测试概念自动化测试概念5.2自动化测试在软件开发周期中的位置自动化测试在软件开发周期中的位置 5.3自动化测试局限性自动化测试局限性5.4自动化测试基本理论自动化测试基本理论5.5自动化测试实施自动化测试实施5.6常用工具介绍常用工具介绍5.7IBM Rational自动化测试解决方案架构自动化测试解决方案架构5.8负载测试工具设计与开发负载测试工具设计与开发5.9自动化测试成熟度自动化测试成熟度35.15.1自动化测试概念自动化测试概念n用工具代替用工具代替/辅助人工完成软件测试活动的辅助人工完成软件测试活动的过程,泛指所有能用工具辅助进行的有关过程,泛指所有能用工具辅助进行的有关测试活动。测试活动。 n测试自动化的目标是对被测试系统进行自测试自动化的目标是对被测试系统进行自动测试。总的来说,测试自动化的目标是动测试。总的来说,测试自动化的目标是通过较少的开销,得到更彻底的测试,并通过较少的开销,得到更彻底的测试,并提高产品的质量。提高产品的质量。45.15.1自动化测试概念自动化测试概念n自动化测试有如下特点:自动化测试有如下特点: 可以对程序的新版本自动执行回归测试可以对程序的新版本自动执行回归测试 可以执行一些手工测试困难或不可能进行的测可以执行一些手工测试困难或不可能进行的测试试 可以更好地利用资源可以更好地利用资源 测试具有一致性和可重复性测试具有一致性和可重复性 测试的重用性测试的重用性 可以更快地将软件推向市场可以更快地将软件推向市场 可以增加软件信任度可以增加软件信任度 55.15.1自动化测试概念自动化测试概念n测试自动化误区测试自动化误区 : 不现实的期望不现实的期望 期望自动测试发现大量新故障期望自动测试发现大量新故障 安全性错觉安全性错觉 自动测试的维护开销自动测试的维护开销 技术问题技术问题 65.2自自动动化化测测试试在在软软件件开开发发周周期期中中的的位位置置 系 统 设 计详 细 设 计单 元 测 试集 成 测 试系 统 测 试验 收 测 试测 试 设计 工 具逻 辑 设 计 工 具物 理 设 计 工 具管 理 工 具覆 盖 测试 工 具调 试 工 具动 态 分析 工 具自 动 测 试 工 具性 能 、 功 能模 拟 测 试 工 具需 求 分 析静 态 分析 工 具程 序 编 码75.35.3自动化测试局限性自动化测试局限性n 自动化测试不能取代手工测试。下列情况不适合自动化测试不能取代手工测试。下列情况不适合于自动化测试:于自动化测试:测试很少进行测试很少进行软件不稳定软件不稳定 :如软件升级版本时,用户界面和功能频:如软件升级版本时,用户界面和功能频繁变化,此时自动化测试相应部分修改的开销较大。繁变化,此时自动化测试相应部分修改的开销较大。而软件不稳定时,手工测试可以很快发现故障。而软件不稳定时,手工测试可以很快发现故障。结果很容易通过人验证的测试结果很容易通过人验证的测试 :该种情况下的自动化:该种情况下的自动化测试非常困难甚至不可能,如彩色模式的合适程度、测试非常困难甚至不可能,如彩色模式的合适程度、屏幕轮廓的直观效果,或选择制定的屏幕对象是否能屏幕轮廓的直观效果,或选择制定的屏幕对象是否能够播放正确的声音等。够播放正确的声音等。 涉及物理交互的测试涉及物理交互的测试 :如在读卡机上划卡,断开设备:如在读卡机上划卡,断开设备的物理连接,开关电源等。的物理连接,开关电源等。 85.35.3自动化测试局限性自动化测试局限性n手工测试比自动测试发现的故障要多手工测试比自动测试发现的故障要多 自动化测试主要是进行重复测试,一般情况下,自动化测试主要是进行重复测试,一般情况下,自动化测试进行的工作是以前进行过的,因此自动化测试进行的工作是以前进行过的,因此被测试软件在自动化测试中暴露的故障要少得被测试软件在自动化测试中暴露的故障要少得多。多。测试自动化主要用于回归测试,进行正确性验测试自动化主要用于回归测试,进行正确性验证测试,而不是故障发现测试。据经验数据统证测试,而不是故障发现测试。据经验数据统计,自动测试只能发现约计,自动测试只能发现约15的故障,而手工的故障,而手工测试可以发现测试可以发现85的故障。的故障。 95.35.3自动化测试局限性自动化测试局限性n 自动化测试不能提高测试的有效性。自动化测试自动化测试不能提高测试的有效性。自动化测试只是用于提高测试的效率,即减少测试的开销和只是用于提高测试的效率,即减少测试的开销和时间。时间。 n 自动化测试不具有想象力自动化测试不具有想象力 自动化测试是通过测试软件进行,测试过程只是按照自动化测试是通过测试软件进行,测试过程只是按照运行机制执行。手工测试时可以直接判断测试结果的运行机制执行。手工测试时可以直接判断测试结果的正确性,而自动测试许多情况下测试结果还需要人工正确性,而自动测试许多情况下测试结果还需要人工干预判断。干预判断。手工测试可以处理意外事件,如网络连接中断,此时手工测试可以处理意外事件,如网络连接中断,此时必须重新建立连接。手工测试时可以及时处理该意外,必须重新建立连接。手工测试时可以及时处理该意外,而自动化测试时该意外事件一般都会导致测试的中止。而自动化测试时该意外事件一般都会导致测试的中止。 105.45.4自动化测试基本理论自动化测试基本理论 n 自动化测试过程中主要涉及以下内容:自动化测试过程中主要涉及以下内容: 测试驱动、桩和驱动数据的自动生成:主要是依据所采用的测试测试驱动、桩和驱动数据的自动生成:主要是依据所采用的测试方法,如等价类、边界值等自动产生多组测试数据。方法,如等价类、边界值等自动产生多组测试数据。 自动测试输入:工具录制测试者所做的所有操作,并将这些操作自动测试输入:工具录制测试者所做的所有操作,并将这些操作写成工具可以识别的脚本。被录制的脚本中含有测试输入(包括写成工具可以识别的脚本。被录制的脚本中含有测试输入(包括文本和鼠标移动、点击菜单和按钮等动作)文本和鼠标移动、点击菜单和按钮等动作) 测试脚本技术:用于自动测试过程存放测试步骤、测试数据等相测试脚本技术:用于自动测试过程存放测试步骤、测试数据等相关内容。关内容。 测试结果的自动比较:将预期输出与程序运行过程中的实际输出测试结果的自动比较:将预期输出与程序运行过程中的实际输出进行比较。进行比较。 自动测试执行:工具读取脚本并执行脚本命令,可以重复测试者自动测试执行:工具读取脚本并执行脚本命令,可以重复测试者的操作。在执行脚本过程中可以完成测试结果的自动比较。的操作。在执行脚本过程中可以完成测试结果的自动比较。 自动测试管理:完成测试计划、测试大纲、测试缺陷管理等工作。自动测试管理:完成测试计划、测试大纲、测试缺陷管理等工作。 115.4.15.4.1自动测试输入自动测试输入 n对于支持命令行的软件系统,采用批处理对于支持命令行的软件系统,采用批处理方式输入是最好的测试用例自动化输入方方式输入是最好的测试用例自动化输入方式式 n对于不支持命令行的软件系统,一般来说对于不支持命令行的软件系统,一般来说可以采用商用化录制回放测试工具生成输可以采用商用化录制回放测试工具生成输入脚本,或自己编制测试用例输入脚本入脚本,或自己编制测试用例输入脚本 125.4.25.4.2自动比较自动比较 n简单比较简单比较 n复杂比较复杂比较 n动态比较动态比较 n执行后比较执行后比较 135.4.35.4.3测试结果输出和转储测试结果输出和转储 n测试结果输出一般有以下形式:测试结果输出一般有以下形式:基于磁盘的输出:包括数据库、文件和目录基于磁盘的输出:包括数据库、文件和目录/文文件夹;件夹;基于屏幕的输出:主要是文本和特殊图形字符、基于屏幕的输出:主要是文本和特殊图形字符、图形图像等;图形图像等;多媒体信息的输出:包括不易比较的测试输出多媒体信息的输出:包括不易比较的测试输出形式如播放的声音、显示的视频等;形式如播放的声音、显示的视频等;通讯报文的输出:主要是网络中传送的通讯报通讯报文的输出:主要是网络中传送的通讯报文,一般以帧形式出现。文,一般以帧形式出现。 145.4.45.4.4脚本技术脚本技术 n线性教本线性教本 n结构化脚本结构化脚本 n共享脚本共享脚本 n数据驱动脚本数据驱动脚本 n关键字驱动脚本关键字驱动脚本 155.4.4.15.4.4.1线性教本线性教本 n 线性脚本是通过录制手工执行的测试用例时得到的脚本,这种线性脚本是通过录制手工执行的测试用例时得到的脚本,这种脚本包含所有的击键(键盘和鼠标)、控制测试软件的控制键脚本包含所有的击键(键盘和鼠标)、控制测试软件的控制键及输入数据的数字键,可以添加比较指令实现结果比较及输入数据的数字键,可以添加比较指令实现结果比较 n 线性脚本的优点主要是:线性脚本的优点主要是:不需要深入的工作或计划不需要深入的工作或计划,只需坐在计算机前录制手工任务;只需坐在计算机前录制手工任务;可以快速开始自动化;可以快速开始自动化;对实际执行操作可以审计跟踪;对实际执行操作可以审计跟踪;用户不必是编程人员;用户不必是编程人员;提供良好的(软件或工具)演示。提供良好的(软件或工具)演示。n 线性脚本的缺点主要是:线性脚本的缺点主要是: 一切依赖于每次捕获的内容;一切依赖于每次捕获的内容; 测试输入和比较是测试输入和比较是“捆绑捆绑”在脚本中的;在脚本中的; 无法共享或重用脚本;无法共享或重用脚本; 容易受软件变化的影响;容易受软件变化的影响; 修改代价大,维护成本高。修改代价大,维护成本高。 165.4.4.25.4.4.2结构化脚本结构化脚本 n 结构化脚本类似于结构化程序设计,含有控制脚结构化脚本类似于结构化程序设计,含有控制脚本执行的指令,支持顺序、选择和循环(叠代控本执行的指令,支持顺序、选择和循环(叠代控制)制)3种基本控制结构,一个脚本可以调用另一种基本控制结构,一个脚本可以调用另一个脚本。另外由于引进其他指令改变控制结构,个脚本。另外由于引进其他指令改变控制结构,可以提高重用性,增加功能和灵活性,改善维护可以提高重用性,增加功能和灵活性,改善维护性。需要一定的编程技术。性。需要一定的编程技术。 n 主要有优点是健壮性更好,更灵活;但是脚本更主要有优点是健壮性更好,更灵活;但是脚本更加复杂,测试数据依然加复杂,测试数据依然“包含包含”脚本中。脚本中。 175.4.4.35.4.4.3共享脚本共享脚本 n 共享脚本可以被多个测试用例使用,脚本之间可以相互调共享脚本可以被多个测试用例使用,脚本之间可以相互调用;可以允许同一软件应用或系统的测试之间共享脚本;用;可以允许同一软件应用或系统的测试之间共享脚本;在不同的软件应用或系统的测试之间也可共享脚本。在不同的软件应用或系统的测试之间也可共享脚本。 n 共享脚本的优点是:共享脚本的优点是: 以较少的开销实现类似的测试;以较少的开销实现类似的测试; 维护开销低于线性脚本;维护开销低于线性脚本; 删除明显的重复;删除明显的重复; 可以在共享脚本中增加更智能的功能。可以在共享脚本中增加更智能的功能。 n 共享脚本的缺点是:共享脚本的缺点是: 需要跟踪更多的脚本需要跟踪更多的脚本 ,文档、文字以及存储,如果管理得不好,文档、文字以及存储,如果管理得不好,很难找到适当的脚本;很难找到适当的脚本; 每个测试仍需要一个特定的测试脚本,维护成本仍然比较高每个测试仍需要一个特定的测试脚本,维护成本仍然比较高 ; 共享脚本通常只是针对被测软件的某一部分。共享脚本通常只是针对被测软件的某一部分。 185.4.4.45.4.4.4数据驱动脚本数据驱动脚本 n 数据驱动脚本是将测试输入存储在独立的(数据)文件中数据驱动脚本是将测试输入存储在独立的(数据)文件中(*.XLS、*.TXT、*.DAT等),而不是存储在脚本中,脚等),而不是存储在脚本中,脚本中只存放控制信息。用变量取代在录制的脚本代码中固本中只存放控制信息。用变量取代在录制的脚本代码中固定输入内容,如:名字、地址、数据等,然后通过变量从定输入内容,如:名字、地址、数据等,然后通过变量从外部(文件、电子表格、数据库等)读取数据的测试外部(文件、电子表格、数据库等)读取数据的测试 n 数据驱动脚本的优点是:数据驱动脚本的优点是: 可以很快增加类似的测试(脚本相同,数据不同);可以很快增加类似的测试(脚本相同,数据不同); 测试者增加新测试不必具有工具脚本语言的技术或编程知识;测试者增加新测试不必具有工具脚本语言的技术或编程知识; 对于第二个测试及后续测试无额外的脚本维护开销对于第二个测试及后续测试无额外的脚本维护开销 。n 数据驱动脚本的缺点是:数据驱动脚本的缺点是: 初始建立的开销较大;初始建立的开销较大; 需要专业(编程)支持。需要专业(编程)支持。 195.4.4.55.4.4.5关键字驱动脚本关键字驱动脚本 n 关键词驱动脚本实际上是较复杂的数据驱动技术的逻辑扩展。关键词驱动脚本实际上是较复杂的数据驱动技术的逻辑扩展。用变量取代在录制的脚本代码中的对象标识,如:按钮、编辑用变量取代在录制的脚本代码中的对象标识,如:按钮、编辑框等控件框等控件ID等,然后在脚本中通过这些变量来操作这些对象进等,然后在脚本中通过这些变量来操作这些对象进行。行。n 关键字驱动脚本有如下特征:关键字驱动脚本有如下特征:测试脚本由控制脚本、测试文件、支持脚本组成;测试脚本由控制脚本、测试文件、支持脚本组成;控制脚本不再受被测软件或特殊应用的约束;控制脚本不再受被测软件或特殊应用的约束;测试文件中使用关键字描述测试事例;测试文件中使用关键字描述测试事例;控制脚本依次读取测试文件中的每个关键字并调用相关的支控制脚本依次读取测试文件中的每个关键字并调用相关的支持脚本。持脚本。n 关键字驱动脚本的优点:关键字驱动脚本的优点:独立于测试脚本语言开发测试事例独立于测试脚本语言开发测试事例所需脚本数量是随软件的规模而不是测试的数量而变化的所需脚本数量是随软件的规模而不是测试的数量而变化的可以用与工具(及平台)无关的方法实现测试可以用与工具(及平台)无关的方法实现测试实现测试的方法可以剪裁适合测试者而不是测试工具实现测试的方法可以剪裁适合测试者而不是测试工具 205.4.55.4.5系统运行数据统计系统运行数据统计 n性能测试和内存泄露检查的测试过程中,性能测试和内存泄露检查的测试过程中,不是预期输出与实际输出的比较,而是运不是预期输出与实际输出的比较,而是运行数据采集并统计输出结果。主要利用操行数据采集并统计输出结果。主要利用操作系统提供的作系统提供的API函数,测试软件获得系统函数,测试软件获得系统信息并进行统计和分析。信息并进行统计和分析。 215.55.5自动化测试实施自动化测试实施n被测试软件的测试方式选择被测试软件的测试方式选择并不是所有的软件都需要进行自动化测试。并不是所有的软件都需要进行自动化测试。225.55.5自动化测试实施自动化测试实施n自动化测试实施前的准备工作自动化测试实施前的准备工作 在进行测试自动化之前,对被测试软件的可测在进行测试自动化之前,对被测试软件的可测试性接口的分析和处理是非常重要的工作;通试性接口的分析和处理是非常重要的工作;通过对接口的分析,制定出测试输入和输出的脚过对接口的分析,制定出测试输入和输出的脚本文件结构。本文件结构。 235.55.5自动化测试实施自动化测试实施n自动化测试流程自动化测试流程 自动化回归测试在实施上,一般分为两个主要自动化回归测试在实施上,一般分为两个主要步骤,一个是测试结果输出脚本模板生成,该步骤,一个是测试结果输出脚本模板生成,该部分需要人工进行,一个是自动化回归测试。部分需要人工进行,一个是自动化回归测试。 245.55.5自动化测试实施自动化测试实施n测试结果输出脚本模板生成流程图测试结果输出脚本模板生成流程图 被测试软件O人工验证结果测试用例脚本1测试用例脚本NO测试输出1测试输出N测试工具测试输出1测试输出N模板库255.55.5自动化测试实施自动化测试实施n整个自动化回归测试流程图整个自动化回归测试流程图 : 被 测 试 软 件O测 试 用 例 脚 本 1测 试 用 例 脚 本 NO测 试 输 出 1测 试 输 出 N模 板 库测 试 输 出 1测 试 工 具测 试 输 出 N比 较预 期 输 出PASS故 障 反 馈相 同不 相 同265.65.6常用工具介绍常用工具介绍序号 测试的类型 简述 1 代码分析器 监督程序代码复杂度,是否遵循标准等等 2 覆盖分析器 校检哪一部分的代码已经被测试,面向代码语句覆盖、条件覆盖、路径覆盖等等 3 内存分析器 边界检查和漏洞检测等等 4 性能测试工具 测试在不同的负载级别之下客户/服务器和WEB应用程序等等 5 WEB测试工具 检验链接是否有效,客户和服务器端的代码、WEB站点的交互是否正常工作 6 其他工具 测试实例管理,文件管理,BUG报告,配置管理工具 275.6常用工具介绍常用工具介绍n性能测试工具性能测试工具 Loadrunnern嵌入式软件测试工具嵌入式软件测试工具CodeTest LogiScope n缺陷管理跟踪工具缺陷管理跟踪工具TestDirector Buzilla 285.6.1 LoadRunner nLoadRunner 是一种预测系统行为和性是一种预测系统行为和性能的工业标准级负载测试工具。通过以模能的工业标准级负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试。通过使用能够对整个企业架构进行测试。通过使用LoadRunner ,企业能最大限度地缩短测,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布试时间,优化性能和加速应用系统的发布周期。周期。 295.6.1 LoadRunner305.6.1 LoadRunnern 创建虚拟用户创建虚拟用户 n 创建真实的负载创建真实的负载 n 实时监测器实时监测器 n 分析结果以精确定位问题所在分析结果以精确定位问题所在n 重复测试保证系统发布的高性能重复测试保证系统发布的高性能 n 其他特性其他特性 Enterprise Java Beans 的测试的测试 支持无线应用协议支持无线应用协议 支持支持Media Stream 应用应用 完整的企业应用环境的支持完整的企业应用环境的支持 315.6.2嵌入式软件测试工具嵌入式软件测试工具n 纯软件测试工具纯软件测试工具 纯软件的测试工具采用的软件插桩技术,在被测试代纯软件的测试工具采用的软件插桩技术,在被测试代码中插入一些函数,用这些函数来完成数据的生成,码中插入一些函数,用这些函数来完成数据的生成,并上传数据到目标系统的共享内存中。并上传数据到目标系统的共享内存中。 n 纯硬件测试工具纯硬件测试工具 :主要是逻辑分析仪和仿真器。:主要是逻辑分析仪和仿真器。 逻辑分析仪主要通过监控系统在运行时总线上的指令逻辑分析仪主要通过监控系统在运行时总线上的指令周期,并以一定频率捕获这些信号,通过对捕获的信周期,并以一定频率捕获这些信号,通过对捕获的信号进行分析来判断程序当前运行状况。号进行分析来判断程序当前运行状况。 仿真器通常采用内存标记技术,它所关心的也是处理仿真器通常采用内存标记技术,它所关心的也是处理器从外存的代码段读取数据的情况器从外存的代码段读取数据的情况 纯硬件测试工具是不具备对内存分配进行分析和检查纯硬件测试工具是不具备对内存分配进行分析和检查的能力的能力 325.6.2.1CodeTest 5.6.2.1CodeTest n CodeTest系统包括系统包括3种嵌入式软件测试和分析工种嵌入式软件测试和分析工具:具:CodeTest Native,CodeTest Software-In-Circuit和和CodeTest Hardware-In-Circuit,每一种每一种工具代表了嵌入式系统开发的每一个周期的不同工具代表了嵌入式系统开发的每一个周期的不同阶段,它们分别由于:阶段,它们分别由于:在开发阶段早期,没有目标硬件,只有宿主机开发环在开发阶段早期,没有目标硬件,只有宿主机开发环境和测试环境。境和测试环境。在开发阶段中期,系统的集成工作、硬件开发板已出在开发阶段中期,系统的集成工作、硬件开发板已出现。现。在产品确认阶段,此时产品进入系统综合测试阶段。在产品确认阶段,此时产品进入系统综合测试阶段。 335.6.2.1CodeTest 5.6.2.1CodeTest n CodeTest是一个硬件辅助软件的测试与分析工具,是一个硬件辅助软件的测试与分析工具,它一方面吸取软件插桩技术,并对这种技术进行它一方面吸取软件插桩技术,并对这种技术进行改善,纯软件工具插入的是一个函数,而改善,纯软件工具插入的是一个函数,而CodeTest插入的是一条赋值语句,它在汇编级也插入的是一条赋值语句,它在汇编级也是一条语句,所以它执行的时间非常短,同时避是一条语句,所以它执行的时间非常短,同时避免了被其他的中断所中断,所以它对目标系统的免了被其他的中断所中断,所以它对目标系统的影响非常小。影响非常小。 n 另一方面,另一方面,CodeTest从纯硬件的测试工具那里吸从纯硬件的测试工具那里吸取了从总线捕获数据的技术并且对它进行了改善,取了从总线捕获数据的技术并且对它进行了改善,CodeTest改变了采样方式,它通过监视系统总线,改变了采样方式,它通过监视系统总线,当程序运行到插入的特殊点的时候才会主动地到当程序运行到插入的特殊点的时候才会主动地到数据总线上去捕获数据。数据总线上去捕获数据。 345.6.2.1CodeTest 5.6.2.1CodeTest n 由于由于CodeTest对软件插桩技术和从总线捕获数据进行改善和提升,对软件插桩技术和从总线捕获数据进行改善和提升,具有很强的性能分析、内存分析、高级覆盖率分析和代码跟踪功能。具有很强的性能分析、内存分析、高级覆盖率分析和代码跟踪功能。 性能分析:性能分析:CodeTest能同时对能同时对128000个函数和个函数和1000个任务进行个任务进行性能分析,可以精确地得出每个函数或任务执行的最大时间、最性能分析,可以精确地得出每个函数或任务执行的最大时间、最小时间和平均时间,精确度达到小时间和平均时间,精确度达到50ns;能够精确地显示各函数或;能够精确地显示各函数或任务之间的调用情况,帮助开发人员和测试人员发现系统瓶颈、任务之间的调用情况,帮助开发人员和测试人员发现系统瓶颈、优化系统。优化系统。 覆盖率分析:覆盖率分析:CodeTest在系统真实的环境下,可以从单元级、集在系统真实的环境下,可以从单元级、集成级、系统级以及产品终端现场阶段进行嵌入式软件的分析与测成级、系统级以及产品终端现场阶段进行嵌入式软件的分析与测试,帮助测试工程师掌握当前的测试覆盖率数据,指导测试用例试,帮助测试工程师掌握当前的测试覆盖率数据,指导测试用例的编写。的编写。 内存分析:内存分析:CodeTest可以动态追踪内存分配,报告内存出错和相可以动态追踪内存分配,报告内存出错和相应的原始数据。它不仅可以在程序运行时报告为每条语句分配多应的原始数据。它不仅可以在程序运行时报告为每条语句分配多少字节的内存,而且可以鉴别少字节的内存,而且可以鉴别20多种内存分配的错误。多种内存分配的错误。 代码跟踪分析:代码跟踪分析:CodeTest提供提供400KB的追踪缓冲空间,能追踪的追踪缓冲空间,能追踪150万行源代码。开发人员可以设置触发器来追踪自己感兴趣的万行源代码。开发人员可以设置触发器来追踪自己感兴趣的事件,可以显示运行过程中程序运行的实际情况,帮助查找程序事件,可以显示运行过程中程序运行的实际情况,帮助查找程序的的Bug所在。所在。 355.6.2.2LogiScope 5.6.2.2LogiScope n LogiScope是一组嵌入式软件测试工具集。它贯是一组嵌入式软件测试工具集。它贯穿于软件开发、代码评审、单元测试、集成测试、穿于软件开发、代码评审、单元测试、集成测试、系统测试,以及软件维护阶段。系统测试,以及软件维护阶段。LogiScope的重的重点是帮助代码评审和动态覆盖测试。总体来说,点是帮助代码评审和动态覆盖测试。总体来说,LogiScope有两方面的功能:有两方面的功能:静态质量分析功能:静态质量分析功能:LogiScope的静态分析功能非常的静态分析功能非常直观,都以图表的方式显示和报告,并且可以简单地直观,都以图表的方式显示和报告,并且可以简单地分析程序的函数结构,对于质量度量的指标都给出了分析程序的函数结构,对于质量度量的指标都给出了具体的定义。具体的定义。动态测试分析功能(覆盖率分析):具有很好的结构动态测试分析功能(覆盖率分析):具有很好的结构分析和浏览器,可以很直观地显示程序的分支(语句)分析和浏览器,可以很直观地显示程序的分支(语句)覆盖情况。覆盖情况。 365.6.2.2LogiScope 5.6.2.2LogiScope n LogiScope产品线有产品线有3个产品,即个产品,即RuleChecker、Audit、TestChecker。它们的功能分别如下:。它们的功能分别如下:RuleChecker:根据为产品定制的规则自动地检:根据为产品定制的规则自动地检查代码编程规则,可以避免错误陷阱和代码错误。查代码编程规则,可以避免错误陷阱和代码错误。Audit:帮助定位错误的代码模块,一旦发现错误:帮助定位错误的代码模块,一旦发现错误代码模块,代码模块,Audit提供基于软件度量和图形的质量提供基于软件度量和图形的质量信息,能够帮助用户诊断问题和作出判断。信息,能够帮助用户诊断问题和作出判断。TestChecker:分析代码测试覆盖率和显示未覆盖:分析代码测试覆盖率和显示未覆盖的代码路径,发现未测试源代码中隐藏的的代码路径,发现未测试源代码中隐藏的Bug,提,提供软件的可靠性。供软件的可靠性。TestChecker产生每个测试的测产生每个测试的测试覆盖信息和累计信息。用直方图显示覆盖比率,试覆盖信息和累计信息。用直方图显示覆盖比率,并根据测试运行情况实时在线更改,随时显示新并根据测试运行情况实时在线更改,随时显示新的测试所反映的测试覆盖情况。的测试所反映的测试覆盖情况。 375.6.35.6.3缺陷跟踪管理工具缺陷跟踪管理工具 nCompuware公司的公司的TrackRecord软件软件 nMercury Interactive公司的公司的TestDirector nMozilla公司的公司的Buzilla软件软件 n国内的微创公司的国内的微创公司的BMS软件软件 385.6.3.1 TestDirector5.6.3.1 TestDirectorn TestDirector是业界第一个基于是业界第一个基于Web的测试管理的测试管理解决方案,它可以在公司内部进行全球范围的测解决方案,它可以在公司内部进行全球范围的测试协调。试协调。 n TestDirector能够在一独立的应用系统中提供需能够在一独立的应用系统中提供需求管理功能,并且可以把测试需求管理于测试计求管理功能,并且可以把测试需求管理于测试计划、测试日程控制、测试执行和错误跟踪等功能划、测试日程控制、测试执行和错误跟踪等功能融合为一体,因此极大地加速了测试的进程。融合为一体,因此极大地加速了测试的进程。测试需求管理测试需求管理 测试计划管理测试计划管理 安排和执行测试安排和执行测试 错误管理错误管理 图形化和报表输出图形化和报表输出 395.6.3.2 Buzilla5.6.3.2 Buzillan MozillaMozilla公司向我们提供了一个共享的免费工具公司向我们提供了一个共享的免费工具Buzilla.Buzilla.作为一个产品缺陷的记录及跟踪工具,作为一个产品缺陷的记录及跟踪工具,它能够建立一个完善的它能够建立一个完善的BugBug跟踪体系,包括报告跟踪体系,包括报告BugBug、查询、查询BugBug记录并产生报表、处理解决、管理记录并产生报表、处理解决、管理员系统初始化和设置四部分。并具有如下特点:员系统初始化和设置四部分。并具有如下特点: 基于基于WebWeb方式,安装简单、运行方便快捷、管理安全方式,安装简单、运行方便快捷、管理安全 有利于缺陷的清楚传达有利于缺陷的清楚传达系统灵活,具备可配置能力系统灵活,具备可配置能力 自动发送自动发送Email,Email,通知相关人员通知相关人员 405.7 IBM Rational自动化测试解决方案架构 415.7.1 IBM Rational Test Manager 425.7.1 IBM Rational Test Managern主要特点和功能 自动化测试计划 管理所有类型的测试 一次执行多种测试类型 链接测试用例与需求 测试评估 有意义的报告 管理手动测试 435.7.2 IBM Rational Test RealTime n代码级测试工具 代码静态分析 代码编辑、测试和调试相集成 Test RealTime通过分析源代码,自动生成测试驱动(Test Driver)和桩(Test Stub)模版。测试执行后自动生成测试报告和各种运行时候报告 445.7.3 IBM Rational PurifyPlus n PurifyPlus是一套完整的运行时分析工具,它设计用于提高应用程序的可靠性和性能,PurifyPlus将内存错误和代码覆盖分析结合到一个单一的、完整的软件包中,它包括三个应用程序:Rational Purify - 一个内存分析工具(收集方法和对象层次的内存分析数据,并指出应用程序的内存热点所在) Rational Quantify - 一个应用程序执行时间分析工具(收集方法和线层次的分析数据并指出应用程序的性能瓶颈) Rational PureCoverage - 一个代码覆盖率分析工具(通过突出未执行的方法和代码行来收集没有测试到的部分的数据) 455.7.3 IBM Rational PurifyPlusn Purify :可以自动识别出二十多种内存使用错误,包括:可以自动识别出二十多种内存使用错误,包括: 未初始化的局部变量未初始化的局部变量 未申请的内存未申请的内存 使用已释放的内存使用已释放的内存 数组越界数组越界 内存丢失内存丢失 栈溢出问题栈溢出问题 栈结构边界错误等栈结构边界错误等 n Purify 系列现已支持系列现已支持C、C+、FORTRAN语言,以及语言,以及UNIX和和Window NT等操作系统,如等操作系统,如Sun OS、Solaris 2.3,HP-UX,Windows NT Server以及以及IBM A/ X等。等。 465.7.3 IBM Rational PurifyPlusnQuantify Quantify 是一个面向是一个面向VC, VB 或者或者Java 开发开发的测试性能瓶颈检测工具的测试性能瓶颈检测工具,它可以自动检测出影它可以自动检测出影响程序段执行速度的程序性能瓶颈,提供参数响程序段执行速度的程序性能瓶颈,提供参数分析表等等直观表格。帮助分析影响程序短执分析表等等直观表格。帮助分析影响程序短执行速度的关键部分。行速度的关键部分。 利用利用Rational Quantify 各种数据图表窗口,各种数据图表窗口,您可以直接识别应用程序的性能瓶颈。只需单您可以直接识别应用程序的性能瓶颈。只需单击鼠标,击鼠标,Quantify 就可以轻松地描绘出整个应就可以轻松地描绘出整个应用程序或仅仅某个特定部分的性能曲线。用程序或仅仅某个特定部分的性能曲线。 475.7.3 IBM Rational PurifyPlusnPureCoverage PureCoverage 是一个面向是一个面向VC, VB 或者或者Java 开发的测试覆盖程度检测工具开发的测试覆盖程度检测工具,它可以自动检测它可以自动检测测试完整性和那些无法达到的部分测试完整性和那些无法达到的部分.作为一个质作为一个质量控制工程量控制工程,可以使用可以使用PureCoverage 在每一个在每一个测试阶段生产详尽的测试覆盖程度报告。测试阶段生产详尽的测试覆盖程度报告。485.7.4 IBM Rational Functional testern由于测试是一个需要反复进行的过程,常由于测试是一个需要反复进行的过程,常常要数十次甚至数百次地重复。因此,这常要数十次甚至数百次地重复。因此,这一特性大大地提高了软件一特性大大地提高了软件“再测试再测试”(Re-Test)和)和回归测试回归测试(Regression)的自)的自动化程度,把测试人员从繁杂的、重复性动化程度,把测试人员从繁杂的、重复性的手工测试中解脱出来,从而显著地提高的手工测试中解脱出来,从而显著地提高软件测试效率。软件测试效率。 495.7.5 IBM Rational Performance Tester505.7.5 IBM Rational Robot n 可开发三种测试脚本:用于功能测试的可开发三种测试脚本:用于功能测试的GUI脚本、用于性脚本、用于性能测试的能测试的VU以及以及VB脚本。主要作用如下:执行完整的功脚本。主要作用如下:执行完整的功能测试。记录和回放遍历应用程序的脚本,以及测试在查能测试。记录和回放遍历应用程序的脚本,以及测试在查证点(证点(verification points)处的对象状态。)处的对象状态。 执行完整的性能测试。执行完整的性能测试。Robot和和Test Manager协作可以记录和回协作可以记录和回放脚本,这些脚本有助于你断定多客户系统在不同负载情况下是放脚本,这些脚本有助于你断定多客户系统在不同负载情况下是否能够按照用户定义标准运行。否能够按照用户定义标准运行。 在在SQA Basic、VB、VU环境下创建并编辑脚本。环境下创建并编辑脚本。Robot编辑器编辑器提供有色代码命令,并且在强大的集成脚本开发阶段提供键盘帮提供有色代码命令,并且在强大的集成脚本开发阶段提供键盘帮助。助。 测试测试IDE下下Visual Basic、Oracle Forms、Power Builder、HTML、Java开发的应用程序。甚至可测试用户界面上不可见对开发的应用程序。甚至可测试用户界面上不可见对象。象。 脚本回放阶段收集应用程序诊断信息,脚本回放阶段收集应用程序诊断信息,Robot同同Rational Purify、Quantify、Pure Coverage集成,可以通过诊断工具回放脚本,集成,可以通过诊断工具回放脚本,在日志中察看结果。在日志中察看结果。 515.8负载测试工具设计与开发负载测试工具设计与开发n负载测试工具总体结构如下图负载测试工具总体结构如下图 负载测试工具脚本工具(与脚本语句生成与解释器)控制工具(多进程运行脚本控制)系统资源监控工具结果分析工具(包括测试、自动生成)525.8.1脚本工具脚本工具 n 脚本工具的主要功能是可以实现捕捉用户的操作;可以用脚本工具的主要功能是可以实现捕捉用户的操作;可以用脚本语言模拟用户事务操作,并将用户的操作转换为脚本脚本语言模拟用户事务操作,并将用户的操作转换为脚本语言描述,每个事务交易成为脚本语言的一句或几句;脚语言描述,每个事务交易成为脚本语言的一句或几句;脚本工具可以解释运行脚本语言;脚本工具有自己的编辑器,本工具可以解释运行脚本语言;脚本工具有自己的编辑器,可以对脚本语句进行编辑、增加注释,还可以对两个脚本可以对脚本语句进行编辑、增加注释,还可以对两个脚本进行比较。进行比较。 n 脚本语言需要同时记录客户端和服务器端的活动。对于数脚本语言需要同时记录客户端和服务器端的活动。对于数据库系统,记录客户端发出的每一个需求,也要记录服务据库系统,记录客户端发出的每一个需求,也要记录服务器端的响应。脚本语言执行时需要直接调用服务器的器端的响应。脚本语言执行时需要直接调用服务器的API功能运行。使用脚本工具可以:功能运行。使用脚本工具可以: 监视客户端和服务器端的通信;监视客户端和服务器端的通信; 生成功能调用执行脚本语言。生成功能调用执行脚本语言。535.8.2控制工具控制工具 n 当要模拟上百万的用户并发操作时,一台计算机上运行几当要模拟上百万的用户并发操作时,一台计算机上运行几百万个进程会受到本机资源的限制,必须使用多台计算机百万个进程会受到本机资源的限制,必须使用多台计算机来运行这几百万个进程。为了协调控制,必须设置一台主来运行这几百万个进程。为了协调控制,必须设置一台主控制器,在主控制器上要建立与参与并发计算机的连接;控制器,在主控制器上要建立与参与并发计算机的连接;实现对多台机器进行控制,包括分配每台计算机上运行的实现对多台机器进行控制,包括分配每台计算机上运行的脚本个数,及启动脚本。脚本个数,及启动脚本。 n 为了测试事务的响应时间,必须建立计时机制。为了测试事务的响应时间,必须建立计时机制。 n 当并发运行时,主控制器还要收集记录测试结果数据,包当并发运行时,主控制器还要收集记录测试结果数据,包括随时间变化的各种参数(脚本运行的个数、事务的处理括随时间变化的各种参数(脚本运行的个数、事务的处理个数、资源的使用情况等),每个脚本运行的事务的开始个数、资源的使用情况等),每个脚本运行的事务的开始时间、结束时间、持续时间,每个事务的最快响应时间、时间、结束时间、持续时间,每个事务的最快响应时间、最慢响应时间等,计算平均响应时间。最慢响应时间等,计算平均响应时间。 545.8.3监测工具监测工具 n监视工具可以调用操作系统和数据库系统监视工具可以调用操作系统和数据库系统软件的资源监测工具对系统资源进行监测。软件的资源监测工具对系统资源进行监测。还需用特殊工具监测一些别的资源。包括还需用特殊工具监测一些别的资源。包括下面内容:下面内容:脚本运行状态(几个通过,几个失败),当前脚本运行状态(几个通过,几个失败),当前时刻多少个脚本在运行。时刻多少个脚本在运行。被测事务处理时间响应图(包括成功运行和失被测事务处理时间响应图(包括成功运行和失败运行)。败运行)。555.8.4分析工具分析工具 n 控制工具记录下了测试结果数据,对于测试结果数据的分控制工具记录下了测试结果数据,对于测试结果数据的分析,需要使用工具进行分析,以便得出结论,分析内容如析,需要使用工具进行分析,以便得出结论,分析内容如下:下: 原始记录数据导出功能;原始记录数据导出功能; 各事务随用户增多的时间响应变化;各事务随用户增多的时间响应变化; 事务平均响应图,事务完成在整个测试运行时间所处的阶段,各事务平均响应图,事务完成在整个测试运行时间所处的阶段,各个事物在整个测试运行时间分布。个事物在整个测试运行时间分布。 每个事务完成的最快、最慢、平均时间,大部分(每个事务完成的最快、最慢、平均时间,大部分(90%)完成时)完成时间,事务的完成个数随响应时间的分布,描述在不同测试时间段间,事务的完成个数随响应时间的分布,描述在不同测试时间段内完成的事务个数。内完成的事务个数。 比较工具可以在同一图形上显示多次测试运行的结果,以显示优比较工具可以在同一图形上显示多次测试运行的结果,以显示优化设置和不同硬件环境下负载测试的效果。化设置和不同硬件环境下负载测试的效果。 n 分析工具包括测试报告自动生成工具,如生成分析工具包括测试报告自动生成工具,如生成word文件。文件。报告内容可以包括:测试执行脚本名称,环境,测试运行报告内容可以包括:测试执行脚本名称,环境,测试运行时间,被测试的每个事务通过个数,失败个数,最快响应时间,被测试的每个事务通过个数,失败个数,最快响应时间等。时间等。 565.95.9自动化测试成熟度自动化测试成熟度n在过去的日子中,自动化的测试工具只是在过去的日子中,自动化的测试工具只是被看作是一种捕获和回放的工具。当前这被看作是一种捕获和回放的工具。当前这个神话仍然在很多测试人员的思想中。而个神话仍然在很多测试人员的思想中。而事实上自动化测试已经远不止捕获和回放事实上自动化测试已经远不止捕获和回放这么简单了。按照成熟度自动化的测试可这么简单了。按照成熟度自动化的测试可以被划分为以被划分为5个级别。个级别。 575.95.9自动化测试成熟度自动化测试成熟度n 级别级别1:捕获和回放:捕获和回放 :这是使用自动化测:这是使用自动化测试的最低的级别,同时这并不是自动化测试的最低的级别,同时这并不是自动化测试最有用的使用方式。试最有用的使用方式。 好处 自动化的测试脚本能够被自动的生成,而不需要有任何的编程知识。缺点 你会拥有大量的测试脚本,同时当需求和应用发生变化时相应的测试脚本也必须被重新录制。用法 当测试的系统不会发生变化时 小规模的自动化。585.95.9自动化测试成熟度自动化测试成熟度n 级别级别2:捕获、编辑和回放:捕获、编辑和回放 :在这个级别中,使用自:在这个级别中,使用自动化的测试工具来捕获想要测试的功能。将测试脚本动化的测试工具来捕获想要测试的功能。将测试脚本中的任何写死的测试数据,比如名字、帐号等等,从中的任何写死的测试数据,比如名字、帐号等等,从测试脚本的代码中完全删除,并将他们转换成为变量。测试脚本的代码中完全删除,并将他们转换成为变量。 好处测试脚本开始变得更加的完善和灵活,并且可以大大的减少脚本的数量和维护的工作。缺点需要一定的编知识。频繁的变化可能会引起意大利面条式的代码,并且变更和维护几乎是不可能的。用法当进行回归测试时,被测试的应用有很小的变化,比如仅仅是针对计算的代码变化,但是没有关于 GUI 界面的变化。595.95.9自动化测试成熟度自动化测试成熟度n级别级别3:编程和回放:编程和回放 :这个级别是面对多个:这个级别是面对多个构建版本的有效使用测试自动化的第一个构建版本的有效使用测试自动化的第一个级别。级别。605.95.9自动化测试成熟度自动化测试成熟度好处确定了测试脚本的设计。适当的设计是必要的。编码的习惯必须是适当的。使用与开发中相同的编码习惯是非常好的。这将开始搭建起测试和开发之间的桥梁。在项目的早期就可以开始自动化的测试。能够在项目的早期就开始进行测试脚本的设计。与开发人员交并调查他们认为可能会存在问题的区域。确保了开发人员关注在获得能够被测试的方案上。缺点要求测试人员具有很好的软件技能,包括设计、开发等。用法大规模的测试套件被开发、执行和维护的专业自动化测试。615.95.9自动化测试成熟度自动化测试成熟度n级别级别4:数据驱动的测试:对于自动化测试:数据驱动的测试:对于自动化测试来说这是一个专业的测试级别。拥有一个来说这是一个专业的测试级别。拥有一个强大的测试框架,这个测试框架是基于能强大的测试框架,这个测试框架是基于能够根据被测试系统的变化快速创建一个测够根据被测试系统的变化快速创建一个测试脚本的测试功能库。维护的成本相对是试脚本的测试功能库。维护的成本相对是比较低的。在测试中会使用到大量真实的比较低的。在测试中会使用到大量真实的数据。数据。 625.95.9自动化测试成熟度自动化测试成熟度好处能够维护和使用良好的并且有效的模拟真实生活中数据的测试数据。缺点软件开发的技能是基础,并且需要访问相关的测试数据。用法大规模的测试套件被开发、执行和维护的专业自动化测试。635.95.9自动化测试成熟度自动化测试成熟度n 级别级别5:使用动作词的测试自动化:这是自动化:使用动作词的测试自动化:这是自动化测试的最高级别。主要的思想是将测试用例从测试的最高级别。主要的思想是将测试用例从测试工具中分离出来。测试工具中分离出来。好处 测试用例的设计被从测试工具中分离了出来 关注在设计良好的测试用例上。允许快速的测试用例的执行和基于用例的更好的估计。 缺点 需要一个具有工具技能和开发技能的测试团队,以提供并维护测试工程(框架) 。用法专业的测试自动化将技能的使用最优化的结合起来 645.95.9自动化测试成熟度自动化测试成熟度好处测试用例的设计被从测试工具中分离了出来 关注在设计良好的测试用例上。允许快速的测试用例的执行和基于用例的更好的估计。缺点需要一个具有工具技能和开发技能的测试团队,以提供并维护测试工程(框架)。用法专业的测试自动化将技能的使用最优化的结合起来
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!