漫谈软件性能测试技术

简介:

1、引言

  随着我国加入WTO,各行各业都面临更多的机遇和挑战。如何提高产品的质量,增 强市场竞争力,日益成为企业发展必须解决的迫切问题,对软件企业来说尤为重要。软件企业要直接参与国际软件市场的竞争,首要问题就是要保证软件的质量,同 时要加快软件产品的发布与交付使用。因此,如何提高软件质量,越来越成为当前软件产业发展中一个迫在眉睫的问题。本文只针对软件质量的性能方面,做一些探 讨。

  2、软件质量

  质量保证能力的强弱直接影响着软件业的发展和生存。那么,到底 什么是软件的质量呢?《GB/T 16260 信息技术 软件产品评价 质量特性及其使用指南》明确定义:软件质量是软件产品具有满足明确的或隐含需求能力的特征和特性总和。具体包括以下六个方面的质量特性:

  1)功能性

  与一组功能及其指定的性质有关的一组属性。这里的功能是指满足明确或隐含的需求的那些功能。

  2)易用性

  与一组规定或潜在的用户为使用软件所需作的努力和对这样的使用所作的评价有关的一组属性。

  3)可靠性

  与在规定的一段时间和条件下,软件维持其性能水平的能力有关的一组属性。

  4)效率

  与在规定的条件下,软件的性能水平与所使用资源量之间关系有关的一组属性。

  5)可维护性

  与进行指定的修改所需的努力有关的一组属性。

  6)可移植性

  与软件可从某一环境转移到另一环境的能力有关的一组属性。

  因此,为了评价软件产品的质量,需要对软件质量的每个特性实施和执行测试. 随着现代软件构架技术的发展,特别是WEB技术的发展,与软件可靠性、效率质量特性相关的软件性能问题越来越受到包括软件从业人员、专家学者以及软件使用者的重视,软件的性能指标的好坏已直接影响到软件的质量。

  3、软件性能测试技术

  软件性能的测试一般包括三个方面,即性能评测、负载测试和强度测试。每一方面的测试都有其不同的测试目标、测试技术、完成标准,具体如下:

  3.1 性能评测

  针对响应时间、事务处理速率和其他与时间相关的需求进行评测和评估。目标是验证性能需求是否都已满足。

  测试目标:

  验证所指定的事务或业务功能在以下情况下的性能行为:

  (1)正常的预期工作量

  (2)预期的最繁重工作量

  测试技术:

  使用为功能或业务周期测试制定的测试过程。

  (1)通过修改数据文件来增加事务数量,或通过修改脚本来增加每项事务的迭代数量。

  (2)脚本应该在一台计算机上运行(最好是以单个用户、单个事务为基准),并在多个客户机(虚拟的或实际的客户机)上重复。

  完成标准:

  (1)单个事务或单个用户:在每个事务所预期或要求的时间范围内成功地完成测试脚本,没有发生任何故障。

  (2)多个事务或多个用户:在可接受的时间范围内成功地完成测试脚本,没有发生任何故障。

  注意事项:

  综合的性能测试还包括在服务器上添加后台工作量。 可采用多种方法来执行此操作,其中包括:

  (1)直接将“事务强行分配到”服务器上,这通常以“结构化查询语言”(SQL) 调用的形式来实现。

  (2)通过创建“虚拟的”用户负载来模拟许多个(通常为数百个)客户机。此负载可通过“远程终端仿真”(Remote Terminal Emulation) 工具来实现。此技术还可用于在网络中加载“流量”。

  (3)使用多台实际客户机在系统上添加负载。

  (4)性能测试应该在专用的计算机上或在专用的机时内执行,以便实现完全的控制和精确的评测。

  (5)性能测试所用的数据库应该是实际大小或相同缩放比例的数据库。

 3.2 负载测试
  负载测试通过使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行,以及软件的性能特征,例如,响应时间、事务处理速率和其他与时间相关的方面。

  测试目标:

  验证所指定的事务在不同的工作量条件下的性能行为时间。

  测试技术:

  使用为功能或业务周期测试制定的测试。通过修改数据文件来增加事务数量,或通过修改测试来增加每项事务发生的次数。

  完成标准:

  多个事务或多个用户:在可接受的时间范围内成功地完成测试,没有发生任何故障。

  注意事项:

  (1)负载测试应该在专用的计算机上或在专用的机时内执行,以便实现完全的控制和精确的评测。

  (2)负载测试所用的数据库应该是实际大小或相同缩放比例的数据库。

  3.3 强度测试

  强度测试目的是找出因资源不足或资源争用而导致的错误。如果内存或磁盘空间不足,测试对象就可能会表现出一些在正常条件下并不明显的缺陷。而其他缺陷则可能由于争用共享资源(如数据库锁或网络带宽)而造成的。强度测试还可用于确定测试对象能够处理的最大工作量。

  测试目标:

  验证测试对象能够在以下强度条件下正常运行,不会出现任何错误:

  (1)服务器上几乎没有或根本没有可用的内存(内存和磁盘空间)

  (2)连接或模拟了最大实际(实际允许)数量的客户机

  (3)多个用户对相同的数据或账户执行相同的事务

  (4)最繁重的事务量或最差的事务组合

  注:强度测试的目标可表述为确定和记录那些使系统无法继续正常运行的的情况或条件。

  测试技术:

  (1)使用为性能评测或负载测试制定的测试。要对有限的资源进行测试,就应该在一台计算机上运行测试,而且应该减少或限制服务器上的内存和磁盘空间。

  (2)对于其他强度测试,应该使用多台客户机来运行相同的测试或互补的测试,以产生最繁重的事务量或最差的事务组合。

  完成标准:

  所计划的测试已全部执行,并且在达到或超出指定的系统限制时没有出现任何软件故障,或者导致系统出现故障的条件并不在指定的条件范围之内。

  注意事项:

  (1)如果要增加网络工作强度,可能会需要使用网络工具来给网络加载消息或信息包。

  (2)应该暂时减少用于系统的磁盘空间,以限制数据库可用空间的增长。

  (3)使多个客户机对相同的记录或数据账户同时进行的访问达到同步。

  4、结束语

  软件质量的保证,不仅需要科学的测试策略,更要处理好整个软件生命周期中其他如需求、分析、设计、实现各阶段中出现的问题。只有对软件质量进行全面、全过程的质量控制,才能最终保证软件产品的质量,提高企业的竞争力。

本文出自seven的测试人生公众号最新内容请见作者的GitHub页:http://qaseven.github.io/

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
4天前
|
设计模式 测试技术 持续交付
深入白盒测试:提升软件质量与性能的关键策略
【4月更文挑战第20天】 在软件开发的复杂世界中,确保产品的质量和性能始终是至关重要的任务。白盒测试,作为软件测试领域的重要分支,提供了对程序内部结构和逻辑的深入分析手段。本文将探讨如何通过有效的白盒测试策略来优化软件性能,减少缺陷,并最终提高用户满意度。通过剖析代码检查、单元测试、集成测试等白盒测试技术,我们将了解这些方法如何揭示潜在的问题点,并为改进提供方向。
|
1月前
|
安全 测试技术
现代软件测试中的自动化技术应用及挑战
在当今数字化时代,软件测试的重要性日益凸显。本文探讨了现代软件测试中自动化技术的应用现状和挑战,分析了自动化测试在提高效率、降低成本、增强可靠性等方面的优势,同时也提出了自动化测试所面临的挑战和解决方案。
|
1天前
|
算法 测试技术 持续交付
深入白盒测试:提升软件质量与效率的关键策略
【4月更文挑战第23天】 在软件开发的复杂多变的环境中,确保产品的质量和可靠性是至关重要的。白盒测试作为一种重要的软件测试方法,允许测试者通过检查内部结构、设计和编码来验证软件的功能性和正确性。本文将探讨白盒测试的关键概念、技术及其在提升软件测试效率和质量中的应用。我们将重点讨论如何借助白盒测试发现潜在缺陷、优化测试用例设计,并通过具体案例分析展示其在实际中的应用效果。
|
1天前
|
测试技术
深入白盒测试:提升软件结构透视能力
【4月更文挑战第23天】在软件测试的广阔天地中,白盒测试以其独特的内在逻辑和代码透视能力而显得尤为重要。它不仅仅是一个测试方法,更是一种确保软件质量和可靠性的重要手段。本文将深入探讨白盒测试的概念、方法和最佳实践,旨在为软件开发和测试人员提供一种系统的视角,以帮助他们更好地理解并应用白盒测试技术,进而提高软件产品的质量。
3 0
|
2天前
|
算法 Java 测试技术
深入解析白盒测试:提升软件质量与效率的关键
【4月更文挑战第22天】 在软件开发的复杂多变的世界中,保证代码质量和功能的正确性是至关重要的。白盒测试作为一种重要的软件测试方法,提供了一种透视软件内部逻辑结构的途径。本文将详细探讨白盒测试的概念、技术手段和实际应用,旨在帮助读者理解如何通过这种测试提高软件系统的稳定性和性能。文章还将讨论白盒测试中面临的挑战以及应对策略,以期为软件质量保证提供实用的指导。
12 2
|
11天前
|
Web App开发 测试技术 网络安全
|
11天前
|
监控 jenkins 测试技术
深入探索软件自动化测试的高效策略
【4月更文挑战第13天】 随着软件开发周期的不断缩短和发布频率的增加,传统的手动测试方法已难以满足快速迭代的需求。本文将详细探讨如何通过有效的自动化测试策略提高测试效率和质量。我们将分析自动化测试中的关键要素,包括测试用例的设计、框架选择、持续集成的应用以及性能监控,并结合实际案例来展示如何构建和维护一个健壮的自动化测试系统。文中还将讨论自动化测试过程中常见的误区和挑战,为读者提供实用的解决方案和最佳实践。
|
13天前
|
算法 测试技术 持续交付
深入探索白盒测试:提升软件质量的关键策略
【4月更文挑战第11天】 在软件开发的复杂世界中,确保代码的健康性与可靠性是至关重要的。白盒测试作为一种软件测试方法,允许测试者深入到程序的内部结构,以检查其逻辑和算法的正确性。本文将探讨白盒测试的核心概念、技术及其在提高软件质量方面的应用,特别是如何通过有效的白盒测试策略来优化测试过程并降低错误率。
|
18天前
|
测试技术
深入白盒测试:提升软件质量与性能的关键策略
【4月更文挑战第6天】 在软件开发的生命周期中,确保代码质量和性能始终是至关重要的环节。白盒测试作为一种深入代码内部的测试方法,提供了对程序结构、逻辑路径和内部功能的全面评估。本文将探讨白盒测试的核心概念、技术及其在提升软件质量与性能方面的应用。通过分析控制流测试、数据流测试和静态代码分析等关键技术,我们揭示了白盒测试如何有效发现潜在缺陷,优化代码效率,并增强系统稳定性。
|
25天前
|
Web App开发 Java 测试技术
深入理解与应用软件自动化测试工具Selenium
随着软件开发的快速发展,软件测试在保证产品质量方面发挥着越来越重要的作用。其中,自动化测试以其效率高、成本低的特点受到了广大开发者的欢迎。本文主要介绍了自动化测试工具Selenium的基本概念、原理以及在实际开发中的应用,旨在帮助读者更好地理解和使用Selenium进行高效的自动化测试。
22 4

热门文章

最新文章