一个项目自动化测试实践.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一个项目自动化测试实践.doc

安博测试空间技术中心/ 地址:北京市海淀区学院路40号大唐电信测试空间楼 联系电话:01062303260一个项目的自动化测试实践 项目上线,有时间总结一下当前的项目,对自己而言,一直是一个学习的过程。本篇总结我们的测试实践。本文分5部分,分别是:项目背景、系统架构与模块划分、我们的测试实践、自动化测试在项目中的价值与对自动化测试的进一步思考。 一、项目背景 所有对项目的介绍一定是从客户开始。 客户:我们的客户是一家全球领先的时尚内容提供商,通过遍布全球的员工,客户每天获取大量关于时装发布、产品设计、街边流行、城市热点等信息,这些信息的绝大部分以图片的形式上传到公司服务器,然后由专职编辑对这些图片进行整理和归类(打标签),最后再由设计人员根据这些信息书写分析报表。 关键内容:分类细致的海量高清图片和具有前瞻性的分析报表。 商业模式:网站,行业内用户订阅-付费。 客户面临的问题:同质化竞争、客户流失。 新系统的关键词:CMS、更精确的内容分类、更好的全文检索、更好的用户体验(更有表现力的内容展现)、更快的内容发布。 二、系统架构与模块划分 1、REST的架构风格 系统采用了Sling作为WEB框架,JCR作为了底层内容存储框架。 系统的特点: URI唯一标识资源 通过URI能够直接映射到JCR节点,例如http://localhost:80/content/section/news.html能够映射到JCR里的/content/section/news节点 GET/POST/DELETE标准方法对资源进行操作 支持标准方法对资源的直接操作 资源的多重表述 同一资源可以存在多种表述形式,例如http://localhost:80/content/section/news.html展现网页, http://localhost:80/content/section/news.json展现资源信息的JSON描述, http://localhost:80/content/section/news.pdf展现网页的PDF。 服务器端的无状态 通过JS获取当前用户信息并缓存在客户端。 2、系统分层 系统分为四层:JS、Servlet、Domain Model和JCR。 因为JCR提供了一套节点模型,所以Domain Model是在节点模型上的行为增强,例如所有对图片节点的操作我们封装在Asset领域模型里。 3、程序划分 程序分为两个大的模块:Migration和Bundles。为什么叫Bundles?因为Sling使用了OSGI框架Felix。 Migration负责导入客户的遗留数据到新系统。之前客户的CMS运行已有10多年的时间,积累有大量数据。主要是各种类型的报表和图片。 Bundles实现系统功能。主要包括了定义报表模板、定义报表各种所见即所得的展现组件、实现对图片的管理、搜索(包括基于图片的可视化搜索)和其他七七八八。 三、测试实践 1、Migration的测试 ? 自动化测试 对Migration,我们采用了TDD的方式。 输入是客户实际提供的xml文件,输出是JCR里的节点。测试环境的搭建主要是在本地建立起Jackrabbit实例。我们的工作方式是这样:每天早上领到一张migration故事卡,然后先写一个xml到jcr节点的集成测试描述出该类型报表的功能需求,接下来就是让这个测试通过。经过开始阶段的熟悉过程,我们的速度保持在一对Pair一天一种报表类型的导入。 ???手工测试 将xml文件内容正常解析并导入JCR只是第一步,第二步我们需要在Bundles里为该类型的报表编写模板使之正常展现。由于涉及到报表样式,这个测试我们采用手工测试,这个工作也是QA工作的重要一部分。 在最开始的开发中,我们没有导入所有报表数据进行测试。这带来了问题,由于客户遗留数据跨越10多年,各种数据形式都可能存在(特别是04年以前数据,给UI带来了很大挑战),而最开始的开发中,我们只是使用了部分数据(09、10年数据)进行测试,这个导致了建立UAT环境时程序的很多返工以及QA的测试压力。 2、Bundles的测试 自动化测试 对领域模型,我们采用了TDD的方式进行单元测试;在本地Jackrabbit实例里建立数据,领域模型封装数据测试行为。 对servlet,我们采用了TDD的方式进行集成测试(同时测试了servlet和领域模型),在测试中对request和response进行mock; 对JS,我们使用数据驱动的selenium功能测试进行覆盖。 我们最后的自动化测试结构: 手工测试 手工测试内容主要是功能测试。 自动化测试价值低的部分我们采用手工测试,这部分内容包括报表模板,相

文档评论(0)

dmz158 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档