软件测试中的性能测试定义
什么是软件性能:
软件性能是软件的一种非功能特性,它关注的不是软件是否能够完成
特定的功能,而是在完成该功能时展示出来的及时性。
一般性能测试是在功能测试完成之后
性能测试定义:
指通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对
系统的各项性能指标进行的测试。
负载测试:通过测试系统在资源超负荷情况下的表现,以发现设计上
的错误或验证系统的负载能力。
压力测试:压力测试是模拟实际应用的软硬件环境及用户使用过程的
系统负荷,长时间或超大负荷运行测试软件,来测试被测系统的性能、可靠性、稳定性。
性能测试的目的:
性能测试目的是验证软件系统是否能够达到用户提出的性能指标;同
时发现软件系统中存在的性能瓶颈,优化软件,最后起到优化系统。
用户关注的性能点:用户体验(体现为响应速度)
####################
管理员关注的性能点:
1.平均响应速度
2.服务器资源和数据库资源使用情况--------资源利用率
3.系统扩张(比如容量) ---------- 可扩张性
4.系统最多容量(最多访问用户、最大业务处理量)----系统容量
5.那些设备与性能相关------可扩张性
6.能否挂机3-7天 ----------稳定性
7.系统可能存在的瓶颈------可扩张性
#############################
开发关注的性能点:
1.架构设计是否合理-------架构
2.数据库设计是否合理------数据库
3.代码是否存在性能问题--------代码
4.系统中是否有不合理的内存使用方式--------代码
5.不合理的线程同步方式----------代码
6.不合理的资源竞争---------代码
性能测试的思考角度:
1.服务器的硬件的性能
2.根据需求和历史数据制定性能目标
3.建立性能通过模型
4.对开发代码架构和硬件框架进行性能分析
5.针对开发发布版本的基准测试
6.执行软件性能验收及稳定性测试
7.生产环境的配置及优化
8.制定性能测试的测试用例
9.制定性能测试的场景设计
10.协调各部门配合
11.特定的性能分析
常见的性能测试类型
基准测试:在给系统施加较低压力时,查看系统的运行状况并记录相关数作为基础参考
################
负载测试:是指对系统不断的增加压力或增加一定压力下的持续时间,直到系统的某项
或多项性能指标达到安全临界值,例如某种资源已经达到饱和状态。
####################
压力测试:压力测试是评估系统处于或超过预期负载时系统的运行情况,关注点在于系
统在峰值负载或超出最大载荷情况下的处理能力。
#######################
稳定性测试:再给系统加载一定业务压力的情况下,使系统运行一段时间,以此检测系统
是否稳定。
###########################
并发测试:测试多个用户同时访问同一个应用、同一个模块或者数据记录时是否存在死锁
或者其他性能问题。
#################################3
死锁:是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成
的一种阻塞的现象,若无外力作用,他们都将无法推进下去,此时称系统处于死锁状态或
系统产生了死锁,这些永远在互相等待的进程称为死锁进程。
性能测试应用场景(领域)主要有:能力验证、规划能力、性能调优、缺陷发现、性能基准比较
###############################
###################################
性能基准比较:常用于敏捷开发过程中,敏捷开发流程的特点是小步快走,快速试错,迭代
周期短,需求变化频繁。很难定义完善的性能测试目标,也没有时间在每个迭代开展详细的
性能测试,可以通过建立性能基线,通过比较每次迭代中的性能表现变化,判断迭代是否达到了目标。