川石教育
全国咨询热线:136-9172-9932
  1. 首页 > 资讯与干货 > 常见问题

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

作者:川石学院 日期:2021-09-15 16:33:59 点击数:

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

功能测试之表单测试以及Cookies测试(图1)

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

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

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

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

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

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

  功能测试之表单测试以及Cookies测试(图2)

  图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 一般通过以下两种方式来设置作用域,测试时需要注意:

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

  将范围设置为某个域,允许指定域中的一些子域访问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 可以删除。


相关文章
  • 亚马逊运营成功转行软件测试,薪资13K表示很满意!2021-09-15 16:33:59
  • 西安川石的兰朋友喊你来当他的学弟学妹啦!2021-09-15 16:33:59
  • 国外的月亮也不一定比国内测试猿的年薪美~2021-09-15 16:33:59
  • 建筑工程专业朱同学成功转行为软件测试人!2021-09-15 16:33:59
  • 财务管理专业转行软件测试月薪甩会计几条街!2021-09-15 16:33:59
  • 只有技术沉淀才能成功上岸,深圳就业薪资13K!2021-09-15 16:33:59
  • 薪资11K!实现自我价值,从掌握一门IT技术开始...2021-09-15 16:33:59
  • 文科生转行软件测试照样拿下高薪15K!2021-09-15 16:33:59
  • 恭喜罗同学喜提19.5K,成功入行软件测试!2021-09-15 16:33:59
  • 毕业1年,迷茫的他最终选择转行软件测试2021-09-15 16:33:59