专项测试之Web测试

说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家!

文章目录

  • 一、电子商务站点的基本结构
    • 1.电商平台的标准架构
    • 2.电商平台的分布式多层结构
  • 二、Web 测试的测试方法
    • 1.Web 测试的总体策略
    • 2.Web 测试的范围
    • 3.Web 测试的方法
      • 3.1 功能测试
        • 3.1.1 链接
        • 3.1.2 表单
        • 3.1.3 Cookies
        • 3.1.4 设计语言测试
        • 3.1.5 文件上传
      • 3.2 性能测试
        • 3.2.1 链接速度测试
        • 3.2.2 负载测试(Load Testing)
        • 3.2.3 压力测试(Stress Testing)
      • 3.3 界面测试
        • 3.3.1 格式验证
        • 3.3.2 导航条测试
        • 3.3.3 拼写和语法测试
        • 3.3.4 页面排版测试
        • 3.3.5 Tab 键测试
      • 3.4 安全性测试
        • 3.4.1 基本安全测试
        • 3.4.2 认证测试
        • 3.4.3 会话管理测试
        • 3.4.4 权限管理测试
        • 3.4.5 文件和目录测试
      • 3.5 数据库测试

一、电子商务站点的基本结构

1.电商平台的标准架构

专项测试之Web测试_第1张图片

  • 相关概念
    √     SEO
           ✰     Search Engine Optimization,搜索引擎优化。
           ✰     SEO 是指从自然搜索结果获得网站流量的技术和过程,是在了解搜索引擎自然排名机制的基础上,对网站进行内部及外部的调整优化,改进网站在搜索引擎中的关键词自然排名,获得更多流量,从而达成网站销售及品牌建设的目标。
    √     ERP
           ✰     Enterprise Resource Planning,企业资源计划。
           ✰     功能涵盖生产资源计划、制造、财务、销售、采购、质量管理,实验室管理,业务流程管理,产品数据管理,存货、分销与运输管理,人力资源管理和定期报告系统。
           ✰     目前,在我国 ERP 所代表的含义已经被扩大,用于企业的各类软件,已经统统被纳入 ERP 的范畴。
           ✰     它跳出了传统企业边界,从供应链范围去优化企业的资源,是基于网络经济时代的新一代信息系统,主要用于改善企业业务流程以提高企业核心竞争力。
    √     CRM
           ✰     Customer Relationship Management,客户关系管理系统。
           ✰     企业用 CRM 技术来管理与客户之间的关系,功能涵盖自动化分析销售、市场营销、客户服务以及应用等流程的软件系统。它的目标是通过提高客户的价值、满意度、赢利性和忠实度来缩减销售周期和销售成本、增加收入、寻找扩展业务所需的新的市场和渠道。CRM 是选择和管理有价值客户及其关系的一种商业策略,CRM 要求以客户为中心的企业文化来支持有效的市场营销、销售与服务流程。

2.电商平台的分布式多层结构

专项测试之Web测试_第2张图片

二、Web 测试的测试方法

1.Web 测试的总体策略

专项测试之Web测试_第3张图片

2.Web 测试的范围

  • 功能
  • 性能
  • 界面
  • 兼容性
  • 安全性
  • DB
  • 文档

3.Web 测试的方法

3.1 功能测试

功能测试主要从链接、表单、Cookies、设计语言、数据库、文件上传等方面进行。

3.1.1 链接

  • 也称超链接,是指从一个网页指向另一个目标的连接关系,所指向的目标可能是一个网页、相同网页上的不同位置、图片、电子邮件地址、文件、应用程序等。

  • 链接最容易出现以下几种错误
    √     错误链接
           ✰     如 URL 地址拼写错误、URL 后缀多余或缺少斜杠、URL 地址中出现的字母大小写不完全匹配、用户输入的域名拼写错误。
    √     空链接
           ✰     单击该链接时不会指向任何内容。
    √     死链接
           ✰     原来正常,后来失效的链接。
    √     孤立页面
           ✰     指没有链接指向该页面,只有知道正确的 URL 地址才能访问。

3.1.2 表单

  • 表单是系统与用户交互最主要的界面,测试过程主要关注程序是否能正确地处理客户提交的信息,并将信息正确地反馈到客户端。

  • 测试过程中应该注意以下几方面的测试
    √     文本输入框对长度是否有限制。
    √     文本输入框对字符类型是否有限制。
    √     文本输入框模式匹配是否正确,如该文本框只能输入日期格式的数据,那么只能匹配不同的日期格式,而不能匹配其他格式的数据。
    √     各按钮实现的功能是否正确。

3.1.3 Cookies

  • Cookies 能够让网站服务器把少量数据存储到客户端的硬盘或内存,或是从客户端的硬盘读取数据的技术。

  • Cookie 有哪些用途
    √     自动登录,登录时,选择记住用户名,下次登录会自动带出用户名来。
    √     广告精准投放,当我们用浏览器搜索过一些关键字,如:web 测试书,某手机,打开浏览器时,会推送相关浏览过的商品。

  • 查看 Cookies
    √     打开 IE,在工具栏点工具→Internet 选项→常规→(Internet 临时文件)浏览历史记录→设置,这样可以查看到 Cookies 所存位置,还可以对其进行设置。
    专项测试之Web测试_第4张图片

  • Cookies 的测试包含以下几个方面
    √     Cookies 的安全性
           ✰     Cookie 中最好不要存储一些敏感的信息,需要时应该对 Cookie 中的一些字段进行加密处理。
           ✰     Cookies 的过期时间是否正确;

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

  • Cookies 是否必要,是否缺少:一是生成的 Cookie 文件是否与创建的一致,不能多也不能少,二是对于不必要的 Cookie 可以删除。

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

  • 多个 Cookies 的作用域之间关系的测试。

3.1.4 设计语言测试

  • Web 设计语言版本的差异可以引起客户端或服务器端严重的问题,如使用哪种版本的 HTML 等。
  • 不同的脚本语言,如 Java、JavaScript、ActiveX、VBScript 或 Perl 等,也要进行验证。
  • 关于设计语言的测试,应该注意以下几个方面
    √     不同的浏览器内核引擎不同,会导致与不同的开发语言的兼容情况不同,当前主流浏览器的内核有 Trident、Tasman、Pesto、Gecko、KHTML、 WebCore 和 WebKit。
    √     不同的设计语言与平台有不同的兼容性。
    √     不同脚本语言执行的时间也不同。
    √     嵌入其他语言的能力。脚本语言对一些操作无法实现,如读取客户端的信息,此时需要同时借助其他语言来实现。要考虑当前脚本语言对其他语言的支持程度。
    √     系统数据库可能升级,测试时需要考虑脚本语言支持数据库的完善程度。

3.1.5 文件上传

  • 只能上传允许的附件类型;
  • 不能上传脚本或可执行文件;
  • 不能单纯以后缀名来判断文件类型;
  • 浏览好文件后,可以正常处理删除目标文件时出现的异常情况;
  • 上传超大文件时可以正常处理,比如给出提示信息等;
  • 上传的文件应该提供接口查看;
  • 上传的文件不应该直接保存于数据库中,而是将文件保存在服务器端硬盘,而在数据库中保存该文件的基本信息;
  • 文件上传到服务器端后应该被重命名,防止文件名冲突。

3.2 性能测试

3.2.1 链接速度测试

链接的响应时间不能太长,一般不超过 5 秒。

3.2.2 负载测试(Load Testing)

测试系统能够承受的最大负载(如最大用户量、最大业务量、最大数据量等)以及性能表现。

3.2.3 压力测试(Stress Testing)

测试系统在一定压力下的性能表现,通常业务的错误率不能超过 5%。

3.3 界面测试

GUI(Graphical User Interface)即图形用户界面。

3.3.1 格式验证

验证 Web 页面中一些空间默认的标准定义,如默认值、项目按顺序排列等。

3.3.2 导航条测试

  • 各页面导航条是否能正确地显示;
  • 各页面下导航条显示的内容是否正确;
  • 不同状态下(如登录与未登录),导航条显示的内容是否正确;
  • 导航条的每项内容链接是否正确。

3.3.3 拼写和语法测试

验证页面内容、菜单和链接、图片、表格内容的拼写和语法。

3.3.4 页面排版测试

  • 页面标题验证;
  • 页面元素(文字、窗体、菜单、链接、公司商标等)排版验证;
  • 页面图形验证;
  • 页面版本信息验证;
  • 不同分辨率下的页面显示情况验证;
  • 页面长度验证。

3.3.5 Tab 键测试

Tab 顺序正确跳转。

3.4 安全性测试

3.4.1 基本安全测试

  • 各种登录模式的安全性验证、对口令各种要求的测试。
  • 用户权限(如功能限制、数据访问限制等)的验证。
  • Cookie 和 Session 的有效期验证等特殊机制的验证。
  • 敏感数据加密、数据存储安全性的验证。
  • 验证系统的日志文件是否得到保护。
  • 测试软件不会因在异常条件下错误操作而导致不安全状态。
  • 其他各种安全漏洞的检查,如 WSDigger 扫描。
    √     跨站点攻击 XSS
           ✰     get 方式在 URL 后输入如 name=,若弹出警告或者查看源文件中存在输入的字符串则存在漏洞。
    √     SQL 注入
           ✰     sql=‘select yhm,mm from users where username=’ +yhmTextField.getText( ) +’ and password=’ +mmTextField.getText( )’
           ✰     如用户名中输入 admin’ --后,不输入密码也可以登录。

3.4.2 认证测试

  • 登录页面是否存在验证码,不存在说明存在漏洞。

  • 验证码和用户名、密码是否一次性、同时提交给服务器验证,如果分开提交,则存在漏洞。

  • 在服务器端,只有在验证码检验通过后才进行用户名和密码的检验,否则存在漏洞。

  • 验证码是否为图片形式且在一张图片中,不为图片形式或不在一张图片中,说明存在漏洞。

  • 请求 10 次观察验证码是否随机生成,如果存在一定的规律(例如 5 次后出现同一验证码)说明存在漏洞。

  • 观察验证码图片中背景是否存在无规律的点或线条,如果背景为纯色(例如只有白色)说明存在漏洞。

  • 验证码在认证一次后是否立即失效。

  • 服务器不能对认证错误提示准确的信息,如用户名错误、密码错误等。

  • 提供合理的锁定策略。

  • 预防认证被绕过,如 sql 注入。

3.4.3 会话管理测试

  • 用户登录后,身份信息不再由客户端提交,而是以服务器端会话信息中保存的身份信息为准。
  • URL 中不能携带 Session ID 信息。
  • 登录后的页面有明确的"退出"或"注销"按钮,注销时会话信息要清除。

3.4.4 权限管理测试

  • 横向越权:攻击者尝试访问与他拥有相同权限的用户的资源。
  • 纵向越权:一个低级别攻击者尝试访问高级别用户的资源。

3.4.5 文件和目录测试

  • 不存在不需要对外开放的敏感接口或者接口进行了完善的权限控制;
  • 禁止获取敏感的目录或文件信息;
  • 所有对目录的访问均不能打印出文件列表;
  • 禁止访问和下载文档的备份;
  • 不能越权获取到不该获取的文件。
    √     如 DirBuster 扫描。

3.5 数据库测试

  • 数据库测试是为了发现错误和缺陷而运行数据库的过程。
  • 数据库测试方法也分为白盒测试和黑盒测试。
  • 数据库黑盒测试
    √     数据库表结构是否合理;
    √     数据结构(如数据类型、长度)是否正确定义,并且需要注意数据结构与输入界面中数据的类型和长度是否一致,如果不一致,数据库则会报错;
    √     表与表之间的关系是否正确,主外键是否合理;
    √     索引的创建是否合理;
    √     存储过程功能是否完整,能否正确接受输入、输出正确结果;
    √     能否正确插入(增加)、更新、删除数据;
    √     数据库操作权限定义是否正确;
    √     能否正确处理并发操作;
    √     表级、列级完整性约束条件是否满足;
    √     数据库的处理能力、可靠性、可维护性、性能是否满足要求。

你可能感兴趣的:(Testing,#,专项测试,Web测试的方法,Web测试的策略,Web测试的范围,数据库测试)