首页 > 软件测试

《云服务测试》读书笔记

作者: 顾翔

1、什么是云计算

  1.1 前题

  互联网

  虚拟化技术

  面向服务架构体系SOA

  网格计算

  付费模型:按使用量付费

  1.2 云计算定义

  NlST 美国国家标准与技术研究院

  1.2.1 云计算定义

  1.2.1 5个特征 按需的自助服务

  广泛的网络访问

  资源池

  快速的弹性

  可度量的服务

  1.2.2 3个服务模型

  架构即服务IaaS

  平台即服务PaaS

  软件即服务SaaS

  1.2.3 4个实施模型

  私有云

  社区云

  公有云

  混合云

  2、测试经理角色

  2.1 一般任务

  2.1.1 风险分析

  2.1.2 获取供应商信息与供应商达成一致

  2.1.3 端到端的测试

  a) 端到端的测试范围大于系统集成

  b) 端到端测试关注点:IT环境,系统场景,lT环境下系统与服务详细功能

  c) 创建端到端测试用例

  d) 执行端到端测试用例

  e) 自动化端到端的测试执行

  f) 端到端的回归测试

  2.1.4 给出建议

  2.2 选型,实施,生产阶段任务

  2.2.1 选型阶段

  2.2.2 实施阶段

  2.2.3 生产阶段

  2.3 借助云帮助测试

  2.3.1 使用TOGA将测试外包给云计算

  启动

  准备

  转移

  实施

2.3.2 众包测试

  2.3.3 云端的测试环境

  创建虚拟环境的快造,

  创建典型的测试环境,

  为移动资源执行可移置性测试

  2.3.4 生成负载

  1)生成重负载

  2)来自世界各地的负载

  3、从风险到测试

  3.1 性能风险

  与其他设备公用,某地点性能差,其他客户影响,扩展性不好,供应商改变服务,无法执行性能测试。

  3.2 安全风险

  工作新世界要求BYOD,携带自己的设备工作,供应商访问数据,数据丢失,权限模型不完善,供应商出现事估导致数据无法访问,数据被意外删除。

  3.3 可用性,可持续性风险

  某服务不可用,事故可多快速度恢复,有无替代品,某服务受到拒绝服务DDoS相关的其他产品是否会受影响,服务供应商破产是否有备份,数据丢失在某处。

  3.4 功能性风险

  要求兼容不同硬件及软件平台供应商作不到。供应商部署新版本没有通知。迁移操作(迁移回来,迁移到其他云服务商。请求,获取,支付附加服务容量不够,导致业务中断。

  3.5 可维护性风险

  服务供应商对服务执行各种服务的维护,而服务使用者对维护毫无控制权。使用服务遇到问题找谁?如何提交记录问题?

  3.6 法律和法规风险

  本地和全球的隐私保护方面的法律法规。法律法规自身风险,公司把数据放在A国,根据A国法律可拿到公司的数据。

  3.7 供应商和外包风险

  风险主要与供应商依赖有关。合同没有覆盖部分不确定。对性能,安全性等术语理解不同。业务冲突下如何供应商处理?多个供应商出现推卸责任。

  4、测试方法

  4.1 选型阶段的测试

  往往会考虑两三家服务供应商,仅依赖一家供应商,即厂商锁定(VendorLock-in)

  4.1.1 决定选型需要考虑的云计算相关特证

  见测试风险。

  4.1.2 确定选择标准的完整性与可控性

  SMART原则:具体的,可测量的,一致的,切合实际的,有时间约束的。

  服务的选择标准,如何将业务需求转换为需求和用于lT解决方案(我们的云解决方案)的验收标准。

  供应商的标准,云认证专家Cloud Certified Professionals。

  4.1.3 评估服务和供应商

  检查规范与条款

  寻求参考和认证

  NlST 2012年7月颁布3组标准:互通性,可移植性(被遗忘的权力,数字迁移后真被删除了吗),安全性

  执行审计和审查

  概念验证:执行一个概念验证POC,临时使用服务,模拟生产环境。

  模拟端到端业务流程:模拟引入的新服务。

  4.1.4 给出建议

  4.2 性能测试

  新的性能测试:弹性测试

  压力测试不可影响该服务其他客户

  首先确保基础设施上的性能,为转移到云端作参考。SaaS性能关健主要于服务提供商。

4.2.1 负载测试

  像用户一样操作,确定是否有足够响应速度及否定发发生错误。不同时间,负载测试结果不同。方法:尝试从供应商获取其他用户的负载结果。及在规定的时间内执行,比如8:30,但结果可能也不同

  4.2.2 压力测试

  找出超出服务峰值时被测系统行为。注意会影响相关服务其他客户,确保使用该服务的使用条款。变种,测试供应商承诺负载水平边缘的行为。

  4.2.3 耐力/容量测试

  短时间内加入更多负载,以更快获得结果。要注意超出官方允许的负载。供应商自行测试服务稳定性是个明智行为。

  4.2.4 弹性测试

  目标确定服务的性能是否满足客户的整个负载范围,以及分配服务容量是否与服务负载相称。按使用付费模式往往与服务弹性相关。方法:执行负载测试先超出边界(扩展)再将边界降低到边界下(缩减),全手工完成。发现问题可能:容量扩展不符合需求,容量缩减不符合需求,扩展或缩减中功能发生问题,基于使用付费的信息不符合需要。

  4.2.5 建立测试用例

  性能测试用例基于负载剖面。

  建立运行剖面。使用云意味着选择供应商开发的方案。运行剖面是对系统实践中如何被使用或将要如何被使用的描述。运行剖面由一组操作组成,每个操作产生可能性。运行剖面5步骤:

  a) 确定操作发起者。

  b) 列出操作。

  c) 评审列出的操作。

  d) 确定操作的频度。

  e) 确定每个操作发生的可能性。

  4.2.6 针对特定瓶颈的测试用例

  4.2.7 在测试用例中包含云的特性

  比如,当确定供应商和用户大概物理位置后,可能在性能测试中使用位置信息。

  客户使用的资源(设备):PC,笔记本,智能手机,平板电脑

  使用网络:GPRS,GSM中的EDGE,ADSL,WiFi

  4.2.8 压力测试的测试用例

  确定负载上界,在上界进行边界值测试;没确定上界,可选择远高于峰值负载的负载剖面。

  4.2.9 耐力/容量测试的测试用例

  耐力测试在负载峰值70%作为负载剖面,在一段时间内持续。容量测试设计负载剖面本质上压缩时间,比如每天一次动作,每分钟100次,记住供应商签订合同很重要

  4.2.10 测试弹性的测试用例

  自动/手工发生容量扩大或缩减

  用变化的负载剖面进行负载测试。

  在扩大或缩减的边界进行边界值测试

  对管理流程进行循环测试,包括按使用付费。

  假设使用容量与费用之间有直接关系,目标峰值达到到当前峰值2倍,结果又执行了压力测试。

  4.2.11 设置性能测试

  度量工具,用于确定相应时间。

  负载发生器,用于在服务器上增加负载。

  监视器,用于衡量基础设施的特定要素。如负载是否发生错误信息。

  云服务优势在于它可通过互联网访问,并使用适合互联网的协议。

  4.2.12 代表性的测试环境

  云计算有益特性:可在与生产环境相似环境下测试。但由于环境每天都在变,所以性能测试应加入Cl。有时买双倍服务容量也比用非云搭建类似运行环境强。

  4.3 测试安全性

  lSO27001定义3个维度

  数据保密性与非授权用户能查看到数据风险。谁可访问

  数据的集成性与数据被意外修改或丢失的风险。用户相信的数据正确吗

  数据可用性与数据及服务在需要时不可用风险。用户可随时访问吗

  授权与认证

  软件与硬件质量

  在不同层次上进行加密

  通过欺骗人来获取数据访问权限

  记录所有数据事务及所有获取数据访问权限的尝试

  确定服务器安全级别

  了解分布在全球不同地点服务所在安全性

  服务供应商应提供服务相关数据的安全性


  4.3.1 网络安全性

  对互联网安全性要求不要太高。协议层,SSL TSL等,对WiFi WAP2

  4.3.2 列出供应商安全清单

  检查,服务所在位置的安全。检查供应商如何组织授权与认证过程

  a)认证。

  使用用户名,密码

  使用令牌系统生成接入码

  使用访问卡

  使用生物数据(指纹,视网膜)

  对于云身份即服务lDaaS,DlGlD 由荷兰政府提出及OpenlD都是身份管理例子。基于XML安全断言语言SAML用于交换认证与授权信息

  b)授权

  c)日志文件与审计跟踪记录

  4.3.3 列出客户安全性清单

  客户侧不安全行为

  在计算机中使用记住密码

  不为移动设备加锁

  口令漏洞

  易受社会工程攻击的个人行为

4.3.4 测试加密

  有许多测试工具验证是否加密

  4.3.5 测试认证

  使用功能测试技术,语法测试(合法/非法登陆数据),过程循环测试(发布认证流程),数据循环测试(认证的生命周期),用户不安全行为。混合认证机制更好保护

  4.3.6 测试授权

  用功能性测试方法

  4.3.7 测试面对互联网攻击时的安全稳定性

  目录遍历:尝试读写访问目录之外的目录

  XML外部实体攻击:XML中包括坏数据

  SQL注入:通过操作SQL请求,向系统请求或修改数据

  跨站脚本XSS:在用户不知情的情况下向其他网站发信息

  会话挟持:在会话中跳过验证步骤

  需深入的知识及对测试工具丰富经验

  4.3.8 测试日志文件及跟踪记录

  4.3.9 对及时应用安全性补丁进行测试

  服务侧,客户侧都要测

  4.3.10 执行审计。

  除lSO27001外,还有SAS70

  在云中需关心不同用户数据如何隔离

  4.4 测试可管理性

  可管理性本质:我们如何保持服务和围绕它的过程正常工作。

  可管理性与可维护性非常相关

  可管理性可通过检查表进行测试,静态形式

  是否有可用文档

  是否及时更新文档

  是否将修改好的文档发给正确干系人

  4.4.1 供应商侧的规范

  a) 接口规范

  服务与不运行在云上的系统接口

  服务与服务间接口

  b) 客户资源规范

  c) 平台规范

  d) 基础设施规范

  4.4.2 客户侧规范

  a) 基础设施规范laaS

  b) 系统规范

  c) 架构文档

  d) 业务过程文档

  e) 业务需求

  4.4.3 用户文档

  客户如何配置,使用,维护服务,FAQ,已知错例表,在线课程。

  定期更新平台软件,安装安全?丁,修复bug,会影响其他客户服务。

  4.4.4 测试环境可用性

  a)laaS/PaaS中的测试。开发,测试,验收环境都要从云端获得。

  b) SaaS 用户的测试环境。测试用户的活动不应该影响供应商或其他客户,所以开发,测试,验收在仿服务器上,生产在云上。

  4.4.5 测试文档

  a) 容户测试文档

  b) 供应商测试文档,有理由分享给客户

  4.4.6 事故管理流程

  a) 供应商解决事故情况。服务更新应先发布在测试环境中,没测试环境,不得不在生产环境中测试,服务更新应该包含影响客户的变更信息

  b) 客户解决事故情况

  修改服务配置

  不修改服务本身修改业务过程以解决问题

  c) 事故无法解决的情况

  转向另外服务,发生数据迁移

  4.4.7 变更流程与版本控制

  4.4.8 软件可管理性 PaaS,laa

  4.5 测试可用性/可持续性

  可用性是可持续性前提

  SaaS 服务供应商是黑匣子

  PaaS,laaS客户供应商交在一起

  4.5.1 失效模式影响分析FMEA

  由于代价高,仅对高失败风险业务进FMEA

  找到失效机制

  确定失效原因

  确定失效影响严重性

  设计活动(目的:防止失效,减少发生几率,减少影响),与产品风险分折PRA关注点一致。FMEA是个迭代过程。

  4.5.2 架构作用

  SaaS黑匣子,PaaS,IaaS可画整体结构

  4.5.3 硬件可靠性。

  通过测试监控工具及审查日志

  4.5.4 软件可靠性。

  是持续性重要部分

  4.5.5 承诺和SLAs

  a)承诺,99.99%

  b)SLAs

  平均故障时间MTBF

  平均修复时间MTTR

  c)要点

  可用,不可用定义

  列出所有相关部分

  决定如何处理服务供应商之外的失效

  客户与供应商之间责任边界需明晣

4.5.6 可用性机制影响

  镜像

  4.5.7 因特网与因特网连接

  可能供应商的因特网好于客户因特网连接

  4.5.8 测试失效修复

  SaaS供应商测试失效大多数情况

  PaaS,laaS客户与供应商交互

  a)失效测试用例

  测试到失效用的时间

  结束失效用的时间

  修复可能的破坏所用时间

  要在类似生产环境下测

  b)失效恢复测试检查点

  c)测试管理视角的失效恢复测试

  d)失效恢复过程模拟

  4.5.9 测试在离线状态下工作

  4.6 测试功能

  在功能性方面,获取SaaS服务可类比购买软件包

  服务的软件质量是供应商的责任,他们必须符合确保合适的软件开发过程,以保证客户不会被软件缺陷所困扰。

  4.6.1 服务与业务过程的兼容性

  这个问题与用户验收测试(UAT)的目标类似

  过程循环测试(PCT)

  4.6.2 测试服务质量

  探索性测试是一种有效的方法,作为探索性测试的一部分,测试者需要给予假设和以前的经验持续确定预期结果。

  4.6.3 测试用户有好性

  包括用户文档

  4.6.4 测试与其他系统的接口

  a)接口使用的技术

  b)接口使用的语法

  c)接口的语义

  d)非功能层面

  有许多测试工具可以测试接口

  4.6.5 测试服务配置

  a)通过审查发现

  b)需要有配置专员进行测试

  c)由一组配置专员进行测试

  4.6.6 供应商定制化

  供应商针对所有客户订制服务

  4.6.7 客户定制化

  客户在客户侧进行测试

  4.6.8 测试Web服务

  a)WSDL

  b)工具

  c)测试用例

  4.6.9 多平台测试

  工作在新世界(New World of Work)和BYOD需要多平台测试,据我参加2014 CSQTB会议获知HP已经成功研发了这种测试的测试工具

  a)供应商侧的考虑

  b)客户侧的考虑

  4.6.10测试应用本身,以及使用应用来测试服务

  在移动设备上测试应用:移动设备存储空间小内存更小,且考虑因特网连接实效

  4.6.11 测试离线功能

  4.6.12 回归测试

  建议使用CI

  4.6.13 创建测试依据

  a)过程流

  b)用况

  c)分类树

  d)CRUD

  e)授权表

  f)接口规范(协议)

  4.7 测试迁移

  a) 转移到云中,引用保持原样(IaaS PaaS)

  b) 转移到SaaS

  c) 从一个SaaS转移到另一个SaaS

  d) 从云端迁出

  转移过程经常需要转移数据

  4.7.1 迁移测试策略

  成功迁移描述(略)

  4.7.2 最小化业务中断

  降低风险可以采取模拟迁移

  4.7.3 IaaS和PaaS中正确的数据迁移

  检查比如日期格式是否发生变化"月-日-年"变为"日-月-年"

  4.7.4 SaaS中正确的数据转换

  a) 需要工具来帮助

  b) 转换规则是否正确工作

  c) 对输入数据的转换工作正常吗

  d) 是否有数据丢失

  e) 是否有未完成的事务丢失(迁移过程中正在进行的事务)

  f) 转换工作之后,是否有敏感数据可被访问

  f) 数据迁移是否传输了过多的数据到服务中去

  4.7.5 迁移的性能

  a) 速度

  b) 基础设施容量

  c) 完全压力情况下的稳定性

  转换大量数据的时候,云计算允许用户从云端临时获得处理资源,因此性能不一定是瓶颈

  4.7.6 数据清理

  4.7.7 测试环境迁移

  4.7.8 并行运行于模拟运行

  模拟运行与并行运行都和昂贵,模拟运行需要两个环境,最终用户需要并行使用两套系统

  模拟/并行运行中的一个重要因素是确定切换到服务的标准

  4.8 测试法律法规

  发现法律法规问题不可以修复软件来解决

  4.8.1 法律法规清单

  a) 隐私法律

  《荷兰数据保护法》,《欧洲数据保护条例》,《欧盟个人数据保护指令》,《美国-欧盟安全港》

  b) 数据位置

  云计算数据不是存储在一个地方,而是存放在不同的地方

  c) 附加协议

  d) 其他法律

  e) 其他业务

  f) 冲突的法律与规则

  g) 不清晰的法律与规则

  4.8.2 检查法律法规

  a) 如果风险高,可以执行审计

  b) 当理解的所有风险和可能的瓶颈后,高层管理者部分给予测试经理的建议,决定是否可以再组织中使用服务

  c) 测试与检查数据安全性是检查法律法规的基础工作

 4.9 在生产环境中的测试

  4.9.1变更情况下生产的持续性

  a) 服务的变化

  有通知的更新

  得到关于变更的时候通知

  没有通知

  b) 其他系统的变更

  c) 供应商侧的变更

  d) 业务过程发生变化

  e) 增长:云计算的一个重要优势是其扩展服务容量以满足需求

  f) 连接服务的设备发生变化

  g) 因特网的变化

  4.9.2 度量供应商的承诺

  a) 可用性

  b) 性能

  c) 可扩展性

  d )安全性

  4.9.3 原有选型标准评估

  4.9.4 实践中的注意事项

  a) 端到端的回归测试:建议采用CI

  b) 关键指标的度量方法

软件测试咨询

  

   

投稿关闭窗口打印