当我们负责web测试的时候,先了解B/S架构,然后分析如何开始执行测试,一般步骤:从功能测试,兼容测试,安全测试。

功能测试:

一、链接测试,链接是web应用系统的一个很重要的特征,主要是用于页面之间切换跳转:当发现页面显示内容与用户需求不一致时,就是一个bug。

链接测试:测试所有链接是否按指示的那样确实链接到了该链接的页面;

测试所链接的页面是否存在;

只有输入正确的url地址才能访问

1.链接是否按照既定指示那样,确实链接到了该链接的界面

2.测试该链接所链接的页面是否真的存在

3.保证系统中没有单独存在的页面   即没有链接指向,只能通过正确的URL地址才能访问

二、表单测试

这个也可以理解为数据落地;当用户在web应用系统上向服务器提交信息时,就需要使用表单操作,比如,用户注册,登录,信息变更等等;这种情况下,我们必须测试提交信息的完整性,

表单测试:输入框的长度限制,比如用户名要求多少长度;

输入框的类型限制,如果只能输入数值,则跟数值无关的输入应该不被允许;

输入框模式匹配,比如格式要求;

按钮点击时做了自己应该做的事,没做不应该做的事;

UI测试:测试图形和内容

图形测试

也可以理解为UI测试,其中包括图片、动画、边框、颜色、字体、背景、按钮等等。

其中要考虑的几个重点,我做了一个大概的总结:

1)图片要有明确的用途,代表;图片尺寸尽量小,一般采用JPG或者GIF压缩

2)页面整体风格是否和系统的用途一致

3)背景颜色,字体,搭配是否合理

内容测试

       这个主要用来检测web系统提供信息的准确性、相关性

比如:商品的价格,文字描述;信息的准确性,是否有拼写错误;信息的相关性,比如很多网站的“相关文章列表,视频列表等”

整体界面测试

这个也就是我们常说的用户体验。用户浏览时是否感觉舒适,整体风格等等

这个我建议一般做一个类似问卷调查的形式,来判定用户的反馈信息,最好有最终用户的参与

导航测试

作为测试,很多时候都要站在用户的角度去思考,那么,作为一个用户,当他访问一个web的网站或者系统时,会怎么去操作呢?

大部分用户都是目的驱动的,当他访问一个网站,会很快的浏览系统,找不到满足自己需求的信息时,会很快离开,很少有用户愿意花时间去熟悉系统的结构,因此,导航测试就显得很重要。

导航测试,就是在不同的页面跳转之间,或者按钮、对话框、列表以及窗口等,通过考虑这些因素去判断一个应用是否易于导航:是否直观?系统的主要模块是否可以通过主页访问或者到达?

站点是否需要站内地图或者搜索引擎等其他帮助?

web系统导航的另外一个重点就是页面结构、导航、菜单、风格等是否一致,确保用户可以凭借直觉或者简单的判断就可以找到自己想要的内容。

兼容性测试:

平台兼容

现在有很多的操作系统,比如Windows、Unix、Linux、macintosh等;用户使用哪个系统取决于用户,因此,系统兼容测试就很有必要了。

浏览器兼容

浏览器是web客户端最核心的组件,不同的浏览器,对JavaScript,css或者HTML的规格都有不同的支持;

采用的框架和结构风格在不同浏览器中也存在不同的显示甚至不显示,不同的浏览器对安全性的设置也是不同的。

测试浏览器兼容,有个方法就是创建一个兼容性矩阵,来测试不同厂商不同版本的浏览器兼容。

比如测试IE浏览器,可以通过一个叫做IEtester的工具来测试兼容,或者可以通过F12控制台来切换浏览器版本来测试兼容以前一些前端元素的显示等

鉴于国内市场浏览器很多,比如360、搜狗,搜狐、QQ浏览器等,这些本土的浏览器基本都采用的IE浏览器内核的双核配置

安全测试:

1、认证:避免未经授权的页面可以直接访问

测试认证思路:在不登录的情况下,去访问只有登录之后才能访问的页面(通过拷贝只有登录之后才能访问的页面的url,在非登录的情况下,打开ie复制url,观察页面是否可以访问)

1、权限:不同角色权限检查

测试权限思路:使用不同权限的账号登录系统,检查是否满足特定的账号访问特定的权限,比如互联网金融理财平台中,使用管理员可以访问系统管理的页面,使用其他账户不可以访问系统管理的页面。

2、session、cookie

避免文件中保存敏感信息到cookie

DDOS:疯狂向服务器发请求,导致服务器崩溃、使得服务器无法正常处理请求。

3、文件上传漏洞:上传了脚本文件、导致访问脚本文件的时候,执行了里面的脚本,从而暴露安全信息(如:暴露目录结构)、是否可以上传非支持的文件格式;<?php phpinfo();?>等

避免文件上传漏洞:

1、文件上传的过滤:

1、文件上传的过滤 通过后缀名、通过二进制来判断类型

2、通过二进制来判断类型

2、修改服务器核心参数、禁止脚本引擎运行系统命令

5、xss跨站攻击

恶意攻击者往web页面里面插入恶意script代码,当用户浏览该页的时候,嵌入web里面的script/html代码会被执行,从而达到恶意攻击的目的<script>alert(‘...’)</script>

避免xss跨站攻击:1、最基本最简单的方法通过replace语句过滤‘<’和’>’

2、通过代码语句过滤html属性

3、过滤特殊字符

6、sql注入:通过在url中拼接sql来访问数据库,获取、修改服务器数据库的内容

1、获取字段个数

2、获取数据库名称

3、获取表名

4、获取字段名

5、获取字段值

预防sql注入:采用预编译语句、使用正则表达式过滤传入的参数、字符串过滤

功能点如何测试:

1、关联业务:对后续业务影响,业务关联性考虑

2、UI层面:d 控件的测试、文本框录入字符限制、长度、类型、按钮、链接

3、数据层面:界面上录入数据到数据库中存储,结果的校验。

4、拓展的测试面:前端分析、可用性、兼容性、性能、安全性等

web如何测试的更多相关文章

  1. 分享一个.NET实现的简单高效WEB压力测试工具

    在Linux下对Web进行压力测试的小工具有很多,比较出名的有AB.虽然AB可以运行在windows下,但对于想简单界面操作的朋友有点不太习惯.其实vs.net也提供压力测试功能但显然显得太重了,在测 ...

  2. 最佳的 14 个免费的响应式 Web 设计测试工具

    一旦你决定要搭建一个网站就应该已经制定了设计标准.你认为下一步该做什么呢?测试!我使用“测试”这个词来检测你网站对不同屏幕和浏览器尺寸的响应情况.测试在响应式网页设计的过程中是很重要的一步.如果你明白 ...

  3. JDK和Tomcat环境变量,以及用MyEclipse新建Web Project测试Tomcat Server

    [请尊重原创版权,如需引用,请注明来源及地址] 在此之前一直用的Eclipse挺顺手的,今天突然想换MyEclipse试试,不知安装MyEclipse的时候我选错了什么选项,反正JDK和Tomcat的 ...

  4. 实验七 Web应用测试

    实验目的 (1)       了解Web应用测试的特点 (2)       掌握SSH分层单元测试 实验内容 以下题目均在bookstore项目上完成(请先运行数据库文件): 1.编写单元测试用例,对 ...

  5. WEB压力测试

    原文地址:WEB压力测试 作者:鸟哥のlinux webbench最多可以模拟3万个并发连接去测试网站的负载能力,个人感觉要比Apache自带的ab压力测试工具好,安装使用也特别方便. 1.适用系统: ...

  6. 反向代理在Web渗透测试中的运用

    在一次Web渗透测试中,目标是M国的一个Win+Apache+PHP+MYSQL的网站,独立服务器,对外仅开80端口,网站前端的业务系统比较简单,经过几天的测试也没有找到漏洞,甚至连XSS都没有发现, ...

  7. WEB压力测试工具Pylot试用

    Pylot介绍 转载自[http://www.freehao123.com/pylot-web/] 为了能够准确地评估网站服务器对网络流量的承受能力,我们一般会采取模拟网站用户访问,通过不断地增加并发 ...

  8. asp.net web api 测试帮助页面建立并测试

    asp.net web api 测试帮助页面建立并测试 现在使用WEB API来开发,越来越流行. 在开发过程中的测试调试,可以使用Fiddler等工具来帮助测试外,还有: 在asp.net 中有种方 ...

  9. web压力测试工具

    ab apache 自带的web压力测试工具,window和linux下均有. 命令行:./ab -c 100 -n 1000 http://www.baidu.com 说明: -c 表示同时处理10 ...

  10. Kali Linux Web 渗透测试视频教—第二十课-利用kali linux光盘或者usb启动盘破解windows密码

    Kali Linux Web 渗透测试视频教—第二十课-利用kali linux光盘或者usb启动盘破解windows密码 文/玄魂 目录 Kali Linux Web 渗透测试视频教—第二十课-利用 ...

随机推荐

  1. JavaScript 简版-菜鸟中的菜鸟

    JavaScript 简介 JavaScript 是互联网上最流行的脚本语言,这门语言可用于 HTML 和 web,更可广泛用于服务器.PC.笔记本电脑.平板电脑和智能手机等设备. JavaScrip ...

  2. 安装和换源pip

    pip 是 Python 包管理工具,该工具提供了对Python 包的查找.下载.安装.卸载的功能 一.ubuntu安装和配置pip 1.进入终端,输入命令sudo su root ,输入密码后进入r ...

  3. 如何开启远程桌面连接功能?windows的远程桌面连接功能使用步骤

    由于远程桌面的诞生,为电脑工作者提供了极大的便利.首先,推荐1款比较适合服务器管理的远程桌面: 可以管理1000+服务器/vps的远程桌面:IIS7远程桌面管理 开启远程桌面功能步骤: 1.右键点击电 ...

  4. WebSocket是什么,有什么作用和特点?

    WebSocket是一种在单个TCP连接上进行全双工通信的协议. Websocket是基于HTTP协议的,或者说借用了HTTP的协议来完成一部分握手.具有持久化的特性 特点: 保持连接状态.与HTTP ...

  5. 本地安装JDK1.7和1.8,可相互快速切换

    1.JDK官网下载jdk1.7和jdk1.8 https://www.oracle.com/java/technologies/javase-jdk8-downloads.html 2.将jdk1.7 ...

  6. Rocket - tilelink - first

    https://mp.weixin.qq.com/s/0nzkV4K1osNEQzrtITYxmw   介绍Edges中first/last/done的实现.   ​​   1. firstlastH ...

  7. ActiveMQ 笔记(六)ActiveMQ的消息存储和持久化

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.持久化机制 1.Activemq持久化 1.1 什么是持久化: 持久化就是高可用的机制,即使服务器宕 ...

  8. Java实现 LeetCode 766 托普利茨矩阵(暴力)

    766. 托普利茨矩阵 如果一个矩阵的每一方向由左上到右下的对角线上具有相同元素,那么这个矩阵是托普利茨矩阵. 给定一个 M x N 的矩阵,当且仅当它是托普利茨矩阵时返回 True. 示例 1: 输 ...

  9. (Java实现) 车站

    题目描述 火车从始发站(称为第1站)开出,在始发站上车的人数为a,然后到达第2站,在第2站有人上.下车,但上.下车的人数相同,因此在第2站开出时(即在到达第3站之前)车上的人数保持为a人.从第3站起( ...

  10. Java实现 LeetCode 233 数字 1 的个数

    233. 数字 1 的个数 给定一个整数 n,计算所有小于等于 n 的非负整数中数字 1 出现的个数. 示例: 输入: 13 输出: 6 解释: 数字 1 出现在以下数字中: 1, 10, 11, 1 ...