1.软件性能测试的基本概念网络
软件的性能是软件的一种非功能特性,它关注的不是软件是否可以完成特定的功能,而是软件在完成该功能时展现出来的及时性。并发
(1)软件性能的指标工具
1)响应时间:是指系统对请求做出响应的时间,而且这个时间被人们的接收程度是随着系统的不一样而不一样的(一个游戏相应3秒没法忍受,一个编译程序编译3分钟也是能够接受的)性能
2)系统相应时间和应用延迟时间:前面的响应时间主要是指用户感觉到的响应时间,其中还能够具体分为系统响应时间和呈现时间,性能测试比较关注系统响应时间测试
而系统响应时间又能够具体分为网络传输时间和应用延迟时间,性能测试比较关注应用延迟时间优化
3)吞吐量:吞吐量是指系统在单位时间内处理请求的数量,可是并非访问人数越多吞吐量越高,由于随着访问人数的增多系统的可分配的资源会减小形成吞吐量降低等线程
4)并发用户数:是指系统能够同时承载的正常使用系统功能的用户数,与1秒钟几十万吞吐量相比上千用户的并发量是一个更直观但也更笼统的性能指标设计
5)资源利用率:反映在一段时间内资源平均被占用的状况生命周期
(2)软件性能的角度游戏
用户视角:对于用户而言,性能就是响应时间,对于大量的数据,若是一边返回数据一边呈现对于用户而言响应时间也是很快的
管理员视角:管理员能够经过使用软件提供的管理功能等手段来对系统性能进行优化,可是通常不涉及到源代码的修改
开发人员视角:开发人员的角度和管理员的角度基本是一致的,可是开发人员更须要深刻的关注软件的性能
(3)性能测试的目标
发现缺陷
性能调优
能力检验与规划
(4)性能测试的分类
性能测试
并发测试
压力测试
可靠性测试
负载测试
配置测试
失效恢复测试
2.软件性能测试的执行
与功能测试相比,性能测试更复杂,执行难度更大,对测试工具的依赖也更强,更须要过程模型的指导(如:PTGM性能测试通用模型)
PTGM模型主要包括6个步骤:
(1)测试前期准备,一般要求软件已经经过功能测试并修正了缺陷
(2)引入测试工具
(3)指定测试计划,须要明确性能测试的目标
(4)测试设计和开发,准备好软件运行的软硬件环境,用户并发使用软件的测试场景,每一个用户具体如何使用该软件
(5)测试执行和管理
(6)测试结果分析
SEI负载测试计划过程:
测试负载主要考虑一下六个方面
(1)目标,指的是商业目标而不是技术目标,明确软件达到什么样的负载能力才能知足项目的商业目标
(2)用户,是指可能产生负载或使用资源的人和软件过程
(3)用例,是指用户对软件的不一样使用方式
(4)使用环境,软件在实际交付的运行环境中
(5)测试环境,在测试中的环境
(6)使用场景
LoadRunner的性能测试过程:
这是一个针对LoadRunner工具进行设计的测试过程,整体上是知足PTGM的
(1)指定测试计划
(2)设计测试用例
(3)设计测试脚本(将测试用例转换成能够执行的测试脚本)
(4)建立测试环境(测试脚本运行的测试环境)
(5)运行测试脚本
(6)分析测试结果
3.性能分析
(1)性能降低曲线的分析
主要包括三个区间:性能平坦区,性能轻微降低区,性能急剧降低区
(2)快速性能瓶颈识别:优先考虑吞吐量,优先考虑简单的测试用例,优先考虑基础系统的性能
(3)性能计数器的分析:内存,处理器,I/O磁盘,进程等分析
4.性能测试的自动化
包括建立进程或者线程来模拟用户产生压力
对性能进行监控
对结果进行分析
依赖一些性能测试工具
5.软件可靠性的概念
(1)错误,缺陷,故障和失效
错误:指的是软件在生命周期中各个阶段的状态和行为与人们的期待不一致的误差,不仅仅是软件系统自己,中间产品的误差也算是软件错误
缺陷:指的是软件中一切很差的方面,比错误的范围更广,如,一个不易理解的软件不是错误的,可是能够归为缺陷
故障:是指软件代码中的错误
失效:是指由故障引发的在软件运行期间的错误
(2)软件可靠性的定义
在规定的条件下,在规定的时间内,软件不引发系统失效的几率
在规定的时间周期内,在所述条件下程序执行所要求的功能的能力
6.软件可靠性测试的执行
软件可靠性测试的目的是收集软件测试时揭示的软件故障的状况,并对其进行整理
主要包括5个步骤:
(1)肯定可靠性目标
(2)定义软件运行剖面
(3)设计测试用例
(4)实行可靠性测试
(5)分析测试结果
7.软件可靠性分析
(1)失效模式影响分析
(2)严酷度分析
(3)故障树分析
(4)事件树分析
(5)潜在路线分析