根据测试内容的不同,性能测试主要包括以下方面: 1、响应时间测试 1.响应时间测试,通常指正常单用户操作时客户端的响应时间,以及将强度测试、负载测试、压力测试结合时客户端的响应时间。 2.函数、方法、对象、子例程执行时间。 3.函数、方法调用频度及嵌套。 4.运行特定模块、按特定路径执行或处理特定数据所花费的时间。 5.处理精度。 6.如果两次运行时间相差三倍以上,则可能存在问题。 2、强度测试(压力/负载测试) 强度测试需要在反常数量、频率或资源的方式下运行系统,以检验系统能力的最高实际限度,它要求软件必须被强制在它的设计能力的极限状态下运行。 3、软件可靠性测试 这种测试经常发现的错误包括越界指针,内存泄露、栈溢出、超过两个特性之间的错误交互等,也称长序列测试(long sequence testing)、持久测试(duration testing)、耐力测试(endurance testing)。测试持续时间较长,目标是发现程序测试遗漏的错误。 可靠性差的软件,如执行时总是频繁地、重复地失败,软件不能稳定地工作。 软件可靠性测试的目的是给出可靠性的定量估计值。 软件性能评测“指标观” 一般来说衡量软件性能测试的标准可以采用以下曾用的方法: 1、软件可靠度(R)指标 一种定量描述软件可靠性的方法,是指在规定的条件下和规定的时间内,软件在其运行剖面的某时刻正确地实现规定功能的概率。 2、软件平均故障前工作时间(MTTF) 一种定量描述软件可靠性的方法,是指一定配置状态下的软件产品在其规定的运行剖面中故障工作时间的期望值,以及软件故障强度。 3、软件平均无故障工作时间(MTBF) 计算机系统或子系统实现其功能的能力。一般以对计算机系统或子系统执行其功能的能力的度量。例如,响应时间、吞吐能力、事务处理数、占用率。 软件性能测试“实例观” 为了让读者对性能测试有更深刻的认识,下面以手机中运行的软件为例,说明在实际的软件开发过程中性能测试方法的运用: 手机性能测试的方法可分为手工测试和自动测试。 手工测试主要是通过测试人员手动操作,并借助某些监测仪器和工具来验证手机性能。但由于手机功能众多,很多性能测试需要重复性地进行,工作量很大,这需要耗费大量测试时间同时也容易造成测试的遗漏,不能保证性能测试的准确性和高效率。 借助PC平台,目前已经有很多功能强大且通用的自动测试工具,如比较典型的有Winrunner,Robot,Loadrunner等等,但这些工具必须进行二次开发,才能将自动测试工具兼容到手机这种嵌入式系统中来。 手机的自动化性能测试一般分为以下几个步骤进行: 1、系统分析 将系统的性能指标转化为性能测试的具体目标。通常在这一步骤里,要分析被测系统结构,结合性能指标,制定具体的性能测试实施方案。要求测试人员对被测系统结构和实施业务全面掌握。 2、建立虚拟用户脚本 将业务流程转化为测试脚本,通常指的是虚拟用户脚本或虚拟用户。虚拟用户通过驱动一个真正的客户程序来模拟真实用户,要将各类被测业务流程从头至尾进行确认和记录,分析每步操作的细节和时间,将其精确地转化为脚本。类似制造一个能够模仿人的行为和动作的机器人过程。 3、根据用户性能指标创建测试场景 根据真实业务场景,对生成的测试脚本进行复制和控制,对脚本的执行制定规则和约束关系,转化为满足性能测试指标的测试用例集。这个步骤需要结合用户性能指标进行细致地分析。 4、运行测试场景,同步监测应用性能 在性能测试运行中,实时监测能使测试人员在测试过程中的任何时刻都可以了解应用程序的性能优劣。系统的每一部件都需要监测:协议栈,MMI应用程序,内存占用情况,驱动程序运行状态等。实时监测可以在测试执行中及早发现性能瓶颈。 5、性能测试的结果分析和性能评价 结合测试结果数据,分析出系统性能行为表现的规律,并准确定位系统的性能瓶颈所在。可以利用数学手段对大批量数据进行计算和统计,使结果更加具有客观性。在性能测试中,需要注意的是,能够执行的性能测试方案并不一定是成功的,成败的关键在于其是否精确地对真实世界进行了模拟。 在整个性能测试过程中,自动化测试工具的选择只能影响性能测试执行的复杂程度,但人的分析和思考却会直接导致性能测试的成败。 总之,软件性能测试的方法很多,不同方法的评测指标也是不同的。针对用户的需求、开发模式以及开发过程的不同,灵活。
|