软件性能测试
1.什么是软件性能测试
软件性能测试作为软件质量保证必不可少的环节,指的是软件系统或构件对于其及时性要求符合程度的指标;它是一种规范,可以用来量化更改业务指标所产生的影响,进而说明部署软件的风险。一般用响应时间、吞吐量每秒点击数等参数指标进行衡量。
2.软件性能测试的内容
性能测试主要包括负载测试、压力测试、并发测试、大数据量测试、稳定性测试和系统容量测试等技术。
(1)负载测试。负载测试是通过逐步增加系统负载的方式来测试系统性能的变化,最终确定在满足性能指标的情况下系统所能承受的最大负载量的测试。
(2)压力测试。压力测试是通过逐步增加系统负载的方式来测试系统性能的变化,最终确定在什么负载条件下系统性能处于失效状态,并以此来获得系统能提供的最大服务级别的测试。
(3)并发测试。并发测试的过程是负载测试和压力测试相结合的过程,通过逐渐增加并发用户数负载来确定系统的瓶颈或者不能接受的性能点的测试。
(4)大数据量测试。大数据量测试是为了检验系统存在较大数据量时,系统的性能是否有明显的下降。大数据量测试包括独立的数据量测试和综合数据量测试2类,主要针对系统存储、数据传输、统计查询等业务进行测试。
(5)稳定性测试。稳定性测试是检验系统长时间稳定运行能力的测试。通过对系统加载一定的压力并持续运行一段时间,考查系统各性能指标在这种压力下是否能保持正常数值,事务响应时间是否会出现波动或随测试时间增涨而增加,以及系统的资源占用情况是否合理来判断系统的稳定性。
(6)系统容量测试。容量测试是检验软件系统在极限值状态下是否出现任何软件故障或能否保持主要功能正常运行的测试。通过容量测试,可以确定测试对象在给定时间内能够持续处理的最大负载或工作量。
3.软件性能测试流程
1.测试方法设计
在软件性能测试的初始阶段,首先应对业务模型和系统架构进行调研,收集测试需求。然后生成性能测试计划。业务调研和系统调研,需要性能测试团队提前了解被测试项目的业务功能和系统架构。其间,开发部门应协助提供
被测系统相关的文档和说明,如系统总体介绍、系统规格书、用户使用手册、网络拓扑结构图和系统配置说明、关键服务器及应用部署与配置等文档通过和业务部门协商明确本次测试针对哪些业务行为,制定此次测试的目标,细化测试的关注点和性能指标要求。通过以上内容制定详细的测试方案,并制定详细测试计划和各阶段目标。
2.测试环境的搭建
测试环境的搭建分为软硬测试系统的环境搭建和测试相关的数据准备工作。环境搭建包括被测试系统的硬件环境建立和软件应用系统建立及基础数据环境建立。保障被测试系统的业务可用性和功能的正确性,包括测试系统(如被测试项目的操作系统、中间件、数据库、压力测试控制台、压力测试发起工具等)的环境搭建、软件的安装I测试环境的网络环境建立(如开放防火墙和网关等);最后进行测试环境可用性验证。测试数据准备包括测试应用系统基础数据准备,即需要按性能测试规模要求,准备足够的、一定规模的基础数据,通常采用全量恢复生产数据的方式以达到和生产环境数据一致性的要求。
3.测试场景开发
测试场景开发指测试程序(脚本)的开发。测试程序(脚本)的开发是对被测系统的用户业务行为进行模拟、录制、编程、参数化、脚本定制和调式等一系列工作,以使测试程序(脚本)可以真实模拟实际生产中的业务交易行为,并通过对程序中参数的配置实现对并发数、思考时间等属性的准确控制。
4.测试执行
测试执行是在测试方案的制定、测试环境准备、测试场景开发工作正确完成的基础上进行的。
5.测试报告和分析
性能测试报告和结果分析是在测试执行完成以后,对性能数据进行采集结果收集工作和针对性能测试过程中暴露的问题进行分析的阶段。性能测试报告是对性能测试过程中的监控结果以及报表进行汇总,按照一定的模板整理出的一份结论性文档。开发团队和性能测试团队应依据对性能测试实施过程中监控和记录的数据和表格,分析系统中存在的性能问题和程序缺陷。并有针对性的在报告中阐述问题、分析原因、提出解决或优化方案。
6.回归测试
回归测试是开发部门在性能测试报告的基础上针对软件的性能或者效率缺陷进行优化或者修复,为了验证优化的效果而进行的再测试。