就在不久的前
![](/icons/62794dou.gif)
工业标准测试实战(针对 C/S 架构
![](/icons/62794de.gif)
质量问题而发展起来
![](/icons/62794de.gif)
)仍聚焦于客户端
![](/icons/62794de.gif)
前端功能测试或者服务器端
![](/icons/62794de.gif)
后端可伸缩性测试和性能测试
![](/icons/62794dou2.gif)
这种"工作上
![](/icons/62794de.gif)
分离"主要是缘于传统
![](/icons/62794de.gif)
C/S(客户端/服务器)架构比当前
![](/icons/62794de.gif)
多层架构和分布式环境相对简单
![](/icons/62794de.gif)
事实
![](/icons/62794dou2.gif)
在标准
![](/icons/62794de.gif)
C/S 架构中
![](/icons/62794dou.gif)
问题要么发生在客户端
![](/icons/62794dou.gif)
要么就发生在服务器端
引言
就在不久的前
![](/icons/62794dou.gif)
工业标准测试实战(针对 C/S 架构
![](/icons/62794de.gif)
质量问题而发展起来
![](/icons/62794de.gif)
)仍聚焦于客户端
![](/icons/62794de.gif)
前端功能测试或者服务器端
![](/icons/62794de.gif)
后端可伸缩性测试和性能测试
![](/icons/62794dou2.gif)
这种"工作上
![](/icons/62794de.gif)
分离"主要是缘于传统
![](/icons/62794de.gif)
C/S(客户端/服务器)架构比当前
![](/icons/62794de.gif)
多层架构和分布式环境相对简单
![](/icons/62794de.gif)
事实
![](/icons/62794dou2.gif)
在标准
![](/icons/62794de.gif)
C/S 架构中
![](/icons/62794dou.gif)
问题要么发生在客户端
![](/icons/62794dou.gif)
要么就发生在服务器端
![](/icons/62794dou2.gif)
今天
![](/icons/62794dou.gif)
典型
![](/icons/62794de.gif)
计算环境是
![](/icons/62794yi.gif)
种复杂
![](/icons/62794de.gif)
![](/icons/62794dou.gif)
异构
![](/icons/62794de.gif)
混合环境
![](/icons/62794dou.gif)
其组件和代码来自遗留系统、自主开发或第 3方
![](/icons/62794dou.gif)
或者是标准
![](/icons/62794de.gif)
组件和代码(图示 1)
![](/icons/62794dou2.gif)
随着 Web
![](/icons/62794de.gif)
发展
![](/icons/62794dou.gif)
架构
![](/icons/62794de.gif)
复杂性进
![](/icons/62794yi.gif)
步增加
![](/icons/62794dou.gif)
通常在
![](/icons/62794yi.gif)
个或多个后端数据库和面向用户
![](/icons/62794de.gif)
表示层的间会有
![](/icons/62794yi.gif)
个内容层
![](/icons/62794dou2.gif)
该内容层可以提供来自多个服务
![](/icons/62794de.gif)
内容(其中这些服务集中在表示层中)
![](/icons/62794dou.gif)
也可能包含
![](/icons/62794yi.gif)
些原来存在于传统 C/S 架构前端上
![](/icons/62794de.gif)
业务逻辑
![](/icons/62794dou2.gif)
这种复杂度
![](/icons/62794de.gif)
增加
![](/icons/62794dou.gif)
和遗留系统集成和尖端技术开发交织起来
![](/icons/62794dou.gif)
使软件Software及系统问题(包括功能和可扩展性及性能问题)
![](/icons/62794de.gif)
描述、分析和定位成为软件Software系统开发和发布过程中
![](/icons/62794de.gif)
主要挑战
![](/icons/62794dou2.gif)
此外
![](/icons/62794dou.gif)
随着 SOAP/XML(简单对象访问协议/可扩展性标记语言)成为标准
![](/icons/62794de.gif)
数据传输格式
![](/icons/62794dou.gif)
XML 数据内容
![](/icons/62794de.gif)
问题对于 .NET 平台和 J2EE 平台变得越来越重要
![](/icons/62794dou2.gif)
简单
![](/icons/62794de.gif)
说
![](/icons/62794dou.gif)
正是现在
![](/icons/62794de.gif)
架构和计算环境
![](/icons/62794de.gif)
复杂性
![](/icons/62794dou.gif)
导致了原来
![](/icons/62794de.gif)
面向 C/S
![](/icons/62794de.gif)
测试模式遭到淘汰
![](/icons/62794dou2.gif)
图1:现在典型
![](/icons/62794de.gif)
多层架构
总体质量策略
很显然
![](/icons/62794dou.gif)
![](/icons/62794yi.gif)
种新
![](/icons/62794de.gif)
![](/icons/62794dou.gif)
有效
![](/icons/62794de.gif)
质量强化策略对成功
![](/icons/62794de.gif)
软件Software开发和部署是必须
![](/icons/62794de.gif)
![](/icons/62794dou2.gif)
最有效
![](/icons/62794de.gif)
策略是将环境中单个组件
![](/icons/62794de.gif)
测试和环境
![](/icons/62794de.gif)
整体测试结合起来
![](/icons/62794dou2.gif)
在这种策略中
![](/icons/62794dou.gif)
组件级和系统级
![](/icons/62794de.gif)
测试都必须包含功能测试来确保数据完整性
![](/icons/62794dou.gif)
还要包含可伸缩性和性能测试来确保区别
![](/icons/62794de.gif)
系统负荷下
![](/icons/62794de.gif)
可接受
![](/icons/62794de.gif)
响应时间
![](/icons/62794dou2.gif)
在评估性能和可伸缩性方面
![](/icons/62794dou.gif)
这些并行分析模式能够帮助您发现系统架构
![](/icons/62794de.gif)
优势和缺陷
![](/icons/62794dou.gif)
并在解决和性能和可伸缩性有关
![](/icons/62794de.gif)
问题时确定必须检查哪些组件
![](/icons/62794dou2.gif)
和此类似
![](/icons/62794de.gif)
功能测试策略(即全部数据完整性验证)
![](/icons/62794dou.gif)
正显得越来越关键
![](/icons/62794dou.gif)
![](/icons/62794yinwei.gif)
现在数据可能是从分散
![](/icons/62794de.gif)
数据源派生而来
![](/icons/62794dou2.gif)
通过评估组件内外
![](/icons/62794de.gif)
数据完整性(包括处理过程中
![](/icons/62794de.gif)
任何功能性
![](/icons/62794de.gif)
数据转换)
![](/icons/62794dou.gif)
测试人员可以定位每个潜在
![](/icons/62794de.gif)
![](/icons/62794cuowu.gif)
![](/icons/62794dou.gif)
并使系统集成和缺陷隔离成为标准
![](/icons/62794de.gif)
开发过程
![](/icons/62794de.gif)
![](/icons/62794yi.gif)
部分
![](/icons/62794dou2.gif)
端到端架构测试(End to End Architecture Testing)指
![](/icons/62794de.gif)
是这样
![](/icons/62794yi.gif)
种概念
![](/icons/62794dou.gif)
它测试计算环境中所有
![](/icons/62794de.gif)
访问点
![](/icons/62794dou.gif)
并在组件级和系统级
![](/icons/62794de.gif)
测试中将功能测试和性能测试整合在
![](/icons/62794yi.gif)
起(见图2)
![](/icons/62794dou2.gif)
从某种意义上来说
![](/icons/62794dou.gif)
端到端架构测试实质上是
![](/icons/62794yi.gif)
种"灰盒"测试
![](/icons/62794dou.gif)
![](/icons/62794yi.gif)
种集合了白盒测试和黑盒测试
![](/icons/62794de.gif)
长处
![](/icons/62794de.gif)
测试思路方法
![](/icons/62794dou2.gif)
在白盒测试中
![](/icons/62794dou.gif)
测试员能够访问底层系统组件并对其有足够
![](/icons/62794de.gif)
了解
![](/icons/62794dou2.gif)
尽管白盒测试能够提供非常详细和有价值
![](/icons/62794de.gif)
结果
![](/icons/62794dou.gif)
但在检测集成和系统性能问题方面却有些"力不从心"
![](/icons/62794dou2.gif)
和此相反
![](/icons/62794dou.gif)
黑盒测试需要很少或者完全不需要对系统
![](/icons/62794de.gif)
内部工作机制
![](/icons/62794de.gif)
了解
![](/icons/62794dou.gif)
而将注意力集中在终端用户上――确保用户能够及时得到正确
![](/icons/62794de.gif)
结果
![](/icons/62794dou2.gif)
黑盒测试通常并不能指明问题
![](/icons/62794de.gif)
原因
![](/icons/62794dou.gif)
也不能保证某段代码已经被执行并且高效运行
![](/icons/62794dou.gif)
而且也不包含任何内存泄漏和类似
![](/icons/62794de.gif)
问题
![](/icons/62794dou2.gif)
通过将白盒测试和黑盒测试进行"技术嫁接"
![](/icons/62794dou.gif)
端到端架构测试真正实现了取长补短
![](/icons/62794dou2.gif)
图2:端到端架构测试包含所有访问点
![](/icons/62794de.gif)
功能测试及性能测试
对可伸缩性测试和性能测试来说
![](/icons/62794dou.gif)
访问点包括硬件、操作系统、应用
![](/icons/62794chengxu.gif)
数据库和网络
![](/icons/62794dou2.gif)
对功能测试来说
![](/icons/62794dou.gif)
访问点包括前端
![](/icons/62794de.gif)
客户端
![](/icons/62794dou.gif)
中间层
![](/icons/62794dou.gif)
内容源和后台数据库
![](/icons/62794dou2.gif)
明白了这些
![](/icons/62794dou.gif)
术语"架构"所定义
![](/icons/62794de.gif)
就是在环境中组件的间以及组件和用户的间是如何进行交互
![](/icons/62794de.gif)
![](/icons/62794dou2.gif)
单纯从组件来看
![](/icons/62794de.gif)
优点和缺陷取决于将它们组织在
![](/icons/62794yi.gif)
起
![](/icons/62794de.gif)
特定架构
![](/icons/62794dou2.gif)
正是
![](/icons/62794yi.gif)
种架构将如何响应作用于它
![](/icons/62794de.gif)
命令
![](/icons/62794de.gif)
这种不确定性
![](/icons/62794dou.gif)
使我们需要进行端到端架构测试
![](/icons/62794dou2.gif)
为了有效实现端到端架构测试
![](/icons/62794dou.gif)
RTTS 成功开发了基于风险
![](/icons/62794de.gif)
测试自动化思路方法
![](/icons/62794dou2.gif)
The Test Automation Process(测试自动化过程
![](/icons/62794dou.gif)
TAP)建立在多年
![](/icons/62794de.gif)
成功测试实战基础的上
![](/icons/62794dou.gif)
利用了最佳
![](/icons/62794de.gif)
自动测试工具
![](/icons/62794dou2.gif)
这是
![](/icons/62794yi.gif)
个迭代
![](/icons/62794de.gif)
测试思路方法
![](/icons/62794dou.gif)
包括 5个阶段:
项目评估
测试计划创建和改进
测试用例编写
测试自动化、执行和跟踪
测试结果评估
端到端架构测试所要求
![](/icons/62794de.gif)
单项功能和性能测试是在"测试自动化、执行和跟踪"阶段进行
![](/icons/62794de.gif)
![](/icons/62794dou2.gif)
如图 3所示
![](/icons/62794dou.gif)
这个阶段被不断重复
![](/icons/62794dou.gif)
而相应
![](/icons/62794de.gif)
测试也在每
![](/icons/62794yi.gif)
次迭代过程中得到精化
![](/icons/62794dou2.gif)
图 3:端到端测试
![](/icons/62794de.gif)
RTTS 测试自动化过程(TAP)
组件级测试
很显然
![](/icons/62794dou.gif)
首先必须开发单个组件
![](/icons/62794dou.gif)
然后才能将它们"装配"成功能系统
![](/icons/62794dou2.gif)
![](/icons/62794yinwei.gif)
组件可以进行早期测试
![](/icons/62794dou.gif)
所以在 TAP 中端到端测试是从组件测试开始
![](/icons/62794de.gif)
![](/icons/62794dou2.gif)
在组件测试中
![](/icons/62794dou.gif)
随着环境
![](/icons/62794de.gif)
建立
![](/icons/62794dou.gif)
适当
![](/icons/62794de.gif)
测试也分别实施于各个区别
![](/icons/62794de.gif)
单个组件上
![](/icons/62794dou2.gif)
功能测试和性能测试在组件测试阶段都相当有价值
![](/icons/62794dou.gif)
它们帮助诊断了在整个环境构建前和构建中
![](/icons/62794de.gif)
各种缺陷
![](/icons/62794dou2.gif)
组件测试中
![](/icons/62794de.gif)
功能测试
组件级功能测试验证了每个组件所执行
![](/icons/62794de.gif)
事务
![](/icons/62794dou2.gif)
这包括了组件或系统所要求
![](/icons/62794de.gif)
任何数据转换和组件所处理
![](/icons/62794de.gif)
事务
![](/icons/62794de.gif)
业务逻辑
![](/icons/62794de.gif)
验证
![](/icons/62794dou2.gif)
在应用
![](/icons/62794chengxu.gif)
功能
![](/icons/62794de.gif)
开发中
![](/icons/62794dou.gif)
基础设施测试(infrastructure testing)验证并量化整个环境中
![](/icons/62794de.gif)
数据流量
![](/icons/62794dou.gif)
并以这种方式来同时进行功能和性能测试
![](/icons/62794dou2.gif)
数据完整性必须当数据在组件间传递时进行验证
![](/icons/62794dou2.gif)
例如
![](/icons/62794dou.gif)
XML 测试在逐个事务地验证 XML 数据内容
![](/icons/62794dou.gif)
并在需要时验证正式 XML 结构(元数据结构)
![](/icons/62794dou2.gif)
对组件测试来说
![](/icons/62794dou.gif)
诸如 IBM Rational Robot 这样
![](/icons/62794de.gif)
自动可扩展
![](/icons/62794de.gif)
测试工具可以大大
![](/icons/62794de.gif)
减少用在 GUI 测试和非GUI组件
![](/icons/62794de.gif)
功能测试上
![](/icons/62794de.gif)
时间和精力
![](/icons/62794dou2.gif)
Rational Robot
![](/icons/62794de.gif)
脚本语言支持对外部 COM DDLs
![](/icons/62794de.gif)
![](/icons/62794diaoyong.gif)
![](/icons/62794dou.gif)
是非 GUI 对象测试
![](/icons/62794de.gif)
理想工具
![](/icons/62794dou2.gif)
此外
![](/icons/62794dou.gif)
Rational Suite TestStudio 和 Rational Team Test 所附带
![](/icons/62794de.gif)
新
![](/icons/62794de.gif)
Web 和 Java 测试功能
![](/icons/62794dou.gif)
提供了测试 J2EE 架构和使用 java 语言来编写测试脚本
![](/icons/62794de.gif)
附加功能
组件级可伸缩性测试和性能测试
和这些功能测试并行
![](/icons/62794de.gif)
是组件级可伸缩性测试
![](/icons/62794dou.gif)
在环境中检验每个组件来确定其事务(或者说容量)
![](/icons/62794de.gif)
限度
![](/icons/62794dou2.gif)
![](/icons/62794yi.gif)
旦有足够
![](/icons/62794de.gif)
应用功能来创建业务相关
![](/icons/62794de.gif)
事务
![](/icons/62794dou.gif)
事务特征测试(transcation characterization testing)就被用来确定业务事务中
![](/icons/62794de.gif)
各个定量描述
![](/icons/62794dou.gif)
包括消耗
![](/icons/62794de.gif)
带宽和后台 CPU 以及内存
![](/icons/62794de.gif)
占用率
![](/icons/62794dou2.gif)
资源测试(Resource testing)将这个概念扩展到多用户测试
![](/icons/62794dou.gif)
从而确定应用
![](/icons/62794chengxu.gif)
和子系统或模块中全部
![](/icons/62794de.gif)
资源消耗
![](/icons/62794dou2.gif)
最后
![](/icons/62794dou.gif)
配置测试(configuration testing)可以用来确定哪些硬件、操作系统、软件Software、网络、数据库或者其他配置上
![](/icons/62794de.gif)
变更可以优化性能
![](/icons/62794dou2.gif)
和功能测试
![](/icons/62794yi.gif)
样
![](/icons/62794dou.gif)
有效
![](/icons/62794de.gif)
自动工具如 Rational Suite TestStudio 和 Rational Team Test 所提供
![](/icons/62794de.gif)
那些工具可以极大地简化可伸缩性测试和性能测试
![](/icons/62794dou2.gif)
在这种情况下
![](/icons/62794dou.gif)
创建、计划和驱动多用户测试以及监控资源利用率
![](/icons/62794de.gif)
能力是有效且成功完成资源测试、事务特征测试和配置测试
![](/icons/62794de.gif)
基础
![](/icons/62794dou2.gif)
系统级测试
系统 "装配"完成后
![](/icons/62794dou.gif)
对环境
![](/icons/62794de.gif)
整体测试就可以开始了
![](/icons/62794dou2.gif)
同样
![](/icons/62794dou.gif)
端到端架构测试需要对整个环境
![](/icons/62794de.gif)
功能以及性能/可伸缩性进行验证
![](/icons/62794dou2.gif)
系统级功能测试
集成是首要考虑
![](/icons/62794de.gif)
问题的
![](/icons/62794yi.gif)
![](/icons/62794dou2.gif)
集成测试 ( Integration Testing ) 从数据
![](/icons/62794de.gif)
角度检查了整体系统是否完成了集成
![](/icons/62794dou2.gif)
也就是说
![](/icons/62794dou.gif)
需要互相交互
![](/icons/62794de.gif)
硬件或软件Software组件是否通讯正常?如果是
![](/icons/62794dou.gif)
那么
![](/icons/62794dou.gif)
在它们间传递
![](/icons/62794de.gif)
数据是否正确呢?如果可以
![](/icons/62794dou.gif)
数据应当在系统组件传送
![](/icons/62794de.gif)
中间阶段被访问和验证
![](/icons/62794dou2.gif)
例如
![](/icons/62794dou.gif)
当数据被写到临时数据库中时
![](/icons/62794dou.gif)
或者数据在被目标组件处理的前已经存在于消息队列中时
![](/icons/62794dou.gif)
就应该对数据进行验证
![](/icons/62794dou2.gif)
在这些组件边界对数据进行访问能够为数据完整性验证和数据问题
![](/icons/62794de.gif)
描述提供
![](/icons/62794yi.gif)
个重要
![](/icons/62794de.gif)
附加尺度
![](/icons/62794dou2.gif)
如果在两个数据传输点的间检测出数据
![](/icons/62794cuowu.gif)
![](/icons/62794dou.gif)
那么有缺陷
![](/icons/62794de.gif)
组件必定是位于这两个传输点的间
![](/icons/62794dou2.gif)
系统级可伸缩性测试和性能测试
可以通过创建
![](/icons/62794yi.gif)
个测试来回答以下有关环境
![](/icons/62794de.gif)
可伸缩性或者完成情况
![](/icons/62794de.gif)
问题:在系统仍能维持可以接受
![](/icons/62794de.gif)
响应时间下
![](/icons/62794dou.gif)
最多可以有多少用户同时访问它?
我
![](/icons/62794de.gif)
高可用性架构是否可以按照设计
![](/icons/62794de.gif)
那样工作?
在加入新
![](/icons/62794de.gif)
应用
![](/icons/62794chengxu.gif)
或者对正在使用
![](/icons/62794de.gif)
应用进行更新后会发生什么情况?
最初使用时
![](/icons/62794dou.gif)
系统应该如何配置以支持我们所期望
![](/icons/62794de.gif)
用户数?6个月的后该如何配置呢?
![](/icons/62794yi.gif)
年的后呢?
我们只能得到部分功能--设计是否合理?
这些问题
![](/icons/62794de.gif)
答案可以通过
![](/icons/62794yi.gif)
定
![](/icons/62794de.gif)
测试技术来获得, 包括可伸缩性/负载测试、性能测试、配置测试、并发测试、压力和容量测试、可靠性测试
![](/icons/62794dou.gif)
以及失败转移(failover)测试
![](/icons/62794dou2.gif)
在系统容量方面
![](/icons/62794dou.gif)
总体环境测试通常是从可伸缩性/负载测试开始
![](/icons/62794de.gif)
![](/icons/62794dou2.gif)
这种测试思路方法逐渐增大目标环境上
![](/icons/62794de.gif)
负载
![](/icons/62794dou.gif)
直到某些性能要求如最大响应时间达到极限或者特定
![](/icons/62794de.gif)
资源被耗尽
![](/icons/62794dou2.gif)
这些测试
![](/icons/62794de.gif)
目
![](/icons/62794de.gif)
在于确定事务处理和用户容量
![](/icons/62794de.gif)
上限
![](/icons/62794dou.gif)
它们经常会和其他测试手段结合起来以优化系统性能
![](/icons/62794dou2.gif)
性能测试和可伸缩性/负载测试相关
![](/icons/62794dou.gif)
它通过测试特定
![](/icons/62794de.gif)
业务场景来确定环境是否满足所设定
![](/icons/62794de.gif)
负载和事务组合
![](/icons/62794de.gif)
要求
![](/icons/62794dou2.gif)
(图 4)
和组件级配置测试并行
![](/icons/62794de.gif)
是系统级配置测试
![](/icons/62794dou.gif)
它提供了特定
![](/icons/62794de.gif)
硬件和软件Software设置下
![](/icons/62794de.gif)
权衡信息
![](/icons/62794dou.gif)
同时也提供了有效
![](/icons/62794de.gif)
资源分配所需
![](/icons/62794de.gif)
度量标准和其他信息
![](/icons/62794dou2.gif)
图 4:性能测试:系统具有特定
![](/icons/62794de.gif)
用户负载时能够按照要求执行吗?
并发测试(concurrency testing)(图 5)剖析了当多个用户同时访问同
![](/icons/62794yi.gif)
段应用代码、同
![](/icons/62794yi.gif)
个模块或者数据库纪录时
![](/icons/62794de.gif)
效果
![](/icons/62794dou2.gif)
它鉴别并度量了系统加锁和死锁
![](/icons/62794de.gif)
级别以及系统中单线程代码和加锁信号
![](/icons/62794de.gif)
使用
![](/icons/62794dou2.gif)
从技术角度讲
![](/icons/62794dou.gif)
并发测试可以归为
![](/icons/62794yi.gif)
种功能测试
![](/icons/62794dou.gif)
不过它常常和可伸缩性/负载测试配合使用
![](/icons/62794dou.gif)
![](/icons/62794yinwei.gif)
它需要多用个户或者虚拟用户来驱动系统
![](/icons/62794dou2.gif)
图 5:并发测试能够识别死锁和其他并发访问问题
压力测试(stress testing)(图 6)在系统达到饱和(指资源如 CPU、内存耗尽等情况)时来测试系统以判断其行为是否发生变更
![](/icons/62794dou.gif)
或者是否会对系统、应用
![](/icons/62794chengxu.gif)
和数据产生不利影响
![](/icons/62794dou2.gif)
容量测试(volume testing)是和压力测试及可伸缩性测试相关联
![](/icons/62794de.gif)
![](/icons/62794dou.gif)
它可以确定整个系统能够处理
![](/icons/62794de.gif)
事务容量
![](/icons/62794dou2.gif)
通过压力和容量测试能够知道系统分别在处理突发
![](/icons/62794de.gif)
访问量增加或进行持续
![](/icons/62794de.gif)
大容量活动时所具有
![](/icons/62794de.gif)
弹性
![](/icons/62794dou.gif)
这不包括那些
![](/icons/62794yinwei.gif)
内存泄漏或者队列溢出所引发
![](/icons/62794de.gif)
失败
![](/icons/62794dou2.gif)
图 6:压力测试能够确定高容量使用时
![](/icons/62794de.gif)
效应
![](/icons/62794yi.gif)
旦应用环境开始工作并进行了性能优化
![](/icons/62794dou.gif)
可以在 75%到 90%
![](/icons/62794de.gif)
环境利用率下进行
![](/icons/62794yi.gif)
项长期可靠性测试(reliability testing)
![](/icons/62794dou.gif)
用来发现任何和较长
![](/icons/62794de.gif)
运行时间有关
![](/icons/62794de.gif)
问题
![](/icons/62794dou2.gif)
在应用了冗余和负载平衡
![](/icons/62794de.gif)
环境中
![](/icons/62794dou.gif)
失败转移测试(failover testing)(图 7)分析理论上
![](/icons/62794de.gif)
失败过程并测试和测量总体失败转移进程及其对终端用户
![](/icons/62794de.gif)
影响
![](/icons/62794dou2.gif)
本质上
![](/icons/62794dou.gif)
失败转移测试回答了这样
![](/icons/62794yi.gif)
个问题:"如果
![](/icons/62794yi.gif)
个特定
![](/icons/62794de.gif)
组件运行失败
![](/icons/62794dou.gif)
用户还可不可以在最小
![](/icons/62794de.gif)
中断下继续进行访问和处理?"
图 7:失败转移测试:如果组件X失败
![](/icons/62794dou.gif)
那么将发生什么情况呢?
最后
![](/icons/62794dou.gif)
如果在环境中使用了第 3方软件Software
![](/icons/62794dou.gif)
或者主机供应商及其他外部来源所提供
![](/icons/62794de.gif)
组件
![](/icons/62794dou.gif)
那么 SLA(Service level Agreement服务水平协议)测试则可以用来确保双方合同规范标准中所规定
![](/icons/62794de.gif)
终端用户响应时间
![](/icons/62794dou.gif)
以及流入和流出
![](/icons/62794de.gif)
数据量
![](/icons/62794dou2.gif)
![](/icons/62794yi.gif)
个典型
![](/icons/62794de.gif)
协议通常会指明在既定时间范围内
![](/icons/62794de.gif)
活动容量和
![](/icons/62794yi.gif)
个特定
![](/icons/62794de.gif)
最长响应时间
![](/icons/62794dou2.gif)
![](/icons/62794yi.gif)
旦外部数据或软件Software到位后
![](/icons/62794dou.gif)
对这些来源进行持续监控是明智
![](/icons/62794de.gif)
做法
![](/icons/62794dou.gif)
这样就可以在问题发生时快速
![](/icons/62794de.gif)
采取补救措施
![](/icons/62794dou.gif)
将对终端用户
![](/icons/62794de.gif)
影响降到最小
![](/icons/62794dou2.gif)
和组件级
![](/icons/62794de.gif)
可伸缩性测试
![](/icons/62794yi.gif)
样
![](/icons/62794dou.gif)
Rational suite TestStudio、Rational TeamTest 和其他类似
![](/icons/62794de.gif)
工具提供了
![](/icons/62794yi.gif)
些高级
![](/icons/62794de.gif)
![](/icons/62794dou.gif)
多用户
![](/icons/62794de.gif)
测试能力
![](/icons/62794dou.gif)
它们可以用来高效进行上述
![](/icons/62794de.gif)
大多数或者全部
![](/icons/62794de.gif)
可伸缩性和性能测试
![](/icons/62794dou2.gif)
![](/icons/62794yi.gif)
个实际例子
也许举
![](/icons/62794yi.gif)
个例子是介绍说明
![](/icons/62794de.gif)
最好办法
![](/icons/62794dou2.gif)
请考虑下面
![](/icons/62794de.gif)
情况:
通过 eRetailer 构建
![](/icons/62794yi.gif)
个公共
![](/icons/62794de.gif)
Web 书店
![](/icons/62794dou.gif)
并在它
![](/icons/62794de.gif)
内容层中使用了 4种由内容提供
![](/icons/62794de.gif)
Web 服务
![](/icons/62794dou2.gif)
第
![](/icons/62794yi.gif)
种服务提供目录
![](/icons/62794dou.gif)
包括书名
![](/icons/62794dou.gif)
介绍语和作者
![](/icons/62794dou2.gif)
第 2种服务提供所有产品
![](/icons/62794de.gif)
当前库存信息
![](/icons/62794dou2.gif)
第 3种是价格服务器
![](/icons/62794dou.gif)
它提供商品定价信息
![](/icons/62794dou.gif)
并根据购买者
![](/icons/62794de.gif)
所在地提供运费和税费信息并完成交易
![](/icons/62794dou2.gif)
最后
![](/icons/62794yi.gif)
种服务用来保存用户档案和历史购买纪录
![](/icons/62794dou2.gif)
表示层将用户通过 UI 图形界面输入
![](/icons/62794de.gif)
请求转换成 XML 并发送给相应
![](/icons/62794de.gif)
内容服务器
![](/icons/62794dou2.gif)
接着响应 XML 就会通过表示层转换成 HTML 并服务于用户会话
![](/icons/62794dou2.gif)
每
![](/icons/62794yi.gif)
种内容层
![](/icons/62794de.gif)
服务都会根据需要更新其他
![](/icons/62794de.gif)
服务
![](/icons/62794dou2.gif)
(参见图 8)例如
![](/icons/62794dou.gif)
在用户
![](/icons/62794de.gif)
历史购买纪录发生变更时
![](/icons/62794dou.gif)
价格服务器必须更新相应
![](/icons/62794de.gif)
用户档案服务
![](/icons/62794dou2.gif)
图8:典型
![](/icons/62794de.gif)
eRetailer 应用
![](/icons/62794chengxu.gif)
![](/icons/62794de.gif)
访问点
对上述
![](/icons/62794de.gif)
系统来说
![](/icons/62794dou.gif)
![](/icons/62794yi.gif)
个端到端测试策略
![](/icons/62794de.gif)
起点是分别对内容层
![](/icons/62794de.gif)
每种服务同时应用功能测试和可伸缩性/负载测试
![](/icons/62794dou2.gif)
XML 请求被提交给每种内容服务
![](/icons/62794dou.gif)
而相应
![](/icons/62794de.gif)
响应 XML 文档则被捕获
![](/icons/62794dou.gif)
从而对它
![](/icons/62794de.gif)
数据内容或者响应时间进行评估
![](/icons/62794dou2.gif)
随着这些内容服务逐个
![](/icons/62794de.gif)
集成到系统中
![](/icons/62794dou.gif)
通过向 Web 服务器提交事务
![](/icons/62794dou.gif)
功能测试和可伸缩性/负载测试也都可以在集成系统中进行
![](/icons/62794dou2.gif)
事务可以贯穿整个站点进行验证
![](/icons/62794dou.gif)
不论是为功能测试(使用 SQL 查询)还是为可伸缩性/负载测试
![](/icons/62794dou2.gif)
在系统开发过程中
![](/icons/62794dou.gif)
应用于所有访问点
![](/icons/62794de.gif)
单个测试可以被用来调协各个服务
![](/icons/62794dou.gif)
以便使其能够在整个系统中正常运作――无论从数据内容(功能性)还是性能方面(可伸缩性)来说
![](/icons/62794dou2.gif)
当前端发现问题时(比如,通过浏览器)
![](/icons/62794dou.gif)
那些原来用来测试单个组件
![](/icons/62794de.gif)
测试用例和数据可以帮助我们快速定位
![](/icons/62794cuowu.gif)
位置
![](/icons/62794dou2.gif)
网络建模
![](/icons/62794de.gif)
优点
作为设计过程
![](/icons/62794de.gif)
![](/icons/62794yi.gif)
部分
![](/icons/62794dou.gif)
无论在硬件获取的前还是在最初
![](/icons/62794de.gif)
测试阶段中
![](/icons/62794dou.gif)
为区别
![](/icons/62794de.gif)
网络架构进行建模都可以扩大端到端测试
![](/icons/62794de.gif)
优点
![](/icons/62794dou2.gif)
![](/icons/62794yinwei.gif)
它可以帮助设计更有效和低
![](/icons/62794cuowu.gif)
率
![](/icons/62794de.gif)
网络
![](/icons/62794dou2.gif)
在部署的前进行网络基础设施
![](/icons/62794de.gif)
建模可以帮助指出性能
![](/icons/62794de.gif)
瓶颈所在
![](/icons/62794dou.gif)
以及路由表和配置中
![](/icons/62794de.gif)
![](/icons/62794cuowu.gif)
![](/icons/62794dou2.gif)
此外
![](/icons/62794dou.gif)
在测试中获取
![](/icons/62794de.gif)
应用
![](/icons/62794chengxu.gif)
事务物证可以输入到这种模型中
![](/icons/62794dou.gif)
用来识别和分离应用
![](/icons/62794chengxu.gif)
![](/icons/62794de.gif)
"chattiness" 和基础设施中
![](/icons/62794de.gif)
潜在问题
![](/icons/62794dou2.gif)
结束语
端到端测试从
![](/icons/62794yi.gif)
个概括
![](/icons/62794de.gif)
质量角度对计算环境进行测试和分析
![](/icons/62794dou2.gif)
每
![](/icons/62794yi.gif)
个组件
![](/icons/62794de.gif)
可伸缩性和功能性在开发阶段和前期
![](/icons/62794de.gif)
质量评估中都进行了单个测试和集成测试
![](/icons/62794dou2.gif)
这为开发
![](/icons/62794de.gif)
有效性提供了诊断信息
![](/icons/62794dou.gif)
同时为系统
![](/icons/62794de.gif)
发布提供了高度
![](/icons/62794de.gif)
质量保证
![](/icons/62794dou2.gif)
端到端测试为管理当今架构和分布式计算环境
![](/icons/62794de.gif)
复杂性提供了
![](/icons/62794yi.gif)
个全面而可靠
![](/icons/62794de.gif)
解决方案
![](/icons/62794dou2.gif)
当然
![](/icons/62794dou.gif)
在需要做大量
![](/icons/62794de.gif)
测试和分析时
![](/icons/62794dou.gif)
端到端测试要求有相当
![](/icons/62794de.gif)
专业技术和经验来组织、管理和实战
![](/icons/62794dou2.gif)
但是从商业角度来说
![](/icons/62794dou.gif)
那些应用端到端测试
![](/icons/62794de.gif)
组织能够得到应用软件Software、系统性能和可靠性上
![](/icons/62794de.gif)
高度保证
![](/icons/62794dou2.gif)
最终
![](/icons/62794dou.gif)
这些组织将获得质量
![](/icons/62794de.gif)
提高所带来得种种好处:更好
![](/icons/62794de.gif)
顾客关系
![](/icons/62794dou.gif)
较低
![](/icons/62794de.gif)
运营成本和巨大
![](/icons/62794de.gif)
收入增长
![](/icons/62794dou2.gif)
在过去
![](/icons/62794de.gif)
6年中
![](/icons/62794dou.gif)
RTTS 作为 IBM Rational
![](/icons/62794de.gif)
伙伴的
![](/icons/62794yi.gif)
![](/icons/62794dou.gif)
开发并完善了自己
![](/icons/62794de.gif)
端到端测试思路方法
![](/icons/62794dou.gif)
并和数以百计
![](/icons/62794de.gif)
客户
![](/icons/62794yi.gif)
起努力确保了应用
![](/icons/62794de.gif)
功能性、可靠性、可伸缩性和网络性能
![](/icons/62794dou2.gif)
欢迎访问 RTTS
![](/icons/62794de.gif)
网站WebSite:www.rttsweb.com
![](/icons/62794dou2.gif)
.
延伸阅读
最新评论