【软件测试-04】Web应用程序测试的测试流程和相关理论知识;

目录

 

web测试:

测试方法:

1.1界面测试:

web测试的主要页面元素:

测试技术

1.2 界面测试要素:

2.1功能测试

连接:

表单提交:

Cookies 验证:

 功能易用性测试

2. 2.测试技术

 白盒测试技术(White Box Testing):

 黑盒测试技术(Black Box Testing):

性能 (Performance):

压力测试 (Stress): 

错误恢复 (Error Recovery):

安全性测试(Security):

兼容性 (Compatibility):

单元测试技术(Unit Test):

功能测试边界测试\越界测试技术详述

边界条件

越界测试

状态测试技术

竞争条件测试技术

负载\压力测试(StressTest)

回归测试 (Regression Test)

Alpha 和Beta 测试 (Alpha and Beta Test):

覆盖测试技术

白盒测试和黑盒测试技术

文档测试

 


web测试:

测试方法

测试方法的选择取决你的测试策略。一般的web测试和以往的应用程序的测试的侧重点不完全相同,基本包括以下几个方面。

1.1界面测试:

主要包括以下几个方面的内容:

  1. 站点地图和导航条 位置、是否合理、是否可以导航等内容布局 布局是否合理,滚动条等简介说明 说明文字是否合理,位置,是否正确;
  2. 背景/色调 是否正确、美观,是否符合用户需求;
  3. 页面在窗口中的显示是否正确、美观(在调整浏览器窗口大小时,屏幕刷新是否正确)表单样式 大小,格式,是否对提交数据进行验证(如果在页面部分进行验证的话)等;
  4. 连接 连接的形式,位置,是否易于理解等。

web测试的主要页面元素:

  1. 页面元素的容错性列表(如输入框、时间列表或日历);
  2. 页面元素清单(为实现功能,是否将所需要的元素全部都列出来了,如按钮、单选框、复选框、列表框、超连接、输入框等等);
  3. 页面元素的容错性是否存在;
  4. 页面元素的容错性是否正确;
  5. 页面元素基本功能是否实现(如文字特效、动画特效、按钮、超连接);
  6. 页面元素的外形、摆放位置(如按钮、列表框、核选框、输入框、超连接等);
  7. 页面元素是否显示正确(主要针对文字、图形、签章);
  8. 元素是否显示(元素是否存在);
  9. 页面元素清单(为实现功能,是否将所需要的元素全部都列出来了,如按钮、单选框、复选框、列表框、超连接、输入框等等)。

测试技术

  1.  通过页面走查,浏览确定使用的页面是否符合需求。可以结合兼容性测试对不用分辨率下页面显示效果,如果有影响应该交给设计人员提出解决方案;
  2.  可以结合数据定义文档查看表单项的内容,长度等信息;
  3.  对于动态生成的页面最好也能进行浏览查看。如Servelet部分可以结合编码规范,进行代码走查。是否支持中文,如果数据用XML封装要做的工作会多一点等等。

1.2 界面测试要素:

符合标准和规范,灵活性,正确性,直观性,舒适性,实用性,一致性

2.1功能测试

连接:

  1. 这个连接和界面测试中的连接不同。
  2. 那里注重的是连接方式和位置,如是图像还是文字放置的位置等,还是其他的方式;
  3. 这里的连接注重功能,如是否有连接,连接的是否是说明的位置等;

表单提交:

  1. 应当模拟用户提交,验证是否完成功能,如注册信息,要测试这些程序,需要验证服务器能正确保存这些数据,而且后台运行的程序能正确解释和使用这些信息。
  2. 还有数据正确性验证,异常处理等,最好结合易用性要求等。
  3. B/S结构实现的功能可能主要的就在这里,提交数据,处理数据等如果有固定的操作流程可以考虑自动化测试工具的录制功能,编写可重复使用的脚本代码,可以在测试、回归测试时运行以便减轻测试人员工作量;

Cookies 验证:

  1. 如果系统使用了cookie,测试人员需要对它们进行检测。
  2. 如果在 cookies 中保存了注册信息,请确认该 cookie能够正常工作而且已对这些信息已经加密。
  3. 如果使用 cookie 来统计次数,需要验证次数累计正确。
  4. 关于cookie的使用可以参考浏览器的帮助信息。
  5. 如果使用B/S结构cookies中存放的信息更多;

 功能易用性测试

  1. 完成了功能测试可以对应用性进行了解,最好听听客户的反映,在可以的情况下对程序进行改进是很有必要的,和客户保持互动对系统满意度也是很有帮助的。

2. 2.测试技术

 

 白盒测试技术(White Box Testing):

  1. 深入到代码一级的测试,使用这种技术发现问题最早,效果也是最好的。
  2. 该技术主要的特征是测试对象进入了代码内部,根据开发人员对代码和对程序的熟悉程度,对有需要的部分进行在软件编码阶段,开发人员根据自己对代码的理解和接触所进行的软件测试叫做白盒测试。
  3. 这一阶段测试以软件开发人员为主,在JAVA平台使用Xunit系列工具进行测试,Xunit测试工具是类一级的测试工具对每一个类和该类的方法进行测试。

 黑盒测试技术(Black Box Testing):

  1. 黑盒测试的内容主要有以下几个方面,但是主要还是功能部分。
  2. 主要是覆盖全部的功能,可以结合兼容,性能测试等方面进行,根据软件需求,设计文档,模拟客户场景随系统进行实际的测试,这种测试技术是使用最多的测试技术涵盖了测试的方方面面,可以考虑以下方面
  3. 正确性 (Correctness):计算结果,命名等方面。
  4. 可用性 (Usability):是否可以满足软件的需求说明。
  5. 边界条件 (Boundary Condition):输入部分的边界值,就是使用一般书中说的等价类划分,试试最大最小和非法数据等等。

性能 (Performance):

  1. 正常使用的时间内系统完成 一个任务需要的时间,多人同时使用的时候响应时间在可以接受范围内。
  2. J2EE技术实现的系统在性能方面更是需要照顾的,一般原则是3秒以下接受,3-5秒可以接受,5秒以上就影响易用性了
  3. 如果在测试过程中发现性能问题,修复起来是非常艰难的,因为这常常意味着程序的算法不好,结构不好,或者设计有问题。因此在产品开发的开始阶段,就要考虑到软件的性能问题

压力测试 (Stress): 

  1. 多用户情况可以考虑使用压力测试工具,建议将压力和性能测试结合起来进行。
  2. 如果有负载平衡的话还要在服务器端打开监测工具,查看服务器CPU使用率,内存占用情况,如果有必要可以模拟大量数据输入,对硬盘的影响等等信息
  3. 如果有必要的话必须进行性能优化(软硬件都可以)。这里的压力测试针对的是某几项功能。

错误恢复 (Error Recovery):

  1. 错误处理,页面数据验证,包括突然间断电,输入脏数据等。

安全性测试(Security):

  1. 这个领域正在研究中,防火墙、补丁包、杀毒软件等的就不必说了,不过可以考虑。
  2. 破坏性测试时任意看了一些资料后得知,这里面设计到的知识\内容可以写本书了,不是一两句可以说清的,特别是一些商务网站,或者跟钱有关,或者和公司秘密有关的web更是需要这方面的测试,在外国有一种专门干这一行的人叫安全顾问,可以审核代码,提出安全建议,出现紧急事件时的处理办法等,在国内没有听说哪里有专门搞安全技术测试的内容。

兼容性 (Compatibility):

  1. 不同浏览器,不同应用程序版本在实现功能时的表现不同的上网方式,如果你测试的是一个公共网站的话。
  2. 兼容性测试内容详述:
  • 硬件平台
  • 浏览器软件和版本:浏览器插件,浏览器选项,视频分辨率和色深,文字大小,调制解调器速率.
  • 软件配置 (Configuration):如IE浏览器的不用选项-安全设定最高,禁用脚本程序等等,你们的程序在各种不用的设置下表现如何。

单元测试技术(Unit Test):

  1. 作单元测试需要写驱动和稳定桩,比如查询单元是一个查询包,包括N多的测试类、测试数据,运行他需要提供数据的部分,输入参数和发出命令的驱动等等,是比类大的一个整体进行的。
  2. 白盒测试不会关注类接口,但是单元测试主要的内容就是类接口测试。

功能测试边界测试\越界测试技术详述

边界条件

  1. 边界条件是指软件计划的操作界限所在的边缘条件,如果软件测试问题包含确定的边界,那么数据类型可能是:数值、速度、字符、地址、位置、尺寸、数量。
  2. 同时,考虑这些类型的下述特征:第一个/最后一个、最小值/最大值、开始/完成、超过/在内、空/满、最短/最长、最慢/最快、最早/最迟、最大/最小、最高/最低、相邻/最远。

越界测试

  1. 通常是简单加1或者很小的数(对于最大值)和减少1或者很小的数(对于最小值),例如:第一个减1/最后一个加1、开始减1/完成加1、空了再减/满了再加、慢上加慢/快上加快、最大数加1/最小数减1、最小值减1/最大值加1、刚好超过/刚好在内、短了再短/长了再长、早了更早/晚了更晚、最高加1/最低减1。
  2. 另一些该注意的输入:默认,空白,空值,零值和无;非法,错误,不正确和垃圾数据。

状态测试技术

  1.  软件可能进入的每一种独立状态;从一种状态转入另一种状态所需的输入和条件;进入或退出某种状态时的设置条件及输入结果。具体测试方法可以参考如下
  •  每种状态至少访问一次;
  •  测试看起来最常见最普遍的状态转换;
  •  测试状态之间最不常用的分支;
  •  测试所有错误状态及其返回值;
  •  测试随机状态转换。

竞争条件测试技术

竞争条件典型情形参考如下:

  1. 两个不同的程序同时保存或打开同一个文档;
  2. 共享同一台打印机,通信端口或者其他外围设备;
  3. 当软件处于读取或者修改状态时按键或者单击鼠标;
  4.  同时关闭或者启动软件的多个实例;
  5.  同时使用不同的程序访问一个共同数据库。

负载\压力测试(StressTest)

  1. 使用负载测试工具进行,虚拟一定数量的用户看一看系统的表现,是否满足定义中的指标。
  2. 负载测试一般使用工具完成,loadrunner,webload,was,ewl,e-test等,主要的内容都是编写出测试脚本,脚本中一般包括用户常用的功能,然后运行,得出报告。

 

回归测试 (Regression Test)

  1. 回归测试技术可以在测试的各个阶段出现,无论是单元测试还是集成测试还是系统测试。是对以前问题进行验证的过程。
  2. 回归测试的目的就是保证以前已经修复的Bug不会再出现。实际上,许多Bug都是在回归测试时发现的,在此阶段,我们首先要检查以前找到的Bug 是否已经更正了。
  3. 值得注意的是,已经更正的Bug 也可能又回来了,有的Bug 经过修改之后可能又产生了新的Bug。
  4. 所以,回归测试可保证已更正的Bug不再重现,不产生新的Bug。

Alpha 和Beta 测试 (Alpha and Beta Test):

覆盖测试技术

  1. 说明:测试覆盖率可以看出测试的完成度,在测试分析报告中可以作为量化指标的依据,测试覆盖率越高效果越好。
  2. 覆盖测试可以是程序代码的执行路径覆盖,亦可以是功能实现的步骤覆盖(可以理解成流程图的路径覆盖)。
  3. 该技术可以用在任何测试阶段,包括单元测试、集成测试、系统测试。
  4. 使用该技术时可以使用以上的任何测试方法和测试技术。

白盒测试和黑盒测试技术

  1. 白盒测试技术 (White Box Testing):该技术主要的特征是测试对象进入了代码内部,根据开发人员对代码和对程序的熟悉程度,对有需要的部分进行测试。在软件编码阶段,开发人员根据自己对代码的理解和接触所进行的软件测试叫做白盒测试。这一阶段测试以软件开发人员为主,使用Xunit系列工具进行测试,可以包括很多方面如功能性能等。
  2. 黑盒测试 (Black Box Testing):测试的主体部分,黑盒测试的内容主要有以下几个方面,但是主要还是功能部分。主要是覆盖全部的功能,可以结合兼容,性能测试等方面进行,包括的不同测试类型请参考以上内容。

文档测试

  1. 产品说明书属性检查清单
  2. 完整:是否有遗漏和丢失?完全吗?单独使用是否包含全部内容?
  3. 准确:既定解决方案正确吗?目标明确吗?有没有错误?
  4. 精确:不含糊,清晰。描述是否一清二楚?还是自说自话?容易看懂和理解吗?
  5.  一致:产品功能描述是否自相矛盾?与其他功能有没有冲突?
  6. 贴切:描述功能的陈述是否必要?有没有多余信息?功能是否满足的客户要求?
  7. 合理:在特定的预算和进度下,以现有人力,物力和资源能否实现?
  8. 代码无关:是否坚持定义产品,而不是定义其所信赖的软件设计,架构和代码?
  9. 可测试性:特性能否测试?测试员建立验证操作的测试程序是否提供足够的信息?

 

 

 

 

 

你可能感兴趣的:(软件测试~~)