当前位置:文档之家› 第九章 非功能性测试

第九章 非功能性测试


性能
1. 2. 3.
与被测系统相关的一系列度量指标。 不同的系统关心不同的性能指标,例如 通信软件关心的性能指标有接通率、掉话率、接续容量等 证券系统关心下单速度、下单的数量、是否堵单等 嵌入式软件关心的性能指标中断响应、内存使用、实时性 站在用户角度,响应时间是所有系统都关心的指标性能
《软件测试方法和应用》
9-5
性能测试

常规的性能测试

在正常条件下进行的测试,主要测试正常使用时系统是否满足要求,同时可 能为了保留系统的扩展空间而进行一些稍稍超出“正常”范围的测试。

负载测试

通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标
的情况下,系统所能承受的最大负载量的测试。

需要的信息包括

系统有多少类典型的用户、每类用户的大概数量、不同时间段各类用户 大概按照何种比例使用系统、用户的行为、系统的行为、这些行为发生 的时间和比率、在系统生命周期内用户数量的变化情况如何。

可以利用任务分布图法描述上述信息
《软件测试方法和应用》
9-17
任务分布图示例
任务图示例
《软件测试方法和应用》
1.
2.
并发数设计
开发和收集反应用户实际行为的测试数据
《软件测试方法和应用》
9-27
并发用户数设计

方法

极限法

取最大在线用户数作为最大并发数,可以通过日志分析,也可以 使用系统已经注册的用户数量作为系统的用户数量,然后按照经 验公式来估算最大并发用户数量。

用户趋势分析法

对软件生存周期内的用户未来趋势进行分析,预测系统可能达到
3.
执行测试用例

4.
5.
监控测试执行
保存测试结果
《软件测试方法和应用》
9-31
结果分析与系统调整

目标

分析测试结果,确定系统是否 存在性能问题

输出性能测试报告 如果发现存在性能问题,则由 相关责任人负责修改,修改完 毕后,可能引起另一个性能测 试周期用以验证问题是否解决
《软件测试方法和应用》
开源工具:Jmeter, Opensta. Grinder etc.
《软件测试方法和应用》
9-23
性能测试规划

步骤
1.
分析性能测试需求
2.
3.
规划性能测试环境
开发并评审性能测试计划
《软件测试方法和应用》
9-24
性能测试计划

内容

性能测试策略和测试范围 性能测试目标、方法、环境和工具 性能团队成员及其职责 测试进度安排 性能测试执行标准(开始、结束、挂起、恢复等)

性能选择测试工具
《软件测试方法和应用》
9-20
规划性能测试环境

性能测试环境规划的内容
1. 2. 3. 4.
一般的分布式处理系统其性能测试环境规划包括 网络环境设计:带宽和拓扑结构 操作系统环境规划 数据库环境规划 服务器环境规划
5.
6.
硬件资源环境设计规划
客户端环境规划
《软件测试方法和应用》


性能测试中的风险
相关的培训
《软件测试方法和应用》
9-25
性能测试设计和开发

目标

设计并评审性能测试用例 开发性能测试脚本 验证脚本功能的正确性
《软件测试方法和应用》
9-26
性能测试设计和开发

主要设计内容
1. 2. 3.
场景设计 不同业务模式下的场景 不同时间段内的场景 不同时期的场景 数据设计
9-7
性能测试

大数据量测试包
1.
含独立数据量测试和综合数据量测试。 独立数据量测试是针对某些系统存储、传输、统计查询等业务进行单用户 大数据量测试。
2.
综合数据量测试是与并发测试等相结合的在极限状态下的测试。
《软件测试方法和应用》
9-8
性能测试过程

性能测试过程

性能测试规划 性能测试设计与开发 性能测试执行与监控 测试结果分析和系统调整
9-32
结果分析

原则
1.
由外而内,由表及里,层层深入 从最终用户直接可以感受到的响应时间入手,如果测试结果显示满足用 户对性能的期望,则系统的性能满足要求,否则说明系统存在性能问题
2.
确定系统瓶颈是出现在网络环节还是服务器环节

CPU


内存
磁盘
3.
层层推进,判断相应环节的更细组件的响应时间,直到最后找到造成性

并发测试

要指测试多个用户同时访问同一个应用程序、同一个模块或者数据记录时 是否存在死锁或者其它性能问题。
1. 2.
并发一般分两种情况: 严格意义上的并发:所有的用户在同一时刻做同一件事情或者操作 广义范围上的并发:指用户对系统发出的请求或者进行的操作,可以是相
同的也可以是不同的。
《软件测试方法和应用》
能问题的根本原因
《软件测试方法和应用》
9-33
结果分析

CPU
1. 2.
Process Time≤ 85% Process Queue Length ≤ 2*处理器个数

内存
1. 2.
Available memory ≥ 0 Pages/秒(Page in/s+Page out/s)Page in的值需≤80

如果数据在程序间共享,应遵守相应的协议和标准数据格式 考虑文件存储和装载、输入输出、剪切、拷贝和粘贴 实时数据传输方法下的共享信息是否正确

分析系统的压力点

系统压力点多是用户使用比较频繁或者数据量较大的地方 分析系统压力点是指站在全局角度来分析系统可能产生瓶颈的功
能点,进而制定合适的测试方案。
《软件测试方法和应用》
9-16
用户对系统地使用情况

意义

确定用户对系统的使用情况是设计测试用例的基础

方法

用户现场调查 分析系统日志

为什么需要进行兼容性测试

硬件类型、品种多种多样 软件类型、品种多种多样 软硬件之间客观存在的差异,使得系统在运行时存在在某些环境中工作正 常但却在其它环境中出现问题的情况

内容

减少软硬件的组合数目
《软件测试方法和应用》
9-36
案例

案例

如果要执行一个完全的兼容性测试,配置组合将是一个巨大的数字,以窗 口在线游戏程序为例,假设游戏支持大约350个可能的显示卡,200个声卡, 800个调制解调器,1200个打印机,这样就有350×200×800×1200种 组合
7.
每个设备可以处理的并发用户数。
《软件测试方法和应用》
9-22
性能测试工具

为什么使用工具

性能测试要通过模拟大量用户行才能进行,如果使用纯手工测试的 方法,性能测试不仅在执行上异常困难另外成本也会变得难以让人 接受。
1.
有很多可以进行性能测试的工具,比如: LoadRunner
2.
3.
IBM Functional Tester
9-18
性能测试规划

步骤
1.
分析性能测试需求
2.
3.
规划性能测试环境
开发并评审性能测试计划
《软件测试方法和应用》
9-19
规划性能测试环境

任务
1. 2. 3.
规划性能测试的软硬件环境 制定测试环境的维护策略 反复使用Ghost维护一些测试环境 利用VMware在同台电脑上构建多个测试平台 使用备份/恢复策略维护数据库中的内容等。

需要考虑被测系统使用什么平台 系统设计时考虑兼容的应用程序 被测系统自身的向前向后兼容性
2.
标准:

概要标准用于指导产品的基本操作属性,如颜色、感官、支持的特性等
详细标准规定了产品的详细信息比如文件格式,通讯协议
9-38
《软件测试方法和应用》
兼容性测试步骤

对软件来说
3.
兼容性测试的软件环境通常,包括 数据共享:
《软件测试方法和应用》
9-4
性能测试

定义

是一个综合性的测试活动,通常包括一系列与被测系统性能相关的 互相关联互相包含的测试活动,如常规的性能测试、负载测试、压 力测试、并发测试、强度测试、大数据量测试等

目的

在于优化最重要的应用程序性能指标,提高用户体验的满意

测试思想

借助测试工具或手工开发测试脚本,模拟执行典型的用户行为,监 控关键性能测量结果以判断定义的性能指标是否达到期望的目标
3.
明确用户任务的分布情况

1. 2.
方法
分析被测系统的业务 用户对系统地使用情况
《软件测试方法和应用》
9-15
分析被测系统业务

测试对象

确定系统的核心模块

核心模块:业务比较复杂或者用户使用频率较高的模块

模块间的耦合关系

为了更加清晰地了解核心模块间数据的传输方式以便更真实地模 拟多用户并发时的情况
9-21
规划性能测试环境

如何规划性能测试环境
1. 2. 3.
了解终端用户的真实部署环境 确定系统组件及各个组件的配置,掌握如下信息: 连接到系统的用户数 客户端计算机的配置情况 服务器与客户端之间的通信方式
相关主题