web如何测试?
功能测试:
一、链接测试
链接是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,观察页面是否可以访问)
2、权限:不同角色权限检查
测试权限思路:使用不同权限的账号登录系统,检查是否满足特定的账号访问特定的权限,比如互联网金融理财平台中,使用管理员可以访问系统管理的页面,使用其他账户不可以访问系统管理的页面。
3、session、cookie
避免文件中保存敏感信息到cookie
DDOS:疯狂向服务器发请求,导致服务器崩溃、使得服务器无法正常处理请求。
4、文件上传漏洞:上传了脚本文件、导致访问脚本文件的时候,执行了里面的脚本,从而暴露安全信息(如:暴露目录结构)、是否可以上传非支持的文件格式;<?php phpinfo();?>等
避免文件上传漏洞:
文件上传的过滤:
文件上传的过滤 通过后缀名、通过二进制来判断类型
通过二进制来判断类型
修改服务器核心参数、禁止脚本引擎运行系统命令
xss跨站攻击
恶意攻击者往web页面里面插入恶意script代码,当用户浏览该页的时候,嵌入web里面的script/html代码会被执行,从而达到恶意攻击的目的<script>alert(‘...’)</script>
避免xss跨站攻击:
最基本最简单的方法通过replace语句过滤‘<’和’>’
通过代码语句过滤html属性
过滤特殊字符
5、sql注入:通过在url中拼接sql来访问数据库,获取、修改服务器数据库的内容
获取字段个数
获取数据库名称
获取表名
获取字段名
获取字段值
预防sql注入:采用预编译语句、使用正则表达式过滤传入的参数、字符串过滤
功能点如何测试:
1、关联业务:对后续业务影响,业务关联性考虑
2、UI层面:d 控件的测试、文本框录入字符限制、长度、类型、按钮、链接
3、数据层面:界面上录入数据到数据库中存储,结果的校验。
4、拓展的测试面:前端分析、可用性、兼容性、性能、安全性等