《WEB应用测试》笔记(一)
第一章 欢迎进入WEB测试
利用测试不可能发现所有可能存在的问题,但还是需要进行基于风险的测试。
应该优先考虑跟踪错误并评估它们的重要性。
管理层希望开发小组、信息技术小组、测试和质量保证人员提供关于覆盖、尚未修正缺陷的状态的定量数据以及延期修复某些缺陷的潜在影响。
1、各种测试
(1)黑盒测试关注软件的外部属性和行为。这些测试从用户的角度观察软件预期的行为。
(2)白盒测试在了解软件内部结构、实际的逻辑流程和体系结构的基础上在源代码级测试软件。白盒测试从开发者的角度看待测试。
(3)灰盒测试结合了白盒测试和黑盒测试的要素,考虑了用户端、特定的系统知识和操作环境。它在系统组件的协同性环境中评价应用软件的设计。
灰盒测试方法对有效测试WEB应用是完整的,因为Web应用由大量组件组成。这些组件必须在设计系统的环境中测试,以便评价它们的功能和兼容性。
2、灰盒测试
灰盒测试使用推断的或不完整的结构或设计信息来进行黑盒测试。
灰盒测试是在算法、内部状态、体系结构或其它程序行为等高级描述知识的基础上设计的测试。
灰盒测试涉及输入和输出,但是测试人员无法看到的有关代码或程序操作的信息影响着测试设计。
灰盒测试非常适合于Web应用测试,因为它涉及到高层设计、环境和互操作条件。它能发现容易被黑盒分析和白盒分析忽略的问题,特别是端对端的信息流问题、分布式硬/软件配置问题及兼容性问题。在灰盒测试过程中通常能发现与Web系统密切相关的具体环境错误。
3、有效地计划和执行Web应用测试,应具备:
(1)良好的软件测试技能;
(2)使用应用的知识;
(3)Web技术知识;
(4)理解测试类型及其对Web应用的适用性;
(5)熟悉一些Web应用特有的错误类型;
(6)掌握一些有效的工具。
第二章 Web测试和传统测试的比较
1、Web系统可能包含多个物理服务器,每个可以用做一种或多种服务器类型。
比如:一个Web系统可能包括多个Web服务器、应用服务器和数据库服务器(如服务器群,即一组共享工作负荷的相似的服务器)。Web系统可能还包括其它服务器类型,如电子邮件服务器、聊天服务器、电子商务服务器以及用户特征信息(profile)服务器。
2、Web系统体系结构
在最高层,Web系统可能包含各种操作系统、Web服务器、应用服务器、中间件、电子商务服务器、数据库服务器、主要的企业资源规划(ERP)组件、防火墙和浏览器。
Web系统软件的组合可能包含以下几种:
(1)多个操作系统
(2)多个软件包
(3)多个软件组件
(4)多个服务器类型、品牌和模型
(5)多个浏览器品牌和版本
3、服务器端应用
服务器端应用在两个方面不同于客户端应用:
(1)服务器端应用不存在与系统最终用户相交互的用户界面;
客户端通过通信协议、应用编程接口和其它接口标准与服务器端应用进行交互以调用其功能和访问数据。
(2)服务器端应用是自动运行的。
因此,对于测试人员来说,服务器端应用就是一个黑盒子。
一种用来提高错误重现能力的方法是记录事件日志。
应用日志允许我们跟踪由具体应用生成的事件。
4、分布式服务器配置
服务器软件可能分布在若干个物理服务器单元上,使测试更为复杂。
Web应用可以支持的几种可能的服务器配置:
(1)单个单元模型
(2)双单元模型
(3)三单元模型
5、程序错误的传播
Web应用是由先前存在的对象或组件相互结合而构造出来的。因此,新创建的系统不仅继承了原有对象中的性能,也继承了原来对象中已有的错误。
面向对象变成和基于组件的编程的主要优点之一就是复用性。
Web应用由于采用了基于组件的体系结构,Web应用特别容易出现错误共享。
从底层来看,这种问题对测试由两个主要的影响:
(1)已有对象或组件在被其它的应用或对象引用时必须经过了全面测试;
(2)必须进行过全面的回归测试。
6、后端数据库访问
Web系统在的数据经常是分布式的。
在标准的Web应用系统中,通常使用关系型数据库以便对数据的访问和操纵比使用文件系统更高效。
在文件系统中查询时,为获得数据,应用必须确切知道文件的位置及其名称,且在应用层通常还要施加访问安全措施。
数据库以表记录的形式存储数据,借助数据库引擎,应用通过获得记录集来访问数据,无需知道实际的数据文件位置和名称。关系数据库通过数据库名和表名来访问,而且可存放在多个服务器上。采用关系型数据库的Web系统可以在应用服务器级、数据库服务器级、表级和基于用户的优先级上施加安全控制。
7、瘦客户机处理和胖客户机处理
瘦客户和胖客户端应用的测试问题应该围绕功能、兼容性和性能等几方面进行折中考虑。
8、互操作性问题
互操作性是指系统或系统中的组件与其它系统或组件相交互和无缝协作的能力。
一般通过某些应用编程接口、通信协议标准、接口转换技术如CORBA和DCOM等来实现。
互操作性问题——在组件之间进行通信时可能会出现信息丢失或误解的情况。
9、测试注意事项
除了传统的测试之外,Web测试还包括以下几个方面:
(1)Web用户界面的实现;
(2)系统集成;
(3)服务器端和客户端安装;
(4)基于Web的帮助;
(5)配置和兼容性;
(6)数据库;
(7)安全性;
(8)性能、负载和强度。