软件健壮性测试种类
功能性测试回顾

如果投保人有12点,则驾驶人的执照就会被吊销(因此
不需要保险)
基本保险费率随时间变化,对于这个例子,是每半年
500美元
31
年龄系数、门限点数与安全驾驶
折扣的对应关系
32
年龄和点数在最坏情况边界值
测试下的取值
33
保险金计算程序的
最坏情况边界值测试
如果变量不是独立的,可采用判定表测试
如果单缺陷假设可保证,可采用边界值分析和健壮性测
试
如果多缺陷假设可保证,可采用最坏情况测试、健壮最
坏情况测试和判定表测试
如果程序包含大量异常处理,可采用健壮性测试和判定
表测试
如果变量引用的是逻辑量,可采用等价类测试用例和判
定表测试
28
选择功能性测试的判定表
没有考虑16岁以下和100岁以上的年龄,这说
明要考虑健壮边界值的一些元素
可能还需要检查安全驾驶折扣被取消的值,
可能还包括保险不起作用的大于12的点数
请注意,对这些问题的回答没有出现在问题描述
中,但是测试分析能够启发我们考虑这些问题的
答案
46
图8-11 保险金计算程序的最终
(混合)测试用例
利用了通过应用程序的性质决定的所有三
试用例集
额外的好处,就是可以指出规格说明的不
完整性和不明确之处
因果图是一种形式语言,实际上是一种数
字逻辑电路,但没有使用标准的电子学符
号,而是使用了稍微简单点的符号
7
每种测试方法的测试用例数曲线
8
每种测试方法的精细程度
边界值分析
软件测试中的43个功能测试点

15. 检查多次使用返回键的情况: 在有返回键的地方,返回到原来页面,重复多次,看会否出错。
16. 搜索检查: 有搜索功能的地方输入系统存在和不存在的内容,看搜索结果是否正确.如果可以输入多个搜索条件,可以同时添加合理和不合理的条件,看系统处理是否正确,搜索的时候同样要注意特殊字符,某些系统会在输入特殊字符的时候,将系统中所有的信息都搜索到。
36.多浏览器验证:越来越多的各类浏览器的出现,用户访问Web程序不再单单依赖于Microsoft Internet Explorer,而是有了更多的选择:Maxthon、Firefox、Tencent Traveler等,考虑使用多种浏览器访问系统,验证效果。
37.安装测试:对于C/S架构的系统,安装程序的测试是一个重要方面,安装程序自动化程度、安装选项和设置(验证各种方案是否都能正常安装)、安装过程中断测试、安装顺序测试(分布式系统)、修复安装及卸载测试。
41.Ajax 技术的应用:Ajax有很多优点,但也有很多缺点,如果利用优点、避免缺点,是我们对新的Web2.0应用的一个挑战。而Ajax的应用最直接的问题就是用户体验,用户体验的效果直接关系到是否使用Ajax技术。“会做,并不意味着应该做、必须做”,这就是对Ajax技术的很重要的注解。
42.Ajax技术的应用:Ajax采用异步调用的机制实现页面的部分刷新功能,异步调用存在异常中断的可能,尝试各种方法异常中断异步的数据调用,查看是否出现问题。在这里遇到的一个问题就是对日期控件的操作,已经如果页面数据较多的时候的刷新。
17. 输入信息位置: 注意在光标停留的地方输入信息时,光标和所输入的信息会否跳到别的地方。
18. 上传下载文件检查:上传下载文件的功能是否实现,上传文件是否能打开。对上传文件的格式有何规定,系统是否有解释信息,并检查系统是否能够做到。下载文件能否打开或者保存,下载的文件是否有格式要求,如需要特殊工具才可以打开等。上传文件测试同时应该测试,如果将不能上传的文件后缀名修改为可以上传文件的后缀名,看是否能够上传成功,并且,上传文件后,重新修改,看上传的文件是否存在。
操作系统健壮性测试方法的分析与比较

果进行了分析和比较。
【 键 :操 统; 壮 测 故障 入; lt 关 词】 作系 健 性 试; 注 Bla as i
覆盖率: 理想的基准程序能够覆盖所有的系统模块, 然而这 因此一般选取使用频度最高的模块进行测试。 一直以来, 人们比 较关注软件系统在正常负载或正常环境 种开销是巨大的。 可扩展性: 可扩展的 基准程序能够提供一种途径, 来保证扩 下能否稳定地工作, 但却常常 忽视系 统在异常输人情况下的行 为。软件健壮性是指软件系统或软件模块在异常输入或苛刻环 展它的测试集时能够前后一致。这种可扩展性不仅指为已有模 境条件下能保持正常工作的程度[ 软件系统的不健壮行为可能 块增加测试集, m 。 还包括为新增加的 模块增加测试集。 测试结果的记录:健壮性测试的目的是找出系统的不健壮 来自 软件系统本身的错误, 但更常见的是由于忽视了对异常输 因此应详细的记录测试结果。 人的检测而引起的。 例如20 年1 月, 00 2 上海电信公司浦东电信 性因素,
20 年第 1 07 期
福
建
电
脑
4 9
操作系统健壮性测试方法的分析与比较
赵则章
( 同济大学计算机科学与技术系 上海 21 4 08 ) 0
并且构建 了 【 要】 摘 :健壮性已经成为衡量软件性能的一个重要指标。目 人们已经提出了 前, 一些健壮性测试的方法, 还 一批健壮性测试工具。 本文对这些方法和工具进行了 研究, 并利用方法中的开源工具对L u2 . 进行了测试, 对 测试 结 i x.2 n 42
5 结束语 .
FT SnS I 是针对 uO 的故障注人和检测环境, A 用来研究该系 的失效率随着注人故障数的增加而增加。这说明我们适当的增 统内核的故障传播行为 [. T的故障注人类型有以下几种: 加测试案例能够使测试更加有效。 I F ' I l A l 健壮性是衡量软件性能的一个新指标, 本文对现有的操作 并对它们进行分析 位一 字 )定 意 ;oic psnfl 将 个 系统健壮性测试工具做了比较详细的介绍, (个 节设 随 值t-to ea g m,一 w b m nt at s i u 较。 健壮性测试仍然是 3 位字的 2 任意两位取补。 IT F 使用矩阵乘法作为工作负载, 和比 尽管已经有了一些测试方法和工具, A 定 义了3 种矩阵乘法: e a ( 3 33 n mt n ) x 的矩阵乘法; ta 一个需要完善的领域。健壮性测试的最终目的是要提高系统健 t 3 , m nmt e 4 需要根据测试结果生成相应的保护代码, 这方面的研究更 ( 444 矩阵 n ) x 的 乘法;e a ( 6 66 矩阵 法。 试 壮性, m , nmt n ) x 的 乘 测 t 6 , m
软件系统的主要测试内容及技术

软件系统的主要测试内容及技术●接口与路径测试●功能测试●健壮性测试●性能测试●用户界面测试●信息安全测试●压力测试●可靠性测试●安装/反安装测试一、接口与路径测试1、数据一般通过接口输入和输出,所以接口测试是白盒测试的第一步。
每个接口可能有多个输入参数,每个参数有“典型值”、“边界值”、“异常值”之分,所以输入的组合数可能并不少。
根据接口的定义,可以推断某种输入应当产生什么样的输出。
输出包括函数的返回值和输出参数。
如果实际输出与期望的输出不一致,那么说明程序有错误。
白盒方式的接口测试和黑盒方式的功能测试,其方法十分相似。
2、一个函数体内的语句可能只有十几条,但逻辑路径可能有成千上万条。
想遍历测试几乎是不可能的,不测试或者胡乱找几条路径测试却又不行。
3、对于非严格系统而言,在分析路径方面化费很多精力是不值得的。
我认为在构造接口测试的同时已经建立了测试路径。
因为每一种输入将产生唯一的输出,输入与输出之间的路径也是唯一的。
由于接口测试中的输入是有代表性的,因此相应的路径也具有代表性,不用得着费煞苦心地去找测试路径。
4、路径测试的检查表数据类型、变量值、逻辑判断、循环、内存管理、文件I/O、错误处理5、由于接口测试是枚举的,有可能漏掉某些状况,导致一些重要的路径没有被测试。
预防措施有:(1)观察是否有程序语句从来没有被执行过。
如果发生在这种情况,要么是程序有错误,存在无用的代码;要么是接口测试不充分,漏掉了一些路径。
(2)要特别留意函数体内的错误处理程序块(如果存在的话),这是最易被人疏忽的路径,隐患最多。
----资料:软件单元测试的主要内容是接口测试和路径测试,毫无疑问应当采用白盒测试方式。
如果对源代码中的某个函数进行白盒测试,那么要跟踪到函数的内部,检查所有代码的运行状况。
初看起来,白盒测试可获得100%的正确性。
但不幸的是,即使一段很小的程序,它的逻辑路径可能多得让人无法彻底地进行白盒测试。
数据一般通过接口输入和输出,所以接口测试是白盒测试的第一步。
软件开发中的健壮性测试技术应用

软件开发中的健壮性测试技术应用在当今数字化时代,软件的开发和应用已成为各行各业不可或缺的一部分。
由于软件极其复杂和多样化,使得软件错误和缺陷的出现在所难免。
这些错误和缺陷可能会导致软件崩溃、功能故障、安全漏洞等问题,有时甚至会给企业和用户带来严重的损失和威胁。
因此,软件开发中的健壮性测试技术应用显得非常重要。
一、什么是健壮性测试在软件开发过程中,健壮性测试(robustness testing)是一种测试策略,旨在验证软件的健壮性,即在出现异常或错误的情况下,软件是否能够正确地恢复或适当地终止。
健壮性测试通常是由测试工程师和测试团队实施的,其目的是验证软件在多种条件下的质量和可靠性。
这些条件可以是不良环境因素、非正常输入、过载、崩溃等。
健壮性测试包括以下方面:1. 验证软件在非正常输入和界面条件下的反应和行为2. 确定软件在应对不良环境因素时的表现和容错能力3. 针对软件可能遇到的各种情况进行测试,以确保其能够正确地处理它们二、健壮性测试的意义健壮性测试在软件开发中具有重要意义,原因如下:1. 确保产品的质量通过对软件在遇到异常情况下的总体表现进行测试,可以有效地提高软件的质量和可靠性。
这对于保证客户的满意度和产品的竞争力非常重要。
2. 防止资源的浪费通过健壮性测试,可以检测并修复软件中的错误和缺陷,以避免在后续测试或生产阶段中出现更加严重的问题。
这样可以避免不必要的资源浪费。
3. 应对未知的风险健壮性测试通常测试非正常输入、超载、崩溃等情况下的表现和容错能力。
这能够帮助测试团队掌握软件在意外情况下的表现,及时为主要的安全威胁提供有效的防护措施,以减小潜在风险的发生概率。
三、健壮性测试技术的应用在使用健壮性测试技术时,测试团队需要遵循以下步骤:1. 确定测试目标和测试条件测试团队需要选择合适的测试目标和测试条件。
这些条件需要是实际情况中可能出现的,并涵盖了各种可能的系统环境和出现潜在问题的多个方面。
软件开发中的可靠性和健壮性

软件开发中的可靠性和健壮性随着信息技术的快速发展,软件开发已经成为现代社会中不可或缺的一个组成部分。
同时也正是因为软件开发的重要性,软件开发过程中的可靠性和健壮性成为了开发人员们无法回避的问题。
软件可靠性和健壮性涉及了软件开发的各个方面,从最初的需求分析,到设计,开发,测试和实施,每个步骤都需要开发人员们的高度注意和精细操作,以确保软件的可靠性和健壮性。
那么在软件开发中,可靠性和健壮性具体指哪些方面呢?1.需求分析环节的可靠性和健壮性首先,我们需要明确的是,在需求分析中,可靠性和健壮性是指开发人员们能否 accurate 地 and comprehensively 地理解和收集用户的需求。
这个过程是开发的前置条件,所以没有一个能够准确地进行需求分析,软件就无法进行正常的开发。
在需求分析环节,开发人员需要与用户进行充分而又周详的沟通,确保能够获取准确的需求信息,这也是软件开发中可靠性和健壮性的基础所在。
2.设计阶段的可靠性和健壮性软件设计阶段的可靠性和健壮性涉及到了软件设计的合理性和完整性。
设计阶段中,开发人员需要根据前期需求分析的信息,设计出一套合理且完整的软件架构和系统布局,以便于后续的程序开发。
在这一阶段,开发人员需要勤奋分析,认真考虑系统的所有可能情况,以确保软件能够满足用户的需求,此外还要确保所设计的架构具有足够的扩展性,以便软件在未来的发展过程中可以不断完善。
3.开发阶段的可靠性和健壮性在开发阶段,开发人员需要根据设计阶段所设计的架构进行具体的程序编写。
在编写代码过程中,开发人员需要引入各种的逻辑验证和错误处理机制,以防止程序逻辑出现问题,或者因为外界因素导致程序崩溃。
在此过程中,开发人员需要对程序的运行效率,可读性,可维护性等方面进行综合考虑,并加入相应的优化和调整,以确保程序具有足够的健壮性。
4.测试阶段的可靠性和健壮性在开发阶段结束后,我们需要进入到测试阶段,对所编写的程序进行全面的测试,以确保其具有足够的可靠性和健壮性。
浅谈计算机软件测试技术与保护技术

浅谈计算机软件测试技术与保护技术摘要:计算机软件的质量和安全需要依靠计算机软件测试技术与保护技术来实现。
本文分别介绍了计算机软件测试技术与保护技术的概念、目的,并对测试技术、保护技术进行了具体的介绍,旨在促进二者的进一步发展,从而推动计算机技术的整体进步。
关键词:计算机软件;测试技术;保护技术中图分类号:tp312 文献标识码:a 文章编号:1007-9599 (2012)18-0000-021 软件测试技术1.1 软件测试的概念和目的(1)软件测试:在具体的指定条件下去完成测试系统或者组件的操作,通过观察发现问题、记录测试结果,并对测试系统或组件的各个方面做出评价的一系列过程。
根据应用目标或者特性的不同,可以将软件测试分为以下几类:可靠性测试、安全性测试、适用性测试、健壮性测试、功能测试、性能测试等。
(2)软件测试的根本目的在于找出错误,解决问题。
用户希望通过软件测试来发现软件中隐藏的问题,以此决定是否购买该产品;软件开发者则希望通过软件测试证明软件中不存在隐藏的问题,可以满足用户的要求,坚定用户购买的决心。
1.2 软件测试与软件质量的关系人们的生活和计算机已经密不可分,软件种类呈几何级增长,复杂程度也在与日俱增,保证软件的质量成了开发者和用户共同关心的课题。
软件质量保证贯穿于整个的软件开发周期。
软件质量保证的方法是多种多样的,其中当属软件测试最具代表性。
相当部分软件公司已经给予了软件测试足够的重视,据传微软的软件测试人员的数量竟是软件开发人员的两倍。
未来相当长的一段时间内,软件测试都将是软件质量的重要保障。
1.3 软件测试技术的具体应用(1)软件测试阶段。
软件测试可分为四个阶段:一、单元测试,在相对隔离的环境条件下,测试单个的、独立的软件模块,找出它的缺陷。
二、集成测试,以单位测试为基础,即将各个模块组装完成后,测试各个模块接口有无问题。
三、系统测试,将软件系统和其他组成部分作为一个整体,确保各组成部分不但能独自接受测试,而且在各组成部分协调的情况下也无错误发生。
软体测试的种类

软体测试的种类
1.功能测试:功能测试主要针对产品需求说明书的测试,主要是验证功能是否符合需求,包括原定功能的检验、是否有冗余功能、遗漏功能。
这类测试应由测试员做,这并不意味着程式设计师在释出前不必检查他们的**能否工作(自然他能用于测试的各个阶段)。
2.健壮性测试(容错能力/恢复能力测试):侧重于程式容错能力的测试。
本测试在单元测试阶段和系统测试阶段都要进行。
如资料边界测试、非法资料测试、异常中断测试等等,主要是验证程式对各种异常情况是否进行正确处理。
为了执行方便,建议健壮性的大部分测试用例儘量编写在功能测试用例中。
3.介面测试:程式设计师对各个模组进行系统联调的测试,包含程式内介面和
程式外介面测试。
这个测试,在单元测试阶段进行了一部分工作,而大部分都是在整合测试阶段完成的。
由开发人员进行。
4.强度测试强度测试检查程式对异常情况的抵抗能力。
强度测试总是迫使系统在异常的资源配置下执行。
例如,①当中断的正常频率为每秒一至两个时,执行每秒产生十个中断的测试用例;②定量地增长资料输入率,检查输入子功能的反映能力;③执行需要最大储存空间(或其他资源)的测试用例;④执行可能导致虚存作业系统崩溃或磁碟资料剧烈抖动的测试用例,等等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件健壮性测试种类一、安全测试安全测试检查系统对非法侵入的防范能力。
安全测试期间,测试人员假扮非法入侵者,采用各种办法试图突破防线。
安全测试 - 相关举例例如,①想方设法截取或破译口令;②专门定做软件破坏系统的保护机制;③故意导致系统失败,企图趁恢复之机非法进入;④试图通过浏览非保密数据,推导所需信息,等等。
理论上讲,只要有足够的时间和资源,没有不可进入的系统。
因此系统安全设计的准则是,使非法侵入的代价超过被保护信息的价值。
此时非法侵入者已无利可图。
二、恢复测试,英文是Recovery testing。
恢复测试是测试一个系统从如下灾难中能否很好地恢复,如遇到系统崩溃、硬件损坏或其他灾难性问题。
恢复测试指通过人为的让软件(或者硬件)出现故障来检测系统是否能正确的恢复,通常关注恢复所需的时间以及恢复的程度。
恢复测试主要检查系统的容错能力。
当系统出错时,能否在指定时间间隔内修正错误并重新启动系统。
恢复测试首先要采用各种办法强迫系统失败,然后验证系统是否能尽快恢复。
对于自动恢复需验证重新初始化(reinitialization)、检查点(checkpointing mechanisms)、数据恢复(data recovery)和重新启动(restart)等机制的正确性;对于人工干预的恢复系统,还需估测平均修复时间,确定其是否在可接受的范围内。
三、性能测试性能测试图线性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
负载测试和压力测试都属于性能测试,两者可以结合进行。
通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。
压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。
制定目标和分析系统选择测试度量的方法学习的相关技术和工具制定评估标准设计测试用例运行测试用例分析测试结果性能测试方法基准测试性能规划测试渗入测试峰谷测试性能测试工具介绍结束语测试类型分析与调优基本原则展开性能测试在软件的质量保证中起着重要的作用,它包括的测试内容丰富多样。
中国软件评测中心将性能测试概括为三个方面:应用在客户端性能的测试、应用在网络上性能的测试和应用在服务器端性能的测试。
通常情况下,三方面有效、合理的结合,可以达到对系统性能全面的分析和瓶颈的预测。
应用在客户端性能的测试应用在客户端性能测试的目的是考察客户端应用的性能,测试的入口是客户端。
它主要包括并发性能测试、疲劳强度测试、大数据量测试和速度测试等,其中并发性能性能测试图像测试是重点。
并发性能测试是重点并发性能测试的过程是一个负载测试和压力测试的过程,即逐渐增加负载,直到系统的瓶颈或者不能接收的性能点,通过综合分析交易执行指标和资源监控指标来确定系统并发性能的过程。
负载测试(Load Testing)是确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统组成部分的相应输出项,例如通过量、响应时间、CPU负载、内存使用等来决定系统的性能。
负载测试是一个分析软件应用程序和支撑架构、模拟真实环境的使用,从而来确定能够接收的性能过程。
压力测试(Stress Testing)是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。
并发性能测试的目的主要体现在三个方面:以真实的业务为依据,选择有代表性的、关键的业务操作设计测试案例,以评价系统的当前性能;当扩展应用程序的功能或者新的应用程序将要被部署时,负载测试会帮助确定系统是否还能够处理期望的用户负载,以预测系统的未来性能;通过模拟成百上千个用户,重复执行和运行测试,可以确认性能瓶颈并优化和调整应用,目的在于寻找到瓶颈问题。
当一家企业自己组织力量或委托软件公司代为开发一套应用系统的时候,尤其是以后在生产环境中实际使用起来,用户往往会产生疑问,这套系统能不能承受大量的并发用户同时访问? 这类问题最常见于采用联机事务处理(OLTP)方式数据库应用、Web浏览和视频点播等系统。
这种问题的解决要借助于科学的软件测试手段和先进的测试工具。
举例说明:电信计费软件众所周知,每月20日左右是市话交费的高峰期,全市几千个收费网点同时启动。
收费过程一般分为两步,首先要根据用户提出的电话号码来查询出其当月产生费用,然后收取现金并将此用户修改为已交费状态。
一个用户看起来简单的两个步骤,但当成百上千的终端,同时执行这样的操作时,情况就大不一样了,如此众多的交易同时发生,对应用程序本身、操作系统、中心数据库服务器、中间件服务器、网络设备的承受力都是一个严峻的考验。
决策者不可能在发生问题后才考虑系统的承受力,预见软件的并发承受力,这是在软件测试阶段就应该解决的问题。
目前,大多数公司企业需要支持成百上千名用户,各类应用环境以及由不同供性能测试图像应商提供的元件组装起来的复杂产品,难以预知的用户负载和愈来愈复杂的应用程序,使公司担忧会发生投放性能差、用户遭受反应慢、系统失灵等问题。
其结果就是导致公司收益的损失。
如何模拟实际情况呢? 找若干台电脑和同样数目的操作人员在同一时刻进行操作,然后拿秒表记录下反应时间?这样的手工作坊式的测试方法不切实际,且无法捕捉程序内部变化情况,这样就需要压力测试工具的辅助。
测试的基本策略是自动负载测试,通过在一台或几台PC机上模拟成百或上千的虚拟用户同时执行业务的情景,对应用程序进行测试,同时记录下每一事务处理的时间、中间件服务器峰值数据、数据库状态等。
通过可重复的、真实的测试能够彻底地度量应用的可扩展性和性能,确定问题所在以及优化系统性能。
预先知道了系统的承受力,就为最终用户规划整个运行环境的配置提供了有力的依据。
并发性能测试前的准备工作测试环境:配置测试环境是测试实施的一个重要阶段,测试环境的适合与否会严重影响测试结果的真实性和正确性。
测试环境包括硬件环境和软件环境,硬件环境指测试必需的服务器、客户端、网络连接设备以及打印机/扫描仪等辅助硬件设备所构成的环境;软件环境指被测软件运行时的操作系统、数据库及其他应用软件构成的环境。
一个充分准备好的测试环境有三个优点:一个稳定、可重复的测试环境,能够保证测试结果的正确;保证达到测试执行的技术需求;保证得到正确的、可重复的以及易理解的测试结果。
测试工具:并发性能测试是在客户端执行的黑盒测试,一般不采用手工方式,而是利用工具采用自动化方式进行。
目前,成熟的并发性能测试工具有很多,选择的依据主要是测试需求和性能价格比。
著名的并发性能测试工具有QALoad、LoadRunner、Benchmark Factory和Webstress等。
这些测试工具都是自动化负载测试工具,通过可重复的、真实的测试,能够彻底地度量应用的可扩展性和性能,可以在整个开发生命周期、跨越多种平台、自动执行测试任务,可以模拟成百上千的用户并发执行关键业务而完成对应用程序的测试。
测试数据:在初始的测试环境中需要输入一些适当的测试数据,目的是识别数据状态并且验证用于测试的测试案例,在正式的测试开始以前对测试案例进行调试,将正式测试开始时的错误降到最低。
在测试进行到关键过程环节时,非常有必要进行数据状态的备份。
制造初始数据意味着将合适的数据存储下来,需要的时候恢复它,初始数据提供了一个基线用来评估测试执行的结果。
在测试正式执行时,还需要准备业务测试数据,比如测试并发查询业务,那么要求对应的数据库和表中有相当的数据量以及数据的种类应能覆盖全部业务。
模拟真实环境测试,有些软件,特别是面向大众的商品化软件,在测试时常常需要考察在真实环境中的表现。
如测试杀毒软件的扫描速度时,硬盘上布置的不同类型文件的比例要尽量接近真实环境,这样测试出来的数据才有实际意义。
并发性能测试的种类与指标并发性能测试的种类取决于并发性能测试工具监控的对象,以QALoad自动化负载测试工具为例。
软件针对各种测试目标提供了DB2、DCOM、ODBC、ORACLE、NETLoad、Corba、QARun、SAP、SQLServer、Sybase、Telnet、TUXEDO、UNIFACE、WinSock、WWW、Java Script等不同的监控对象,支持Windows和UNIX测试环境。
最关键的仍然是测试过程中对监控对象的灵活应用,例如目前三层结构的运行模式广泛使用,对中间件的并发性能测试作为问题被提到议事日程上来,许多系统都采用了国产中间件,选择Java Script监控对象,手工编写脚本,可以达到测试目的。
采用自动化负载测试工具执行的并发性能测试,基本遵循的测试过程有:测试需求与测试内容,测试案例制定,测试环境准备,测试脚本录制、编写与调试,脚本分配、回放配置性能测试图像与加载策略,测试执行跟踪,结果分析与定位问题所在,测试报告与测试评估。
并发性能测试监控的对象不同,测试的主要指标也不相同,主要的测试指标包括交易处理性能指标和UNIX资源监控。
其中,交易处理性能指标包括交易结果、每分钟交易数、交易响应时间(Min:最小服务器响应时间;Mean:平均服务器响应时间;Max:最大服务器响应时间;StdDev:事务处理服务器响应的偏差,值越大,偏差越大;Median:中值响应时间;90%:90%事务处理的服务器响应时间)、虚拟并发用户数。
应用实例:“新华社多媒体数据库V1.0”性能测试中国软件评测中心(CSTC)根据新华社技术局提出的《多媒体数据库(一期)性能测试需求》和GB/T 17544《软件包质量要求和测试》的国家标准,使用工业标准级负载测试工具对新华社使用的“新华社多媒体数据库V1.0”进行了性能测试。
性能测试的目的是模拟多用户并发访问新华社多媒体数据库,执行关键检索业务,分析系统性能。
性能测试的重点是针对系统并发压力负载较大的主要检索业务,进行并发测试和疲劳测试,系统采用B/S运行模式。
并发测试设计了特定时间段内分别在中文库、英文库、图片库中进行单检索词、多检索词以及变检索式、混合检索业务等并发测试案例。
疲劳测试案例为在中文库中并发用户数200,进行测试周期约8小时的单检索词检索。
在进行并发和疲劳测试的同时,监测的测试指标包括交易处理性能以及UNIX(Linux)、Oracle、Apache资源等。
测试结论:在新华社机房测试环境和内网测试环境中,100M带宽情况下,针对规定的各并发测试案例,系统能够承受并发用户数为200的负载压力,最大交易数/分钟达到78.73,运行基本稳定,但随着负载压力增大,系统性能有所衰减。
系统能够承受200并发用户数持续周期约8小时的疲劳压力,基本能够稳定运行。
通过对系统UNIX(Linux)、Oracle和Apache资源的监控,系统资源能够满足上述并发和疲劳性能需求,且系统硬件资源尚有较大利用余地。