|
2#
楼主 |
发表于 2018-3-1 14:34:22
|
只看该作者
二.常见功能点测试思路
根据经验,总结常见的功能点的测试思路:
1. 新增 或 创建(Add or Create)
.1 操作后的页面指向
.2 操作后所有绑定此数据源的控件数据更新,常见的排列顺序为栈Stack类型,后进先出
.3 取消操作是否成功
2.编辑 或 更新 (Edit or Update)
.1 操作后的页面指向
.2 操作后所有绑定此数据源的控件数据更新
.3 取消操作是否成功
.4 编辑界面是否读取出正确、全部的数据源
.5 记录在工作流中的编辑功能可用性
.6 操作成功的生效时刻及生效范围
3.删除 或 移除 (Delete or Remove)
.1 操作后的页面指向
.2 操作后所有绑定此数据源的控件数据更新 (如下就是删除后,Tab数据没有立即刷新的bug)
3 取消操作是否成功
.4 记录在工作流中的编辑功能可用性
.5 操作成功的生效时刻及生效范围(比如:购物网站,店家商品下架后,并没有同时删除买
家的购买记录)
4.选中 或 全选 (Check or Check all)
.1 多页面中,全选对所有页面是否有效
.2 支持多页面的个别选中,且返回查看时保留选中状态
.3 界面上的按钮的操作范围是否均受选中功能控制
.4 前一页选中状态,在翻页后,应保留原来状态
.5 先全选-》移除某个单选-》全选按钮是否移除选中状态
谈谈性能测试分类
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指
标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在
各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压
力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的
测试。
验收性能测试(狭义) 性能测试方法是通过模拟生产运行的业务压力量和使用场景组合,
测试系统的性能是否满足生产性能要求。通俗地说,这种方法就是要在特定的运行条件下验证系
统的能力状态。
特点: 1、这种方法的主要目的是验证系统是否有系统宣称具有的能力。 2、这种方法要事先
了解被测试系统经典场景,并具有确定的性能目标。 3、这种方法要求在已经确定的环境下运行。
也就是说,这种方法是对系统性能已经有了解的前提,并对需求有明确的目标,并在已经确定的
环境下进行的。
负载测试(Load Test)通过在被测系统上不断加压,直到性能指标达到极限(例如“响应时间”)
超过预定指标或都某种资源已经达到饱和状态。
特点: 1、这种性能测试方法的主要目的是找到系统处理能力的极限。 2、这种性能测试方法
需要在给定的测试环境下进行,通常也需要考虑被测试系统的业务压力量和典型场景、使得测试
结果具有业务上的意义。 3、这种性能测试方法一般用来了解系统的性能容量,或是配合性能调
优来使用。 也就是说,这种方法是对一个系统持续不段的加压,看你在什么时候已经超出“我的
要求”或系统崩溃。
压力测试(强度测试)(Stress Test)压力测试方法测试系统在一定饱和状态下,例如cpu、内
存在饱和使用情况下,系统能够处理的会话能力,以及系统是否会出现错误
特点: 1、这种性能测试方法的主要目的是检查系统处于压力性能下时应用的表现。 2、这种
性能测试一般通过模拟负载等方法,使得系统的资源使用达到较高的水平。 3、这种性能测试方
法一般用于测试系统的稳定性。 也就是说,这种测试是让系统处在很大强度的压力之下,看系统
是否稳定,哪里会出问题。
并发测试(Concurrency Testing)并发测试方法通过模拟用户并发访问,测试多用户并发访
问同一个应用、同一个模块或者数据记录时是否存在死锁或其者他性能问题。
特点: 1、这种性能测试方法的主要目的是发现系统中可能隐藏的并发访问时的问题。 2、这
种性能测试方法主要关注系统可能存在的并发问题,例如系统中的内存泄漏、线程锁和资源争用方
面的问题。 3、这种性能测试方法可以在开发的各个阶段使用需要相关的测试工具的配合和支持。
也就是说,这种测试关注点是多个用户同时(并发)对一个模块或操作进行加压。
配置测试(Configuration Testing)配置测试方法通过对被测系统的软\硬件环境的调整,了解
各种不同对系统的性能影响的程度,从而找到系统各项资源的最优分配原则。
特点: 1、这种性能测试方法的主要目的是了解各种不同因素对系统性能影响的程度,从而判
断出最值得进行的调优操作。 2、这种性能测试方法一般在对系统性能状况有初步了解后进行。
3、这种性能测试方法一般用于性能调优和规划能力。 也就是说,这种测试关注点是“微调”,通过
对软硬件的不段调整,找出这他们的最佳状态,使系统达到一个最强的状态。
可靠性测试通过给系统加载一定业务压力(例如资源在70%-90%的使用率),使系统运行一
段时间,以此检测系统是否稳定运行。
特点: 1、这种性能测试方法的主要目的是验证是否支持长期稳定的运行。 2、这种性能测试
方法需要在压力下持续一段时间的运行。(2~3天) 3、测试过程中需要关注系统的运行状况。 如
果测试过程中发现,随着时间的推移,响应时间有明显的变化,或是系统资源使用率有明显波动,
都可能是系统不稳定的征兆。 也就是说,这种测试的关注点是“稳定”,不需要给系统太大的压力,
只要系统能够长期处于一个稳定的状态。
失效恢复测试如果系统局部发生故障,用户是否能够继续使用系统,以及如果这种情况发生,
用户将受到多大程度的影响。
特点: 1.这种性能测试方法的主要目的是验证在局部故障情况下,系统能否继续使用。 2.这种
性能测试方法还需要指出,当问题发生时,“能支持多少用户访问”的结论和“采取何种应急措施”的
方案。 3.一般来说,只有对系统持续运行指标有明确要求的系统才需要进行这种类型的测试。
大数据量测试针对某些系统存储、传输、统计查询等业务进行大数据量的测试。
疲劳强度测试主要特点是长时间对目标测试系统加压,目的是测试系统的稳定性,持续时间一
般在1小时以上;感觉等同于可靠性测试。
注意:在做性能测试时请忘掉分类.例如,运行8个小时来测试系统是否可靠,而这个测试极有
可能包含了可靠性能测、强度测试、并发测试、负载测试,等等。因此,在实施性能测试时决不能
割裂它们的内部联系去进行,而应该分析它们之间的关系,以一种高效率的方式来设计性能测试。
Web测试中的几个case
一、页面上对引起 大量数据提交的 按钮/链接 点击一次后, disable
需求:
对于重要的表单、数量庞大/响应慢的系统,在做提交时, 又有页面还在loading状态, 此时连
续做两次点击, 经常引起各种报错,这种情况下, 需要提出 对 按钮/链接 点击一次后, 做 disable
测试:
1)、查看页面源代码是否有脚本控制,例如:
<a href="javascript: $('#next').val('true'); buttonDisable();headerFormSubmit();" type="submit"
class="btn" id="nextButton"> Next </a>
function buttonDisable(){
$("#nextButton").attr("disabled", "disabled");
}
2)、对脚本进行调试,
可以借助firebug工具,在Script Tab上,在$("#nextButton").attr("disabled", "disabled");这行
脚本设置disable, 点击nextButton,检查运行到断点处停止,按钮无法再次点击。运行断点后,
disable解除。
二、新增数据库字段测试需要考虑的几个点
1)、从数据库检查起, 检查相关表: 原表、历史表、与其同步库的表 有没有都添上该字段,
并且注意在每个表中, 字段类型是否统一
2)、校验:考虑字段本身类型, 判空、边界、唯一性、特殊字符、正确性允许的data
特别, 在做判空时,若字段不允许为空时,考虑: 需要提交脚本初始化历史数据set dafault value
3)、流程覆盖:考虑该字段覆盖到哪几个相关页面, 测试到整个流程, 每个页面校验要一致;
三、查log测试的几个操作
一般情况下, 项目都部署在linux环境上, 测试时, 有些需要查log, 或者有些服务需要自己
去重启, 此时就需要一些基本的linux操作命令:
1)、首先连接到linux系统的机器上,可以使用putty软件, 要有 服务器地址+端口+协议 l
oginName+password,就可以登录
2)、cd到脚本或者log放置的文件夹位置去重启服务或查看log,还有一些常用的命令
less 文件名(W向上翻页、F向下翻页,Shift+F自动翻页,Ctrl+C停止自动翻页);
grep "findString" 文件名;
执行脚本: ../脚本名 或者 sh./脚本名
web常见安全问题以及测试方法
Web安全是我们测试组一直以来作为和性能测试并驾齐驱的两个重点。开发的过程中还需要着重
注意,该转义的地方转义;该屏蔽的地方屏蔽,该过滤的地方过滤等等。年底又到了,势必又有
大批的发号抽奖之类的活动开发、上线,在这个过程中,安全问题是我们每个人应该紧绷的神经,
对于我们测试人员来说,每个活动需要做到手动安全测试加自动化安全测试相结合。
常见的web安全问题有:
SQL注入、跨站点脚本攻击、跨站点伪造请求、目录遍历、邮件表头注入、页面错误信息等。
对于手动安全测试来说,一般常用的有三点:
1、URL有参数的,手动修改参数,看是否得到其他用户的信息和相关页面;
2、在登录输入框的地方输入‘ or 1=1--或 “ or 1=1--等看是否有SQL注入;
3、在注重SQL注入的同时,一般在有输入框的地方输入
对于自动化安全测试来说:
测试组目前使用的安全测试工具为IBM的AppScan(当然,是破解版,34上已经放过该工具的
安装包)
1、在使用之前务必确认自己绑定的Host;
2、配置URL、开发环境、错误显示类型;
3、结果保存后可根据提示的问题类型和解决建议进行分析。
Web安全测试通常要考虑的测试点:
1、输入的数据没有进行有效的控制和验证
2、用户名和密码
3、直接输入需要权限的网页地址可以访问
4、认证和会话数据作为GET的一部分来发送
5、隐藏域与CGI参数
6、上传文件没有限制
7、把数据验证寄希望于客户端的验证
8、跨站脚本(XSS)
9、注入式漏洞(SQL注入)
10、不恰当的异常处理
11、不安全的存储
12、不安全的配置管理
13、传输中的密码没有加密
14、弱密码,默认密码
15、缓冲区溢出
16、拒绝服务
SQL注入:
所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,
最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通
过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击.(
(select * form 表 where id=1 or 1
1 or 1是输入框输入的
这样会导致满足 id=1 或 1 的数据都查出来
而所有的数据都满足 1
这样就查出来了很多不该被查出来的数据
这就是sql注入)
|
|