系统测试案例分析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Page 11
测试策略
1) 单机测试环境
2) 集群测试环境
Page 12
测试结果
客户端性能测试结果
客户端性能提升:120并发用户:19倍以上 240并发用户:3倍以上
Page 13
测试结果-单机环境的服务器端性能-A
CPU占用率递增50%
Page 14
测试结果-单机环境的服务器端性能-B/C
使用2台笔记本电脑安装测试工具模拟客户端执行“登
录”业务操作。
Page 3
测试目标
1)试系统分别在2M、4M网络宽带下,能够支持用户登录 的最大并发用户数; 2)测试服务器的吞吐量(即:每秒可以处理的交易数), 主要包括服务器CPU平均使用率达到85%时系统能够支持
的最大吞吐量和服务器CPU平均使用率达到100%时系统
如 输入http://duck/index.asp?username=admin' or 1='1&pwd=11,SQL语句会变成以 下:sql=select * from user where username='admin' or 1='1' and password='11'
' 与admin前面的'组成了一个查询条件,即username='admin',接下来的语句将按下一个查 询条件来执行.接 下来是OR查询条件,OR是一个逻辑运 算符,在判断多个条件的时候, 只要一个成立,则等式就成立,后面的AND就不再时行判断了,也就是 说我们绕过了密 码验证,我们只用用户名就可以登录. 如 输入http://duck/index.asp?username=admin'--&pwd=11,SQL语 句会变成以下 sql=select * from user where name='admin' --' and pasword='11', „与admin前面的‟组成了一个查 询条件,即username=„admin‟,接下来的语句将按下一个查 询条件来执行 接下来是“--”查询条件,“--”是忽略或注释,上 述通过连接符注释掉后面的 密码验证。
能够支持的最大吞吐量。 性能需求:指标“响应时间”合理范围为0~5秒。
Page 4
测试策略
1)设计出两种场景2M网络和4M网络环境下进行模拟测试。
2)其中选定登录业务进行测试,加压策略采取逐步加压的
方式。
Page 5
测试结果-2M网络
问题: 1.在满足系统性能指标需求(响应时间0-5秒)时,系统所能承受的最大并发数? 2.2M宽带环境下,CPU使用是否合理?宽带是否是系统瓶颈?
模拟多用户登录《工作流系统》,针对代表性工作流 A/B/C连续创建20个实例。在单机和集群测试环境分别 进行负载压力性能测试。 单机环境下测试用机与一台应用服务器连接在同一交换 机上,压力直接加在一台应用服务器上。 集群环境下测试用机与服务器连接在同一台交换机上, 压力由负载均衡模块分摊到两台应用服务器上,数据服务器 不作集群处理。 测试需求要点: 1) 随着负载的增加,采用集群方案是否对此应用系统有效 2) 服务器资源是否使用合理
Page 27
系统测试小结
• • • • • • • • •
功能测试 性能测试 压力测试 容量测试 安全性测试 用户界面测试 安装/卸载测试 文档测试 回归测试
Page 19
1.SQL注入
1:对于未明显标识在URL中传递参数的,可以通过查看HTML源 代码中的"FORM"标签来辨别是否还有参数传递.在<FORM> 和</FORM>的标签中间的每一个参数传递都有可能被利用.
<form id="form_search" action="/search/" method="get"> <div> <input type="text" name="q" id="search_q" value="" /> <input name="search" type="image" src="/media/images/site/search_btn.gif" /> <a href="/search/" class="fl">Gamefinder</a> </div> </form>
Page 23
2.跨站点脚本攻击—如何预防?
从应用程序的角度: • 对Javascrīpt,VB scrīpt, HTML,ActiveX, Flash等 语句或脚本进行转义. • 在 服务端正式处理之前提交数据的合法性(合法性检查主要包括三项:数据类型,数据 长度,敏感字符的校验)进行检查等。最根本的解决手段,在确认客户端的输入合法之 前,服务端 拒绝进行关键性的处理操作. 从测试人员的角度: • 在需求检查过程中对各输入项或输出项进行类型、长度以及取 值范围进行验证,着 重验证是否对HTML或脚本代码进行了转义。 • 执行测试过程中也应对上述项进行检查。
Page 26
5.错误信息
如何进行目录遍历测试: • 首 先找到一些错误页面,比如404,或500页面。 • 验证在调试未开通过的情况下,是否给出了友好的错误提示信息比如“你访问的页 面不存 在”等,而并非曝露一些程序代码。 如何预防目录遍历? • 测试人员在进行需求检查时,应该对出错信息 进行详细查,比如是否给出了出错信 息,是否给出了正确的出错信息。
Page 24
3. 邮件标头注入
如果表单用于发送email,表单中可能包括“subject”输入项 (邮件标题),我们要验证subject中应能escape掉“\n” 标识。 因为“\n”是新行,如果在subject中输入 “hello\ncc:spamvictim@example.com”, 可能会形成以下 Subject: hello cc: spamvictim@example.com 如果允许用户使用这样的subject,那他可能会给利用这个缺 陷通过我们的平台给其它用 户发送垃圾邮件。
Page 17
案例三 Web项目安全性测试
安全性测试案例分析
WEB的安全性测试主要从以下方面考虑: 1.SQL Injection(SQL注入) 2.Cross-site scritping(XSS):(跨站点脚本攻击) 3.Email Header Injection(邮件标头注入) 4.Directory Traversal(目录遍历) 5.exposed error messages(错误信息)
Page 21
1.SQL注入—如何预防?
从应用程序的角度: • 转义敏感字符及字符串(SQL的敏感字符包括 “exec”,”xp_”,”sp_”,”declare”,”Union”,”cmd”,”+”,”//”,”..”,”;”,”„”,”--”,”%”,”0x”,”><=!-*/()|”, 和”空格”). • 屏蔽出错信息:阻止攻击者知道攻击的结果 • 在服务端正式处理之前提交数据的合法性(合法性检查主要包括三 项:数据类型,数据 长度,敏感字符的校验)进行检查等。最根本的解决手段,在确认客 户端的输入合法之 前,服务端拒绝进行关键性的处理操作. 从测试人员的角度,在程序开发前(即需求阶段),我们就应该有意识的将安全性检查 应用到需求测试中,例如对一个表单需求进行检查时,我们一般检验以下几项安全性问题: • 需求中应说明表单中某一FIELD的类型,长度,以及取值范围(主要作用就是禁止输入 敏感字符) • 需求中应说明如果超出表单规定的类型,长度,以及取值范围的,应用程序应给出不包 含任何代码或数据库信息的错误提示.
Page 22
2.跨站点脚本攻击
首先,找到带有参数传递的URL,如 登录页面,搜索页面,提交评论,发表留言 页面等等。 其次,在页面参数中输入如下语句(如:Javascrīpt,VB scrīpt, HTML,ActiveX, Flash)来进行 测试: <scrīpt>alert(document.cookie)</scrīpt> 最后,当用户浏览 时便会弹出一个警告框,内容显示的是浏览者当前的cookie串,这就说 明该网站存在XSS漏洞。 试想如果我们注入的不是以上这个简单的测试代码,而是一段经常精心设计的恶意脚本, 当用户浏览此帖时,cookie信息就可能成功的被 攻击者获取。此时浏览者的帐号就很容 易被攻击者掌控了。
2:当找不到有输入行为的页面时,可以尝试找一些带有某些参 数的特殊的URL,如 HTTP://DOMAIN/INDEX.ASP?ID=10
Page 20
1.SQL注入
例子:在登录时进行身份验证时,通常使用如下语句来进行验证:sql=select * from user where username='username' and pwd='password„
Page 15
测试结果-集群环境的服务器端性能-A
服务端资源占用情况绝对值变化不大,但CPU占用递增20%左右较为稳定
Page 16
问题
1)集群是否比单机环境效率高? 2)单机与集群环境下,应用服务器与数据服务器资源利用 率如何?是否存在瓶颈?单机环境与集群环境相比,哪种资 源占用率较高,哪种资源占用率递增较快? 3)此系统是否可以采用集群的方案?
Page 25
4.目录遍历
如何进行目录遍历测试: • 目录遍历产生的原因是:程序中没有过滤用户输入的“../”和“./”之类的目录跳转符, 导致恶意用户可以通过提交目录跳转来遍历服务器上的任意文件。 • 测试方法:在URL中输入一定数量的“../”和“./”,验证系统是否ESCAPE掉了这些 目录跳转符. 如何预防目录遍历? • 限制Web应用在服务器上的运行 • 进 行严格的输入验证,控制用户输入非法路径
Page 6
测试结果-4M网络
问题: 1.在满足系统性能指标需求(响应时间0-5秒)时,系统所能承受的最大并发数? 2.4M宽带环境下,CPU使用是否Hale Waihona Puke Baidu理?增加宽带是否是提高系统性能的有效方法?
Page 7
结果分析
Page 8
优化建议
Page 9
案例二 性能测试/压力测试(集群环境)
项目介绍
系统测试案例分析
案例一 性能测试/压力测试
项目介绍
针对某公司办公自动化(OA)系统的负载压力测试, 采用专业的负载压力测试工具来执行测试。系统采用B/S架
构,服务器是一台PC Server(4路2.7GHz 处理器,4GB
内存),安装的平台软件包括Microsoft Internet
Information Server5.0,ASP.NET,SQLServer 2000。
测试策略
1) 单机测试环境
2) 集群测试环境
Page 12
测试结果
客户端性能测试结果
客户端性能提升:120并发用户:19倍以上 240并发用户:3倍以上
Page 13
测试结果-单机环境的服务器端性能-A
CPU占用率递增50%
Page 14
测试结果-单机环境的服务器端性能-B/C
使用2台笔记本电脑安装测试工具模拟客户端执行“登
录”业务操作。
Page 3
测试目标
1)试系统分别在2M、4M网络宽带下,能够支持用户登录 的最大并发用户数; 2)测试服务器的吞吐量(即:每秒可以处理的交易数), 主要包括服务器CPU平均使用率达到85%时系统能够支持
的最大吞吐量和服务器CPU平均使用率达到100%时系统
如 输入http://duck/index.asp?username=admin' or 1='1&pwd=11,SQL语句会变成以 下:sql=select * from user where username='admin' or 1='1' and password='11'
' 与admin前面的'组成了一个查询条件,即username='admin',接下来的语句将按下一个查 询条件来执行.接 下来是OR查询条件,OR是一个逻辑运 算符,在判断多个条件的时候, 只要一个成立,则等式就成立,后面的AND就不再时行判断了,也就是 说我们绕过了密 码验证,我们只用用户名就可以登录. 如 输入http://duck/index.asp?username=admin'--&pwd=11,SQL语 句会变成以下 sql=select * from user where name='admin' --' and pasword='11', „与admin前面的‟组成了一个查 询条件,即username=„admin‟,接下来的语句将按下一个查 询条件来执行 接下来是“--”查询条件,“--”是忽略或注释,上 述通过连接符注释掉后面的 密码验证。
能够支持的最大吞吐量。 性能需求:指标“响应时间”合理范围为0~5秒。
Page 4
测试策略
1)设计出两种场景2M网络和4M网络环境下进行模拟测试。
2)其中选定登录业务进行测试,加压策略采取逐步加压的
方式。
Page 5
测试结果-2M网络
问题: 1.在满足系统性能指标需求(响应时间0-5秒)时,系统所能承受的最大并发数? 2.2M宽带环境下,CPU使用是否合理?宽带是否是系统瓶颈?
模拟多用户登录《工作流系统》,针对代表性工作流 A/B/C连续创建20个实例。在单机和集群测试环境分别 进行负载压力性能测试。 单机环境下测试用机与一台应用服务器连接在同一交换 机上,压力直接加在一台应用服务器上。 集群环境下测试用机与服务器连接在同一台交换机上, 压力由负载均衡模块分摊到两台应用服务器上,数据服务器 不作集群处理。 测试需求要点: 1) 随着负载的增加,采用集群方案是否对此应用系统有效 2) 服务器资源是否使用合理
Page 27
系统测试小结
• • • • • • • • •
功能测试 性能测试 压力测试 容量测试 安全性测试 用户界面测试 安装/卸载测试 文档测试 回归测试
Page 19
1.SQL注入
1:对于未明显标识在URL中传递参数的,可以通过查看HTML源 代码中的"FORM"标签来辨别是否还有参数传递.在<FORM> 和</FORM>的标签中间的每一个参数传递都有可能被利用.
<form id="form_search" action="/search/" method="get"> <div> <input type="text" name="q" id="search_q" value="" /> <input name="search" type="image" src="/media/images/site/search_btn.gif" /> <a href="/search/" class="fl">Gamefinder</a> </div> </form>
Page 23
2.跨站点脚本攻击—如何预防?
从应用程序的角度: • 对Javascrīpt,VB scrīpt, HTML,ActiveX, Flash等 语句或脚本进行转义. • 在 服务端正式处理之前提交数据的合法性(合法性检查主要包括三项:数据类型,数据 长度,敏感字符的校验)进行检查等。最根本的解决手段,在确认客户端的输入合法之 前,服务端 拒绝进行关键性的处理操作. 从测试人员的角度: • 在需求检查过程中对各输入项或输出项进行类型、长度以及取 值范围进行验证,着 重验证是否对HTML或脚本代码进行了转义。 • 执行测试过程中也应对上述项进行检查。
Page 26
5.错误信息
如何进行目录遍历测试: • 首 先找到一些错误页面,比如404,或500页面。 • 验证在调试未开通过的情况下,是否给出了友好的错误提示信息比如“你访问的页 面不存 在”等,而并非曝露一些程序代码。 如何预防目录遍历? • 测试人员在进行需求检查时,应该对出错信息 进行详细查,比如是否给出了出错信 息,是否给出了正确的出错信息。
Page 24
3. 邮件标头注入
如果表单用于发送email,表单中可能包括“subject”输入项 (邮件标题),我们要验证subject中应能escape掉“\n” 标识。 因为“\n”是新行,如果在subject中输入 “hello\ncc:spamvictim@example.com”, 可能会形成以下 Subject: hello cc: spamvictim@example.com 如果允许用户使用这样的subject,那他可能会给利用这个缺 陷通过我们的平台给其它用 户发送垃圾邮件。
Page 17
案例三 Web项目安全性测试
安全性测试案例分析
WEB的安全性测试主要从以下方面考虑: 1.SQL Injection(SQL注入) 2.Cross-site scritping(XSS):(跨站点脚本攻击) 3.Email Header Injection(邮件标头注入) 4.Directory Traversal(目录遍历) 5.exposed error messages(错误信息)
Page 21
1.SQL注入—如何预防?
从应用程序的角度: • 转义敏感字符及字符串(SQL的敏感字符包括 “exec”,”xp_”,”sp_”,”declare”,”Union”,”cmd”,”+”,”//”,”..”,”;”,”„”,”--”,”%”,”0x”,”><=!-*/()|”, 和”空格”). • 屏蔽出错信息:阻止攻击者知道攻击的结果 • 在服务端正式处理之前提交数据的合法性(合法性检查主要包括三 项:数据类型,数据 长度,敏感字符的校验)进行检查等。最根本的解决手段,在确认客 户端的输入合法之 前,服务端拒绝进行关键性的处理操作. 从测试人员的角度,在程序开发前(即需求阶段),我们就应该有意识的将安全性检查 应用到需求测试中,例如对一个表单需求进行检查时,我们一般检验以下几项安全性问题: • 需求中应说明表单中某一FIELD的类型,长度,以及取值范围(主要作用就是禁止输入 敏感字符) • 需求中应说明如果超出表单规定的类型,长度,以及取值范围的,应用程序应给出不包 含任何代码或数据库信息的错误提示.
Page 22
2.跨站点脚本攻击
首先,找到带有参数传递的URL,如 登录页面,搜索页面,提交评论,发表留言 页面等等。 其次,在页面参数中输入如下语句(如:Javascrīpt,VB scrīpt, HTML,ActiveX, Flash)来进行 测试: <scrīpt>alert(document.cookie)</scrīpt> 最后,当用户浏览 时便会弹出一个警告框,内容显示的是浏览者当前的cookie串,这就说 明该网站存在XSS漏洞。 试想如果我们注入的不是以上这个简单的测试代码,而是一段经常精心设计的恶意脚本, 当用户浏览此帖时,cookie信息就可能成功的被 攻击者获取。此时浏览者的帐号就很容 易被攻击者掌控了。
2:当找不到有输入行为的页面时,可以尝试找一些带有某些参 数的特殊的URL,如 HTTP://DOMAIN/INDEX.ASP?ID=10
Page 20
1.SQL注入
例子:在登录时进行身份验证时,通常使用如下语句来进行验证:sql=select * from user where username='username' and pwd='password„
Page 15
测试结果-集群环境的服务器端性能-A
服务端资源占用情况绝对值变化不大,但CPU占用递增20%左右较为稳定
Page 16
问题
1)集群是否比单机环境效率高? 2)单机与集群环境下,应用服务器与数据服务器资源利用 率如何?是否存在瓶颈?单机环境与集群环境相比,哪种资 源占用率较高,哪种资源占用率递增较快? 3)此系统是否可以采用集群的方案?
Page 25
4.目录遍历
如何进行目录遍历测试: • 目录遍历产生的原因是:程序中没有过滤用户输入的“../”和“./”之类的目录跳转符, 导致恶意用户可以通过提交目录跳转来遍历服务器上的任意文件。 • 测试方法:在URL中输入一定数量的“../”和“./”,验证系统是否ESCAPE掉了这些 目录跳转符. 如何预防目录遍历? • 限制Web应用在服务器上的运行 • 进 行严格的输入验证,控制用户输入非法路径
Page 6
测试结果-4M网络
问题: 1.在满足系统性能指标需求(响应时间0-5秒)时,系统所能承受的最大并发数? 2.4M宽带环境下,CPU使用是否Hale Waihona Puke Baidu理?增加宽带是否是提高系统性能的有效方法?
Page 7
结果分析
Page 8
优化建议
Page 9
案例二 性能测试/压力测试(集群环境)
项目介绍
系统测试案例分析
案例一 性能测试/压力测试
项目介绍
针对某公司办公自动化(OA)系统的负载压力测试, 采用专业的负载压力测试工具来执行测试。系统采用B/S架
构,服务器是一台PC Server(4路2.7GHz 处理器,4GB
内存),安装的平台软件包括Microsoft Internet
Information Server5.0,ASP.NET,SQLServer 2000。