Chinaunix首页 | 论坛 | 博客
  • 博客访问: 64134
  • 博文数量: 20
  • 博客积分: 496
  • 博客等级: 下士
  • 技术积分: 195
  • 用 户 组: 普通用户
  • 注册时间: 2012-01-30 10:22
文章分类

全部博文(20)

文章存档

2012年(20)

我的朋友

分类: IT业界

2012-01-30 17:21:25

第14章 网站测试
本章作者以测试一个网站为例,讲述了测试实际项目的过程。囊括了第三部分讲述的配置测试、兼容性测试、易用性测试、文档测试以及安全性测试等技术;同时,也用到了黑盒、白盒、静态和动态测试技术。
一、黑盒测试
把网页或者整个网站当做一个黑盒子,在不知道它是如何工作,没有说明书的情况下,思考如何对其进行测试,测试什么?等价划分是什么?不测试什么?
在测试网站时,首先应该建立状态表,把每个网页当做不同的状态,超级链接当做状态之间的连接线。完整的状态图有利于对整个任务更好地进行审视。以下是书中列举的查找网页缺陷的一些思路:
1、文本
网页文本应该当做文档对待,依据“测试文档”的方法进行测试。检查读者的水平、术语、内容以及题目素材、准确度——特别是可能过期的信息,经常不断的检查拼写。
2、超级链接
链接可以与文字或者图片绑定。每一个链接都要检查,确保它跳转到正确的目的地,并在正确的窗口打开。
超级链接一定要明显,文字链接一般有下划线,而鼠标经过时应发生变化(手形指针)。
查找孤页,它是网站的一部分,但是不能通过超级链接访问,因为网页作者忘记把它挂接上。这样就需要向网站设计人员索取网页清单,与自制的状态图进行比较。
3、图片
图片需要检查以下内容:
(1)所有图片都被正确载入和显示;
(2) 如果网页中文本与图片交织,要保证文字正确地环绕在图片周围。改变窗口大小,环绕不发生变化;
(3)载入页的性能,是否由于网页图片太多或太大,使网站访问速度过慢。
4、表单
测试表单就像测试常规软件程序的域一样,需要注意:域大小是否正确;是否接受正确数据,拒绝错误数据;按回车时是否正确确认;可选域是否真正可选。
5、对象和其他各种简单的功能
网站可能包含诸如单击计数器、滚动文本选择框、变换的广告和站内搜索等特性。把每一个特性按照常规程序的功能对待,并利用所学的标准测试技术分别进行测试。
二、灰盒测试
灰盒测试是黑盒测试与白盒测试的结合,测试时仍把软件当做黑盒来测试,但是通过简单查看(不是像白盒测试那样完整地查看)软件内部工作机制作为补充。网站中结合HTML语言对网页进行的测试,可视为灰盒测试。
三、白盒测试
通过对书中本节的理解,可以利用白盒测试对以下网站或网站的内容进行测试:
(1)网站中的动态内容。这里指的是通过JavaScript等脚本编写的动态网页。
(2)数据库驱动的网页。通过数据库存储网页中相关数据的网站。
(3)用编程方法创建的网页。这里是指利用编程方法自动创建的HTML页,需要测试生成页面是否正确。
(4)服务器性能和加载。流行的网站会接受数百万次的点击,下载上传等。测试系统的性能和负载能力,需要一种模似数百万连接和下载的方法,需要使用自动测试工具。
(5)安全性。需要密切了解服务器技术来测试其安全性。
四、配置和兼容性测试
回顾学过的“配置测试”和“兼容性测试”的内容。配置测试是在各种硬件和软件平台类型以及其不同的设置情况下检查软件运行的过程。兼容性测试是检查软件和其他软件一起运行的过程。网页是运用此类测试的好例子。
要测试一个网站,需要考虑可能会影响网站动行和外观的硬件和软件配置。需考虑以下内容:硬件平台、浏览器软件和版本。
影响网站功能和外观的因素:
(1)浏览器插件;
(2)浏览器选项;
(3)视频分辨率和色深;
(4)浏览器使用的文字大小;
(5)调制解调器速率。
五、易用性测试
书中说明易用性测试是难以定义的过程。不同人对网站的易用有不同的看法。书中引用了专家认为对网站易用性影响的几个因素:
(1)盲目使用不成熟的新技术;
(2)滚动文字、滚动块和不停动行的动画;
(3)滚动显示的长页面;
(4)非标准的链接颜色;
(5)过期信息;
(6)下载时间过长;
(7)缺少导航支持;
(8)孤页;
(9)复杂的网站地址(URL);
(10)使用框架。
?
第四部分 测试的补充
第15章 自动测试和测试工具
一、工具和自动化的好处
如果要测试某项特性,也许需要不止一次执行测试,而是重复多次。还要检查确认在前面的测试中发现的软件缺陷修复了,同时又没引入新软件缺陷。重复执行测试的过程称为回归测试。软件测试工具和自动化可以提供比手工测试更有效的手段,工具和自动化的主要属性是:
(1)速度。
(2)效率。
(3)准确度和精确度。
(4)节省资源。
(5)仿真和模拟。
(6)坚持不懈。
软件测试工具不能代替软件测试员——它们只能帮助软件测试员更好地工作。
二、测试工具
测试工具分为两种:非入侵式工具和入侵式工具。如果工具仅用于监视和检查软件而不对其进行修改,就认为是非入侵式工具。但是如果工具以任何方式修改了程序代码或者控制了操作环境,就属于入侵式工具。由于入侵的程度各有不同,测试员通常设法使用侵入性尽量小的工具,以减少工具影响测试结果的可能性。
下面讨论测试工具的主要分类及其使用方式:
1、查看器和监视器
查看器和监视器测试工具能够看到正常情况下看不到的软件运行的细节。
大多数编译器附带的代码调试器可以看做查看器。
任何能够洞察系统,看到一般用户看不到的数据的工具都可以归类为查看工具。
2、驱动程序
驱动程序是控制和操作被测试软件的工具。最简单的驱动程序例子是批处理文件,即依先后顺序执行的程序或命令的一个简单清单。
3、桩
桩与驱动程序本质上是相反的,桩不控制或者操作被测试软件;相反,它接收或者响应软件发送的数据。
仿真器是在实际使用中用来替代真正设备的设备。仿真器和桩的区别在于桩还给测试程序提供手段来查看和解释发送给它的数据,桩是仿真器的超集。
4、压力和负载工具
压力和负载工具用于向被测试软件增加压力和负载。负载工具和压力工具的相似之处是,它们为软件创造了用其他方式难以创造的环境条件。
5、干扰注入器和噪声发生器
干扰注入器和噪声发生器类似于压力和负载工具,但是在行为上更具有随机性。即产生的压力和负载不断变化。
6、分析工具
书中这里指的是帮助和简化测试工作的常用工具,如:文字处理软件、电子表格软件、数据库软件、文件比较软件、抓屏和比较软件、调试器、二进制——十六进制计算器、秒表、录像机或者照相机等等。
三、软件测试自动化
1、宏录制和回放
最基本的测试自动化类型是录制第一次执行测试用例时的键盘和鼠标操作,然后在需要重新执行这些测试时回放一次。书中以Windows系统下的Macro Magic软件为例进行介绍,并说明此方式的三个缺点:
(1)只能自动快速执行测试步骤,不能自动验证执行结果;
(2)即使可以调整回放速度,也不见得总能保持宏同步执行;
(3)GUI的一点点变化都会扰乱捕捉的步骤。
除了这些限制之外,录制和回放宏是自动执行简单测试任务的流行方式。
2、可编程的宏
可编程的宏还可以解决录制宏的许多时序问题,不是依靠绝对延时,而是等待特定条件成立才继续执行。与录制宏相比优点是:可以暂停执行,向测试员提示预期结果,并可以询问测试是通过还是失败。
此方式的缺点:
(1)没有自动检查测试结果的能力;
(2)可编程宏限于直接执行命令行——只能循环和重复。
3、完全可编程的自动测试工具
此类自动测试工具多基于BASIC编程语言,提供的命令为编写测试用例提供了极大的便利,提高可读性和可靠性。其重要特点是进行验证的能力,实际上就是检查软件是否以预期方式运行。实现这一点有以下几种方式:
(1) 屏幕捕获。首次执行自动测试时,可以在肯定正确的关键点捕捉并保存屏幕图像,与以后进行测试时的屏幕图像进行比较,如果不同,即为软件缺陷。
(2)控件值。比屏幕捕获更进一步,可以检查软件窗口中各种控件的值。
(3)文件和其他输出。同样的,如果软件把数据保存在文件中,自动化工具就能在建立文件之后将其读出,与已知正确的文件比较。
验证是自动测试要克服的最后一个大难题。一旦具备该能力,就可以对绝大多数测试用例进行验证,以更加容易或者完全自动化的方式执行测试用例。
四、随机测试
随机测试是目的是模似用户可能的操作,书中把这一类自动化工具称为测试猴子(test monkey)。它的工作是在产品发布之前,模似用户可能的操作方式来补充测试用例,这有可能发现以其他测试方式会漏掉的软件缺陷。
1、笨拙的猴子
笨拙的猴子不会进行验证,只是随机地单击鼠标或者敲击按键。直到死循环、软件或操作系统崩溃。其目的是:
(1)随机输入程序员或测试员,在测试过程中没有想到的奇特序列;
(2)暴露内存泄漏等软件缺陷。
2、半聪明的猴子
总结书上的内容,此方式目的是弥补“笨拙的猴子”在不知道系统崩溃的情况下,继续进行测试的问题。
“半聪明的猴子”有崩溃辨认的能力。在系统崩溃后,它会以日志等方式,记录测试失败前后的状态,并且可以实现重启计算机,重新开始测试的功能。
3、聪明的猴子
聪明的猴子会阅读软件的状态转换图,从而知道软件的操作方法,像用户那样试用软件。它可以实现的功能是:查看数据、检查操作结果、找出其与预期结果的差别。如果在测试用例中编程设计聪明猴子,它可以随机执行、查找软件缺陷、记录结果。
五、使用测试工具和自动化的实质
在使用测试工具和自动化之前,应该对以下这些重要的问题加以考虑:
(1)软件变更。编写的自动化程序具备灵活性,在需要时能够方便快捷地改变。
(2)人眼和直觉是不可替代的。
(3)验证难以实现。
(4)容易过分依赖自动化。
(5)不要花费太多时间使用达不到测试软件目的的测试工具和自动化。
(6)编写宏、开发工具和编制猴子都属于开发工作。
(7)某些工具是入侵式的,可能导致被测试的软件不正常地失败。

?
第16章 缺陷轰炸和beta测试
一、让别人测试你的软件
让其他人测试你测试过的部分,有以下几个原因:
(1)让其他人检查软件有助于打破杀虫剂怪现象;
(2)人们互相之间不仅看到的不同,而且测试方法也不同;
(3)让别人帮忙测试有助于消除烦躁心情;
(4)观察别人解决问题的方式是学习新测试技术的上佳方法。
二、测试共享
测试共享常用方法是在一定时间内简单互换测试任务。至少可以让他人花时间审查等价划分和测试用例,他们可以根据自身经验为测试提供新的或不同的思路。
测试共享另一个方法是安排缺陷轰炸(bug bash)。
缺陷轰炸:是在一段时间(一般为几个小时)内整个测试小组停下指定的常规测试任务,参加轰炸。在缺陷轰炸中,选择软件中某一区域,所有测试员集中测试这个区域或者这组特性。选择区域可能是软件缺陷聚集之处,看是否还有更多潜伏的问题;也可能是怀疑不存在软件缺陷的区域。利用缺陷轰炸可以确定普通测试是否会遗漏软件缺陷,代码编写质量如何。选择区域虽然有不少内在规则,但是最终要用缺陷轰炸让许多人从特定的软件区域寻找软件缺陷。
三、beta测试
Beta测试是用于描述外部测试过程的术语。在该过程中,软件分发给选定的潜在客户群,让他们在实际环境中使用软件。Beta测试一般在产品开发周期行将结束时进行,理想情形下只是确认软件准备向实际客户发布。
从测试角度看,在计划或者依赖beta测试时,有几个问题需要考虑:
(1) 谁是beta测试者?由于beta测试可能有不同的目标,因此有必要了解谁参加Beta测试。
(2)执行Beta程序的测试员或者其他人一定要跟踪参加Beta测试者,以保证他们在使用软件并符合计划的目标。
(3)Beta测试可以成为寻找配置和兼容性软件缺陷的好方法。
(4)易用性测试是Beta测试能有所作为的另一个领域。
(5)除了配置、兼容性和易用性,Beta测试在寻找软件缺陷方面很差。试图依靠Beta测试来代替实际测试是软件产品开发的主要误区之一。
(6)Beta测试程序会耗费测试员大量时间,测试新手的常见任务是与Beta客户一起,帮助解决他们的问题,回答提问,确认他们找到的软件缺陷。
经证实,Beta测试是使独立,翔实的测试数据回归软件的好方法,但是必须正确定义和管理才有效——几乎可以说这也需要测试。
四、外包测试
    许多公司采用的一种常用做法是向擅长各方面软件测试的其他公司外包或提交部分测试工作。这可能成为共享测试的有效途径。
阅读(1196) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~