Web服务测试与传统软件测试的对比分析及技术介绍

需求:

在淘宝干了这么长时间的高性能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服务测试,传统软件测试,技术介绍,测试实践)