功能测试之表单测试以及Cookies测试

作者:功能测试   发布时间:2021-09-26

本文主要讲解“功能测试之表单测试以及Cookies测试”的内容,表单是系统与用户交互主要的介质,测试过程主要关注数据库是否能正确地处理客户提交的信息,并将信息正确地反馈到客户端。如使用表单进行在线注册业务,测试需要确保提交按钮能正常工作,当客户注册完成后,应返回注册成功的信息。

用户提交表单数据,经过数据库处理后返回到客户端,表单处理过程如图12-4 所示。


测试过程困难的是无法确定用户输入的内容,用户可能随意输入任意字符,测试过程中应该注意以下几方面的测试:

(1)文本输入框对长度是否有限制。

(2)文本输入框对字符类型是否有限制。

(3)文本输入框模型匹配是否正确,如该文本框只能输入日期格式的数据,那么只能匹配不同的日期格式,而不能匹配其他格式的数据。

(4)各按钮实现的功能是否正确。


640.png

图12-4 表单处理过程


Cookies 测试


Cookies 是一种提供Web 应用程序中存储用户特定信息的方法,能够让网站服务器把少量数据存储到客户端的硬盘或内存,或是从客户端的硬盘读取数据的技术。


Cookies 是一小段文本信息,伴随着用户请求和页面在Web 服务器和浏览器之间传递,Cookies包含每次用户访问站点时Web 应用程序都可以读取的信息。


例如,如果在用户请求站点中的页面时,应用程序发送给该用户的不仅仅是一个页面,还有一个包含日期和时间的 Cookie,用户的浏览器在获得页面的同时还获得了该Cookie,并将它存储在用户硬盘上的某个文件夹中。之后,如果用户再次请求该站点中的页面,当该用户输入 URL 时,浏览器便会在本地硬盘上查找与该URL关联的Cookie。如果该Cookie 存在,浏览器便将该Cookie 与页面请求一起发送到浏览的站点。应用程序便可以确定该用户上次访问站点的日期和时间,可以使用这些信息向用户显示一条消息,也可以检查到期日期。


从本质上讲,Cookies 可以看作是访问者的身份证。但Cookies 不能作为代码执行,也不会传送病毒,且为访问者所专有,并只能由提供它的服务器来读取。保存的信息片断以“名/值对”(name-value pairs)的形式存储,一个“名/值对”仅仅是一条命名的数据。一个网站只能取得其放在访问者的计算机中的信息,无法从其他的Cookies 文件中取得信息,也无法得到访问者的计算机上的其他任何东西。


Cookies 的测试包含以下几个方面:

  1. Cookies 的作用域是否正确合理;

  2. Cookies 的安全性;

  3. Cookies 的过期时间是否正确;

  4. Cookies 的变量名与值是否正确;

  5. Cookies 是否必要,是否缺少。


默认情况下,一个站点的全部Cookies 都存储在客户端上,当客户端向服务器发送请求时,Cookies 会随请求一起被发送到服务器端。


Cookies 一般通过以下两种方式来设置作用域,测试时需要注意:

  1. 将Cookies 的范围限制在服务器上的某个文件夹,允许将Cookies 限制到网站上的某个应用程序。

  2. 将范围设置为某个域,允许指定域中的一些子域访问Cookies。


将Cookies 限制到服务器上的某个文件夹的代码如下(与Visual Basic 和C#为例):


(1)Visual Basic 语言:

Dim appCookie As New HttpCookie("AppCookie")
appCookie.Value = "written " & DateTime.Now.ToString()
appCookie.Expires = DateTime.Now.AddDays(1)
appCookie.Path = "/Application1"
Response.Cookies.Add(appCookie)


(2)C#语言:

HttpCookie appCookie = new HttpCookie("AppCookie");
appCookie.Value = "written " + DateTime.Now.ToString();
appCookie.Expires = DateTime.Now.AddDays(1);
appCookie.Path = "/Application1";
Response.Cookies.Add(appCookie);


默认情况下,Cookie 与特定域关联,例如,当用户向亚马逊网站www.amazon.cn请求任何页面时,Cookie 就会被发送到服务器,那么该Cookie 的作用域则为特定域(这可能不包括带有特定路径值的Cookie)。如果站点具有子域(例如sales.contoso.com),则可以将Cookie 与特定的子域关联。


(1)Visual Basic 语言:

Response.Cookies("domain").Value = DateTime.Now.ToString()
Response.Cookies("domain").Expires = DateTime.Now.AddDays(1)
Response.Cookies("domain").Domain = "sales.contoso.com"


(2)C#语言:

Response.Cookies["domain"].Value = DateTime.Now.ToString();
Response.Cookies["domain"].Expires = DateTime.Now.AddDays(1);
Response.Cookies["domain"].Domain = "sales.contoso.com";


需要设计不同的Cookie 来测试其他作用域是否正确。


(1)Cookies 的安全性。


Cookie 其实是一种存储用户信息的方式,因此很容易被人非法获取和利用,因此Cookie 同样也存在安全性问题。因此Cookie 中尽量不要存储一些敏感的信息,如用户名、密码、信用卡号等。需要时应该对Cookie 中的一些字段进行加密处理,避免Cookie 以明文形式在浏览器与服务器之间发送,测试时需要确定Cookie 中一些重要的信息是否被加密处理。


(2)Cookies 过期时间是否正确。


在开发过程中会对Cookie 的过期日期和时间进行设置,测试需要注意Cookie 的过期时间是否正确。当用户访问编写Cookie 的网站时,浏览器会将过期的Cookie 删除,如果是设置为永不过期的Cookie,可以将日期设置为从现在起50 年。如果未设置Cookie 的有效期,仍然会创建Cookie文件,但不会将该文件存储在用户硬盘上,只是将Cookie 作为用户会话信息的一部分进行维护。


当用户关闭浏览器时,Cookie 会被丢弃。


(3)Cookies 的变量名和值是否正确。


以JavaScript 为例,Cookie 的定义格式为“变量1=值1;变量2=值2;变量3=值3;”。


下面是一个Cookie 的实例代码:

email="bush@usa.com";
firstname="arivn";
lastname="test";
expireDate="Thursday,01-Jan-2050 12:00:00 GMT";
document.cookie="email="+email+";
expires="+expireDate;
document.cookie="firstname="+firstname+";
expires="+expireDate;
document.cookie="lastname="+lastname+";
expires="+expireDate;


测试时需要测试Cookie 文件中每个变量名和值是否对应,并且需要保证其正确性。


(4)Cookies 是否必要,是否缺少。


测试Cookie 是否必要和是否缺少有两个方面的测试内容:一是生成的Cookie 文件是否与创建的一致,不能多也不能少;二是对于不必要的Cookie 可以删除。


本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-60725088-8054),我们将立即处理,马上删除。



沪ICP备07036474号-4 |

沪公网安备 31010702003220号

2015-2021 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd.