服务器端测试模式总结

简介:

服务器端测试模式总结

  • 最近这两星期,我一直在研究关于服务器端功能测试的方案,现在正式总结一下:>
  • 本文分为两部分,第一部分是“服务端测试的方向”,第二部分是“现有的服务器端测试方案”。

服务端测试的方向

  • 先看下图:
  • 上图描述了几个问题:
    1. 可以在服务端进行的测试类型,以及它们之间的层次关系

    2. 客户,产品,测试,代码之间的关系

测试类型(5类)

  1. Function Test:功能测试,也叫验收测试。模拟用户操作的基本功能测试,以保证产品的基本功能。
  2. PerformanceTest:性能测试。这是服务端测试中很重要的一环。首先,服务端的很多BUG其实都是在大压力下才出现的,此外,性能测试能为服务器集群,部署提供参考性数据。

  3. Stability Test:稳定性测试。在长时间运行中,测试服务端的稳定性。
    • 以上3种A类测试,绝大多情况下需要完整产品才能进行的测试。
  4. Module Test:模块测试。这里根据模块的集成度,又可以分为两类:单一模块的模块测试,多模块的模块集成测试。
  5. Unit Test:单元测试。这是粒度最小的测试,针对每个函数进行。
    • 以上2种B类测试,只需要相关模块即可展开测试,不一定需要完整产品。
  • 测试类型特性分析

    • 这里我从测试的粒度展开说一下,不同的测试粒度,测试的效果可能会有很大差距。
      1. A类测试,测试粒度较大,这样的测试会较粗的(这仅仅是相对B类测试而言的),但上面说到,绝大多情况下需要完整产品才能进行的测试,这类型的测试往往贴近实际,所以发现的问题比较基础但却最为重要。
      2. B类测试,测试粒度较小,这样的测试是比较细的,很容易发现很多内在的,复杂的,在表面不容易发现的高质量BUG。由于模块的功能单一,所以开展起来也比较简单,而且不用顾及UI,初始化环境等问题(在模块和单元测试中,可以用MOCK方式完全模拟外部环境),但B类测试有个致命的问题,就是它不能说明现在产品的具体质量到底如何(注意是产品的具体质量,不是模块质量),B类测试只是针对各个模块/集成几个模块进行的测试,到底效果如何,是很难判定的,所以 才会出现代码覆盖率这个概念,以量化的方式评定效果。但是当模块集成为产品后,到底质量如何,基本功能是否能用,模块和模块/模块和UI之间能否正常工 作,这就不得而知了(特别如果在模块测试中使用了MOCK模拟外部环境后,此类隐患更加明显),所以在模块测试完毕后,都必须再对产品做功能测试,以确保各部分串跑成功。

测试模式(2种)

  • 对产品的测试模式基本上可以分为两种(见上图的箭头),一种是从上往下的X测试模式(红色箭头),一种是从下往上的Y测试模式(蓝色箭头)。
    • Y测试模式是一种从下往上的测试模式,先从单元测试和模块测试入手,一步步往上,最后进行功能测试,我觉得以下情况非常适合对产品使用Y测试模式:

      1. 人手是足够的。因为Unit Test和Module Test是非常消耗资源的测试。
      2. 项目正处于设计/开发阶段。因为产品还没成型,所以也只能先从模块下手,当然如果可以实现测试驱动开发那是最好的。
    • 采用Y测试模式有个明显好处是:它可以从本质上提高产品的质量,因为越往下的测试类型越和代码相关,先进行单元和模块测试有利于提高开发的代码质量和软件架构,好的代码和软件设计是高质量产品的基础,所以说Y测试模式有利于从本质上提高产品质量。
    • X测试模式和Y测试模式相反,它从上往下的测试模式,先从总体的功能测试入手,一步步深入,最后进行模块/单元测试。我觉得以下情适合对产品使用X测试模式(使用情况也恰恰和Y测试模式的使用情况相反):

      1. 在人手紧缺的情况下
      2. 项目已经开发完毕/差不多完毕
    • X测试模式它先是进行功能测试,在保证了基础功能正常的情况下再进行深入测试。所以在资源(人手,时间...)有限的情况下可以最大限度地保证产品功能的稳定,这也是它优点。
  • 说了这么多,大家应该有感觉,上图中,越往上的测试类型,越贴近用户,也越重要(这里重要是相对而言的,并不是说单元测试不重要),而越往下的测试类型,越贴近代码。各位可以根据产品的特点,选择适合自己的测试方案。

  • 我对小公司的开展测试的建议是:采用X测试模式,在保证基础功能的基础上,再做打算。

现有的服务器端测试方案

  1. 针对Function Test(功能测试)的测试方案:
    1. 使用Web测试工具Selenium编写自动化测试脚本,进行服务端进行简单的功能测试。
      • Selenium是Web测试利器,支持C#,JAVA,Python在内的多种语言编写测试案例,Selenium通过内嵌入JavaScript控制浏览器的动作,实现模拟真人的操作。参考资料:http://seleniumhq.org/

    2. QTP的开源框架Saffron4Web。
  2. 针对Performance Test(性能测试)的测试方案:LoadRunner就是一个很好的选择。
  3. 针对Module Test(模块测试)的测试方案:对于Module Test,我的想法的使用现有的框架编写测试案例,用Groboutils+Cactus+(JMock)搭建起模块测试的基本运行环境。

     转载请说明出处,谢谢![hyddd(http://www.cnblogs.com/hyddd/)]


本文转自hyddd博客园博客,原文链接:http://www.cnblogs.com/hyddd/archive/2009/05/13/1456271.html,如需转载请自行联系原作者。


目录
相关文章
|
3月前
|
运维 Prometheus 监控
如何在测试环境中保持操作系统、浏览器版本和服务器配置的稳定性和一致性?
如何在测试环境中保持操作系统、浏览器版本和服务器配置的稳定性和一致性?
|
3月前
|
缓存 Ubuntu Linux
Linux环境下测试服务器的DDR5内存性能
通过使用 `memtester`和 `sysbench`等工具,可以有效地测试Linux环境下服务器的DDR5内存性能。这些工具不仅可以评估内存的读写速度,还可以检测内存中的潜在问题,帮助确保系统的稳定性和性能。通过合理配置和使用这些工具,系统管理员可以深入了解服务器内存的性能状况,为系统优化提供数据支持。
107 4
|
4月前
|
存储 监控 网络协议
服务器压力测试是一种评估系统在极端条件下的表现和稳定性的技术
【10月更文挑战第11天】服务器压力测试是一种评估系统在极端条件下的表现和稳定性的技术
228 32
|
4月前
|
缓存 监控 测试技术
服务器压力测试
【10月更文挑战第11天】服务器压力测试
144 31
|
4月前
|
消息中间件 分布式计算 监控
大数据-78 Kafka 集群模式 集群的应用场景与Kafka集群的搭建 三台云服务器
大数据-78 Kafka 集群模式 集群的应用场景与Kafka集群的搭建 三台云服务器
146 6
|
4月前
|
SQL 分布式计算 NoSQL
大数据-170 Elasticsearch 云服务器三节点集群搭建 测试运行
大数据-170 Elasticsearch 云服务器三节点集群搭建 测试运行
83 4
|
4月前
|
分布式计算 Hadoop Shell
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
115 4
|
4月前
|
缓存 NoSQL Ubuntu
大数据-39 Redis 高并发分布式缓存 Ubuntu源码编译安装 云服务器 启动并测试 redis-server redis-cli
大数据-39 Redis 高并发分布式缓存 Ubuntu源码编译安装 云服务器 启动并测试 redis-server redis-cli
80 3
|
4月前
|
分布式计算 监控 Hadoop
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
Hadoop-29 ZooKeeper集群 Watcher机制 工作原理 与 ZK基本命令 测试集群效果 3台公网云服务器
73 1
|
4月前
|
存储 数据采集 分布式计算
Hadoop-17 Flume 介绍与环境配置 实机云服务器测试 分布式日志信息收集 海量数据 实时采集引擎 Source Channel Sink 串行复制负载均衡
Hadoop-17 Flume 介绍与环境配置 实机云服务器测试 分布式日志信息收集 海量数据 实时采集引擎 Source Channel Sink 串行复制负载均衡
82 1