Windows软件测试探秘
2013-1
电子工业出版社
王磊等
《Windows软件测试探秘》是百度质量部几位测试工程师以实际项目为依据,结合技术改进,讲解在大型公司中测试人员工作的主要内容,让读者从中了解具体测试工作的实际情况,从中受到启发,为自己的工作带来变化。就Windows应用程序测试而言,除了阐述传统测试领域中的自动化测试、性能测试、稳定性测试外,还深入讲述了不同用户环境测试的方方面面:诸如兼容性测试、产品评测,以及用户界面功能测试的设计和执行方法。使用的案例介绍都来源于实际项目,适合于从事Windows客户端测试的同行及即将进入测试行业的大中专院校的毕业生阅读。
王磊(大王),高级测试架构师,参与众多百度产品的测试工作,曾负责过百度新闻、百度空间、百度视频等产品的测试工作,后组建通用组件测试组和基础架构测试部;分别负责移动互联网测试及PC客户端测试的技术工作,现主要负责百度测试基础架构建设。 韩静,高级项目经理,参与和负责过即时通信、输入法、浏览器、音视频等多款装机必备软件的测试和管理工作,有着丰富的客户端软件测试和项目管理经验。
上篇 技术篇 第1章 测试环境管理 1.1 问题的产生 1.1.1 客户端测试环境的概念 1.1.2 客户端测试环境管理需求 1.2 如何设计解决问题 1.2.1 环境如何自动化快照备份管理 1.2.2 应用软件如何自动化部署 1.2.3 环境资源池系统管理 1.3 实例展示 1.3.1 UI功能展示 1.3.2 系统应用场景 1.3.3 项目应用效果 第2章 测试数据中心 2.1 为何要引入数据中心 2.1.1 概述 2.1.2 需求来源 2.1.3 功能分析 2.2 数据中心设计和实现 2.2.1 整体架构 2.2.2 数据存储设计和实现 2.2.3 测试辅助设计和实现 2.2.4 其他功能设计和实现 第3章 自动化测试 3.1 概述 3.1.1 什么是自动化测试 3.1.2 系统级自动化测试模型 3.2 基础库设计和实现 3.2.1 基础库设计原理 3.2.2 基于Win 32句柄 3.2.3 虚拟对象 3.2.4 基于MSAA/UIA 3.2.5 后门&Proxy模式 3.3 用例格式和开发模式 3.3.1 用例格式 3.3.2 基于脚本/代码的用例 3.3.3 开发模式 3.4 项目实例 3.4.1 基于虚拟控件的即时通信类产品系统级自动化 3.4.2 基于Proxy的播放器类产品系统级自动化 3.4.3 基于Proxy的浏览器类产品模块级API自动化 第4章 性能测试 4.1 性能指标 4.1.1 业务指标 4.1.2 系统指标 4.2 测试环境 4.3 测试方法及工具 4.3.1 业务指标 4.3.2 系统指标 4.4 测试场景与用例设计 4.4.1 普遍性 4.4.2 单一性 4.4.3 重复性 4.5 项目举例 4.5.1 场景与用例设计 4.5.2 测试执行 第5章 实网测试 5.1 为何要引入实网测试 5.1.1 实网测试概念 5.1.2 实网测试形式 5.1.3 实网测试关键因素 5.1.4 实网测试自动化系统解决方案 5.2 实网测试自动化系统设计实现 5.2.1 系统需求分析 5.2.2 系统整体设计 5.2.3 实网测试客户端 5.2.4 实网测试服务器 5.2.5 实网测试管理Web 5.3 实例展示 5.3.1 实网测试系统实例 5.3.2 实网测试系统应用场景 5.3.3 实网测试收益分析 第6章 产品评测 6.1 评测的含义 6.1.1 评测概述 6.1.2 评测体系 6.1.3 评测作用 6.2 评测方案的产生 6.2.1 基本方法 6.2.2 输入法类产品实例 6.3 如何设计评测工具 6.3.1 评测工具需求分析 6.3.2 评测工具架构设计 6.3.3 评测数据生成接口 6.3.4 评测结果分析接口 6.3.5 评测工具/平台的处理流程 下篇 工程篇 第7章 敏捷及改变 7.1 什么是敏捷 7.2 为何走上敏捷之路 7.3 敏捷项目管理 7.3.1 敏捷项目管理之团队建设 7.3.2 敏捷项目管理之迭代规划 7.3.3 敏捷项目管理之需求管理 7.3.4 敏捷项目管理之计划跟踪 7.3.5 敏捷项目管理之信息传递 第8章 持续集成(Continuous integration) 8.1 持续集成组成部分 8.1.1 持续集成简介 8.1.2 持续集成基本组成 8.1.3 配置管理171 8.1.4 构建 8.1.5 测试 8.1.6 部署发布 8.2 持续集成的入门条件 8.3 支撑平台 8.4 Quick构建 8.1.1 编译构建 8.1.2 Quick构建目的 8.1.3 Quick构建承载的测试类型 8.5 Slow构建 8.6 Daily构建 8.7 自动化部署 8.7.1 传统上线方式 8.7.2 自动化部署 第9章 构建过程优化 9.1 缩短测试执行时间 9.1.1 优化Case 9.1.2 分布式执行 9.2 本地构建 9.2.1 为何需要本地构建 9.2.2 测试用例的选取 9.2.3 为何有了Local Build,依然需要平台上的构建 9.2.4 本地构建实施方案 9.2.5 Loca Build实际应用情况 9.3 提高自动化用例执行的稳定性 9.3.1 引起自动化用例执行不稳定的因素 9.3.2 提高用例执行稳定性的方法 第10章 快速发布 10.1 如何去拉分支 10.1.1 冲突处理 10.1.2 经常同步 10.1.3 拉分支的标准 10.2 分支如何测试 10.2.1 系统级测试 10.2.2 验收测试 10.3 发布的准备工作 10.3.1 逐级放量 10.3.2 放量指标 10.3.3 上线步骤测试 10.3.4 自动化上线 10.4 发布之后 10.4.1 下一个迭代 10.4.2 迭代后续
版权页: 插图: 同样地,对于MSAA/UIA的自动化测试技术,固然是一种更加系统化的自动化测试解决方案,但是在一些需要快速迭代的项目中,往往需要开发投入过大的成本。同时对于小的互联网公司来说,没有专门投入到自动化测试的资源和成本,因此往往MSAA/UIA在非大力推崇UI自动化测试的环境中很难得到广泛的支持,而且测试人员进行自动化工作的进度受到开发人员的巨大影响,往往进度缓慢。 在这样的背景下,笔者在实际的项目实施过程中基于MSAA/UIA的思想及实际投入成本和开发的限制,提出了一种后门/Proxy的实现机制,但是从技术实现原理来看,也没有走出3.2.1节中介绍的基础库设计原理,本质上就是通过类似于共享内存、消息等机制实现了更加简易的自动化实现技术,一方面提高了虚拟控件模式的稳定性、系统化;另一方面,又最大限度地降低了对于产品开发人员的限制。 2.后门方式 (1)实现原理 概括来说包括两个方面:自定义消息和共享内存。其中消息在访问控制上的便捷是优于共享内存的方式,但是在数据量的传输方面,共享内存具备消息所不具备的大数据量信息。在将两者结合后,可以实现被测程序和测试程序之间的通信。 其中,自定义消息就是测试程序通知被测程序的一种方式,可以用来驱动被测程序的执行,或者通知被测程序将特定的UI信息更新到共享内存中。而双方之间所需要协商的就是用来通信的协议格式,在具体实践中包含两类比较常用的方式:结构体及XML格式。对于结构体来说,可以非常方便地进行数据的访问,对于XML来说,则具备更加灵活的特点,可以根据产品需要暴露信息的特点来选择采用何种通信方式及协议格式。
《Windows软件测试探秘》是一本实用的书。作者王磊、韩静等站在Windows客户端测试这个平台上,把自动化测试、性能测试、产品评测、测试数据分析与处理、软件开发方法等贯穿起来,让读者朋友快速掌握实际测试工作中所需要的诸多方面的知识。