APP下载

黑盒测试技术在ACRM 费用分解中的应用

2010-09-25迟庆云

大庆师范学院学报 2010年3期
关键词:黑盒测试人员软件测试

迟庆云

(枣庄学院 计算机科学系,山东 枣庄 277102)

IT 系统是决定企业速度的核心组件,软件测试是系统开发中的重要环节,直接决定 IT 项目的成败。在众多的软件系统中,银行业务软件以其高复杂性、高安全性、高准确性、高效率性给软件测试带来了一系列难度。各个银行纷纷投入大量资金和人力进行业务系统和管理系统的开发和优化, 但由于思想意识和历史原因,出现重开发,轻测试的现象,软件项目测试成为制约软件产品质量提升的瓶颈。

1 软件测试

软件测试在软件生存期中占有非常突出的重要位置。软件测试的目的是及早地减少软件中存在的不同类型潜在缺陷与错误,以使软件能够满足用户的需求和减小预期结果与实际结果之间的差别, 以便以最少的代价来获得最好的质量保证。此外,通过测试,能够证明软件实现的功能是否与设计说明书相符合,证明软件的性能是否符合需求[1]。一个好的、成功的软件测试是一个最早地发现潜在问题的过程。

图1 不同阶段发现缺陷修复所需成本

据美国软件质量安全中心2000年对美国一百家知名的软件厂商统计,得出这样一个结论:软件缺陷在开发前期发现比在开发后期发现资金和人力上节约90%;软件缺陷在推向市场前发现比在推出后发现,资金、人力上节约90% 。所以说软件的缺陷应该尽早发现,软件测试是软件生命周期中的一项非常重要并且复杂的工作,对软件可靠性的保证具有极其重要的意义[2]。

2 黑盒测试

软件测试技术为各阶段软件测试的进行提供了具体的方法支持。软件测试技术,可以从不同的角度加以分类,从是否需要执行被测试软件的角度,可分为静态测试和动态测试。动态测试又可分为黑盒测试和白盒测试。

黑盒测试是注重于测试软件的功能性需求,只关心软件的功能,而不考虑其内部。它是已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用。在测试时,把程序看作一个不能打开的黑盒子,是站在最终用户的立场上,在完全不考虑程序内部结构和内部特性的情况下,测试者对程序接口进行测试,它只检查程序功能是否能按照需求规格说明书中有关功能需求及性能需求的规定正常使用[3]。

“黑盒法”是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。黑盒测试并不是白盒测试的替代品,而是用于辅助白盒测试发现其他类型的错误。黑盒测试的目的在于试图寻找:错误的或者是遗漏的功能;接口错误;数据结构错误或者数据库接口错误性能缺陷;初始化和程序终止错误。

在传统的软件开发生命周期当中,测试工作往往被搁置到整个开发过程的后期进行,即当应用程序的编码工作已经基本完成,才开始进行测试,这样做的缺点在于:由于应用程序庞大而复杂,测试工作千头万绪,测试人员难以组织科学、全面的测试用例,从而大幅度提高了测试成本,并严重影响测试的全面性和有效性; 由于缺陷所涉及的模块从开发到测试之间的时间间隔较长,使得程序员的修改和维护工作要付出更大的代价;由于受到分发日期的限制,测试工作往往是在忙碌中结束的,而将大量的缺陷遗留给最终用户。所以,针对传统测试的缺陷提出了V模型—全流程测试[4-5]。

图2 V模型-全流程的测试思想

因此,为了保证测试工作科学、有序地进行,应该采取一边开发一边测试的策略,使得开发工作与测试工作平行进行,这也就是所说的“越早测试越好”的概念。一套完整的测试应该由五个阶段组成:

1)测试计划。首先,根据用户需求报告中关于功能要求和性能指标的规格说明书,定义相应的测试需求报告,即制订黑盒测试的最高标准,以后所有的测试工作都将围绕着测试需求来进行,符合测试需求的应用程序即是合格的,反之即是不合格的;同时,还要适当选择测试内容,合理安排测试人员、测试时间及测试资源等。

2)测试设计。将测试计划阶段制订的测试需求分解、细化为若干个可执行的测试过程,并为每个测试过程选择适当的测试用例。

3)测试开发。建立可重复使用的自动测试过程。

4)测试执行。执行测试开发阶段建立的自动测试过程,并对所发现的缺陷进行跟踪管理。

5)测试评估。结合量化的测试覆盖域及缺陷跟踪报告,对于应用软件的质量和开发团队的工作进度及工作效率进行综合评价。

黑盒测试只有严格按照步骤进行,才可能对应用程序的质量进行把关。然而,如果没有一种优秀的测试工具的帮助,单纯凭借手工测试,即使耗费大量的人力、物力和财力,也有很多测试工作是难以实现的。

3 黑盒测试在ACRM费用分解中的应用

银行业的软件测试尤为重要,如果软件在一般功能上出现问题,其影响是局部的;但如果软件或系统在性能上出现了问题,产生的影响则是全局性、灾难性的。特别一些全国性银行,营业网点多,交易量大,尤其在数据集中后,对系统产生的压力较大[6]。

3.1 ACRM系统介绍

银行的ACRM( Customer Relationship Management,分析型客户关系管理系统)作为一种改善企业与客户之间关系的新型管理模式,主要通过将企业的内部资源进行有效整合,对企业涉及到客户的各个领域进行全面的集成管理,使企业以更低的成本和更高的效率最大化地满足客户需求,并最大限度地提高企业整体经营经济效益。

ACRM系统通过客户的单一视图对客户进行群体划分、效益分析、投诉分析、行为分析、资产分析,确定其可信度,把客户分为优良客户、基本满意客户和危险客户;对优良客户提供优待,对危险客户拒绝服务,减少投资风险。

在分发一个应用系统之前,若没有经过科学、周密的黑盒测试,就相当于将大量隐含的缺陷交付到最终用户手中,这对于开发团队自身、项目投资方及最终用户来说都是不负责任的表现,也将严重损害第三方的利益。因此必须对该系统遵循一定的测试理论,依赖于优秀的测试工具,进行科学、完备的测试, 才能暴露出软件中隐藏的错误和缺陷。

对ACRM费用分解测试子系统作的测试主要有功能测试,性能测试以及压力测试等, 主要是测试检查以下几点是否满足要求:

1)功能测试,系统实现了系统设计的功能;

2)接口测试,在下级行安装客户端后,能否顺利卸数,并上传到上级行,并能够导入到数据库中;

3)数据测试,根据测试核对表,输入部分的边界值,使用等价类划分测试最大最小和非法数据等;

4)用户界面测试,客户端用户界面、查询界面、功能布局是否友好,合理;

5)运行时间测试,后台运行时间在可以接受的范围内,由于系统是海量数据,对时间的要求不是太高;

6)软硬件约束,客户端要求WINDOWS 2000 SERVER、SQL SERVER 2000。

3.2测试子系统用到的部分表格

表1 ACRM项目费用分解模块测试记录表

表 2 ACRM项目费用分解模块测试核对表

4 结语

本测试系统的优点是开发过程采用了V模型,在设计阶段采用了评审。由于黑盒测试从用户角度出发,基于软件开发文档能很容易知道用户会用到哪些功能,也能知道软件实现了文档中的哪些功能,会遇到哪些问题,而与软件的内部实现无关,不需要了解程序内部的代码及实现。

由于测试人员是专业人员非专职测试人员,测试的时间不足,在试运行中又发现了许多问题。但在软件测试开发过程中,做好了测试用例的保存工作,测试人员发生变动或者开展回归测试时,减少了许多工作,从而在提高测试效果的同时也相应的节省了软件开发成本。

[参考文献]

[1] 马菁,顾景文.决策树在软件测试用例生成中的应用[J].计算机技术与发展,2008, 18 (2) :66-68.

[2] 吕海燕,英亮,邢芳.数据仓库在银行客户关系管理中的应用[J].大连海事大学学报,2007,33(6):181-183.

[3] 郑人杰.计算机软件测试技术[M].北京:清华大学出版社,1990:102-105.

[4] 上海计算机软件中心.计算机软件测试文件编制规范[M].北京:中华人民共和国电子工业部,1988:1-11.

[5] R.V. Hinder,华庆一,王斌君,等.面向对象系统的测试[M].北京:人民邮电出版社,2001:213-215.

[6] 王鹏.软件测试在银行业的建设及探讨[J].金融电脑,2007(10):65-67.

猜你喜欢

黑盒测试人员软件测试
移动应用众包测试人员信誉度复合计算模型研究
一种基于局部平均有限差分的黑盒对抗攻击方法
基于OBE的软件测试课程教学改革探索
航天软件测试模型构建与应用
EXCEL和VBA实现软件测试记录管理
高校分析测试中心测试队伍建设方案初探
浅析软件测试中的心理学应用
软件测试工程化模型及应用研究
犯罪心理测试人员素质要求分析