软件测试技术实战 设计、工具及管理》联载-24

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: 软件测试技术实战 设计、工具及管理》联载-24

5.1.6  性能测试可以发现的问题


5-2展示可以通过性能测试发现的问题类型。


5-2                                               性能测试可以发现的问题类型

问题类别

问题描述

内存问题

是否存在内存泄漏C/C++

是否有太多的临时对象Java

是否有太多的操作设计生命周围的对象Java

数据库问题

是否有数据库死锁Dead Lock

是否经常出现长事务Long Transaction

线程/进程问题

是否出现线程与进程同步失败

其他问题

是否出现资源竞争导致死锁

是否因为没有正确处理异常(如超时等)导致系统死锁


5.1.7  性能调优


经过性能测试后发现性能没有达到预期结果,当排除表5-2出现的错误外,如果仍旧不能解决问题,就要考虑性能调优了。性能调优如图5-17所示,主要包括应用程序诊断和系统调优,虽然性能调优是主要由开发人员解决,但是软件测试工程师也必须有一些了解。下面分别来看调优的使用方法。


image.png

5-17  性能调优


1.代码调优[Microsoft1]

代码调优是最先想到的性能调优,大学中都学过《数据结构》和《算法分析》,选择一个好的算法就是调优的手段。从程序方面考虑,影响一个程序的性能需要从时间复杂度和空间复杂度来考虑。


案例5-10:嵌套函数。

让我们先来看以下代码:

function f(){
    f();
}


大学都学过《数据结构》课程大学里都学过:任意一个嵌套函数,都可以用一个循环实现,并且使用循环的性能要比使用嵌套的性能好很多。这样我们就可以把代码改为:

function f(){
    while(){
    }
}


接下来确定功能是否正确,再重新测试一下性能。


2SQL语句调优

除了对代码进行优化,还可能对SQL语句进行优化,比如:

1select*from contact where username like 'ver%'

要优于:

select*from contact where username like '%ver%'


2)合理利用数据库自带变量。

Oracle产品,通过自带列rowid,可加快翻页显示的速度。

select * from titlewhere name like'%ver%'androwid<=1040 and rowid>1020


3)合理建立索引。

索引的合理建立也可大大提高数据库的查询速度。


案例5-11Oraclerowid字段。

BBS产品分页显示后台Oracle数据库中存储的数据,在进行容量测试的时候发现数据量小于50000,速度是正常的,但是达到甚至超过50000,性能就发生了很大地降低。分析发现数据库查询语句为:

select * from paper wheregroupname=2

程序把数据库表中数据全部取出来,然后根据所显示的页数把相应的数据调用到相应的页面,由此可见这样的软件性能是比较低的。研发工程师考虑到Oracle数据库中含有隐藏字段rowid可以解决这个问题,把代码改为:

select * from paper wheregroupname=2 and rowid<=(PageNo+1)*20 and rowid> PageNo *20

这样根据所要显示的页号遍历变量PageNo来决定调用多少数据到内存中,这样性能就得到了很大的提高。


3.其他调优方法

除了对代码、数据库进行调优方法外,还可以采用以下调优方法:

  •  硬件的调优;
  •  应用服务器的调优;
  •  数据库服务器配置的调优;
  •  操作系统的调优;
  •  前端机器的调优;
  •  ……


5.1.8  性能测试角色


一个性能测试团队可能包括以下成员:


  •  项目经理

Ø    计划软件测试时间,监督项目进度。

Ø    项目经理自己了解性能测试,进行合理的性能测试时间安排。

Ø    通过“进度”度量获得项目经验数据,据此做出正确的时间安排。

Ø    指定软件测试经理根据项目进度安排性能测试进度。


  •  需求分析工程师

Ø    撰写性能测试需求。

Ø    用户可能不明确提出性能方面的需求,需求分析工程师需要指导用户确定性能需求。

Ø    系统用户数。

Ø    在不同用户数量级别的并发用户数下,系统的响应时间和服务器的资源利用率。

Ø    系统的处理能力。


  •  系统架构师

Ø    根据需求做出正确的系统架构设计。


  •  开发工程师

Ø    根据架构设计的要求进行编码。


  • 软件测试经理

Ø    制定并组织评审性能测试计划。

Ø    组织资源。

Ø    跟踪项目进度。

Ø    处理性能测试过程中遇到的各种问题。


  •  高级性能测试工程师

Ø    制定性能测试方案。

Ø    分析软件测试结果。


  •  性能测试工程师

Ø    开发Vuser Script

Ø    运行性能测试。

Ø    提交性能测试结果。

Ø    进行回归测试。



顾翔凡言:

不是好的工作会给你带来好的心情,而是好的心情会给你带来好的工作。

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
2月前
|
数据采集 监控 机器人
浅谈网页端IM技术及相关测试方法实践(包括WebSocket性能测试)
最开始转转的客服系统体系如IM、工单以及机器人等都是使用第三方的产品。但第三方产品对于转转的业务,以及客服的效率等都产生了诸多限制,所以我们决定自研替换第三方系统。下面主要分享一下网页端IM技术及相关测试方法,我们先从了解IM系统和WebSocket开始。
68 4
|
3月前
|
测试技术 持续交付 UED
软件测试的艺术:确保质量的实战策略
在软件开发的舞台上,测试是那把确保每个功能如交响乐般和谐奏响的指挥棒。本文将深入探讨软件测试的重要性、基本类型以及如何设计高效的测试策略。我们将通过一个实际的代码示例,展示如何运用这些策略来提升软件质量和用户体验。
|
2月前
|
Java 测试技术 数据安全/隐私保护
软件测试中的自动化策略与工具应用
在软件开发的快速迭代中,自动化测试以其高效、稳定的特点成为了质量保证的重要手段。本文将深入探讨自动化测试的核心概念、常见工具的应用,以及如何设计有效的自动化测试策略,旨在为读者提供一套完整的自动化测试解决方案,帮助团队提升测试效率和软件质量。
|
3月前
|
前端开发 JavaScript 测试技术
前端测试技术中,如何提高集成测试的效率?
前端测试技术中,如何提高集成测试的效率?
|
2月前
|
Web App开发 IDE 测试技术
Selenium:强大的 Web 自动化测试工具
Selenium 是一款强大的 Web 自动化测试工具,包括 Selenium IDE、WebDriver 和 Grid 三大组件,支持多种编程语言和跨平台操作。它能有效提高测试效率,解决跨浏览器兼容性问题,进行性能测试和数据驱动测试,尽管存在学习曲线较陡、不稳定等缺点,但其优势明显,是自动化测试领域的首选工具。
265 17
Selenium:强大的 Web 自动化测试工具
|
3月前
|
机器学习/深度学习 人工智能 算法
BALROG:基准测试工具,用于评估 LLMs 和 VLMs 在复杂动态环境中的推理能力
BALROG 是一款用于评估大型语言模型(LLMs)和视觉语言模型(VLMs)在复杂动态环境中推理能力的基准测试工具。它通过一系列挑战性的游戏环境,如 NetHack,测试模型的规划、空间推理和探索能力。BALROG 提供了一个开放且细粒度的评估框架,推动了自主代理研究的进展。
77 3
BALROG:基准测试工具,用于评估 LLMs 和 VLMs 在复杂动态环境中的推理能力
|
3月前
|
监控 测试技术 开发工具
移动端性能测试工具
移动端性能测试工具
126 2
|
3月前
|
安全 前端开发 测试技术
如何选择合适的自动化安全测试工具
选择合适的自动化安全测试工具需考虑多个因素,包括项目需求、测试目标、系统类型和技术栈,工具的功能特性、市场评价、成本和许可,以及集成性、误报率、社区支持、易用性和安全性。综合评估这些因素,可确保所选工具满足项目需求和团队能力。
|
3月前
|
安全 网络协议 关系型数据库
最好用的17个渗透测试工具
渗透测试是安全人员为防止恶意黑客利用系统漏洞而进行的操作。本文介绍了17款业内常用的渗透测试工具,涵盖网络发现、无线评估、Web应用测试、SQL注入等多个领域,包括Nmap、Aircrack-ng、Burp Suite、OWASP ZAP等,既有免费开源工具,也有付费专业软件,适用于不同需求的安全专家。
466 2
|
3月前
|
监控 网络协议 Java
一些适合性能测试脚本编写和维护的工具
一些适合性能测试脚本编写和维护的工具

热门文章

最新文章