一、什么是Web测试
由于web应用与用户直接相关,又通常需要承受长时间的大量操作,因此web项目的功能和性能都必须经过可靠的验证。这就要经过web项目的全面测试。Web应用程序测试与其它任何一种类型的应用程序测试相比没有太大差别。
二、测试类型
单元测试、集成测试、UI测试、功能测试、性能测试、可用性测试(接口测试)、兼容性、安全性
三、几款常用测试工具推荐
1、负载测试工具Loadrunner
LoadRunner是一种预测系统行为和性能的负载测试工具。
2、全球测试管理系统testdirector
3、单元测试工具xUnit系列
目前的最流行的单元测试工具是xUnit系列框架,常用的根据语言不同分为JUnit(java),CppUnit(C++),DUnit (Delphi ),NUnit(.net),PhpUnit(Php )等等。
4、功能和性能测试的工具JMeter
JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现。
四、Web测试通用测试点提取
其实,Web测试综合分析、整理、提取,涉及到的内容就那些;善于提取通用测试点,既能提高工作效率,还可以充分保障测试覆盖度,且能指导团队测试新人~
Web功能测试
1、链接测试
1)测试所有链接是否按指示的那样确实链接到了该链接的页面
2)测试所链接的页面是否存在
3)测试web应用系统上没有孤立的页面
2、表单测试
表单一般指在界面进行数据提交操作的,包括新增和修改数据。它涉及到的测试包括以下方面:
1)输入框测试
长度、数据类型、必填、重复、空格、sql注入以及一些业务相关约束。
2)下拉框测试
默认值、数据完整性/正确性、第一个/最后一个/中间一个选取、手动输入值模糊匹配、联动选择;业务常见选取的操作。
3)图片、视频、excel、txt等文件上传测试
大小、尺寸、格式、数量、文件内容规则验证。
4)表单提交按钮测试
是否支持回车/单击、快速多次点击是否重复提交表单、网络中断(弱网)提交、提交之后是否有提示、提交后内容是否加密、提交是否做权限校验控制、多人针对表单同时操作的场景测试。
3.数据校对
如果系统根据业务规则需要对用户输入进行校验,需要保证这些校验功能正常工作。
例如省份的字段可以用一个有效列表进行校验,在这种情况下,需要验证列表完整而且程序正确调用了该列表(例如在列表中添加一个测试值,确定系统能够接受这个测试值)。
在测试表单时,该项测试和表单测试可能会有一些重复。
Cookies通常用来存储用户信息和用户在某应用系统的操作,当一个用户使用Cokies访问了某一个应用系统时,Web服务器将发送关于用户的信息,把该信息以Cookies的形式存储在客户端计算机上,这可用来创建动态和自定义页面或者存储登陆等信息。
如果 Web应用系统使用了Cookies,就必须检查Cookies是否能正常工作。测试的内容可包括:
1)Cookeis是否起作用,是否按预定的时间进行保存,刷新对Cookies有什么影响等。
2)如果在cookies 中保存了注册信息,请确认该cookie 能够正常工作而且已对这些信息已经加密。
3)如果使用 cookie来统计次数,需要验证次数累计正确。
4.数据库测试
在web应用技术中,数据库就是一个“仓库”,我们在进行功能测试的任何操作都可以归溯到是对于数据库的增删改查。
所以,数据库测试实际就是通过前面讲过的测试手段来完成、只不过关注点是数据库表及表字段值的变化。
1、数据库脚本执行—数据库表添加、修改是否正常
2、页面提交表单、修改、查询、删除 —数据库表信息是否正常
5.流程测试
最重要的是,测试人员需要对应用程序用户常见使用场景进行测试。
尝试用户可能进行的所有操作:新增、修改、删除、查询等等。
例如购物网站测试,需要进行注册用户(新增)、浏览商品(查询)、加入购物车下订单(新增)、删除订单(删除)、在线支付等等。
Web界面测试
界面测试可以直接参考原型图和切图设计进行界面核对。有几个常见的部分如下:
1.导航测试
导航测试,就是在不同的页面跳转之间,或者按钮、对话框、列表以及窗口等,通过考虑这些因素去判断一个应用是否易于导航:是否直观?系统的主要模块是否可以通过主页访问或者到达?站点是否需要站内地图或者搜索引擎等其他帮助?web系统导航的另外一个重点就是页面结构、导航、菜单、风格等是否一致,确保用户可以凭借直觉或者简单的判断就可以找到自己想要的内容。
2.图形测试
也可以理解为UI测试,其中包括图片、动画、边框、颜色、字体、背景、按钮等等。
注: 其中要考虑的几个重点,我做了一个大概的总结:
a、图片要有明确的用途,代表;图片尺寸尽量小,一般采用JPG或者GIF压缩(即规格大小的限制)
b、页面整体风格是否和系统的用途一致
c、背景颜色,字体,搭配是否合理
3.表格测试
1)需要验证表格是否设置正确。
2)用户是否需要向右滚动页面才能看见产品的价格?细节放在右边是否更有效?
3)每一栏的宽度是否是够宽, 表格里的文字是否都有折行?是否有因为某一格的内容太多,而将整行的内容拉长?
4.整体界面测试
a、 这个也就是我们常说的用户体验。用户浏览时是否感觉舒适,整体风格等等。
b、建议一般做一个类似问卷调查的形式,来判定用户的反馈信息,最好有最终用户的参与,可参考类似的笔记哦啊普遍的系统风格是怎样的,结合实际来考虑本测试系统的风格。
Web性能测试
1.连接速度测试
用户连接到Web应用系统的速度根据上网方式的变化而变化,他们或许是电话拨号,或是宽带上网。
当下载一个程序时,用户可以等较长的时间,但如果仅仅访问一个页面,若响应时间太长(例如超过5秒钟),用户就会因没有耐心等待而离开。
另外,有些页面有超时的限制,如果响应速度太慢,用户可能还没来得及浏览内容,就需要重新登陆了。而且,连接速度太慢,还可能引起数据丢失,使用户得不到真实的页面。
对于响应时间,业间遵循2-5-8原则。
2.负载压力测试
在这里的负载\压力和功能测试中的不同,他是系统测试的内容。
基本功能已经通过后进行的,可以在集成测试阶段,亦可以在系统测试阶段进行。
通过该项测试用以检测死机、崩损、内存泄漏问题等。因为有些存在内存泄漏问题的程序,在运行一两次时可能不会出现问题,但是如果运行了成千上万次,内存泄漏得越来越多,就会导致系统崩滑。
使用负载测试工具loadrunner、Jmeter 等,虚拟一定数量的用户看一看系统的表现,是否满足定义中的指标。主要的测试场最如下:
1)验证系统能否在同一时间响应大量的用户。
2)在用户传送大量数据的时候系统能否正常响应。
3)正并负载情况下,系统能否长时间运行。
可访问性对用户来说是极其重要的。如果用户得到“系统忙”的信息,他们可能放弃:并转向竞争对手。
系统检测不仅要使用户能够正常访问站点,在很多情况下,可能会有黑客试图通过发送大量数据包来攻击服务器。
出于安全的原因,测试人员应法知道当系统过载时,需要采取哪些措施,而不是简单地提升系统性能。
Web 兼容性测试
兼容性,因为是基于效览器的,所以一般还是以常用浏览器兼容性测试为主。
a、平台兼容
在有很多的操作系统,比如Windows、Unix、Linux、macintosh等;用户使用哪个系统取决于用户,因此,系统兼容测试就很有必要了。
b、浏览器兼容
浏览器是web客户端最核心的组件,不同的浏览器,对Java,JavaScript,css或者HTML的规格都有不同的支持;
另外,采用的框架和结构风格在不同浏览器中也存在不同的显示甚至不显示,不同的浏览器对安全性的设置也是不同的。
测试浏览器兼容,有个方法就是创建一个兼容性矩阵,来测试不同厂商不同版本的浏览器兼容。
比如测试IE浏览器,可以通过一个叫做IEtester的工具来测试兼容,或者可以通过F12控制台来切换浏览器版本来测试兼容以前一些前端元素的显示等。
鉴于国内市场浏览器很多,比如360、搜狗,搜狐、QQ浏览器等,这些本土的浏览器基本都采用的IE浏览器内核的双核配置。
Web的安全测试
安全测试的主要区域有以下几点:
a、现在很多web应用系统都采用先注册后登录的方式,因此,测试用户名和密码的有效无效性,注意大小写敏感,次数限制,是否可以不登录而浏览某些页面等。
你需要验证系统阻止非法的用户名/口令登录,而能够通过有效登录。
1)用户登录是否有次数限制?
2)是否限制从某些IP 地址登录?
3)如果允许登录失败的次数为3,在第三次登录的时候输入正确的用户名和口令, 能通过验证吗?
4)口令选择有规则限制吗?
5)是否可以不登陆而直接浏览某个页面?
6)Web应用系统是否有超时的限制,也就是说,用户登陆后在一定时间内(例如15分钟)没有点击任何页面,是否需要重新登陆才能正常使用。
b、是否有超时限制,链接分享,cookie劫持
Web安全的第一步就是正确设置目录。 每个目录下应该有index.html 或main.html页面,这样就不会显示该目录下的所有内容。
有些公司没有执行这条规则。大家可以尝试选中一幅图片,单击鼠标右键,找到该图片所在的路径“....com/objects/images”。然后在浏览器地址栏中手工输入该路径,会不会发现该站点的其他信息。例如保存过期页面记录信息。
很多站点使用SSL进行安全传送。你知道你进入一个SSL站点是因为浏览器出现了警告消息,而且在地址栏中的HTTP变成HTTPS。
如果开发部门使用了SSL,测试人员需要确定是否有相应的替代页面(适用于3.0以下版本的浏览器,这些浏览器不支持SSL)。
当用户进入或离开安全站点的时候,请确认有相应的提示信息。是否有连接时间限制?超过限制时间后出现什么情况?
c、测试用户操作时相关信息是否写入了日志文件、是否可追踪等
在后台,要注意验证服务器日志工作正常。
1)日志是否记所有的事务处理?
2)是否记录失败、错误的页面请求?
3)是否在每次事务完成的时候都进行保存?记录IP地址吗?记录用户名吗?
d、如果使用了安全套字,需要测试加密是否正确,加密前后的信息完整性,正确性
e、没有经过授权,是否可以在服务器端或者前端放置和编辑脚本的问题
脚本语言是常见的安全隐患。每种语言的细节有所不同。
有些脚本允许访问根目录,其他只允许访问邮件服务器。
但是经验丰富的黑客可以将服务器用户名和口令发送给他们自己。
找出站点使用了哪些脚本语言,并研究该语言的缺陷。
还要需要测试没有经过授权,就不能在服务器端放置和编辑脚本的问题。
f、输入框的SQL注入验证
总结:
Web系统测试与传统的软件测试既有相同之处,也有不同的地方,对软件测试提出了新的挑战。基于Web的系统测试不但需要检查和验证是否按照设计的要求运行,而且还要评价系统在不同用户的浏览器端的显示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性测试,其中安全性还涉及到SQL注入及防范、Xss跨站攻击、DDOS拒绝服务攻击等等。
欢迎加入 51软件测试大家庭,在这里你将获得【最新行业资讯】,【免费测试工具安装包】,【软件测试技术干货】,【面试求职技巧】... 51与你共同学习,一起成长!期待你的加入: QQ 群: 755431660