软件开发的性能测试与研究
软件开发的性能测试与研究 随着计算机网络技术的普遍化,软件性能的重要性也越来越明显,软件性 能掌控着硬件配置的提升和改变。系统结构由网络、数据库和服务器等多部分组 成的,整个系统中的每个成员都有着不可替代的作用,其中任何一个环节出现问 题都影响着整个系统的正常操作。因此,软件开发的性能测试被列为重要问题。1 软件性能的理论认识 软件性能指的是软件系统或部分应用是否达到一定的要求,在实现的过程 中是否具有良好的及时性。软件的性能不仅包括系统的响应时间还包括一些内部 因素和外部因素,内部因素有软件架构、代码、数据库结构等,而外部条件则包 括用户或其他一些工作人员操作内容等。目前为止软件性能是否达标主要表现在 操作的响应时间,如果用户通过按钮发出相对应的程序指令,从开始的按钮操作 到最后反应出相对结果,中间反应的过程就是用户对软件性能是否得到肯定的直 观现象。当然软件性能的体现还通过对CPU和内存的利用率、数据的状况、系统 的可扩展性等,有了这些对软件性能的认识,我们就能更好的提高系统性能。
2 软件性能测试方法 在软件性能测试过程中,如果掌握的方法不恰当就会变成很随意的测试行 为,没有实际的作用,更达不到预期想要的效果,因此在测试过程中必须注意一 定的方式方法。测试过程主要包括洞悉测试目的、确定性能指标,规划测试策略 等环节,测试的充分准备和结果的有效性直接影响着性能测试需求分析的好坏。
因此软件性能测试目的主要验证软件性能在软件开发合同、预定的设计目标、用 户现在或未来的应用需求等方面是否达到明确性的指标;
在无明确性能标准的情 况下,通过对软件支持的最大用户数量,各种差异环境下的变化和最低正常运行 需要的支持情况,最佳条件下能做到的用户最大数据量等,也可以说是是否符合 软件性能的验证。这种方法主要就是在性能测试中通过分析性能缺陷问题找出软 件性能缺陷的原因,方便工作人员能提高软件的性能优化,这将使得测试工作的 步伐更迈出了一大步。
2.1 检查式测试与度量式测试的不同及对比 目前条件下,固定的软件项目本身具有不同的系统特征和特性,测试人员 为顾及多方位的考虑,选择测试方法也多种多样,例如:黑白盒测试、单元测试、功能测试、压力、安全及兼容性等方面的测试。在逼真、独立、无毒软件、硬件 和网络环境下,所使用的最常见的测试方法是检查式测试与度量式测试。检查式 测试一般包括跟踪客户需求、了解测试人员的测试目的、测试前的准备工作和测 试过程中所用到的数据等,测试用例的最终目的就是验证软件系统的某一项功能 是否顺利实现和实施。这种测试用例无法预知最终结果,也无法确定能否顺利实 施下去,直接由最终的测试结果来发言,通过或者淘汰。这种先检验性的测试统 称为检查式测验,概括的范围也较广,如单元测试和功能测试都包括在检查式测 验中。度量式测验与检查式测验不同,是通过针对软件的一项特定功能基于周边 多项指标数据量化而产生,在系统测试和使用阶段的数据参考,度量式测试需要 在原有数据参考的情况下结合实际情况进行下一步的分析和决策,而不是检测式 的那种Yes OR No的情况,这种集相关数据的方式比检查式测试更具有稳定性, 对最后得出结论的总体质量和细节有更高的研究价值,这种度量式测试多发生在 功能测试和兼容性测试中。
平常的测试活动中,检查式测试的优点是:通过测试得到相应结果显而易 见,相对其它测试方法而言,测试效果更加可靠、高效,而且简单方便易于管理;
其缺点是随机性较强,测试比较单薄,也有陷入惯性思维的可能性。度量式测试 以固定的参考数据为根据,接触观点较多,善于灵活变通,在相对基础上也比较 稳定、可靠,缺点是需要将多种参考数据的观点都考虑进去,从多方位思考问题, 需要的资源较多,测试过程肯定会比较复杂化,在对软件质量提高过程中并不是 直接关系。
2.2 软件开发性能测试的重要性 很多软件性能测试中用检查式的测试方式虽然有部分阶段相对稳定,但也 有大部分的缺陷问题存在,因此根据度量式测试方法的稳定、可靠、丰富灵活的 特点,需要在度量式测试上加大力度,人们往往一直追寻用多种方法尝试,但其 中所投入的人力、物力、精力也有一定的压迫感,虽然检查式测试具有直接、高 效的优点,而且也受到一部分专业人士的青睐,占用一定的主体地位,但是度量 式测试也只是在后期运用了几次。从目前的现状来看,确实检查式测试比度量式 测试突出重要功能。但从长远过程来看就会出现很多问题,遇到紧急重大任务时, 我们首先用的解决方案应该首选度量式测试,所以重新正视度量式的重要性很有 必要。
2.3 确定测试的战略性措施了解测试目的和性能指标后,应对相应用户的需求给于相对应的解决对策, 也就是用什么样的方式方法帮助用户实现最终测试目的。相对软件系统而言,当 测试要素中出现变化,其本身性能也会随之发生改变,根据测试要素的变化进行 结合,可以实现不同的测试目标,通过在一种条件变化,其余不变的情况下来验 证所能支持用户性能的最大数量。负载测试、压力测试和疲劳强度测试等证明确 定测试措施,需要先确定测试要素。测试需求与测试要素也紧密相关,有些测试 需求中有确切的测试要素,有些则没有,需要通过相关情况调查来获取测试要素。
其中包括:并发用户数、数据量、用户分布与被测功能。在没确定测试要素的情 况下,通过分析软件特点来找出答案。
3 软件开发性能的测试研究