《测试教学课件电子教案.pptx》由会员分享,可在线阅读,更多相关《测试教学课件电子教案.pptx(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第9章 Web测试软件测试技术董皊本书目录第1章 软件测试概述第2章 软件测试流程和过程模型第3章 软件测试计划第4章 测试用例概述第5章 高效设计测试用例第6章 软件缺陷报告第7章 软件测试报告第8章 易用性测试第10章 测试人员的软技能第9章 Web测试【一道常见的面试题】给你一个网站,你如何着手进行测试?第9章 Web测试Web测试时软件测试的一部分,是针对Web应用的一类测试。Web网页是由文字、图形、声音、视频和超链接等组成的文档页面。网络客户端用户通过浏览器中的操作,搜索浏览所需要的信息资源。服务器后台主要是用于对网站前台的信息管理,如文字、图片、影音和其他日常使用文件的发布、更新
2、、删除等操作,同时也包括对网站数据库的管理及网站的各种配置。由于Web具有分布、异构、并发和平台无关的特性,因此它的测试要比普通程序复杂的多。它不但需要检查和验证是否按照设计的要求运行,而且还要测试系统在不同用户的浏览器端的显示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性测试。由于Web应用与用户直接相关,又通常需要承受长时间的大量操作,因此Web项目的功能和性能都必须经过可靠的验证。第9章 Web测试几个方面:9.1 页面内容测试9.2 功能测试9.3 性能测试9.4 图形用户界面测试9.5 配置和兼容性测试9.6 安全性测试9.7 数据库测试9.8 接口测试9.1 页面内容的
3、测试正确性:信息必须真实可靠,不能胡乱编造。准确性:网页文字表述要准确,不能有语法或拼写错误。可以使用自动化测试工具, 如QTP来对比实际结果和预期结果之间的差异。或者Word的“拼音与语法检查”功能登录、登陆 搜索、查找 记录、纪录相关性:能否在当前页面找到与当前浏览信息相关的信息列表入口,“相关文章列表”是否列出了相关内容的站点链接。文字标签上的内容。9.2 功能测试黑盒测试方法关注点:链接、表单、Cookies、设计语言9.2.1 链接测试链接是否链接到了正确的页面所要链接的页面是否存在保证没有孤立页面。Xenu Link Sleuth9.2.2 表单测试表单通常包含的元素有:文本框、密
4、码框、列表框、复选框、单选框、下拉列表、提交按钮、复位按钮等。在第8章中详解介绍了他们的易用性测试清单。除此之外,针对他们设计功能测试用例,相信大家都有一箩筐的方法:边界值、等价类划分、正交法、判定表法等等。但所有这些元素的组成的表单,功能测试时都重点考虑哪些方面呢?9.2.2 表单测试概括来说,表单测试主要考虑以下几个方面的测试内容:(1)表单提交应当模拟用户提交,验证是否实现表单功能。如使用表单进行在线注册,要确保注册按钮能正常工作,注册完成后可以返回注册成功的消息。(2)要验证服务器能正确保存所提交的数据,而且后台运行的程序能正确解释和使用这些信息。当用户使用表单进行用户注册、登录、信息
5、提交等操作时,必须测试提交操作的完整性,以检验提交给服务器的信息的正确性。(3)要验证数据的正确性和异常情况的处理能力等。在测试表单时会涉及数据校验问题。比如省份的字段可以用一个有效列表来进行校验。如果根据已定的规则需要对用户输入进行校验,需要保证列表完整而且程序正确调用了该列表。例如在列表中添加一个测试值,要确定系统能够接受这个测试值。(4)提交数据、处理数据等操作,如果有固定操作流程可以考虑使用自动化测试,比如QTP、Selenium等工具都可以。编写可重复使用的脚本代码,这样就可以在回归测试时使用,以减轻测试人员的工作量。9.2.3 Cookies测试Cookie通常用于存储用户信息和用
6、户在某些应用系统的操作,当用户使用Cookie访问某些页面时,Web服务器将发送关于用户的信息,把该信息以Cookie的形式存储在客户端计算机上,可用来创建动态和自定义页面,或者存储登录信息等。9.2.3 Cookies测试Cookie是否起作用;是否按预定的时间进行保存;测试Cookie的有效时间;刷新对Cookie有什么影响;开多个浏览器检查Cookie的保存情况等IECookiesView9.2.4 设计语言的测试Web设计语言版本的差异可以引起客户端或服务器端的严重问题。例如使用不同版本的HTML,当在分布式环境中开发时,开发人员都不在一起,这个问题就显得尤为重要。除了HTML的版本问
7、题外,不同的脚本语言,例如Java、JavaScript、ActiveX、VBScript或Perl等也要进行验证。关于设计语言的测试,应该注意以下几个方面:(1)与浏览器的兼容性。不同的浏览器内核引擎不同,导致不同的开发语言与浏览器的兼容情况也不同,当前主流浏览器的引擎有Trident、Tasman、Pesto、Gecko、KHTML、WebCore和WebKit。(2)与平台的兼容性。不同脚本语言与操作系统平台的兼容性也有所不同,测试过程中必须考虑对不同操作系统平台的兼容,即脚本的可移植性。(3)执行时间。由于不同脚本语言执行的方式不同,所以其执行的时间也不同。(4)嵌入其他语言的能力。有
8、一些操作脚本语言无法实现,如读取客户端的信息,此时即需要使用其他语言来实现,即测试过程中应该考虑当前脚本语言对其他语言的支持程度。(5)数据库支持的程度。考虑系统数据库可能升级的问题,测试时需要考虑脚本语言支持数据库的完善程度。9.3性能测试性能测试通常关注以下情形:瞬间访问高峰:瞬间访问高峰:比如电视台的Web站点,如果某个收视率极高的电视选秀节目正在直播并进行网上投票,那么在该时段就可能会有上百万甚至上千万的请求。如果您的站点用于公布彩票的抽奖结果,最好使系统在中奖号码公布之后的一段时间内能够响应上百万的请求。每个用户传送大量数据:每个用户传送大量数据:网上购物过程中,一个终端用户可能会一
9、次性购买大量的商品。比如一个大学书店可能会订购5000本有关软件测试的课本。系统能处理单个用户的大量数据吗?长时间的使用:长时间的使用:这个是指网站的稳定性。比如一个用于鲜花预定的网站,至少希望它在情人节或母亲节前后一周内能持续稳定运行。9.3.1负载测试负载测试主要是为了测试Web系统在某一负载级别上的性能,以保证系统能在同一时间响应大量的用户,在需求范围内能够正常工作。负载数量可以是某个时刻同时访问Web系统的并发用户数量,也可以是在线数据处理的数量。例如:Web应用系统能允许多少个用户同时在线?如果超过了这个数量,会出现什么现象?Web应用系统能否处理大量用户对同一个页面的请求?负载测试
10、的作用是在软件产品投向市场以前,预先分析软件可以承受的并发用户的数量极限和性能极限,以便更好地优化软件。9.3.2压力测试进行压力测试是指通过破坏一个Web应用系统,测试系统的反映。压力测试是测试系统的限制和故障恢复能力,也就是测试Web应用系统在极端情况下会不会崩溃,在什么情况下会崩溃。压力测试的区域包括表单、登录和其他信息传输页面等。9.3.3连接速度测试连接速度测试就是打开网页的响应速度测试。用户对Web响应的容忍度遵循3-5-8原则:LoadRunner9.4 安全性测试9.4.1目录设置9.4.2SSL/TLS9.4.3登录9.4.4日志文件9.4.5脚本语言9.4.1 目录设置We
11、b安全的第一步就是正确设置目录。每个目录下应该有index.html或main.html页面,这样就不会显示该目录下的所有内容。日常生活中,很多应用系统都可以通过一些小手段看到本不该出现的数据信息。比如通过某商品的图片属性查看其网络路径,有时候会显示全路径,然后通过复制其上一级路径并打开,可以查看到上级目录中所有图片信息列表。如果测试工程师发现类似的问题,应当及时提出缺陷。可以使用IBM的AppScan扫描Web系统中存在的目录安全问题9.4.2 SSL/TLS很多站点使用SSL(Security Socket Layer,安全套接字协议层)及其继任者TLS(Transport Layer S
12、ecurity,传输层安全协议层)进行安全协议传送。SSL是由Netscape首先发表的网络数据安全传输协议,它利用公开密钥/私有密钥的加密技术,位于HTTP层和TCP层之间,建立用户和服务器之间的加密通信,用以保障在Internet上数据传输的安全。利用数据加密(Encryption)技术,可确保数据在网络上的传输过程中不会被截取及窃听。当浏览器出现了警告消息,点击却进入一个SSL站点,而且在地址栏中的HTTP变成了HTTPS的时候,就是使用了SSL。如果开发部门使用了SSL,测试人员需要确定是否有相应的替代页面。当用户进入或离开安全站点的时候,请确认有相应的提示信息,是否有连接时间限制?超
13、出限制时间后出现什么情况?SSL/TLS的测试首选的测试工具是TestSSL.sh,它涵盖了TLS和SSL评估所需的所有测试所需操作,并定期更新。感兴趣的同学可以自行学习该工具的使用。9.4.3登录有些站点需要用户进行登录,以验证他们的身份,同时要阻止非法用户登录。测试人员需要验证系统能够阻止非法的用户名/口令登录,而同时能够使有效登录通过。登录的主要测试内容有:(1)测试用户名和输入密码是否有大小写区别。(2)测试有效和无效的用户名和密码。(3)测试用户登录是否有次数限制,是否限制从某些IP地址登录。(4)如果允许登录失败的次数为3,在第3次登录的时候输入正确的用户名和口令,测试是否都能通过
14、验证。(5)测试口令选择是否有规则限制。(6)测试哪些网页可以不登录而直接浏览。(7)测试Web应用系统是否有超时的限制,也就是说,用户登录后在一定时间内(例如15分钟)没有点击任何页面,是否需要重新登录才能正常使用。9.4.4日志文件为了保证Web应用系统的安全性,日志文件是至关重要的。需要测试相关信息是否写进了日志文件、是否可追踪。在后台,要注意验证服务器日志工作正常,日志文件的主要测试内容有:(1)日志是否记录了所有的事务处理(2)在每个事务处理时,CPU的占用率是否很高(3)是否有例外的进程占用(4)是否记录失败的注册企图(5)是否记录被盗信用卡的使用(6)是否在每次事务完成的时候都进
15、行保存(7)是否记录IP地址(8)是否记录用户名等9.4.5 脚本语言脚本语言是常见的安全隐患。每种语言的细节都有所不同,有些脚本允许访问根目录。其它脚本语言只允许访问邮件服务器,但是经验丰富的黑客可以将服务器用户名和口令发送给他们自己,找出站点使用了哪些脚本语言,并研究该语言的缺陷。因此,脚本语言安全性在测试过程中也必须被考虑到。以上是常见的安全测试的内容。常用的安全测试方法有:认证与授权、session和cookies、文件上传漏洞、缓存溢出漏洞、SQL注入漏洞、XSS跨站脚本攻击、DDos分布式拒绝服务攻击等内容。不同的安全测试方法有不同的测试工具,实在是太多啦。这同性能测试一样,也是一
16、门比较深刻的课题,读者可以拓展学习,也可以以此作为未来职业规划的一个研究方向。当然,实际工作中如果需要高级的安全测试,也可以外包给专业安全公司去执行测试。9.5图形用户界面GUI测试1.站点地图和导航条新用户在网站中可能会迷失方向,站点地图和导航条可以引导用户进行浏览。站点地图和导航(Navigation)为网站的访问者提供一定的途径,使其可以方便地访问所需要的内容。网站导航表现为网站的栏目菜单设置、辅助菜单、在线帮助等形式。对于站点地图和导航条的测试,可以从如下方面着手:(1)测试站点地图和导航条位置是否合理,是否可以导航。(2)测试滚动条等简介说明和内容布局是否合理。(3)确认测试的站点是
17、否有地图,有些网络高手可以直接去自己要去的地方,而不必打开许多页面。(4)验证站点地图是否正确,确认地图上的链接是否确实存在,地图是否包括站点上的所有链接。9.5图形用户界面GUI测试2.使用说明一般要确保网页具有使用说明,因为即使非常简单的网站,也很可能有用户在某些方面需要证实一下。测试人员需要测试说明文档,验证文字是否合理、是否正确。可以根据说明进行操作,确认出现错误的结果。3.背景/颜色要验证背景颜色是否合理,是否符合用户需求。很多人把Web看作是图形设计作品,常常忽略了页面背景颜色是否易于浏览。比如,在紫色图片的背景上显示黄色的文本,这种页面显得“过于高贵”,但是看起来却很费劲。通常来
18、说,使用少许或尽量不使用背景是个不错的选择,如果想用背景色,最好使用单色,和导航条一起放在页面的左边。背景色要与字体颜色和前景色相搭配。4.图片无论作为屏幕的聚焦点或作为指引的小图标,一张图片都胜过千言万语。适当的图片和动画既能起到广告宣传的作用,又能起到美化页面的功能。有时,告诉用户一个东西的最好办法就是将它用图片的形式展示给用户。但是,宽带对客户端或服务器来说都是非常宝贵的,所以要注意节约使用内存,不要将大图片放在首页上,因为这样会使用户放弃下载首页,而且当网页无法载入图片时,一般会在其位置上显示错误提示信息或者图片的Alt属性。这会影响用户的使用。要确保图片有明确的用途,是否所有的图片对
19、所在的页面都是有价值的,或者它们只是浪费带宽?图片或动画不要胡乱地堆在一起,以免浪费传输时间。Web应用系统的图片尺寸要尽量地小,一般采用JPG或GIF压缩,最好能使图片的大小减小到39k以下;并且要能清楚地说明某件事情。9.5图形用户界面GUI测试5. 表格表格需要验证表格是否设置正确;用户是否需要向右滚动页面才能看见产品的规格;把价格放在左边,而把产品细节放在右边是否有效;每一栏的宽度是否足够宽,表格里的文字是否都有折行;是否有因为某一格的内容太多,而将整行的内容拉长。6. 文字回绕文字回绕需要验证文字回绕是否正确。如果说明文字指向右边的图片,应该确保图片出现在右边,不要因为使用图片而使窗
20、口和段落排列古怪或者出现孤行。验证所有页面字体的风格是否一致,过多地使用粗斜体、大号字体和下划线会令人感到不舒服,甚至降低用户的阅读兴趣。7. 整体界面整体界面整体界面是指整个Web应用系统的页面结构设计,是给用户的一个整体感。这部分内容详见第8章易用性测试。9.6 配置和兼容性测试配置测试是指使用各种硬件来测试软件运行的过程。基于标准Windows的PC机有很多配置的可能性,比如:PC机、模块化部件、外部设备、接口、可选项和内存、设备驱动程序等。兼容性测试是指检查软件之间是否能够正确地交互和共享信息。例如,不同的浏览器在图片的显示、HTML语言的解释上有细微的差异,可能导致应用程序的错误。配
21、置和兼容性测试需要验证应用程序可以在用户使用的机器上运行。如果用户是全球范围的,需要测试各种操作系统、浏览器、视频设备和Modem的速度,最后,还要尝试各种设置的组合。9.6 配置和兼容性测试配置和兼容性测试主要考虑:浏览器兼容性、操作系统兼容性、软件平台的兼容性以及数据库的兼容性。9.7 数据库测试数据库测试的主要因素有:数据完整性、数据有效性和数据操作和更新。数据的完整性:测试的重点是检测数据损坏程度。开始时,损坏的数据很少,但随着时间的推移和数据处理次数的增多,问题会越来越严重。设定适当的检查点可以减轻数据损坏的程度。比如,检查事务日志以便及时掌握数据库的变化情况。数据的有效性:数据有效
22、性能确保信息的正确性,使得前台用户和数据库之间传送的数据是准确的。在工作流上的变化点上检测数据库,跟踪变化的数据库,判断其正确性。数据操作和更新:根据数据库的特性,数据库管理员可以对数据进行各种不受限制的管理操作。具体包括:增加记录、删除记录、更新某些特定的字段。9.7 数据库测试对数据库相关方面的测试需要注意以下方面。(1)数据库设计的测试糟糕的表结构设计还可能会导致很差的性能表现。例如没有合理地设置主键和索引则可能导致查询速度大大降低。没有合理地选择数据类型也可能导致排序性能降低。(2)SQL代码规范性测试SQL语句、存储过程、函数、视图等语句的编写是否规范可能对查询性能、可维护性等产生一
23、定的影响。测试人员可适当利用一些工具来帮助检查SQL代码的规范性。例如,SQL Best Practies Analyzer,简称SQL BPA9.7 数据库测试对数据库相关方面的测试需要注意以下方面。(3)SQL语句效率测试SQL的执行效率是影响系统整体性能的关键因素之一,尤其是在数据量比较大的情况下。SQL的编写方法不同,数据库的执行计划会有所差别,执行的效率也不一样。因此需要进行效率测试,分析SQL代码的执行效率瓶颈。可借助一些工具来分析SQL语句的执行效率,如果使用的是SQL Server数据库,可借助SQL Server自带的事件探查器和查询分析器。在SQL查询分析器中还能查看SQL
24、语句的执行计划,分析SQL语句的执行过程以及每一部分的成本。其他类型的数据库也有类似的分析工具。LECCO SQLExpert是一款可以自动分析SQL语句的执行效率并提出建议的可改进的SQL语句写法的工具,同时比较语句之间的执行时间差异。(4)SQL数据库兼容性测试SQL兼容性测试是那些需要支持多种类型数据库产品的软件系统可能要进行的测试。不同的数据库类型之间存在很多差异,虽然很多数据库厂商都声称支持标准SQL,但是在实现上还是存在很多差异。例如SQL Server和Oracle之间就存在很多差异。有很多函数是SQL Server和Oracle都有的,但是实现的功能有所区别。有些函数实现了相同
25、的功能,但是函数名称和参数不一致。SQL数据库兼容性可以与SQL标准规范进行比较、对不同的数据库自动执行SQL语句,根据结果判断是否兼容,SQL数据库兼容性的测试主要有以下两种方法。第1种方法主要是对软件系统中执行的所有SQL语句进行审查,看是否只能在指定的数据库执行,而不能兼容其他类型的数据库,审查主要通过将SQL语句与标准的SQL-92或SQL-99规范进行对比。第2种方法是对不同的数据库自动执行SQL语句,根据结果判断是否兼容。这种方法是把SQL语句在需要兼容的数据库上逐一执行,根据返回结果判断是否兼容SQL语句。9.8 接口测试所谓的接口测试是测试组件间接口的一种测试,主要用于检测外部
26、系统与系统之间以及内部各个子系统之间的交互点。测试的重点是检查数据的交换、传递和控制管理过程,以及系统间的相互逻辑依赖关系等。我们对接口的操作最终会发送到数据库,也就是对数据库进行一些增、删、改、查的操作。接口测试最容易被测试人员忽略的地方就是接口错误处理。通常我们试图确认系统能够处理所有错误,但却无法预期系统所有可能的错误。尝试在处理过程中中断事务,看看会发生什么情况?系统能否正确处理这些错误?如果用户自己中断事务处理,在订单已保存而用户没有返回网站确认的时候,需要由客户代表致电用户进行订单确认。采取的措施是:在理解需求的基础上,充分发挥想象力,尽量比较全面的列出各种异常情况。接口测试可以根
27、据开发人员提供的接口文档进行测试,接口文档中需要包括一些参数,如:URL、接口说明、请求方式、入参、出参、请求和返回的样例,以及状态码说明等内容。对于这些内容的概念,读者在做接口测试之前需要提前了解。接口测试需要结合工具进行,可以进行接口测试的工具很多,浏览器方面的推荐Firefox的Firebug和Chrome自带的开发者工具,快捷键都是F12,如:Poster:火狐浏览器自带接口测试工具,插件中安装即可,界面简单明了,容易上手。Postman:谷歌浏览器的扩展工具,在谷歌商店中选中安装,界面同Poster差别不大,界面简洁。工具方面,可以推荐的有LoadRunner、Jmeter、Http
28、Client和SoapUI。接口的持续集成可以采取:Jmeter+Jenkins+Ant的组合进行开篇的题目答案给你一个网站你如何开展测试?我们可以结合前面几个章节中的软件测试的流程以及本章所讲述的知识点来回答这个问题:1. 首先,我们需要查找需求说明、网站设计等相关文档,分析测试需求。2. 然后制定测试计划。确定测试范围和测试策略,一般包括如下几个部分:(1)对Web网站的页面内容进行测试,保证内容的正确性、准确性和相关性。(2)检测网站功能的正确性(功能测试):包括链接测试、表单测试、Cookies测试、设计语言的测试。(3)确保网站服务器在规定的参数内响应浏览器的请求(性能测试):负载测
29、试评估网站满足负载要求的能力,评估系统在处理大量用户的并发要求时的功能如何;压力测试是使系统能满足不同的负载;连接速度测试则是对打开网页的响应速度进行测试。(4)确保重要和机密信息的安全性(安全性测试):目录设置、SSL、基本的登录功能的检查、日志文件、相关脚本语言的常见安全性问题检查,例如SQL注入等,试图找到应用程序的安全缺陷。如果需要高级的安全性测试,可以寻求专业安全公司的帮助,外包测试或者获取测试支持。(5)通过图形用户界面测试,观察用户与站点的交互,评估一个站点是否用户友好。(6)配置和兼容性测试保证应用程序在各种硬件和软件环境下的功能正确:根据需求说明的内容,确定支持的平台组合。浏
30、览器的兼容性、操作系统的兼容性、软件平台的兼容性。(7)数据库测试,检查数据的完整性:数据库测试要决定是否真的需要开展。数据库一般需要考虑连接性,对数据的存取操作,数据内容的验证等方面。(8)接口测试确保各部分功能联调成功。3. 设计测试用例:根据测试用例的设计方法来设计测试用例。4. 开展测试:执行测试并记录Bug,合理的安排调整测试进度,提前获取测试所需的资源,建立管理体系(如:需求变更、风险、配置、测试文档、缺陷报告、人力资源等内容。)5. 编写测试总结报告:对测试进行评估和总结,编写软件测试总结报告。本章讲解了Web网站的测试内容,这里的每一个测试内容都是一个独立的测试课题,一个明确的
31、测试发展方向,读者可以在本文的基础上对自己感兴趣的领域深入研究,成为该领域的专家。很难要求一个测试人员对这些全部都要擅长,这通常会由团队合作完成。常见题目一、单选题(1)以下哪一项不属于页面内容的测试?()A.正确性B.准确性C.相关性D.美观性(2)以下哪一项不是性能测试的测试方法?()A.压力测试B.负载测试C.连接速度测试D.数据库测试二、多选题(1)Web功能测试的关注点有哪些?()A.链接测试B.表单测试C.Cookies测试D.设计语言测试(2)关于页面链接测试说法正确的是()A.测试所有链接是否链接到了正确的页面上B.测试所链接的页面是否存在C.测试是否有孤立页面D.页面链接测试
32、可以使用工具进行,比如HttpClient、SoapUI等常见题目(3)性能测试通常的关注情形有哪些?()A.瞬间访问高峰B.每个用户传送大量数据C.长时间的使用D.单用户单交易的情形三、判断题(1)配置测试是指使用各种硬件来测试软件运行的过程。兼容性测试是指检查软件之间是否能够正确地交互和共享信息。()(2)测试人员需要验证系统阻止非法的用户名/口令登录,而能够通过有效登录。()(3)数据库测试的主要因素有:数据完整性、数据有效性、数据操作和更新。需要注意以下几个方面:数据库设计的测试、SQL代码规范性测试、SQL语句效率测试、SQL数据库兼容性测试。()(4)接口测试其实是功能测试的一种,只不过我们采用测试接口的方式进行。接口测试可以发现一些页面操作发现不了的问题。()下节更精彩