黄薇薇
(上海外服杰浦企业管理有限公司,上海 200120)
在计算机网络技术发展伊始阶段,软件测试技术还未在国内兴起,为了提升软件质量,各个企业机构需要靠人工测试软件产品。人工测试是国内典型的传统测试方法,是由测试人员自己编写测试案例,并保留测试结果。人工测试不具备测试的科学性和紧密性,并且要受到人员和时间的约束,工作负担重,冗余性高,人工测试者会迭代进行手动回归测试,具有代价昂贵,鲁棒性差的问题。不断地进行迭代测试也给测试人员带来很大的心理压力,进而容易造成测试结果前后差异性大的问题,而且测试耗费的时间较长,精度较低。
在信息化时代,各个行业系统应用软件的规模在不断地扩展,繁琐程度也在加大,很多软件机构开始将重点放在软件测试中,对其测试的要求也越来越高。但仍旧有部分中小软件企业还滞留在人工测试阶段。而引进软件测试的企业也仅仅是利用测试工具进行较为简单的录制。只有稀少的专业的大型软件企业建立专门的软件质量控制系统,针对自家企业的软件特点设计专门的软件测试框架。虽然国内软件测试的数量在扩大,但仍旧有很多不足,随着软件企业数量的不断增多,软件行业市场竞争也在不断加大。要想在国内市场立稳脚跟就需要将先进的软件测试理念引入到对系统软件开发和研制过程中,由此提升国内软件产品的设计质量。
银行网络系统是一个较为复杂的系统,并且具有并发请求规模大的特点,要求系统要具有特别高的稳定性,否则会形成大规模的网络事故,然而常规的软件测试手段难以支持系统的测试需求,这就需要依据银行软件工程具有的特征对银行系统软件工程框架进行分析。文章主要从如下几个方面表述银行软件工程框架。
2.1.1 软件工程目标
软件工程的目标是要确保系统软件具有开销适中性、正确性和可用性。其中,所谓正确性是指软件产品可以达到理想功能的程度。可用性是指软件具有的基本性能能够满足用户所用文档的数量。对开销适中的程度定义是软件开发和运行的全部开销可满足用户需求的程度。而这些目标的完成在理论和实际操作过程中都会有许多瑕疵,而这些瑕疵会影响其软件工程的质量。
2.1.2 软件工程过程
形成一个能够完全满足工程目标的软件产品需要一个全面的软件工程过程,其过程主要包含开发、运作、维护过程。该过程包含了需求、设计、实现、判定、维护活动。在这其中,需求是由问题和需求分析共同组成,利用问题分析对需求进行定义,将该过程称为软件需求约束,再由需求分析形成功能约束。设计活动泛指(详细和概要)设计。概要设计是建立在总体软件系统结构中,并且需要包含子系统、模块和其各个层次的说明、对各个模块的接口进行定义。详细设计是需要对各个模块进行说明,对模块的数据结构进行阐述。而实现活动是需要将设计结果变换成可执行的程序代码。并将确认活动穿插在对软件开发过程中,进行设计后的确认,进而保障开发出的产品可以满足银行系统的需求。维护活动涵盖了软件使用过程之后的拓展、修改和完善技术。
2.1.3 银行软件工程的原则
该原则是工程设计、设计支持和管理必须要遵守的原则。将其使用寿命分为很多个阶段,而且各个阶段的任务是不相联系的,在使用寿命的各个阶段都要采用相对应的管理技术来监督软件的开发过程。
银行系统性能测试系统要具备下面几个特征:
①要采用国内最为先进的软件性能测试工具。
②在其业务操作中,可用依据银行系统的特点,自主开发出新型的性能测试框架,并将数据、业务、脚本三者相互分离。
③维护响应性高,可进行实时响应系统变更,填补新软件数据包上线前的空白需求。
④操作复杂度低,其操作人员在不熟悉框架的情况下进行性能测试。
⑤具有全面的测试记录信息,有助于搜索系统性能的薄弱点。
⑥对银行系统日志可用有效地分析。
借鉴LoadRunner思想对银行系统性能测试框架进行设计,先明确银行系统功能模块的模拟过程,由此提出银行系统性能测试框架设计的优化方案。
2.2.1 银行系统功能模块的模拟
基于LoadRunner的银行负载模拟系统的基本原理是将软件测试工具LoadRunner作为客户端调度工具来驱动事物脚本,由此形成很多虚拟用户,在网络环境下连接待测服务器端,模拟主要行业具有代表性的应用所处理的负载状态。模拟系统由脚本生成模块、负载发生器、监测控制报告模块、中心控制模块和其人机交互接口组成。图1为基于LoadRunner的银行负载模拟系统拓扑图。
图1 基于LoadRunner的银行负载模拟系统拓扑
所谓脚本生成模块是在建立客户端和服务器端间的事务处理制度的基础上,模拟实际用户对服务器操作和访问来编写脚本,可以反复操作;负载发生模块的作用是形成很多的虚拟用户,利用虚拟用户进行具有代表性的处理、交易、访问等流程,由此来模拟实际用户,并且从研究中发现所获取的连接信息和其实际用户发出的信息相吻合;监测控制报告模块最大的作用是在负载发生模块形成虚拟用户和待测系统相衔接的时候,利用LoadRunner控制台对部分重要的数据点进行记录,并监听和监测虚拟用户的运行情况和其时间。
2.2.2 基于LoadRunner的银行系统性能测试框架优化设计方案的提出
基于LoadRunner负载模拟系统的测试步骤是采用LoadRunner软件测试工具调度执行测试脚本。因此,要对脚本的代码结构进行优化,加强脚本代码的执行效率,对脚本的运行模式进行选择。
负载测试系统要最大限度在待测试服务器上形成巨大的压力,当受到客户端资源约束时,可将网络上具有一定配置的 PC 机作为负载发生器,运行虚拟脚本,形成银行系统的虚拟用户。值得一提的是在进行正式的负载测试前,测试专业人员需要将不同程度的负载科学合理地调配给指定的负载发生器,也可以定义为不同类型或者性能的负载发生器需要配备相应数量的虚拟用户,这样防止了负载发生器资源出现枯竭的现象。
系统鲁棒性测试是在给系统不断加载的状态下,促使软件应用连续运行一段时间,测试其系统在这样的状态下能不能够持续稳定运行。这也是银行系统进行实际运行时所必须要进行的测试,其要实现的目标是考量系统稳定运行的时间,从宏观的角度上来分析,在大规模压力下进行长时间测试,如果系统在测试中始终处于稳定的状态,可以判断系统具有长时期稳定运行的优势,在进行银行系统测试的过程中,需要实时监测系统的运行情况,并掌握银行其资源利用率的变化趋势。
银行网络系统具有繁琐性高,并发请求规模大的特点,因此要求系统具有特别高的稳定性,需要进行系统软件测试,但是传统的软件测试手段难以支持系统的测试需求。针对这类问题,本文先分析了软件测试项目背景和其行业状态,给出了银行软件工程开发特点,通过对银行系统性能测试框架的需求分析,给出银行系统性能测试框架的设计优化方案和测试架构,结合LoadRunner的思想设计实现了LoadRunner银行的负载模拟系统,为保障银行系统稳定运行创造了有利条件。
[参考文献]
[1]杜洪波,郭光,高峰,等.Android平台恶意软件检测系统设计与实现[J].软件导刊,2015(12):104-106.
[2]陈锐忠,魏理豪,梁哲恒.基于UML建模的软件测试系统设计[J].电子设计工程,2016(21):57-59.