基于qtp的软件自动化功能测试与案例研究论文内容摘要:
............... 34 图 DATA TABLE ........................................................................................................ 35 图 参数出口 ........................................................................................................... 36 图 用户名参数化结果显示 ................................................................................... 36 图 在专家视图中的显示 ....................................................................................... 37 图 密码参数化结果显示 ....................................................................................... 37 . . 表目录 表 自动化测试与手工测试对比 ............................................................................. 9 表 各类数据来源 ................................................................................................... 19 表 ST 测试环境 ...................................................................................................... 28 表 用户登录模块测试用例 ................................................................................... 33 . . 第 1章 绪论 课题背景 软件测试是 整个 项目过程中 的重要环节之一。 软件开发 方面 的工作效率在 软件技术的 快速 发展 的同时,也有了 很大 的提高, 但在 软件测试 方面, 效率 并 没有得到相应的提高。 在国外, 在软件开发过程中越来越注重软件测试效率, 在整个软件开发过程中所占的 比例 越来越高 , 成为 在 软件 项目 过程中 的 重要 环节。 软件自动化测试 的出现,是 软件测试 发展过程中的 的 一个 新阶段 ,软件 自动化测试 成为成为了提高软件测试效率的重要途径。 本文是针对某金融信息系统。 此 系统 相对其他系统来说, 业务逻辑 相对 比较复杂 ; 金融信息 系统 测试需求复杂, 测试 需要的 数据需求量 很 大, 而 这些数据都需要测试人员在后台或前台同手工操作来产生的;另外该系统变更频繁,回归测试频繁,测试工作周期紧张,而系统的需求文档维护不周,缺失严重 ,并且开发人员缺乏金融背景知识等等,这些都为测试工作带来了困难, 这就致使通过利用自动化测 试的特点来解决目前的困难,从而可以在尽可能少的人力资源投入下和尽可能短的工作时间内,尽可能高效地发现 系统缺陷 ,进而可以进一步提高开发人员在 修复缺陷 阶段的工作效率。 在该项目中,本人主要负责新增模块的测试需求分析,以及该模块在 ST 环境和 UAT 环境下的功能测试,基于该模块的功能测试,提出了 相关的 自动化测试的实施。 论文研究的目的与意义 软件测试是 整个项目过程中 的重要环节之一。 在该金融信息系统实施自动化测试,可以解决目前该金融信息系统的一些, 从而可以在尽可能少的人力资源投入下和尽可能短的工作时间内,尽可能高效地发现 系统缺陷 ,进而可以进一步提高开发人员在 修复缺陷 阶段的工作效率。 主要工作 论文的主要工作包括: 1. 分析该金融信息系统新增模块的测试需求。 2. 设计该新增模块的相关测试用例。 . . 3. 根据测试用例分析测试方法。 4. 实施 QTP 自动化功能测试。 5. 通过案例分析,提出改进 QTP 自动化测试的方法与建议。 软件测试综述 软件测试 软件测试的研究可以追溯到 60 年代,至今己有近 40 年的历史。 软件测试的概念可以从两方面的来讲,一方面,它 是指 对 软件产品 在 生存周期内 的所有的检验 、评审;另一方面, 是 指对软件产品质量的检测和评审。 总结出来,可以概括为 : 它一方面检查软件产品质量中存在的质量问题,同时对产品质量进行客观的评价 [1]。 进入 80 年代,软件产品的质量 越来越受到 了 重视。 1982 年 6 月在美国北卡罗来纳大学召开了首次软件测试的正式技术会议,关心软件测试和软件质量的研究与开发人员第一次聚会, 就软件测试和软件质量提出了他们自己的看法。 这次会议成为软件测试技术发展中的一个重要里程碑 [1]。 信息时代的迅速发展,软件的质量成为了人们共同关注的焦点。 在国外,软件测试发展很迅速,如美、英、法等国都有开发软件测试标准与测试工具的专业公司。 而我国,在软件测试方面起 步 较晚,测试技术和测试工具也相对缺乏。 我国软件测试技术研究起步较晚 ,人力、物力 等投入较 少,与 国外现状 相比,差距很大,难以满足实际的需求。 软件测试 是在有限的时间内提供高质量软件的保证,是一个完整、正规的软件开发过程中非常重要的一个部分 [2]。 测试是为发现错误而执行的一个程序或者系统的过程 [3]。 测试是对软件质量的度量 [4]。 软件自动化测试 自动测试 是指 各种测试活动的管理与实施,包括测试脚本的开发与执行,以便使用一种自动测试工具来 验证测试需求。 实际上就是将大量的重复 性工作 通过自动化测试工具 去完成 [5]。 因此,可以将自动化测试定义为测 试人员按照预定的 计划,借助 自动化 测试工具 ,执行 自动测试程序 ,进而 对软件进行功能、性能等方面测试 ,它 是相对手工测试而存在的,具有良好的可操作性,可重复性和高效性等特点。 . . 论文的组织结构 第一章绪论,介绍课题背景,主要工作内容, 软件测试概述, 最后介绍了本论文的组织。 第二章从软件工程的角度出发,对软件测试和自动化测试技术进行全面的了解。 第三章对该系统使用的自动化测试工具 QTP 进行简单的介绍。 第四章进行某 金融信息系统的测试需求分析。 第五章 QTP 自动化功能测试在金融信息系统中的应用。 第六章通过案例研究,提出对 QTP 自动化测试流程的改进,以及某些缺陷的研究方法。 第七 章本文的总结部分,指出 QTP 自动化测试系统存在的缺陷,有待继续研究的方向等。 本章小结 首先,简单的介绍了课题的相关背景和研究的意义;然后 ,概述了 软件测试和自动化测试的相关概念;最后 , 介绍了本文的组织结构。 . . 第 2章 软件测试技术 软件测试基本理论 软件测试的定义与目的 1983 年 IEEE( 电气和电子工程师 简称)给出了软件测试下的定义: “ 使用人工或自 动的手段来运行或测定某个软件系统的过程,其 测试 目的 时在于检验被测系统是否满足需求的规定 ” [6]。 从给定的定义,可以 明确地指出软件测试 的目的是 检查被测系统对的功能 是否 与相关 需求 规定的功能相一致,既要检查是否 满足所规定的需求 ,又要检查被测系统是 否存在差异。 根据 国家标准 , 可以将测试概念 定义 为:通过 人工或自动 来执行和检验被测系统相关功能 的过程, 以证明该被测系统对的功能 是否 与相关 需求 规定的功能相一致 ; 或 者检查预期 实际 输出 结果 和 输出 结果 是否相一致。 在《系统的软件测试》 [7]书 中 , 描述有关软件测试的 相关 定义 :“软件 测 试 的目的是为了横 量和提高被测软 件的质量, 并 进行 了相关的工程设计、实施以及维护 整个生命周期 的 过程。 ” , 这些定义描述 对软件测试 的理论 研究 体系研究 产生了巨大的影响。 以上定义从不同角度描述了软件测试的 相关定义。 从总体上来看, 这些 给出定义的实质 是一致的。 它们都一致的指出 软测试是 为了检验被测软件的功能 是否满足需求 所规定 , 并 尽可能 多 的 发现和解决 软件中存在的缺陷,这既是软件测试的目的。 软件测试目的 , 可以 为以 下几点 [5][6]: (1) 最终的目的是 通过测试提高软件 产品 的质量。 (2) 以尽可能 用较 少的时间和人力,找出 潜伏在 软件 产品中 的 缺陷 ,并在产品交付之前解决这些 Bug。 (3) 通过设计的测试用例,检验 软件 产品的功能 是否与需求 规格功能说明书相一致。 (4) 通过执行测试,检查实际输出结果与预期输出结果是否相一致。 (5) 评估软件的性能指标。 最后根据的测试结果和相关测试标准规定,为软件产品交付提供依据。 (6) 提高软件的可靠性, 增加用户对软件 使用 的信心。 . . 软件测试的原则 要做好软件测试,需要有一定的原则和方法指导。 软件测试的主要原则是 [5][6]: 1. 制定严格的测试计划,并把测试时间安排得尽量宽松,不要希望在极短的时间内完成一个高水平的测试; 2. 设计测试用例时,应该考 虑到合法的输入和不合法的输入,以及各种边界条件,特殊情况下要制造极端状态和意外状 态。 测试用例 包括测试编号 、 测试输入、测试步骤和 预期 输出预期结果。 在设计测试用例时,还要考虑测试覆盖率,确保需求中规定的所有功能 路径 都能覆盖到 ,因为 每一条路径都 会关联到相关的功能点 , 要保持测试的完整性。 3. 应该尽早的阶段和不间断的进行,越早发现软件的缺陷,修复的成本就越低; 4. 严格执行测试计划,在执行 测试过程中 ,要严格执行测试用例, 需按照功能,遵循优先级从高到低的测试。 5. 对每一次测试结果,发现的缺陷,都要再重新一次测试,一证明该缺陷是 否具有重现性。 6. 对于开发已 FIXED 的 BUG,进行回归测试,用来验证该 BUG 却是已经修复过。 7. 在 BUG 的 回归测试 中,要考虑相关功能点 的关联性 ,对一个 BUG 的修复很可能会引发另一个缺陷的存在。 8. 妥善保管好 与测试相关的一切文档,包括 测试计划,测试用例,缺陷 报告 ,测试结果报告等等,只有这样才能维护和 保证软件 产品 的质量 软件测试的分类 软件测试方法和技术多种多样,根据不同角度,可以将测试方法分为不同种类。 1. 静态测试和动态测试 根据 在 测试过程中软件的状态不同, 可以将软件 分为静态测试和动态测试。 所谓的静态测试( Static Testing), 它 是指不实际 去 运行被测软件,而只是静态地检查 相关的 程序代码、界面或文档中 有 可能存在的 相关 错误的过程 [8]。 静态测试 方法 是指 通过 静态 的分析 程序, 从而 找出 相关的 BUG 和不合理之处。 静态测试结果可用于进一步的查错,并为测试用例选取提供指导。 动态测试( Dynamic Testing), 它 是指实际 去 运行被测程序,输入相应的测试. . 数据,检查实际输出结果和预期 输出的 结果是否 相一致 的过程 [8]。 动态测试的特征是在测试过程中执行被测试程序。 2. 黑盒测试与白盒测试 根据是否 对系统内部结构和具体实现算法的 测试 角度, 可以将测试 分为黑盒测试和白盒测试。 黑盒测试 (Blackbox Testing),它 又称功能测试或基于 需求 规格 说明 的测试,要从用户的角度出发,对软件产品进行测试。 在 黑盒 测试中, 是 把程序看作 是一个不能打开的黑盒子, 不考虑 软件 程序 的 情况下,在 各个 程序接口进行 功能测试,它只检查软件 功能是否按照需求规格说明书的 所 规定 的功能,并能 正常使用 [8]。 黑盒测试只考虑 软件界面 、 软件的功能是否实现以及它的业务流程是否 可以走通 , 它并 不考虑 程序 内部的 结构。 如图 图 黑盒测试流程 白盒测试 (Whitbox Testng),它 又称 程序 结构测试、逻辑驱动测试或基于程序的测试 [8]。 它 需要对软件程序进行检查 , 在 特定条件 下, 设计 相关的测试用例,对程序的内部逻辑机构 进行测试 和验证。 在 白盒 测试 的过程 中, 将被测 对象 当做一个 被 打开的盒子, 根据的 内部逻辑结构 以及功能点的覆盖路径 ,设计 相关的 测试用例, 根据测试用, 对 代码中的各种覆盖 路径进行 检验 测试, 最后,检查 实际输出结果 是否与预期 输出结果相一致。 3. 单元测试、集成测试、系统测试、验收测试 根据 测试的阶段 的 不同, 将测试分为 包括单元测试、集成测试、确认测试、系统测试和回归测试。 如图 程序 条件 条件 输出 输入 . . 图 测试各阶段。基于qtp的软件自动化功能测试与案例研究论文
相关推荐
计划 及测试需求 测试原理分析 QTP 主要采用的是使用 GUI 模拟人的操作。 它在模拟人的操作时会记录操作的对象及所做的操作和顺序,然后在回放时按记录顺 序操作这些对象。 而在这个模拟的过程中,最重要的莫过于界面对象(控件)的识别。 例如,在 “ 用户名输入框 ” 中输入 “a 用户 ” ,伪代码如下: WebEdit(“ 用户名输入框 ”).Set “a 用户 ” ,下面分析这个测试原理。
e作为顶级容器设计图形化界面。 Qt 的图形使用者接口的基础是 QWidget。 Qt 中所有类型的 GUI 组件如按钮、标签、工具列等都继承自 QWidget,而 QWidget 本身则为 QObject 的子类别。 Widget负责接收鼠标,键盘和来自窗口系统的其他事件,并描绘了自身显示在屏幕上。 每一个 GUI组件 都是一个 widget, widget还可以作为容器,在其内包含其他
组件来使用。 槽 用于接收信号,而且槽只是普通的对象成员函数。 一个槽并不知道是否有任何信号与自己相连接。 而且对象并不了解具体的通信机制。 信号与槽的连接 如果这个类是从 QObject 或其子类派生的 ,那么这个 类 就包含了信号和槽。 这是因为 QObject 的 connect() 成员函数是用来实现信号和槽的连接的。 connect(sender, SIGNAL(signal),
子的磁场相互作用,就 会 得到 电功率, 从而实现电机把电能转化为机械能的这一过程。 直流 无刷 电机的转子对电机来讲有比较重要的地位,它 是 产生励磁磁场的 主要 器件 之一。 直流 无刷 电机要 能够 转 动 起来 ,除了电机本体 以 外,还需要 电 子换相电路与转子位置传感器 的共同配合。 这当中 , 使用转子位置传感器的目的 是 来检测转子磁极的位置,并将 这个 位置信号 及时
水位。 首先通过实时检测电压,测量水位变化,从而控制电机 状态 ,保证水位正常。 硬件电路设计分为时钟电路、复位电路、 液位检测电路 、 报警电路,电机控制电路几个部分,其系统结构图如 图 2 所示。 图 2 液位自动控制系统结构图 单片机最小系统 单片机 AT89C51 是本系统的核心,它主要负责控制各个部分协调工作。 单片机采用 40 引脚双列直插式封装 ( DIP) ,其引脚
前,实验、科研和工业生产中使用的波形发生器大多采用此方法来实现 [711]。 相比之下,软硬件结合的方法可以设计出性能最优、功能扩展灵活、控制智能化的波形发生器,可以满足教学、科研、工业生产等各方面对波形发生器性能有较高要求的应用场合。 综合以上几种设计方案,本设计采用软硬件结合设计法。 该方案能够产生很好的波形,也易于实现。 3 硬件设计 波形的产生是通过 AT89C51