下面的文字总结自网络上的文章,如有雷同之处,还请见谅,仅自己学习之用。
转载请说明来自博客园--邦邦酱好。
1.稳定性测试
软件的稳定性也就是软件自身在运行环境条件下的鲁棒性(健壮和强壮)。这需要作边缘测试来检验,而边缘测试的定义和实施都是需要很多经验来支持的,这对于新手来说是无法做到的。边缘测试,举个例子:在压力测试中,可以在压力的最大值、最小值附近取值进行测试,甚至考虑超过最大值和最小值的方式进行测试。这就属于边缘测试。
软件的稳定性,指软件在一个运行周期内、在一定的压力条件下,软件的出错机率、性能劣化趋势等。并观察其运行环境内的应用服务器、数据库服务器等系统的稳定性。
软件的稳定性应该和软件的可靠性是不同的。软件的稳定性从软件开发的角度出发,强调软件架构的稳定,也就是说需求、代码等的变更对软件系统的影响尽可能地小,这也是架构设计要解决的首要任务。
平均无故障时间等指标是说明系统的可靠性的。系统的稳定性应该是指系统的一些边缘故障。比如系统运行一直很好,只是偶尔出现一些奇怪的问题,但是找不到原 因,经过重启或者重装之后就恢复正常,这就在考验系统的稳定性。从系统本身来说,没有无缘无故的爱也没有无缘无故的恨,出现问题一定是在某个方面有缺陷, 而且问题往往是出在设计上。如果要从设计角度去保障软件的稳定性就需要设计人员充分的考虑系统各个模块之间的关系,减少耦合度,是问题隔离起来。很多问题 都是出在模块之间的调用上的。模块内部也是一样,最大的问题就出在内存的使用上,不过这就到编码的问题了。总之,稳定的系统需要专业的有丰富经验的设计人 员,合理的划分系统,详细设计做到足够细,避免在开发阶段出现问题。
稳定性测试就测试系统的长期稳定运行能力。在系统运行过程中,对系统施压,观察系统的各种性能指标,以及服务器的指标。稳定性测试是概率性的测试,就是说即使稳定性测试通过,也不能保证系统实际运行的时候不出问题。所以要尽可能的提高测试的可靠性。可以通过多次测试,延长测试时间,增大测试压力来提高测试的可靠性。稳定性测试的测试时间和压力存在一定的关系。在测试时间不能保证的情况下,可以通过增强压力在一定程度上来挽救。观察系统的各种监控指标曲线,预测系统的发展状况。响应时间是否有增长,可用内存是否在减少,CPU利用率是否在上升等等都可以说明系统是否存在问题。
一般稳定性测试时间为n*12小时。
2.负载测试
在系统在一定的压力下持续一段时间,直到系统的某项或多项指标达到极限,比如系统资源CPU、Memory或者IO等达到饱和状态。
3.压力测试
主要思想是使用虚拟用户来模拟实际用户对系统施加压力,逐步提高系统用户同时并发登陆,并发下载数据,以检查系统的长期稳定性。
制定判断原则:
如:系统业务响应时间小于2-5秒,判断优秀,用户对系统感觉很好;
系统业务响应时间在5-10秒之间,判断良好,用户对系统感觉一般;
明确测试目标:
如,2M,4M,10M带宽的站点支持的同时在线用户数;
服务器的吞吐量,即每秒内可以处理的交易个数。
测试场景:
1)设置初始登陆用户数量
2)每30秒左右增加N个用户并发数
3)逐步递增到M个用户并发数
4)分为局域网和广域网分别进行测试
测试在不同的M值下,软件的最小相应数据,最大相应时间,平均响应时间,占用带宽等等(建议做成时间-用户数这样的表格)。
查看系统是否出现不良反应(比如:在多用户并发下载数据压力下,速度降低,增加了用户等待时间,制约了用户体验...)。
测试工具:
可以使用loadrunner,采用录制/回放的方法,即先录制软件的HTML数据包,然后采用多线程的方式模拟大量客户端向服务器发送业务请求,达到压力测试的目的。
结果分析:
1)各地区网络差异,对整体性能的影响,比如查询操作,
2)软件针对数量达到百万的情况下有没有进行了优化
3)服务器在多用户下能不能稳定运行