当前位置:文档之家› 基于模型的自动化测试工具的实现

基于模型的自动化测试工具的实现

基于模型的自动化测试工具的实现
基于模型的自动化测试工具的实现

基于模型的自动化测试工具的实现

摘要

基于模型的测试是

本文首先介绍了Atmel-View框架以及菜单系统UI在其中所将扮演的角色、与各个功能模块间的关系。其次讲解了Atmel-View内存映射窗口结合OSD应用的UI设计思想,涉及了多图层表现的想法,硬件OSD与伪OSD的比较使用。然后详细阐述了基于Atmel-View 的菜单系统方案和框架结构,针对最重要的MenuMode菜单构建函数分析其数据抽象、界面绘制和事件响应处理过程。其后介绍Nucleus Plus,给出进程通信、进程同步在菜单系统中支持蓝牙模块的应用方法。本方案的实现提供了一套层次化、结构化、可扩展的电子相框菜单系统,并有效支持了蓝牙模块的应用。

关键词:OSD,内存映射窗口,菜单系统,UI

FULFILL UI OF DIGITAL PHOTO FRAME

BASED ON ATMEL-VIEW

ABSTRACT

Atmel Corporation's Atmel-View is the application for board A T76C120, it has already provided low level realization for digital photo frame, and it could be an extendable and mature solution. Based on current functions of Atmel-View, we will design and fulfill the Menu System.

Firstly the framework of Atmel-View, which role Menu System UI acts and how it relates with other function modules were introduced in this paper. Then the concept ofSDRAM-Mapping Window with OSD's usage was proposed. It referred to the idea of multiple image layer interface and the comparison the usage of hardware OSD and Pseudo OSD. Then the details of Menu System's framework were illustrated. The process of data abstraction, interface drawing and event handling were analyzed for the most important Menu building function MenuMode. After that Nucleus Plus was introduced and the method to use process communication, process synchronization for supporting Bluetooth module in Menu System was given.The UI solution provides a layered, structural and extendable Menu System for digital photo frame. And it effectively supports Bluetooth module.

Key words:OSD, SDRAM-Mapping Window, Menu System, UI

目录

第一章绪论 (1)

1.1.软件测试简介 (1)

1.2.软件测试工具发展现状 (2)

1.3.项目背景和论文结构 (4)

1.3.1.项目背景 (4)

1.3.2.论文结构 (4)

第二章基于模型的测试 (5)

2.1.MBT一般操作流程 (5)

2.2.MBT模型表现形式 (6)

2.3.MBT测试用例生成 (7)

2.4.MBT预期输出生成 (10)

第三章系统架构 (12)

3.1.功能概述及流程 (12)

3.2.系统架构 (12)

第四章系统各功能实现 (14)

第五章实例分析:A TM系统 (21)

第六章结论及展望 (26)

参考文献 (27)

第一章绪论

1.1.软件测试简介

随着电子信息化的飞速发展,计算机软件已经遍布于人类社会的各个角落,远至月球探测卫星的发射系统,近至个人携带的MP3音乐播放器。但是软件带来巨大便利的同时,软件中的任何微小缺陷也可能带来难以估量的损失。据美国国家标准技术研究院(NIST)2002年公布的一份研究报告显示,软件故障平均每年对美国经济造成的损失约为595亿美元,占其国民生产总值的0.6% [1]。

因此,如何保证软件的质量显得尤为关键。软件测试能够有效地帮助软件开发人员找出系统中存在的错误,从而在很大程度上保证软件的质量。现代软件工程理论将软件测试作为软件开发过程的重要组成部分,软件开发过程中有一半以上的资源都花费在软件测试上。

早期的软件测试等同于程序调试,1957年Charles Baker才正式将两者区别开来,他认为调试侧重于保证程序运行,而测试侧重于保证程序解决问题[2]。1979年Myers提出“测试是带有发现错误意图去执行程序的过程”[3],越是发现了错误才说明测试过程的成功。1983年美国国家标准局(NBS)发表了评估软件生命周期各阶段的测试方法[4],同年美国电气和电子工程师协会(IEEE)发布了八大软件测试相关文档的标准[5],人们开始利用这些评估标准来衡量测试软件的质量。1988年David Gelperin等在书中写道,“测试是为了证明软件符合需求规约,发现缺陷和防止错误”[6]。

时间测试阶段

-1956 面向调试时期

1957-1978 面向论证时期

1979-1982 面向破坏时期

1983-1987 面向评估时期

1988- 面向防止时期

表1-1 测试的发展阶段[6]

测试不可能遍历所有可能出现的情况,必须在适当的时候终止测试。如果一味地追求缺陷数量,很可能得不偿失。常用的判断标准有:代码覆盖率、测试用例通过率、缺陷数量收敛率等等。

图1-1 缺陷数量收敛图

1.2.软件测试工具发展现状

纯手工地进行软件测试往往是费时费力的,而且测试人员容易因为疏忽产生失误,测试准确性无法得到足够的保证。于是人们需要开发一些自动化工具来管理或者执行测试过程,虽然编写软件测试工具需要引入额外的工作量,但是软件测试工具能大大提高软件测试的效率和质量,并且市面上也已经存在着许多现成的测试工具。

名称产商简介

WinRunner Mercury Interactive 支持自动录制、检测和回放用户操作

LoadRunner Mercury Interactive 模拟大量并发负载来预测系统性能

TestDirector Mercury Interactive 基于Web的测试管理系统

Robot IBM 具有测试和管理的双重功能

xUnit \ 最流行的开源单元测试框架

SilkTest Borland 软件功能测试工具

WAS Microsoft 强大的网站压力测试工具

JTest Parasoft 针对Java语言的自动化白盒测试工具

JMeter Apache 100%用Java实现的功能和性能测试工具

WebLoad RadView Web性能测试和分析工具

表1-2 常用软件测试工具

一般来说,自动化测试可以分为:基于代码的测试和基于图形化用户界面的测试。基于代码的测试是指通过程序提供的公共接口,直接验证各个类、库和模块在不同的输入情况下返回结果的正确性与否,如xUnit系列框架。而基于图形化用户界面的测试则是通过模拟用户动作行为(比如键盘输入、鼠标点击),产生某些事件来观察和判断程序响应是否满足预期,如WinRunner。

绝大部分软件测试工具并不能自动完成整个测试过程,测试人员依然需要事先编写好测试脚本或测试用例,即一组测试输入、执行条件和预期结果。测试用例能够被快速和反复地执行,方便地使得发现的软件错误重现。当测试本身就需要多次重复时(比如回归测试、压力测试),其优点将更加显著。

基于模型的测试(MBT, Model-Based Testing)是一种轻量级自动生成测试用例的方法,测试人员的关注点在于构建一个能够描述被测系统各方面数据和行为的形式化机器可读模型。为了抽象出理想的模型可能需要花费一定的时间,但是模型构建的工作可以在软件开发生命周期的早期就开始,只要求被测系统的需求定义完成即可。而且往往在将非形式化的需求转化为形式化的模型过程中,需求中的遗漏和不足部分将被发现。模型所带来的回报也是巨大的,因为一旦模型被确立且其能够准确反映被测系统的真实需求,软件测试工具就能够分析模型自动得到测试用例。

软件测试的主要目的就是发现错误。事实证明,MBT确实具有很强的错误发现能力。IBM公司和BMW公司的研究表明,MBT发现的错误和手工设计的测试集发现的错误数量差不多。而微软公司的某一应用中,MBT发现了多10倍的错误[14]。其它的一些研究结果中(如图1-2),和人工测试相比MBT都是发现更多或者相同数量的错误。当然MBT也不是万能的,它发现错误的能力很大程度上依赖于建模和选择测试用例选择要求人员的水平。

图1-2 各种测试方法整个测试过程的花费时间图[14]

MBT能否降低测试的花费和时间,取决于建立和维护模型加上生成测试用例花费的时间是否比其它方法设计和维护测试集所需要的时间少,通常情况下答案是肯定的。而且MBT 可以提高测试效率,因为人工测试受限于测试人员的思维活跃程度,MBT使用的测试用例生成算法和启发式用例选择机制能够快速生成大量测试用例,达到对模型更高的覆盖率却仅需要多花费少量运行测试用例生成程序的时间。如果SUT支持大规模地测试,MBT必然将发现更多的错误。

有时侯测试用例没有通过,并不是因为程序编写的错误,而是因为系统需求定义存在错误。其它形式的软件测试一般无法发现此类错误,但是MBT可以。我们知道,软件开发中的错误越早发现需要付出的修复代价越小,MBT把一些错误扼杀在需求阶段,贡献无疑是巨大的。此外,MBT具有良好的应付软件需求变更的能力。传统的测试方法很可能需要重新设计编写所有测试用例,MBT只需要调整模型后再自动生成测试用例。

凡事有利必有弊,好的模型可以让测试过程一帆风顺,模型也给测试过程带来了许多问题。实施MBT的测试人员需要具有比普通测试人员更强的系统抽象能力,因为SUT很可能并不容易建模。当MBT的测试用例没有通过时,测试人员无法断定是SUT存在错误还是建模存在错误,增加了错误分析的代价。传统的人工测试的测试用例都是依据系统需求定义的,MBT的测试用例生成算法难免产生一些无效冗余的测试用例,测试用例通过率不再是衡量软件测试效率的有效标准。认识到这些MBT的不足之处,我们才能更加正确地利用MBT。

目前代表性的支持MBT的测试工具有:IBM公司的GOTCHA-TCBeans软件测试套件,面向Java、C/C++语言编写的应用程序接口(API, Application Program Interfaces)和软件协议[7];微软公司的Spec Explorer工具,具有创建软件行为模型、可视化分析模型、验证模型有效性和根据模型生成测试用例等功能[8];“净室”公司的CleanTest,主要用于净室软件工程中使用的统计测试过程[9]。此外,军方也积极尝试MBT技术,比如美国海军水面战中心开发的SMERFS[10]和CASRE[11]。

1.3.项目背景和论文结构

1.3.1.项目背景

本课题来源于作者实习所在的微软公司,旨在遵照基于模型的软件测试理论开始实现一款自动化测试工具,该工具能够支持有限状态机模型的输入,然后自动生成抽象测试用例。用户填充实现完整的测试用例后,此工具能执行测试用例并给出测试报告。该测试工具将被主要用于微软公司SCCM系统的基于角色权限控制(RBAC,Role-Based Access Control)功能的测试。

特别地,在测试用例生成过程中算法需要结合参数配对组合测试技术,尽可能缩减测试用例数目却又不影响测试质量。因为与传统的单纯正交排列组合测试相比,配对组合测试技术具有较大的优越性。

1.3.

2.论文结构

本文第二章主要介绍MBT测试技术,依照MBT测试的一般流程来说明工具使用的模型表现形式、测试用例生成算法和预期输出的生成。第三章介绍系统的总体架构和简要阐述系统各模块的功能。第四章使用类图和算法伪代码详细讨论系统的设计和实现。第五章通过一个虚构的自动取款机(A TM,Automatic Teller Machines)系统来演示如何使用我们完成的工具进行MBT测试。最后作简要的总结及展望。

第二章基于模型的测试

2.1.MBT一般操作流程

基于模型的测试依赖于三项关键技术:模型的表现形式、测试用例的生成算法和产生其它辅助性内容(包括预期结果)的工具[12]。模型是MBT技术的核心,不同领域的不同软件系统适用的模型表现形式都不尽相同,测试人员应该结合被测系统的工作特点和自身对模型的熟悉程度来慎重选择。如果没有使用正确的模型表现形式,会拖累影响整个测试流程。针对各个不同的模型表现形式,如今已有许多测试用例算法与之对应,我们可以在实际应用过程中灵活地借鉴参考来设计自己的算法。至于产生其它辅助性内容的工具,它在不同项目之间不具有可移植性,只有根据不同项目来专门设计实现。

图2-1 MBT一般操作流程[13]

上图展示了MBT的一般操作流程。首先在系统需求或者规约文档的基础上建立某种形式的模型(步骤1),模型说明了系统所有的潜在行为意图。接下来需要定义测试用例的选择要求(步骤2),形成测试用例规约(步骤3),编写算法将其应用于模型之上来生成测试用例(步骤4)。然后在被测系统(SUT,System Under Test)环境中真正执行所有测试用例(步骤5-1),可以利用测试脚本来自动化执行测试,最终得到测试结果(步骤5-2)。

2.2.MBT模型表现形式

理想的模型需要容易被测试人员理解,能够把大的复杂的问题描述成小的简单的系统,最好还是以一种测试用例生成工具方便识别的形式。想要同时满足以上所有的特性是很困难的,但是可以把几种不同的模型整合成一个,扬长避短地得到理想模型。在MBT中使用过的模型可能有几十甚至上百种,我们不可能也没有必要去逐一了解,Mark Utting和Bruno Legeard把它们大致分为以下几种[14]:

类型示例

基于Pre/Post B、OCL、JML、Spec#、Z

基于转换FSM、状态图、UML状态机

统计式马尔可夫链

基于历史消息队列图、UML顺序图

函数式HOL系统

操作式Petri网

数据流式Lustre、块状图

表2-1 MBT模型分类

基于转换的模型是我们最为熟悉的模型类型,它们集中于描述系统在不同状态之间的转换过程。通常是以节点和弧线的形式出现,节点代表系统的状态,弧线代表系统的动作或操作。有限状态机(FSM,Finite State Machine)模型可以被认为是该类模型的鼻祖,是极其重要的一种模型表现形式。图2-2是一个描述了门的四种不同状态及其转换关系的FSM。Harel在FSM的基础上添加了层次、并发和交流概念,扩展成了状态图模型[15],从而在面对复杂系统时也能够轻松建立模型。之后又有人删去了Harel的状态图模型中的部分特性,同时增加了一些新的特性,形成了统一建模语言(UML,Unified Modeling Language)状态机模型。UML状态机模型用于定义类之间状态相关的行为,包括方法调用和数据域的修改。

图2-2 FSM示例

我们工具主要面向的是RBAC功能的测试,频繁关心具有不同权限的不同角色所能执行的操作。把系统抽象为变量集合和修改这些变量操作的基于Pre/Post的模型需要测试人员预先学习一段时间才能完全掌握,所以基本不予考虑。我们也并不需要描述系统行为随着时间变化的变化情况,RBAC测试中不涉及分布式并发操作,侧重关心系统控制流而不是数据流,可见基本的FSM模型就已经满足相关要求。而且FMS模型也最为简便,测试工具识别起来没有任何问题,降低了编写测试工具的难度,测试人员构建模型时可以从SUT设计文档中的UML状态图稍加变化直接转化而来。如果以后需要额外考虑系统事件和测试输入的概率分布,只需要为每个状态之间的迁移动作增加概率相关属性,非常轻松地支持统计式模型。

2.3.MBT测试用例生成

软件测试过程中的执行和监督过程已经可以使用现代化的自动测试工具代替完成,至于如何生成测试用例,依然是一件棘手的事情。MBT中使用的测试用例生成方法主要依赖于所使用的模型表现形式,针对不同的模型表现形式,研究者分别想出了一些解决方案。

如果系统的模型是由一系列逻辑表达式所组成的,那么可以使用定理证明的方法。定理证明方法原先是被用于自动证明数学公式,MBT生成测试用例时根据逻辑表达式的有效说明把模型划分为不同等价类,每个等价类描述了SUT的某一行为。这些等价类就可以用于生成测试用例,最简单的划分方法是析取范式的方法。当需要为程序的特定执行路径寻找输入时,沿着路径使用符号执行的方法,结合途中遇到的一些分支断言,我们可以求出预期输入所需要满足的约束。于是可以用各种约束来建立MBT的模型,收集不同执行路径中数据约束再利用约束编程中的方法求解得到测试用例。其中约束编程是一种通过约束来描述变量间关系的编程方法,求解约束的方法有布尔式求解方法和数值分析方法。

MBT自然还会让人想到模型检测,即检测模型是否满足特定的属性。无论检测结果是满足属性还是违背属性,都可以形成测试用例。但是一般来说反例的作用更大,因为测试用例中的各种断言正是通过反例来生成的,从而有效地识别出系统是否正常工作。模型检测会遇到的问题是,生成的用例中存在过多冗余用例,导致软件测试执行的代价增加。为此,Hamon 等人详细讨论提出了高效模型检测的方法[16]。类似于描述程序所有可执行路径的控制流和描述程序所有变量定义和内存使用的数据流,事件流模型描述的是GUI上所有可执行的事件序列。通常情况下,GUI又可以分为不同的层次结构,比如整个GUI系统是由各种对话框所组成的,那么系统的事件流图就是由对话框各自的事件流图组成的。把复杂系统拆分为相对独立的组件单独分析,也是所有MBT测试用例生成方法通用的窍门。马尔可夫链也是MBT中生成测试用例的重要方法之一,它由两大部件组成:代表系统所有使用场景的FSM和评价FSM来说明系统统计性使用信息的操作说明。马尔可夫链模型为MBT提供了测试的侧重点,即着重测试那些用户经常使用的功能。因为对于系统中那些极少概率出现的错误,是几乎不可能被发现的。

我们选用的是FSM模型,所以可以利用图论中的一些遍历方法,比如广度优先遍历算法或者深度优先遍历算法,每找到的一条可执行路径对应于一个测试用例。当FSM包含的状态比较多时,遍历组成FSM有向图产生的测试用例数量可能太多,不仅难以测试包含冗余测试用例。可以通过指定初始遍历节点和限定路径长度的方法来减少生成测试用例的数量,但是更好的是下面介绍的组合测试。

软件开发者和用户经常还会遇到这样的问题,把同样的软件应用从一台机器换到另外一台机器上使用时,原先从未出过故障的软件突然变得无法正常使用。问题有许多可能的影响因素,比如跟软件安装所在机器的操作系统类型有关,或者是系统物理内存的大小,甚至网卡型号等等。除了硬件环境的不同,软件接受的输入参数也很可能不同,比如同一款Web

应用发布后,不同国家的用户将会输入不同编码的内容。软件能否经得住各种条件下的考验,是软件测试需要解决的问题。当然,最简单和理想的情况下是把所有可能出现的硬件配置和参数取值都测试一遍。但是现实并不允许测试人员这么做,因为造成的测试用例数量是指数性爆炸增长的,N个分别有M种取值的影响因素将需要M N个测试用例来完成测试。

后来人们发现通过巧妙地选取测试用例,只要求某些参数的组合情况被包含,能够在保证测试效率的同时大大缩减测试用例数量。该理论是基于以下事实的,软件中的错误大部分都是由单个参数所导致的,一般最多是由两个参数相互作用而触发,三个或三个以上的情况几乎没有。如果测试用例集包含了任意t个参数的所有取值组合,那么称该测试用例集组合强度为t,或者说它是t-way的。

图2-3 不同组合强度下的错误发现率

图2-3是NIST报告中总结的几个应用使用不同组合强度的测试用例集测试后的错误发现率曲线[17]。我们可以看出,随着组合强度的增加,错误发现率显著增长。以NASA应用为例,67%的错误由单个参数触发,93%由两个参数相互作用后触发,98%由三个参数一起造成。其它应用的错误发现率曲线也都比较相像,组合强度等于4到6时错误发现率都达到了将近100%。

特别的,生成2-way的测试用例集的方法被称为pair-wise(或all-pairs)测试方法。目前pair-wise是使用最普遍的组合测试技术,因为软件中的绝大部分错误都只由一个或两个参数造成,pair-wise生成的测试用例能够覆盖足够的错误空间。使用pair-wise技术后,总测试用例数目从原来的M N下降到了约M * N。至于生成高组合强度的测试用例,测试用例集发现错误的能力没有实质上的提高,却会导致生成算法的更加复杂化和产生多得多的测试用例。最坏的情况下,当组合强度和参数的数目相等时,组合测试退化为枚举测试。

组合测试的最早提出,也就是为了简化软件在各种配置环境下的测试。因为牵涉到硬件环境的搭建,配置参数测试中每增加一种测试情况比单纯地多写一个测试用例所花的代价大得多。人们迫切需要解决这一问题,使得配置参数测试成为了组合测试中最为发达的形式,尤其在那些要求适应不同硬件平台和环境的软件的测试过程中。考虑一款受5个配置因素影响的应用:操作系统(Windows XP、Apple OS X、Red Hat Enterprise Linux),浏览器(IE、

FireFox),网络协议(IPv4、IPv6),处理器平台(Intel、AMD)和数据库(MySQL、Sybase、Oracle),一共3·2·2·2·3=72种硬件平台。pair-wise测试只需要设计如下10个测试,就覆盖了每一种影响因素和另外一种影响因素的所有组合。

编号操作系统浏览器网络协议处理器平台数据库

1 XP IE IPv4 Intel MySQL

2 XP FireFox IPv6 AMD Sybase

3 XP IE IPv6 Intel Oracle

4 OS X FireFox IPv4 AMD MySQL

5 OS X IE IPv4 Intel Sybase

6 OS X FireFox IPv4 Intel Oracle

7 RHEL IE IPv6 AMD MySQL

8 RHEL FireFox IPv4 Intel Sybase

9 RHEL FireFox IPv4 AMD Oracle

10 OSX FireFox IPv6 AMD Oracle

表2-2 pair-wise测试的配置

即使被测软件没有配置选项,软件仍要处理一些输入。例如,Word 2010应用程序至少允许用户对拖黑文字进行10种不同操作:设为上标、设为下标、加粗、加下划线、设为斜体、加删除线、加灰色背景、加阴影效果、加倒影效果、加荧光效果。相关的字体处理函数需要根据用户的输入来相应修改文字效果,该函数需要在所有的可能情况下都正常工作,而一共有210=1024种可能。前面的经验告诉我们,3-way的测试用例就能够达到90%以上的错误发现率,具有较高的收益-代价比。

图2-4 3-way覆盖数组

图2-4列出了对于具有10个变量、每个变量各有两种取值的3-way覆盖数组。覆盖数组并不唯一,这只是其中一种情况。t-way覆盖数组的特点是,任意t个参数的所有排列组合都将分别出现在覆盖数组的某一行中,比如上图中的ABC、DEG、HIJ,三个参数共有8种排列组合(000、001、010、011、100、101、110、111)都被覆盖数组所覆盖。覆盖数组

的每一行对应一个测试用例,相比之前的1024个测试用例,组合测试只需要13个测试用例。

组合测试用例生成的本质是构造覆盖数组,最早的构造方法是利用正交数组,其定义和覆盖数组类似,唯一区别在于正交数组中所有t元组出现的次数相同,而覆盖数组不保证这一点。在某些特殊的情况下,正交数组就是最优的覆盖数组,为此,如何构造正交数组问题吸引了大量的研究者研究。Sloane在其网站上总结记录了超过200个正交数组[18]。利用计算机也可以自动求解出部分类型的正交数组,由已知的大覆盖数组构造小覆盖数组的方法被称为坍塌[19]。坍塌的缺陷在于,最终得到的覆盖数组往往并不是最优解,一般比最优解要大。另一种构造方法刚好相反,是由已知的小覆盖数组递归构造出大覆盖数组。构造最优覆盖数组的实际上是一个NP完全问题[20],我们知道,NP完全问题是一系列可以互相转化的问题。于是我们可以利用和借鉴其它NP完全问题的研究成果来构造覆盖数组,比如第一个被证明为NP完全问题的可满足性问题,整数规划问题,图论问题等等。

数学构造方法仅限于某些特定大小或者组合强度的覆盖数组的构造,不具有通用性。NP完全问题则是困扰了人类多年的超级难题,目前还没有突破性解法,所以转化为其它问题也是大同小异。但我们可以利用局部搜索方法,比如启发式搜索算法,在较短的时间内就可以搜索出近似最优解。启发式搜索算法是利用一个已有的数组,通过合适的变换得到一个更优的覆盖矩阵,不断地变换直到得到一个较优的矩阵。近年来流行的模拟自然界行为的智能优化算法中,目前已经应用到组合测试中的主要有模拟退火、禁忌搜索、遗传算法等等。

更为有效的方法是贪心算法,贪心算法的思想是从空矩阵开始,然后逐行或者逐列地扩展矩阵,直到所有的t元组都被覆盖。按照扩展方式的不同,又可以分为一维扩展和二维扩展。商业工具AETG最先提出一维扩展的方法[21],依次增加一行,每次尽可能多地覆盖未覆盖的t元组。微软开发的工具PICT采用类似AETG的方法生成测试用例[22],不同之处在于,PICT每次产生的结果是相同的。Lei等人提出的IPO(In-parameter-order)[23]方法属于二维扩展,该算法主要针对pair-wise测试。首先构造前两个参数的所有组合,形成一个小的矩阵,再分别为矩阵添加一列和必要多的行,覆盖完所有元组后结束。

我们将模仿PICT工具中pair-wise算法的主要思想,使用一维扩展的贪心算法来生成覆盖数组。同时给系统留好接口,利于以后换用新的pair-wise生成算法,具体的算法设计将在第四章介绍。

2.4.MBT预期输出生成

三大关键技术就只剩下辅助性内容生成工具了,辅助性工具主要还是为了解决预期输出的生成问题。前面我们构造了系统的模型,模型描述了系统的状态和状态之间的动作,这些动作都是由一个个函数和方法的调用序列组成的。SUT提供的API往往不能和测试用例的要求完全契合,为了让测试用例能够顺利地在SUT上执行,需要测试人员在SUT之上再包装一层,即图2-1中的适配器层。

严格地说,我们编写的工具只负责生成基本的测试用例框架,或者称为抽象的测试用例。测试用例中相当于使用了打桩的设计模式,桩的实际实现由最终的测试人员补充完成,桩的实现包括对SUT提供的API的封装组合和测试判断逻辑的编写。我们把这些桩叫做token,token对应于适配器层中的某个函数和方法,两者可以直接一一对应,也可以先序列化为可扩展标记语言(XML,Extensible Markup Language)文件再利用XML解析器之类的工具生成测试用例。这样MBT的整个测试工具都变得项目之间可移植了,如果某一测试条件和预期结果不同则在token中抛出异常,抛出的异常随后被测试工具捕获,最终判定该测试用例不通过。图2-5展示了一个测试工具自动生成的测试用例,用户需要实现token_1和token_2的具体逻辑,然后测试用例就能够被真正执行了。token_1和token_2执行过程中如果发现错误会触发异常,程序打印出错误提示,同时导致测试用例的总错误个数加一。反之,一切

正常并给出通过提示。

图2-5 测试用例示例

另外我们也可以利用pair-wise来完成部分情况下预期输出的生成。对于相同输出结果的某些参数取值组合,把输出结果也当作pair-wise算法输入参数的一项,输出结果列和其它输入参数的区别在于其取值唯一。PICT工具还支持混合组合强度的测试用例生成,以及输入各种约束,比如指定某些参数的组合形式必须出现或者不出现,所以具有较强的预期输出生成能力。不过如果预期输出涉及复杂的判断逻辑,还是使用委托给token来处理的方法较好。

第三章系统架构

3.1.功能概述及流程

课题要求完成的基于模型的自动化测试工具的功能包括:支持输入FSM模型、支持添加token、支持pair-wise组合测试、支持生成测试用例框架、支持序列化FSM模型到文件和反序列化读入。其中考虑到token的可复用性,用户可以直接在工具上定义token顺序执行序列组成的函数过程,更复杂的函数过程则通过添加新的token实现。用户使用该工具生成测试用例的流程如下:

图3-1 生成测试用例流程

用户可以直接绘制FSM模型,或者在以前保存的模型基础上修改模型,工具支持FSM 模型的序列化与反序列化。绘制FSM模型时首先需要定义一些FSM的状态转换动作中用到的token和这些token组成的若干函数过程,随后在模型绘制面板中画出FSM模型相应的有向图。FSM模型的有向图包括代表不同状态的圆形节点,以及代表状态间转换动作的弧线。一个token或函数过程可以在相同的或者不同的状态转换动作中被反复使用,只要求这些token或函数过程方法头中所定义的参数被正确地赋予某个常量或者变量。变量可以有多个允许的取值,用户在pair-wise相关面板输入各个变量的可能取值,接下来工具将分析FSM 模型寻找所以可执行路径,同时结合路径长度限制和pair-wise技术来生成测试用例。最后用户还可以在生成的测试用例中再人工选择部分测试用例出来,保存为最终需要被执行的测试用例。

3.2.系统架构

工具设计的主要目的是为了自动生成测试用例,而模型是驱动MBT各测试过程的根本,

所以系统架构中最核心的部分是FSM的数据模型,数据模型描述了FSM中各个状态和转换动作的详细属性。比如状态名称,转换动作名称,用户所定义token的名称和所需输入输出参数,函数过程的名称和其中包含的token执行序列等等。

图3-2 系统总体架构

用户不是生硬地使用形式化语言来描述FSM数据模型,工具提供了可视化界面,实现了鼠标选取不同绘图元素再拖拽调整的绘图方式。此外,为了持久化保存绘制好的FSM模型,系统包含了序列化模块,用于模型的序列化与反序列化。

测试用例的生成过程是基于两大模块来完成的,FSM模型遍历模块负责生成各种可执行路径,pair-wise测试模块负责生成参数变量取值的不同组合。最后把参数变量取值代入可执行路径中,即得到测试用例。

第四章 系统各功能实现

前一章中我们介绍了系统的整体架构,下面将逐一介绍系统各模块的具体实现,整个系统都使用C#语言编写完成。

4.1. FSM 数据模型实现

我们知道FSM 数据模型是影响系统的关键,图4-1列出了系统实际实现过程中FSM 数据模型相关各类之间的关系。对于一些简单的set 和get 方法图中并没有标出,其它辅助性的方法也予于省略。

图4-1 FSM 数据模型的类图

类FSM 中记录着系统FSM 数据模型的所有信息,它里面有两个链表分别记录FSM 的状态实例和转换动作实例,同时有两个Dictionary 分别记录状态和转换动作的名称与实例之间的映射关系。状态由类State 描述,该类的属性有状态标识id 、状态类型type 和状态后置动作链表nextActions 。我们定义了三种状态类型:Entry 、Free 和Exit ,Entry 和Exit 分别代表初始状态和终止状态,Free 代表其他自由状态。状态动作由类Action 描述,该类的属性

0..1

FSM

----states actions stateMap actionMap : List: List

: Dictionary: Dictionary++++++

Initialize ()GenerateTours ()GetAction ()GetState ()LoadFromXML ()SaveToXML ()...

: void

: List: Action : State : void : void Action

------id from to stubs head tail : string : string : string

: List: State : State +++++

AddActionImpl ()RemoveActionImpl ()RemoveActionImplAt ()MoveUp ()GenDefaults ()...

: void : void : void : void : void ActionImpl

---name inparas outparas : string

: List: List+++

Apply ()GenDefaults ()GetCopy ()...

: string : void : ActionImpl Parameter

---name decription var : string : string : Variable

+

GetCopyWithoutVarValues ()...

: Parameter Variable ---name isVar values : string : boolean

: List-

IsVariable ()...

: bool FunctionImpl

-action : Action

++GenDefaults ()GetCopy ()...

: void : ActionImpl TokenImpl

++GetDefaults ()GetCopy ()...

: void : ActionImpl State

---id type nextActions : string : StateType : List

Tour

----entry actions id idCounter : State : List: string : int +++

Apply ()ToString ()ResetIdCounter ()...

: void : string : void

有动作标识id、出发状态名称from、目的状态名称to以及动作的方法实现链表stubs。在寻找可执行的测试路径过程中,程序从初始状态开始深度遍历FSM有向图,直到到达某个终止状态或路径长度达到限制才结束。类Tour的每个实例代表一条被发现的可执行路径,因为用户并不参与Tour的命名,所以该类中设置了一个全局静态的标识计数器域idCounter,每新创建一个新实例时计数器自动加一,必要的时候可以通过ResetIdCounter方法重置计数器。

除了以上代表FSM实体组成部分的类,FSM数据模型还必须描述SUT相关部分的信息。抽象类ActionImpl描述了测试中调用的SUT接口,准确地说是测试适配器层中的接口,它的两个抽象方法GenDefault和GetCopy分别用于初始化和返回克隆实例。类TokenImpl 和类FunctionImpl继承了类ActionImpl,其中类TokenImpl表示的是用户定义的基本token,而类FunctionImpl表示的这些token顺序序列组成的函数过程。考虑到函数过程和转换动作的相似性,类FunctionImpl中直接包含了一个类Action的实例。

最后,注意一下参数和变量的区别:参数指的是函数方法头中定义的输入,而变量是在实际调用函数方法时对参数的赋值。我们使用类Parameter来表示参数,而用类V ariable来表示对参数的赋值,包括常量和变量。类Variable中包含一个根据其标识名称name来判断的方法IsVariable。

4.2.可视化和序列化实现

系统的用户界面部分是利用WinForm技术实现的。虽然WinForm技术中已经提供了许多可以直接使用的组件,但是距离我们的要求还是有一定差距,所以我们自己设计实现了新的组件来完成FSM模型的可视化。

图4-2 FSM模型可视化模块的类图

接口IRenderable定义了新组件通用的属性和方法,包括组件的位置信息、绘制组件过程中触发不同事件的响应函数(Paint、PrePaint、PostPaint和PaintFocus),方法IsSelected IRenderable

+Position: Point

+

+

+

+

+

Paint ()

PrePaint ()

PostPaint ()

PaintFocus ()

IsSelected ()

...

: void

: void

: void

: void

: bool

ActionR

-

-

-

action

from

to

: Action

: StateR

: StateR

FunctionR

-

-

-

action

position

name

: Action

: Point

: string

StateR

-

-

state

position

: State

: int

TourR

-

-

-

tour

actions

entry

: Tour

: List

: StateR

IActionRenderable

+InnerAction: Action

则用于判断该组件是否被鼠标选中。类StateR和TourR直接实现了接口IRenderable,但是类ActionR和类FunctionR实现的则是接口IRenderable的扩展接口IActionRenderable,该接口添加了一个保存转换动作信息的域。这些类对应于FSM数据模型中的类,绘图的实际过程由C#语言提供的系统类System.Drawing.Graphics完成,涉及到的API[24]参见表4-1。

方法名称作用

DrawCurve 绘制经过一组指定的Point结构的曲线

DrawLine 绘制一条连接由坐标对指定的两个点的线条

DrawPolygon 绘制由一组Point结构定义的多边形

DrawString 在指定位置并由指定的Brush和Font对象绘制指定的文本字符串FillEllipse 填充边框所定义椭圆的内部,该边框由一对坐标、一个宽度和一个高度指定

表4-1 类Graphics部分方法

图4-3展示了这几个类的绘图效果,类StateR绘制紫色的圆圈代表状态节点,类ActionR 则绘制了两种代表转换动作的深绿色弧线。如果出发状态和目的状态相同,那么将绘制如action_0的弧线;如果出发状态和目的状态不同,则按照事先设计的弧度在两个状态节点之间绘制如action_1的弧线,另外增加一个三角形标志表明方向。类FunctionR以灰色粗线加圆点的形式绘制用户自定义函数过程的标记,默认排列在FSM绘制区域的左上角。类TourR 把用户选中的可执行路径用黄色重描一遍。

图4-3 自定义UI组件示例

C#语言提供了方便的标记功能来支持对象的序列化与反序列化(图4-4)。首先把准备序列化的对象标记为Serializable,然后根据不同的需要和属性特点把公共属性都标记为XmlAttribute、XmlArray或XmlIgnore,公共属性中的自定义类型也需要在定义文件中添加相应的标记。每个希望被序列化的公共属性必须提供set和get方法,否则该属性无法被正确序列化到XML文件中。XmlAttribute表示把该属性作为对象XML根节点的一个属性;XmlArray表示该属性是数组类型的,整个属性将被添加为根节点的一个子节点,另外每个数组元素又会被序列化为该子节点的一个子节点;XmlIgnore则表示忽略此属性,该属性不参与对象的序列化过程。

系统类System.Xml.Serialization.XmlSerializer使得编程人员能够控制如何将对象编码到XML文件中,并且支持从XML文件中重新创建原始状态的对象。接下来FSM模型的序列化与反序列化工作只要通过调用类XmlSerializer的两个简单方法就可以了。方法Serialize 负责把对象的某个实例序列化到某个输出流中,方法DeSerialize则负责从某个输入流中反序列化出原始状态的对象。

图4-4 XML序列化与反序列化示例代码

4.3.模型遍历算法实现

显然测试的基本要求之一应该是至少把FSM模型中的每个状态和每个转换动作都执行一遍,不过这样并不能很好地覆盖被测代码,而且许多重要的测试场景都会被遗漏。最为全面地测试FSM模型的方法是找出其有向图中的所有可执行路径,然后把它们都转换为测试用例去执行。但是这样遍历出来的测试用例数目又往往过于庞大,其中很大一部分还是冗余性测试用例。

折衷的办法是通过路径长度来限制测试用例的产生,同时用户构建FSM模型时有意识地把复杂系统拆分为几个子系统来单独进行测试,绘制FSM模型时也可以分别指定不同的初始状态来寻找路径。对于工具生成的测试用例集,用户还可以在条件允许的情况下筛选出

自动化测试工具解析

7.6 AutoRunner简介 (1) 7.6.1 AutoRunner的组成 (1) 7.6.1.1 AutoRunner功能简介 (4) 7.6.2 AutoRunner的安装要求 (6) 7.6.3 AutoRunner的安装 (6) 7.6.4配置AutoRunner (9) 7.6.4.1配置AutoRunner (9) 7.6.5 AutoRunner的使用流程 (10) 7.6.5.1 AutoRunner使用流程简介 (10) 7.6.5.2创建项目 (11) 7.6.5.3 创建脚本 (14) 7.6.5.4 录制脚本 (15) 7.6.5.5 录制回放 (17) 7.6.5.6 脚本参数化 (18) 7.6.5.6 属性校验 (22) 7.6.5.7 脚本调用 (24) 7.6 AutoRunner简介 7.6.1 AutoRunner的组成

集成开发环境: (Integrated Development Environment 简称IDE)软件是用于程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具,也就是集成了代码编写功能、分析功能、编译功能、Debug功能等一体化的开发软件套。所有具备这一特性的软件或者软件套(组)都可以叫做IDE。如微软的Visual Studio系列,Borland的C++ Builder、Delphi系列等。 IDE环境菜单栏 AutoRunner3.9中的菜单栏如上图所示,主菜单包含文件、编辑、录制、执行、设置、许可证、帮助等菜单项,下面对每一项做一个简介。 文件菜单 如图所示,所有对脚本的管理操作都可以在文件菜单下完成,包括对脚本的新建,导入,保存,另存为,关闭,改变工作空间,最近打开,退出等等。 编辑菜单

性能测试报告模版

针对XXXX内存溢出问题 性能测试报告 (仅供内部使用) 拟制:日期: 审核:日期: 审核:日期: 批准:日期:

修订记录

目录 1概述 ........................................................ 错误!未定义书签。2测试目的..................................................... 错误!未定义书签。3测试设计..................................................... 错误!未定义书签。 对象分析.................................................... 错误!未定义书签。 测试策略.................................................... 错误!未定义书签。 测试模型.................................................... 错误!未定义书签。 测试环境描述............................................ 错误!未定义书签。 详细测试方法................................................ 错误!未定义书签。 测试方法综述............................................ 错误!未定义书签。 并发用户计算及启动...................................... 错误!未定义书签。 监视统计数据............................................ 错误!未定义书签。 业务模型................................................ 错误!未定义书签。4测试结果..................................................... 错误!未定义书签。 CPU使用情况................................................. 错误!未定义书签。 内存使用情况................................................ 错误!未定义书签。 页面分解.................................................... 错误!未定义书签。5测试结论..................................................... 错误!未定义书签。

自动化测试工具的比较和选择

测试工具的比较和选择(仅供内部使用)

修订记录 2

目录 一.白盒测试工具集 (2) 二.黑盒测试工具集 (3) 三.测试管理工具典型产品比较 (4) 四.商业化自动测试工具比较 (6) 五.测试工具的选择 (7) 六.测试工具在实际中运用的瓶颈 (8) 七.总结 (9)

关键词: 白盒测试工具集、黑盒测试工具集、测试管理工具集、自动化测试工具集 摘要: 随着软件测试的地位逐步提高,测试的重要性逐步显现,测试工具的应用已经成为了普遍的趋势。目前用于测试的工具已经比较多了,这些测试工具一般可分为:白盒测试工具、黑盒测试工具、性能测试工具,另外还有用于测试管理(测试流程管理、缺陷跟踪管理、测试用例管理)的工具。总的来说,测试工具的应用可以提高测试的质量、测试的效率。但是在选择和使用测试工具的时候,应该看到,在测试过程中,并不是所有的测试工具都适合我们使用,同时,有了测试工具、会使用测试工具并不等于测试工具真正能在测试中发挥作用。因此,要发挥测试工具的价值,必须根据公司的实际情况合理选择测试工具, 本文拟从测试工具的选择和使用方面着手,讲述一点个人的心得,供公司参考

一.白盒测试工具集 白盒测试工具一般是针对代码进行测试,测试中发现的缺陷可以定位到代码级,根据测试工具原理的不同,又可以分为静态测试工具和动态测试工具。公司目前的测试水平尚不具备使用白盒测试工具进行代码测试的能力,这里只作简单介绍 1.静态测试工具 静态测试工具直接对代码进行分析,不需要运行代码,也不需要对代码编译链接,生成可执行文件。静态测试工具一般是对代码进行语法扫描,找出不符合编码规范的地方,根据某种质量模型评价代码的质量,生成系统的调用关系图等。静态测试工具的代表有Telelogic公司的Logiscope软件、PR公司的PRQA软件。 2.动态测试工具 动态测试工具与静态测试工具不同,动态测试工具的一般采用"插桩"的方式,向代码生成的可执行文件中插入一些监测代码,用来统计程序运行时的数据。其与静态测试工具最大的不同就是动态测试工具要求被测系统实际运行。 动态测试工具的代表有Compuware公司的DevPartner软件、Rational公司的Purify系列等。 Parasoft白盒测试工具集 Compuware白盒测试工具集 2

性能测试容量测试建模方法指南

测试综合 性能测试 容量测试建模篇

目录 修订记录 ...................................................................................................................... 错误!未定义书签。目录 (2) 1前言 (3) 1.1目标 (3) 1.2用途 (3) 1.3阅读对象 (3) 1.4内容简介............................................................................................................ 错误!未定义书签。 1.5编制背景 (3) 2术语及定义........................................................................................................... 错误!未定义书签。3容量建模.. (3) 3.1方法简述 (3) 3.2实例展示 (4) 3.3建模优点 (5)

1前言 1.1目标 为了对性能测试中容量建模方法形成统一的标准,使各项目组在性能测试过程中的容量建模环节做到有据可循、有方法做指导。 1.2用途 本文为光大银行质量中心性能测试组在实施性能测试过程中提供容量测试建模方法,并指导各项目组的性能测试工作。 1.3阅读对象 本文的阅读对象是我行测试经理、项目经理、测试人员及其他关注性能测试的技术及管理人员。 1.4编制背景 目前,质量中心性能测试项目组在容量测试建模过程中,各项目组虽然使用相同的方法,但需要经过很多次繁琐的调整,才能满足预期的测试模型,且调试的过程中存在差异性,没有统一的标准;通过现有的建模方法运行的测试结果得出的交易配比与预期的比存在差距。所以在此背景下,经过项目组的讨论决定,提供给大家一个统一的容量测试建模方法。 2容量建模 2.1方法简述 在容量测试执行之前,我们需要为每一个测试场景建模。建模是根据业务模型(即各交易间的交易量配比关系)来构建,因此业务模型的确立很重要。业务模型的确立主要来源于

自动化技术论文题目选题参考

https://www.doczj.com/doc/8718509039.html, 自动化技术论文题目 一、最新自动化技术论文选题参考 1、配电网自动化技术及其应用 2、自动化技术的三大革新 3、选矿自动化技术的新进展 4、智能自动化技术的现状与发展趋势 5、浅谈自动化技术在机械设计中的应用 6、探讨电气工程中自动化技术的应用 7、我国的图书馆自动化技术体系 8、配电网综合自动化技术 9、生化过程自动化技术 10、综采工作面自动化技术 11、先进制造和自动化技术发展趋势(上) 12、变电站综合自动化技术的现状及发展 13、浅谈电气自动化技术在火力发电中的创新与应用 14、泵站综合自动化技术探讨 15、中国自动化与可持续发展——自动化技术进入“低碳经济”新时代 16、试论我国机械自动化技术的发展 17、软件测试自动化技术应用研究 18、机械自动化技术发展中的要点探讨 19、我国电气自动化技术发展现状及趋势探讨 20、流程工业的综合自动化技术概述

https://www.doczj.com/doc/8718509039.html, 二、自动化技术论文题目大全 1、连铸过程自动化技术综述 2、炼铁生产自动化技术 3、从Interkama’99看自动化技术发展的三个趋向 4、简述现代机械自动化技术 5、配网综合自动化技术及其应用 6、机械自动化技术的应用研究 7、工业自动化技术的特点及工业自动化的重要性 8、自动化技术在电气工程中的应用分析 9、泵站自动化技术研究 10、制造自动化技术的回顾与展望(上) 11、现代电站自动化技术进展 12、自动化技术的发展及煤炭工业面临的挑战与机遇 13、浅谈电气工程中自动化技术的运用 14、浅谈机械制造与自动化技术 15、浅谈电力自动化技术的发展 16、浅谈自动化技术在机械制造中的应用 17、自动化技术在机械制造中的应用 18、焊接自动化技术的开发 19、变电站综合自动化技术的最新应用 20、浅谈电气自动化技术在电气工程中的应用 三、热门自动化技术专业论文题目推荐

自动化测试工具介绍

主流测试工具介绍 选自:https://www.doczj.com/doc/8718509039.html, WinRunner:强大的企业级自动化测试工具 Mercury Interactive公司的WinRunner是一种企业级的功能测试工具,用于检测应用程序是否能够达到预期的功能及正常运行。通过自动录制、检测和回放用户的应用操作,WinRunner能够有效地帮助测试人员对复杂的企业级应用的不同发布版进行测试,提高测试人员的工作效率和质量,确保跨平台的、复杂的企业级应用无故障发布及长期稳定运行。 企业级应用可能包括Web应用系统,ERP系统,CRM系统等等。这些系统在发布之前,升级之后都要经过测试,确保所有功能都能正常运行,没有任何错误。如何有效地测试不断升级更新且不同环境的应用系统,是每个公司都会面临的问题。 如果时间或资源有限,这个问题会更加棘手。人工测试的工作量太大,还要额外的时间来培训新的测试人员等等。为了确保那些复杂的企业级应用在不同环境下都能正常可靠地运行,你需要一个能简单操作的测试工具来自动完成应用程序的功能性测试。 轻松创建测试 用WinRuuner创建一个测试,只需点击鼠标和键盘,完成一个标准的业务操作流程,WinRunner自动记录你的操作并生成所需的脚本代码。这样,即使计算机技术知识有限的业务用户轻松创建完整的测试。你还可以直接修改测试脚本以满足各种复杂测试的需求。WinRunner提供这两种测试创建方式,满足测试团队中业务用户和专业技术人员的不同需求。 插入检查点 在记录一个测试的过程中,可以插入检查点,检查在某个时刻/状态下,应用程序是否运行正常。在插入检查点后,WinRunner会收集一套数据指标,在测试运行时对其一一验证。WinRunner提供几种不同类型的检查点,包括文本的、GUI、位图和数据库。例如,用一个位图检查点,你可以检查公司的图标是否出现于指定位置。 检验数据

WEB性能测试用例

性能测试用例主要分为预期目标用户测试,用户并发测试,疲劳强度与大数据量测试,网络性能测试,服务器性能测试五大部分,具体编写测试用例时要根据实际情况进行裁减,在项目应用中遵守低成本,策略为中心,裁减,完善模型,具体化等原则;一、WEB 全面性能测试模型 Web 性能测试模型提出的主要依据是:一种类型的性能测试可以在某些条件下转化成为另外一种类型的性能测试,这些类型的性能测试的实施是有着相似之处的; 1. 预期指标的性能测试 系统在需求分析和设计阶段都会提出一些性能指标,完成这些指标的相关的测试是性能测试的首要工作之一,这些指标主要诸于“系统可以支持并发用户200个;”系统响应时间不得超过20秒等,对这种预先承诺的性能要求,需要首先进行测试验证; 2. 独立业务性能测试 独立业务实际是指一些核心业务模块对应的业务,这些模块通常具有功能比较复杂,使用比较频繁,属于核心业务等特点。 用户并发测试是核心业务模块的重点测试内容,并发的主要内容是指模拟一定数量的用户同时使用某一核心的相同或者不同的功能,并且持续一段时间。对相同的功能进行并发测试分为两种类型,一类是在同一时刻进行完全一样的操作。另外一类是在同一时刻使用完全一样的功能。 3. 组合业务性能测试 通常不会所有的用户只使用一个或者几个核心业务模块,一个应用系统的每个功能模块都可能被使用到;所以WEB性能测试既要模拟多用户的相同操作,又要模拟多用户的不同操作;组合业务性能测试是最接近用户实际使用情况的测试,也是性能测试的核心内容。通常按照用户的实际使用人数比例来模拟各个模版的组合并发情况;组合性能测试是最能反映用户使用情况的测试往往和服务器性能测试结合起来,在通过工具模拟用户操作的同时,还通过测试工具的监控功能采集服务器的计数器信息进而全面分析系统瓶颈。 用户并发测试是组合业务性能测试的核心内容。组合并发的突出特点是根据用户使用系统的情况分成不同的用户组进行并发,每组的用户比例要根据实际情况来匹配; 4. 疲劳强度性能测试 疲劳强度测试是指在系统稳定运行的情况下,以一定的负载压力来长时间运行系统的测试,其主要目的是确定系统长时间处理较大业务量时的性能,通过疲劳强度测试基本可以判定系统运行一段时间后是否稳定; 5. 大数据量性能测试 一种是针对某些系统存储,传输,统计查询等业务进行大数据量时的性能测试,主要针对某些特殊的核心业务或者日常比较常用的组合业务的测试; 第二种是极限状态下的数据测试,主要是指系统数据量达到一定程度时,通过性能测试来评估系统的响应情况,测试的对象也是某些核心业务或者常用的组合业务。 第三种大数据量测试结合了前面两种的测试,两种测试同时运行产生较大数据量的系统性能测试;大数据量测试通常在投产环境下进行,并独立出来和疲劳强度测试放在一起,在整个性能测试的后期进行;大数据量的测试可以理解为特定条件下的核心业务或者组合业务测试; 6. 网络性能测试 主要是为了准确展示带宽,延迟,负载和端口的变化是如何影响用户的响应时间的,在实际的软件项目中 主要是测试应用系统的用户数目与网络带宽的关系。网络测试的任务通常由系统集成人员完成; 7. 服务器(操作系统,WEB服务器,数据库服务器)性能测试 初级服务器性能测试主要是指在业务系统工作或者进行前面其他种类性能测试的时候,监控服务器的一些计数器信息,通过这些计数器对服务器进行综合性能分析,为调优或提高系

Ranorex自动化测试应用-介绍与用例

Ranorex自动化测试应用介绍

1. Ranorex特色 (5) 2. Ranorex自定义Action (5) 3. Ranorex的其他编辑选项 (8) 3.1. 添加新的Action (8) 3.2. Action条目失败继续运行和禁用 (10) 3.3. 增加对象库识别对象 (10) 4. Ranorex自定义常用代码 (11) 4.1. 自动测试途中强制一个用例失败退出 (11) 4.2. 抓图及比较图片 (13) 5. Ranorex创建代码模块 (14) 5.1. 在代码模块中使用对象库 (14) 5.2. 代码中实现读取文本文件的内容 (16) 5.3. 代码中获取数据库信息 (16) 6. Ranorex测试Android App (19) 6.1. Android的测试环境 (19) 6.1.1. Ranorex服务App (19) 6.2. 部署APP到测试设备 (21) 6.3. 录制Android应用测试 (23) 7. 问题集 (25) 7.1. 参数化录入,多次循环录入的实现 (25) 7.2. 数据库应用相关 (29) 7.2.1. 配置ODBC (30) 7.2.2. 引入命名空间 (30) 7.2.3. 数据库查询SQL的调用 (30) 7.2.4. 数据库增、删、改的调用 (32) 7.2.5. 有参数的存储过程的调用 (32) 7.2.6. 调用只有单个结果返回SQL的应用 (33)

1. Ranorex特色 Ranorex相对于QTP、RFT等老牌自动化测试工具而言是一个后来者,也就是最近这些年才冒出来的,但是也在逐渐地发展起来,也有很多自己的特色,更详细的介绍请登录官网了解(c:\iknow\docshare\data\cur_work\) 例如: 1、支持以自动化库的形式供C#、https://www.doczj.com/doc/8718509039.html,调用,让我们可以采用这些标准的编程语言,而不是厂商脚 本语言来进行自动化测试代码的开发,支持在https://www.doczj.com/doc/8718509039.html,等IDE中进行自动化脚本开发。 2、支持用XPath来识别GUI元素,验证状态和值、过滤信息等。 3、价格优势€1,190.00 ;Ranorex支持多种语言和平台的测试: .NET, WPF (framework versions 1.1, 2.0, 3.5) Win32 applications (MFC, Delphi) Support for 3rd party controls like Infragistics, DevExpress, QT, etc. Java SWT applications Web Testing, Adobe Flash/Flex Testing 安卓及IOS的应用测试; 2. Ranorex自定义Action 在《ranorex自动化测试框架简介-铭鸿.pptx》,我们提到数据驱动接口测试,Recorder模块中可以使用变量,而不是一直使用录制过程中的固定字符串值。在Action表内的单元格中,任何你可以改变或者设置值的地方,在那里都可以使用变量。当某天发现这样的数据驱动已经不能满足你的测试需求了,还能有更强大的功能吗? 答案是肯定的,在Recorder提供的功能不能够满足的情况下,Ranorex可以使用自定义代码。下面的一些例子,可以方便演示自定义代码Action。在项目视图窗口中,仔细看一个录制模块文件,你会看到有两个相关的代码文件。

基于QTP功能自动化测试工具及框架研究

基于QTP 功能自动化测试工具及框架研究 王兴野i,,3 (1.煤炭科学技术研究院有限公司,北京100013; 2.煤炭资源高效开采与洁净利用国家重点实验室,北京100013; 3.北京市煤矿安全工程技术研究中心,北京100013) 摘要:分析了自动化检测工具基本理论,探讨了 QTP 功能自动化工具和框架。QTP 自动化测试框架 是二次开发的Quick Test Professional 得到的框架工具,回归测试可以在Web 软件上完成,结合对象识 别、关键字、数据驱动等技术,对框架业务层面可以实现测试功能。针对自动化测试工具,分析了相关 流程中框架使用情况。 关键词:自动化测试框架;QTP 框架;驱动技术 随着互联网技术的发展,开始出现软件开发行业, 人们对软件测试相关技术也有了更高的要求。自动化软 件测试技术的出现,为传统的软件测试提供了很大帮 助,节省了更多的人力和财力,同时也提高了软件测试 的质量,缩短了软件发布周期[1-2]。所以,将会根据QTP 对自动化测试框架在软件测试中的使用进行分析,探讨 该测试工具的使用价值。 1 自动化软件测试工作流程 一般人们会认为软件测试工具,都是对运作的机械 进行分析完成测试。在实际进行软件测试中,需要借助 软件实现操作,整个测试过程是相对独立的,包括设计 测试用例、执行和评估测试、制定测试计划、开发自动 化测试等内容,每个环节都有对应的方法和自动化工 具。相比软件测试流程,自动化软件测试比较重视测试 准备数据和脚本开发。相关流程如图1所示。 a 图1 自动化测试工作流程 1.1制定测试计划 根据测试整个环节建立软件计划测试完成设计,之 后分析产品的文档内容和其他有关信息,之后再进行风 险测试、范围测试并给予评估,确定测试场景,科学计 划进程,满足实际需求,建立满足测试需求和具有测试 对策的计划。建立测试计划需要利用软件中的协议、技 术分析需要选择哪种测试对策和方法,以及选择什么样 的测试工具,实现软件性能的自动化测试[3-]。测试功能 可以根据每种测试种类建立软件测试计划,它属于动 态形式的文档,它会跟着软件数变化而变化,具有独 立设计测试计划的功能,同时也能独立描述测试行为 和类型。 1.2自动化测试的开发 脚本开发要具有一定标准,需要与程序员变成标准 一样严格。这样可以建立良好的脚本开发行为,同时更 好维护脚本,避免增加后期维护量,给用户带来不便。 从而编写脚本自动化测试,开发自动化测试需要分析软 件需求,在结合相关测试工具,建立脚本同步测试,把 测试静态用例变成动态脚本。1.3测试用例的设计 在测试中根据需求,对系统测试结构、活动模型测 试进行定义,之后分析测试间的需求联系以及数据测试 映射,建立测试程序,为用例测试提供相关设计思路和 方法。用例测试设计属于一种思维集中式测试反映,就 是根据实际测试建立详细实施流程,它包括测试准则、 作者简介:王兴野(1983-),男,硕士,工程师,研究 方向:企业与政府信息化、软件测试、参与国家重点研 发计划系统、民口科技重大专项系统、科学技术部预算 管理系统等诸多系统测试实施。收稿曰期:2018-01-21 2018.04 电脑编程技巧与维护 1 编写脚执行测试 记录测试报告 消除软件缺陷 本文件 设计测试用例 制 定测试计 划

《Web项目测试实战》性能测试需求分析章节样章

5.1.2性能测试需求提取 复习了一些常见的理论概念后,我们开始性能测试需求的提取。这个过程是非常重要的,往往测试失败,就是因为在这个过程中不知道如何得到确切的性能指标,而导致测试无法正常开展。性能测试需求提取一般的流程如图5- 1所示。 图5- 1性能测试需求提取流程 分析提取指标 在用户需求规格说明书中,会给出系统的功能、界面与性能的要求。规范的需求规格说明书都会给出明确的性能指标,比如单位时间内访问量要达到多少、业务响应时间不超过多少、业务成功率不低于多少、硬件资源耗用要在一个合理的范围中,这些指标都会以可量化的数据进行说明。如果,实际项目并没有这些正规的文档时,项目经理部署测试任务给测试组长时,一般就会说明是否要对项目的哪些业务模块进行性能测试,以及测试的要求是什么的。最麻烦的就是项目经理或者客户要求给出一个测试部门认为可以的数据,这样非常难做的。可是“甲方”往往都是提要求的,“乙方”只能“无条件”接受! 表5- 1需求规格说明书中的性能要求 表5- 1给出的指标非常明确,在测试过程中,我们只需收集用户登录模块的响应时间、登录成功率、并发数、CPU使用率、内存使用率的数据,然后与表5- 1的指标进行比较即可,通过的,就认为达到了客户要求的性能,未达到就分析原因,并给出测试报告及解决建议。 大多数是没有明确的需求,需要我们自己根据各种资料、使用各种方法去采集测试指标。以OA系统为例,假设《OA系统需求规格说明书》中并未指明系统的性能测试要求,需要测试工程师自己分析被测系统及采集性能衡量指标。 分析OA系统的结构,所有功能中仅有考勤模块可能是被测系统最终用户经常使用的业务点,那么我们的重点应该在放在该模块上。一般我们可以从下面三个方面来确定性能测试点: 第一、用户常用的功能。常用的功能一旦性能无法满足,比如登录功能,从输入用户名与密码点击登录按钮到显示成功登录信息,花了5分钟,这样的速度是 人无法忍受的。而对于用户不常用的,比如年度报表汇总功能,三个季度甚 至是一年才使用,等个10分钟也是正常的,这些是跟用户的主观感受相关 的,得根据实际情况区分。

软件自动化测试工具介绍--所有

软件自动化测试工具介绍 一、功能测试工具 1、QTP测试工具 全名 HP QUiCkTeSt ProfeSSional SoftWare ,最新的版本为HP QUiCkTeSt ProfeSSional 11.0 QTP是 quickteSt PrOfeSSiOnal 的简称,是一种自动测试工具。使用QTP的目 的是想用它来执行重复的手动测试,主要是用于回归测试和测试同一软件的新版本。因此你在测试前要考虑好如何对应用程序进行测试,例如要测试那些功能、操作步骤、输入数据和期望的输出数据等 QUiCkTeSt针对的是GUl应用程序,包括传统的Windows应用程序,以及现在越来越流行的Web应用。它可以覆盖绝大多数的软件开发技术,简单高效,并具备测试用例可重用的特点。其中包括:创建测试、插入检查点、检验数据、增强测试、运行测试、分析结果和维护测试等方面。 2、WinRUnner MerCUry Interactive 公司的 WinRUnner是一种企业级的功能测试工具,用 于检测应用程序是否能够达到预期的功能及正常运行。通过自动录制、检测和回放用户的应用操作,WinRUnner能够有效地帮助测试人员对复杂的企 业级应用的不同发布版进行测试,提高测试人员的工作效率和质量,确保跨平台的、复杂的企业级应用无故障发布及长期稳定运行。 企业级应用可能包括 Web应用系统,ERP系统,CRM S统等等。这些系统在发布之前,升级之后都要经过测试,确保所有功能都能正常运行,没有任何错误。如何有效地测试不断升级更新且不同环境的应用系统,是每个公司都会面临的问题。 3、RatiOnal Robot 是业界最顶尖的功能测试工具,它甚至可以在测试人员学习高级脚本技术之前帮助其进行成功的测试。它集成在测试人员的桌面IBM Rational TeSt Manager上,在这里测试人员可以计划、组织、执行、管理和报告所有测试活动,包括手动测试报告。这种测试和管理的双重功能是自动化测试的理想开始。 4、AdVentNet QEngine AdVentNet QEngine是一个应用广泛且独立于平台的自动化软件测试工具, 测试、 可用于Web功能Web性能测试、JaVa应用功能测试、JaVa APl测试、SoAP测试、回归测试和 JaVa

最新性能测试方案模板

XX系统性能测试方案 (仅供内部使用) 拟制: 日期:yyyy-mm-dd 审核: 日期:yyyy-mm-dd 审核: 日期:yyyy-mm-dd 批准: 日期:yyyy-mm-dd 博为峰教育科技(北京)有限公司 版权所有侵权必究

修订记录

目录 1概述 (6) 1.1被测试系统简介 (6) 1.2性能测试目的 (6) 2性能需求分析 (6) 3系统角色行为分析 (7) 3.1用户行为分析 (7) 3.2运营行为分析 (8) 3.3系统后台行为分析 (8) 4系统结构分析 (8) 4.1系统组成分析 (8) 4.2压力传递分析 (8) 4.3潜在瓶颈分析 (9) 4.4系统资源分析 (9) 4.5系统监测及其评价标准分析 (9) 5性能测试方案的确定 (10) 5.1基本流程的确定 (10) 5.2异常流程分析 (10) 5.3混合流程分析 (10) 5.4测试项的确定 (11) 5.5数据模型分析及数据规划 (11) 5.6妨碍性能测试持续开展的问题及其解决办法 (11) 5.7测试接口分析 (11) 5.8被测系统配置及其组网图 (11) 5.9测试工具的选定 (12) 5.10测试数据的准备 (12) 5.11测试用例设计建议 (12) 6附录 (12)

表目录List of Tables 表1 需求跟踪矩阵表........................................................................................ 错误!未定义书签。

图目录List of Figures 错误!未找到目录项。

软件测试自动化及工具

软件测试自动化与软件测试工具 目录 一、软件自动化测试基础 (2) 1、1 软件自动化测试的产生 (2) 1、2软件自动化测试的概念 (2) 1、3当软件开发过程中具有下列情况时首先需要考虑引入自动化测试: (2) 二、自动化测试的作用和优势 (2) 2、1概述 (2) 2、1、1产生可靠的系统 (2) 2、1、2改进测试工作质量 (2) 2、1、3.减少测试工作量并加快测试进度 (3) 2、1、4友情提醒 (3) 三、自动化测试工具 (3) 3、1软件测试工具分类 (3) 3、1、1白盒测试工具 (4) 3、1、2黑盒测试工具 (5) 3、1、3测试管理工具 (5) 3、2自动化测试工具一览 (5) 3、2、1 Rational Robot (5) 3、2、2 WinRunner (6) 3、2、3 LoadRunner (6) 3、2、4 Parasoft C++ Test (7) 3、2、5 QACenter (7) 3、2、6 WebLoad (8) 3、2、7 Web Application Stress (WAS) Tool (8) 3、2、8 TestDirector (8) 四、附录 (9)

一、软件自动化测试基础 1、1 软件自动化测试的产生 随着计算机日益广泛的应用,计算机软件越来越庞大和复杂,软件测试的工作量也越来越大。随着人们对软件测试工作的重视,大量的软件测试自动化工具不断涌现出来,自动化测试能够满足软件公司想在最短的进度内充分测试其软件的需求,一些软件公司在这方面的投入,会对整个开发工作的质量、成本和周期带来非常明显的效果。 1、2软件自动化测试的概念 软件测试自动化就是通过测试工具或其他手段,按照测试工程师的预定计划对软件产品进行自动的测试,它是软件测试的一个重要组成部分,能够完成许多手工无法完成或者难以实现的一些测试工作。正确、合理地实施自动化测试,能够快速、全面地对软件进行测试,从而提高软件质量、节省经费、缩短产品发布周期。 自动化测试能够替代大量手工测试工作,避免重复测试,同时,它还能够完成大量手工无法完成的测试工作,如并发用户测试、大数据量测试、长时间运行可靠性测试等。 1、3当软件开发过程中具有下列情况时首先需要考虑引入自动化测试: 非常重要的测试 涉及范围很广的测试 对主要功能的测试 容易自动化的测试 很快有回报的测试 运行最频繁的测试 二、自动化测试的作用和优势 2、1概述 使用测试工具的目的就是要提高软件测试的效率和软件测试的质量。通常,自动化测试的好处有: 产生可靠的系统; 改进测试工作质量; 减少测试工作量并加快测试进度。 2、1、1产生可靠的系统 测试工作的主要目标一是找出缺陷,从而减少应用中的错误;另一个是确保系统的性能满足用户的期望。为了有效地支持这些目标,在开发生存周期的需求定义阶段,当开发和细化需求时则应着手测试工作。使用自动化测试可改进所有的测试领域,包括测试程序开发、测试执行,测试结果分析、故障状况和报告生成。它还支持所有的测试阶段,其中包括单元测试、集成测试、系统测试、验收测试与回归测试等。 通过使用自动化测试可获得的效果可归纳如下。 (1)需求定义的改进 (2)性能测试的改进 (3)负载/压力测试的改进 (4)高质量测量与测试最佳化 (5)改进与开发组人员之间的关系 (6)改进系统开发生存周期 2、1、2改进测试工作质量 通过使用自动化测试工具,可增加测试的深度与广度,改进测试工作质量。其具体好处可归

PerformanceRunner自动化测试工具讲解

7.7 PerformanceRunner简介 (2) 7.7.1 PerformanceRunner的组成 (2) 7.7.1.1 PerformanceRunner功能简介 (11) 7.7.2 PerformanceRunner的安装要求 (12) 7.7.3 PerformanceRunner的安装 (12) 7.7.4配置PerformanceRunner (15) 7.7.4.1配置PerformanceRunner (15) 7.7.5 PerformanceRunner的使用流程 (17) 7.7.5.1 PerformanceRunner使用流程简介 (17) 7.7.5.2创建项目 (17) 7.7.5.3创建脚本 (19) 7.7.5.4 录制脚本 (21) 7.7.5.5 录制回放 (24) 7.7.5.6 关联脚本 (25) 7.7.5.6 属性校验 (26) 7.7.5.7 添加事务 (29) 7.7.5.8 场景的创建与执行 (29) 7.7.5.9 测试结果和数据分析 (33)

7.7 PerformanceRunner简介 7.7.1 PerformanceRunner的组成 用户界面-生成器 测试或监控环境时,需要在系统中模拟用户的真实行为。PerformanceRunner 测试工具模拟多个用户在系统中同时工作或访问系统的环境。为了进行这种模拟,用虚拟用户(即 Vuser)代替现实生活中的人。Vuser执行的操作在 Vuser 脚本中进行描述。用于创建 Vuser 脚本的主要工具是脚本生成器。生成器不仅录制 Vuser 脚本,它还运行 Vuser 脚本。使用生成器运行脚本有助于进行调试。使用生成器可模拟 Vuser 脚本在大型测试中的运行情况。录制 Vuser 脚本时,生成器会生成多个函数,用以定义录制会话期间所执行的操作。生成器将这些函数插入到脚本编辑器中以创建基本 Vuser脚本。

常用的性能测试方法(策略)和测试要点

常用的性能测试方法(策略)和测试要点 1.明确测试目标,测试目标尽可能能够有量化的标准 1)上线前验证性的性能测试,针对银行系统一般的性能指标为TPS、响应时间是否满足业务需求; 2)容量测试,测试系统在特定系统环境下的处理能力,关注的性能指标是TPS、响应时间、并发用户数等; 3)稳定性测试,银行系统对系统7×24小时的稳定性要求还是很高的; 4)异常测试,指系统出现异常或故障的情况下,系统能否在最短的时间内恢复,保证在线交易的正常进行; 2、明确测试范围,测试系统有哪些,测试交易的路径覆盖范围; 3、业务模型分析,选择日常交易量比较大,路径覆盖范围广的典型交易,建立性能测试的业务模型,确定各支交易的占比; 4、测试需求分析,测试环境(软硬件),人力,测试工具的选择,测试基础数据等需求; 5、测试内容及测试策略,一般包含以下几个方面: 1)基准测试,单用户单交易的测试,主要用于调试测试脚本的正确性,以及查看每只交易在无压力下的响应时间,为下面的测试建立基准; 2)单交易负载测试,获取每只交易的最大负载,主要考察单只

交易和系统处理能力的影响; 3)混合场景的测试,按照业务及测试模型梯度加压,以获取系统的最大处理能力,及在各种压力下每只交易的响应时间情况; 4)稳定性测试,按照混合测试模型,考察在一定的压力下持续执行24小时的系统运行情况,主要关注系统是否稳定,系统是否存在内存泄漏问题等; 5)异常测试,服务中断、网络终端、硬件故障等异常情况下系统对在线交易的影响; 6、设计测试案例; 7、执行测试,监控系统资源、应用、数据库相关指标,记录测试结果; 8、测试结果收集和分析; 9、测试报告编写; 10、测试总结; --以上是个人的一点概括性的总结,供大家参考,总之,测试目标决定测试策略和测试方法,明确测试目标是关键。来源:考试大

自动化测试系统论文 (1)

自动化测试系统论文 一、生态环境与灾害监测系统 1设计目标 生态环境得到越来越多人的关注,边远或偏僻野外地区、植被不能被破坏的自然保护区;在发生了地震、水灾、强热带风暴或遭受其他灾难打击之后,固定的通信网络设施可能被全部摧毁或无法工作。怎么样能快速有效的掌握当前环境参数,对于抢险救灾来说,具有重要意义。 环境监测是指运用物理、化学、生物等现代科学技术方法,间断地或连续地对环境化学污染物及物理和生物污染等因素进行现场的监测和测定,主要包含饮用水情监测,大气监测,危险品、废弃物污染情况监测,噪声监测等,对上述参数准确、及时、全面的测量能及时反映环境质量现状及发展趋势,为环境管理、污染源控制、有效避免次生灾害、环境规划等提供科学依据。 2 总体设计要求: 1)、对系统所要完成的任务进行分析并查阅相关资料,确定相关参数具体要求,完成系统设计方案; 2)、在此基础上,综合考虑系统可靠性、性价比、开发周期等因素,合理选择相应的仪器模块,需说明模块具体型号,特性,模块之间的匹配等问题 3)、系统软件设计,设计出合理的软件流程; 4)、撰写不小于5000字的系统设计说明书,详细说明系统设计方案。 3 报告内容要求: 1)、封面(含课程名、论文题名、作者等) 2)、摘要(含中摘要及关键词) 3)、正文(含引言、正文、总结) 4)、参考文献(要在正文中以上标的形式标注出来,至少5篇)

二、铁路钢轨自动巡检与监测系统 1设计目标 铁路行业的快速发展为我国经济建设和民生改善发挥重要的促进作用。在铁 路基础设施中,轮对、车轴及铁路钢轨的结构性能和质量好坏直接影响铁路运行 安全,关键结构的缺陷伤损检测对铁路基础设施的保障维护具有重要意义。钢轨 是铁路轨道的主要组成部件,直接承受轮对传来的压力,长期使用过程中出现缺 陷伤损和材料退化影响其服役性能且威胁行车安全。随着高速铁路行车密度增加、 运行速度提高以及重载货运线路载重量增加,钢轨的负荷和受到挤压及冲击程度 增大,钢轨故障和伤损发生的概率增大。这些都为传统钢轨伤损检测技术带来新 的挑战,迫切需要综合多种技术的快速钢轨自动巡检的系统。 系统要求能对钢轨进行全断面覆盖、全里程检测以及缺陷和故障全过程检测, 从而保证及时的安全维护。主要包括钢轨表面应变、振动、温度和噪声监测,从 而获得在列车载荷及环境温度变化情况下钢轨的状态变化,另需对钢轨表面及近 表面疲劳裂纹和缺陷损伤的分布及数量、尺寸进行检测,以便于及时维护。 2 总体设计要求: 1)、对系统所要完成的任务进行分析并查阅相关资料,确定相关参数具体要求,完成系统设计方案; 2)、在此基础上,综合考虑系统可靠性、性价比、开发周期等因素,合理选择相应的仪器模块,需说明模块具体型号,特性,模块之间的匹配等问题 3)、系统软件设计,设计出合理的软件流程; 4)、撰写不小于5000字的系统设计说明书,详细说明系统设计方案。 3 报告内容要求: 1)、封面(含课程名、论文题名、作者等) 2)、摘要(含中摘要及关键词) 3)、正文(含引言、正文、总结) 4)、参考文献(要在正文中以上标的形式标注出来,至少5篇)

主流软件自动化测试工具介绍

主流自动化测试工具介绍 一、功能测试工具 1、Selenium (浏览器自动化测试框架) Selenium[1] 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。据 Selenium 主页所说,与其他测试工具相比,使用 Selenium 的最大好处是: Selenium [2] 测试直接在浏览器中运行,就像真实用户所做的一样。Selenium 测试可以在 Windows、Linux 和 Macintosh上的 Internet Explorer、Mozilla 和 Firefox 中运行。其他测试工具都不能覆盖如此多的平台。使用 Selenium 和在浏览器中运行测试还有很多其他好处。 下面是主要的两大好处: 通过编写模仿用户操作的 Selenium 测试脚本,可以从终端用户的角度来测试应用程序。通过在不同浏览器中运行测试,更容易发现浏览器的不兼容性。Selenium 的核心,也称browser bot,是用 JavaScript 编写的。这使得测试脚本可以在受支持的浏览器中运行。browser bot 负责执行从测试脚本接收到的命令,测试脚本要么是用 HTML 的表布局编写的,要么是使用一种受支持的编程语言编写的。 2、QTP测试工具 全名HP QuickTest Professional software ,最新的版本为HP QuickTest Professional 11.0 QTP是quicktest Professional的简称,是一种自动测试工具。使用QTP的目的是想用它来执行重复的手动测试,主要是用于回归测试和测试同一软件的新版本。因此你在测试前要考虑好如何对应用程序进行测试,例如要测试那些功能、操作步骤、输入数据和期望的输出数据等 QuickTest针对的是GUI应用程序,包括传统的Windows应用程序,以及现在越来越流行的

精通软件性能测试与loadrunner实战

最新版LoadRunner性能测试实战 内容介绍: 很多使用LoadRunner的测试人员经常面临两个难题:脚本开发与性能测试分析。本书就是基于帮助测试人员解决这两个问题而编写,致力于使读者学精LoadRunnner这一强大的性能测试工具。 全书共分为四部分:入门篇、基础篇、探索篇、实战篇。第一篇入门篇的内容包括第1章和第2章,着重于讲解性能测试与LoadRunner的基础理论知识。第二篇基础篇的内容包括第3章至第5章,是LoadRunner 的基本使用部分,着重讲解Virtual User Generator、Controller、Analysis的使用方法。第三篇探索篇的... 第1部分入门篇.. (1) 第1章性能测试基础知识.. 3 1.1 性能测试基本概念 (4) 1.1.1 什么是性能测试 (4) 1.1.2 性能测试应用领域 (6) 1.1.3 性能测试常见术语 (8) 1.2 全面性能测试模型 (11) 1.2.1 性能测试策略模型 (14) 1.2.2 性能测试用例模型 (17) 1.2.3 模型的使用方法 (20) 1.3 性能测试调整基础 (21) 1.4 如何做好性能测试 (24) 1.5 本章小结 (28) 第2章LoadRunner基础知识.. 29 2.1 LoadRunner简介 (29) 2.1.1 LoadRunner主要特点 (29) 2.1.2 LoadRunner常用术语 (31) 2.2 LoadRunner工作原理 (32) 2.3 LoadRunner测试流程 (33) 2.4 LoadRunner的部署与安装 (35) 2.5 本章小结 (41) 第2部分基础篇 (43) 第3章脚本的录制与开发.. 45

相关主题
文本预览
相关文档 最新文档