需求:
在淘宝干了这么长时间的高性能web服务器测试及其相关Web服务测试之后,心里总会想,Web服务测试与传统软件测试有什么不同吗?Web测试的难点在哪里呢?对于这些难点有啥解决技术不?在查阅相关资料之后,做个总结吧。
介绍:
Web服务与传统软件的不同点:
1. Web服务的应用环境与其开发环境存在较大的不同:
Web服务的应用环境存在极大的不确定性,如访问的用户类型、并发用户数量、Web服务调用的装载模式和访问方式等;
对传统软件相对来说,其应用环境更可控一些;
2. 自动化测试方法应用程度:
Web服务测试主要基于服务接口进行设计和实现,因此可以更多的采用自动化测试方法;
而传统软件则更加依赖于大量人工干预;
3. 对性能和可扩展性的要求程度:
Web服务测试需要面对大量用户通过不同环境进行访问的场景,因此对性能和可扩展性的要求非常高;
而传统软件,特别是单机版的软件如:Office、Adobe Reader等,对性能的要求就没有那么高了;
4. 不确定及不可见因素的差别:
对于Web服务的发布、展现和绑定都是动态完成的,具有很高的不确定性和不可见性;
而传统软件可以将这些逻辑固定化,降低不少风险;
5. 安全隐患:
对于Web服务来说,每发布一个访问的接口或方法都会提高一份被攻击的机会。特别是对于那些所调用的分散和异构的外部Web服务的安全隐患更大;
而传统软件由于不具备太多的分布访问的特点,可以降低相应的安全隐患;
Web服务测试的主要难点:
由于上文提到的Web服务与传统软件的不同点及现在普遍采用的一些不同于传统软件的Web服务开发方式所印出来的各种测试难题。
如:
对于相对独立的各个环节,如何规范和管理测试过程(如缺陷跟踪过程)?
在多方并行参与的结构下,如何组织测试并统一和度量测试结果?
在分布式的环境中,如何测试远程的服务?
在用户环境不确定的情况下,如何定义并检验服务的质量?
在服务软件演化的过程中,如何进行回归测试?等等。
可将这些问题归结为以下几个方面:
1. Web服务的基本功能测试;
2. Web服务协议的测试;
3. 面向服务体系结构的发布、查找和绑定的能力测试;
4. Web服务的集成能力测试;
5. Web服务的服务质量测试;
6. Web服务的性能与负载测试;
7. Web服务的安全性测试;
解决上述测试难点的一些技术介绍:
想要解决以上的测试问题,需要有相关的技术支持,如:
1. 能够建立Web服务测试过程模型,以便在分布式的环境下,有效地、系统地组织各个相对独立的测试环节;
2. 能够有效验证各种协议及各层之间通信信息的正确性、完整性和一致性;
3. 测试自动化技术,包括基于规格说明的测试用例自动生成技术、测试脚本技术、远程测试执行、分布式环境下测试的调度和规划、测试结果的分析和度量;
4. Web服务用户使用模式的捕捉、分析和预测,这是测试模拟的基础。尤其是对于性能测试,需要模拟典型的用户行为,以及高峰期的用户数、数据量和并发链接数;
5. CASE工具的研发,以支持Web服务测试的管理、自动化、调度和监控;
结论:
Web服务测试之路任重而道远,与大家共勉,一起努力。
OK,Web服务测试与传统软件测试的对比分析及技术介绍介绍完毕,欢迎拍砖。转发请备注转自:100continue.iteye.com。 谢谢各位。
分享到:
相关推荐
传统的软件测试方法在面对Web服务时显得力不从心,因为它们无法直接获取服务的源代码,且服务的动态特性和多方参与行为需要特定的测试策略。 代数规约是一种形式化的规约语言,适用于机器处理,能自动化执行许多...
本文主要研究了 QTP 在 WEB 的回归测试中的应用,通过对 QTP 的自动化功能测试,来提高软件测试的效率和质量。本文还对 QTP 自动化测试和传统的人工测试进行了比较,探讨了自动化测试在软件开发中的重要性。 QTP 是...
云计算技术为软件测试环节提供了一种新型的创新模式,能够通过分布式计算模型进行科学化与实时化的分析和评估。这不仅能够提高软件质量,还能满足市场上对高质量软件的需求,提升生产厂商的市场竞争力。 云计算技术...
软件测试面试题库-高频测试问题大纲 软件测试是指在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。测试的目的就是发现问题,发现至今未发现的问题。检查...
JMeter用于测试Web应用或网络服务的性能,可以通过模拟并发用户的行为来分析性能瓶颈。JMeter可以通过创建用户线程来模拟用户交互,并测试应用服务器、网络或对象对高负载的反应。 在提到的其他技术中,还包含了一...
- 第二章介绍软件测试的基本概念,并分析Web应用程序的特点及测试方法。 - 第三章探讨自动化测试的概念、优势以及工具选择。 - 第四章详细介绍Selenium工具及其在自动化测试中的应用。 - 第五章将介绍如何利用...
### 软件测试中的自动化测试与持续集成 #### 第1章:软件测试与自动化测试概述 ##### 一、什么是软件测试? 软件测试是软件开发过程中一个至关重要的环节,其主要目的是发现并纠正软件中存在的潜在错误和缺陷。...
### 软件测试中的自动化测试与持续集成 #### 第1章 软件测试与自动化测试概述 **什么是软件测试?** 软件测试是软件开发过程中一个至关重要的环节,其主要目的是发现并纠正软件中存在的潜在错误和缺陷。为了确保...
### 软件测试中的自动化测试与持续集成 #### 第1章:软件测试与自动化测试概述 ##### 一、什么是软件测试? 软件测试是软件开发过程中一个至关重要的环节,其主要目的是发现并纠正软件中存在的潜在错误和缺陷。...
文章首先对比了几种常见的嵌入式服务器技术,并分析了嵌入式服务器的基本原理,随后详细介绍了一种全新的基于ARM Linux的嵌入式Web服务器设计。 #### 设计背景 传统的嵌入式系统往往采用特定的应用程序或工具进行...
嵌入式软件测试是针对运行在特定硬件平台上的软件进行的测试,需要考虑硬件限制、实时性、功耗等因素,其测试策略可能与传统软件测试有所不同,例如使用硬件在环(Hardware-in-the-Loop)测试。 “软件测试过程及方法...
在自动化测试框架的研究与开发中,作者们的成果不但为WEB系统稳定性测试提供了新的解决方案,还为软件测试领域提供了一个重要的参考。随着技术的不断进步和软件测试领域的不断发展,自动化测试框架将成为软件测试不...
此外,该研究对于推动软件测试技术的发展、培养具有自动化测试技能的人才也具有重要意义。 #### 二、自动化测试工具概述 - **自动化测试工具特征**: - **脚本编写**:支持用户自定义脚本,以模拟用户的交互行为...
全国计算机等级考试中的软件测试工程师是一项重要的技术认证,旨在评估考生对于软件测试理论和实践的理解。以下是一些相关的知识点: 1. **软件质量属性**:软件质量属性包括功能性、可维护性、性能和可移植性等。...