如何做升级测试

升级测试是软件测试中非常重要的一环,需要考虑的方面有很多,比如用户数据是否被完整保存,升级失败如何恢复等都对测试人员制定测试策略和编写测试用例带来了一定的挑战。这里我根据最近做的项目做了一个Mindmap来简单的介绍一下做测试策略的思路,供大家参考(当然不同产品会有不同的升级测试策略,不应一概而论)。

首先简单的介绍一下产品背景:

  1. 传统的业务管理系统
  2. 环境部署比较复杂(需要的虚机和第三方软件依赖比较多)
  3. 用户数据量大(DB)
  4. 用户设置比较多(权限等)
  5. 对DownTime要求比较高

以下是mindmap:

升级前准备

1. 模拟用户场景生成测试数据

  在这个阶段需要对用户如何使用系统进行调研和分析,列出常用的用户操作,生成尽可能全的用户数据覆盖(可以分优先级)。另外如果能够获取用户数据(Database备份),最好考虑做一遍用用户数据进行的升级测试。

2. 模拟用户环境配置

  这部分也是需要获取客户配置信息,尽可能用测试环境模拟客户真实环境。

3. 备份工作

  在准备好了客户数据以及环境之后,需要尽可能多的备份原始数据,包括数据库备份,配置文件备份,产品文件备份等。如果有条件可以创建环境的镜像。

升级过程

1. 部署模式

  对于部署模式我们需要考虑是All in One还是Distributed模式。对于手机的app就相当于是用simulator还是真机的情况。

2. 版本检查

  这个也是比较重要的,对于哪些版本能够做升级需要明确定义。

3. 前置条件检查

  对于产品依赖的第三方软件的检查也是必须的。首先要确定产品新版本需要的第三方软件是否已安装?版本对不对?OS的版本对不对?是否需要升级等进行严格检查,预防安装之后的不可逆性。

4. 安装参数的检查与更新

  很多大型的软件在安装的过程中都有参数配置,这个阶段检查的包括之前版本的默认参数,新版本对之前版本默认参数值的修改以及新版本新添加的参数值等。

5. 备份策略

  一个好的升级程序一定要有一个好的备份机制,防止升级过程中出错造成的不可逆性。当然,备份的文件要根据产品自身的特性来决定,而不是说每个文件都需要备份,因为当用户文件非常大的时候,全部备份会消耗太多的时间。我们推荐的策略是备份用户最关心得文件,并且做到易恢复。

6. 失败重试机制

  升级过程中往往容易出现失败的情况,当解决了失败的问题之后,是否还能够继续升级是很重要的检查点。

7. 新旧模块

  安装完成之后,需要验证新版本添加的模块是否安装成功和之前版本旧模块是否成功删除。

8. 用户数据的保留与更新

  这部分一般包括两个模块:数据库和用户配置信息

  对于数据库的比对可以有:

    a. 升级后新版本和之前版本数据库中用户数据的比较(检查用户数据是否保留)

    b. 升级后新版本和全新安装新版本进行比较(检查数据库结构是否一致)

    c. 升级后新版本和全新安装新版本数据库默认数据进行比较(验证默认数据的准确性)

  对于配置文件的比较:

    a. 升级后新版本和之前版本配置文件进行比较(保证用户在之前版本中的配置保留)

    b. 升级后新版本和全新安装新版本配置进行比较(保证配置结构和数据正确)

9. 产品文件更新

  安装完成之后要保证产品的文件版本得到更新,需要删除和添加的文件也都正确

10. 日志管理

  日志也是比较重要的一块,日志的详细程度可以根据产品来定,目的是升级失败后能够很好很快的定位问题

非功能性测试

  是否需要非功能性测试需要根据产品自身的特点来定,一般需要在升级时间和系统资源占用方面来考虑

消极测试

  这部分就是用来识别和记录异常情况下升级程序的处理能力,例如:磁盘快满的情况,内存低,升级过程中的打断等等。

回归测试

  回归测试是升级测试后产品功能的验证,需要根据产品模块的增删改进行回归,以保证升级之后产品功能正常。

OK,就简单介绍这么多吧,希望能对大家的日常工作有所帮助,当然最希望的还是大家能够提出改进意见,thanks.

  

时间: 2024-07-29 20:48:28

如何做升级测试的相关文章

在linux中给你的应用做压力测试

在linux中给你的应用做压力测试 作者: 立地 邮箱: [email protected] QQ: 511363759 一.webbench 1.在Ubuntu中安装webbench —支持get,head等请求,但不支持post请求 wget http://blog.zyan.cc/soft/linux/webbench/webbench-1.5.tar.gz tar zxvf webbench-1.5.tar.gz cd webbench-1.5 make && make insta

使用uiautomator做UI测试

转载~~~~~~~~~~~~~~~~~~~~~~~~ 若有侵权,请及时联系本博主,博主将第一时间撤销 在Android 4.1发布的时候包含了一种新的测试工具–uiautomator,uiautomator是用来做UI测试的.也就是普通的手工测试,点击每个控件元素 看看输出的结果是否符合预期.比如 登陆界面 分别输入正确和错误的用户名密码然后点击登陆按钮看看是否能否登陆以及是否有错误提示等. 功能性或者黑盒UI测试不需要测试人员了解程序如何实现的,只需要验证各种操作的结果是否符合预期即可.这样的

如何用Jmeter做压力测试 --- 转

Jmeter是一个性能测试工具,同loadrunner类似,他功能较多,我们常用的功能是用jmeter模拟多浏览器对网站做压力测试.    下载jmeter地址 :http://jakarta.apache.org/我们一般的网站,在进入业务功能前先需登录,然后才能访问业务功能.下面介绍如何用jmeter登录系统再对主业务做压力测试.1 运行jmeter    2 左边树将出现测试计划.工作台两根节点.3 选择测试计划,按右键->添加->threads(users)线程组    线程组能设置以

没做过测试,如何入门?

没有做过测试的人怎么入门呢?1.选择一个测试领域的切入点:互联网,移动互联网,医疗软件,ERP测试?2.了解测试是什么,要做什么.推荐3本书,<测试之美>,<微软测试之道>, <Google软件测试之道>3.阅读<Rework>和<高效能人士的七个习惯>4.了解专业测试知识,比如常用工具和方法等. 入门不仅仅是知识面,认知度的转变,更多的是选择正确的方向.

使用Application Center Test (ACT)来做压力测试 【转】

在我们完成了基于SPS2003的开发,实现了我们的具体应用以后,我们是不是就可以直接请用户来使用了呢?如果我这么做,那么有经验的开发人员一定会对此嗤之以鼻:居然连压力测试也不做!真是不想活了…… 呵呵,是啊.开发环境往往只考虑功能,到了具体环境中,就需要考虑有大量的用户来访问的时候,很多功能会不会出错?性能会怎么样呢?……我们这里就简单看看,怎么来做压力测试. 相信作压力测试肯定有很多工具,而我们一般使用的,现在很多是Application Center Test (ACT).这个东东是VS.N

通过命令行对CPU负载做压力测试

无意间在51首页上看到一篇关于"通过命令行制造CPU负载或压力"的文章,感觉不错,先记录下来,为将来的使用做好笔记记录! 很简单,就一个命令: # cat /dev/urandom | md5sum 然后通过top观察,cpu的值果然很高,说明测试成功! 有图有真相^ _ ^ 通过命令行对CPU负载做压力测试

loadrunner之做压力测试要做的准备

前提B/S架构 1.要有个备库和主库保存一致 到时候做压力测试的时候,要断开主库连接到备库.进行测试.以免主库出现垃圾数据.2.节点 判断单节点能承受多大的压力,如200万的用户账号,10万的在线用户,5000的并发用户,50台负载均衡应用服务器,一台数据库服务器,一台手机端服务器,那么单节点最少要承受多大的压力?5000/50=100并发用户 结论:在这样的条件下,单节点要承受100并发用户.这个用户数据有实施提供.3.IE浏览器的兼容性 在loadrunner录制脚本的时候,要求不能出现IE

[zhuan]使用uiautomator做UI测试

http://blog.chengyunfeng.com/?p=504 在Android 4.1发布的时候包含了一种新的测试工具–uiautomator,uiautomator是用来做UI测试的.也就是普通的手工测试,点击每个控件元素 看看输出的结果是否符合预期.比如 登陆界面 分别输入正确和错误的用户名密码然后点击登陆按钮看看是否能否登陆以及是否有错误提示等. 功能性或者黑盒UI测试不需要测试人员了解程序如何实现的,只需要验证各种操作的结果是否符合预期即可.这样的测试可以分离团队的开发人员和测

(转)学习使用Jmeter做压力测试(三)--数据库测试

数据库测试 JMeter可以做为Web服务器与浏览器之间的代理网关,以捕获浏览器的请求和Web服务器的响应,这样就可很容易的生成性能测试脚本. 根据脚本,JMeter可通过线程组来模拟真实用户对Web服务器做压力测试.本文描述使用JMeter进行数据库测试的过程.创建测试计划,模拟 并发用户发送SQL请求到数据库.测试数据库. 性能测试的目标是找到系统的性能瓶颈.本文将通过构造测试场景,完成对数据库的测试. 场景: 1.单用户: a.SQL语句优化:    b.数据库约束检查:   c.分页查询