计算机软件开发中的数据库测试技术研究
2017-03-30孙华友
孙华友
(高佳太阳能股份有限公司 江苏无锡 214174)
计算机软件开发中的数据库测试技术研究
孙华友
(高佳太阳能股份有限公司 江苏无锡 214174)
在计算机软件开发过程中,很多系统功能的设计、优化都需要进行数据库测试,通过数据库测试才能检验软件开发是否真正成功。因此,数据库测试也是计算机软件开发过程中非常重要的一个步骤。基于此,结合一些软件测试的相关经验,对数据库测试的方法内容等进行探索分析,希望可以对该领域的研究与实践工作提供一些参考思路。
数据库测试; 软件开发; 数据冗余; 性能测试
0 引言
随着互联网大数据技术的快速发展以及应用的深入,在计算机软件开发领域越来越需要强大的数据库支持系统。数据库系统的开发,已经成为计算机软件开发过程中一项非常重要的工作。数据库测试是保证数据库系统运行正常,满足软件运行需要的基础工作,一个优秀的计算机应用软件,离不开运行流畅、快捷、高效的数据库支持。不过,由于数据库系统设计得越来越复杂,处理的数据信息也不断增多,就会导致出现一定程度的数据冗余,在一定程度上影响计算机软件开发的性能和设计功能。因此,应当重视数据库测试技术的研究工作,在计算机软件开发过程中,投入必要的时间和人才,加大对数据测试研究的开发力度,运用先进的技术,对数据库测试各项工作进行升级,这样,才能保证数据库系统的正常运行[1]。在测试过程中,涉及很多专业技术和知识,以下是笔者的一些经验和思考。
1 数据库设计的测试
数据库设计存在问题或者漏洞,会给软件系统的正常功能发挥造成不良影响。在大多数软件运行的过程中,其性能会受到数据库性能的影响。因此,如果设计的数据库运行效果较差,就会影响计算机软件应用的性能发挥。在计算机软件开发过程中,为了保证数据库具有良好的性能,就需要设计人员对数据软件应用中涉及的数据库系统进行优化和升级,保证数据库中各种表的规范。数据库规范化的范式主要有六种,包括第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(5NF)和BC范式(BCNF)。
根据一般计算机软件系统的设计经验,经常运用第三种范式对逻辑数据进行规范化处理。第三种范式处理后的表格结构,相对来说,更加容易维护,而且又能满足基本应用功能的要求。从这个角度来看,第三种范式是一种更符合常规标准的范式。虽然这种范式的操作执行相对简单,不过也存在一些不容忽视的缺点。在规范过程中,这种技术把数据库中的一个表进行拆分,但是,相关的数据在查询时,又要进行多表重新连接,这就会在一定程度上降低查询数据信息的检索速度,影响数据库的整体查询效率。数据库设计的测试一般包含两个重要部分:一是前期需求分析而产生的数据库逻辑模型,这类模型针对的是用户的基本需求信息。二是后期在业务开发过程中,需要测试的部分,也就是专业领域内的实体测试。
视图、表、存储过程等是数据库的实体。在测试时,最基本的测试工作就是对实体进行测试,如果发现实体设计得不够严密,存在一定的遗漏,就需要设计人员找准原因,认真分析如何优化。
实体测试是检查开发的软件功能是否完善、合理的重要途径,经过严密的实体测试,能够发现软件各项设计功能是否能够在流畅的环境下平稳运行,同时,实体测试也能够发现大量的数据冗余,这就为系统优化找到了问题根源[2]。在测试之后,技术人员可以对有问题的数据库信息与设计人员进行充分的沟通,以保证前端设计人员能够及时掌握软件数据库设计的缺陷与不足,从而及时地改变设计思路,采取更加科学的优化措施,减少整体软件系统设计失误造成的损失。
2 数据一致性测试
数据库在完成实体测试后,需要对表进行一致性检查,保障数据信息的一致性。一致性测试的主要步骤包括如下几个部分:
2.1 表的主键测试
在对表的主键进行测试时,测试人员要认真研读软件系统设计的实际需求,根据需求内容与要求进行主键的测试工作。每一个表的主键,都有与之相对应的信息记录要求,为此,要保证实际测试效果,就要对系统中所有主键进行一致性测试。测试结构如果显示存在不唯一的记录,则需要对表的主键进行重新设置,如果测试结果显示没有,则说明表中的主键具有完整的一致性,是能够直接使用的,不需要进行优化和修复。
2.2 表之间主外键关系的测试
数据库的测试工作,关键的一步是要对数据库中主外键关键字段的类型、长度、信息等进行测试,确保字段长度满足一致性的要求。不过,很多计算机应用软件设计开发阶段,对数据库的表主外键关系测试不够重视,测试的标准字段比较模糊,这就容易导致测试结果不准确,一些类似的字段、信息数据等,可能会出现差错。
2.3 删除的一致性测试
在级联表测试时,要保证相关数据信息删除具有一致性。具体来说,就是如果用户将主表的数据信息删除后,则相对应的报表也会自动进行数据删除。如在校园学生成绩管理系统中,一个是学生信息表,一个是学生成绩表,显然学生信息表包含学生成绩表的信息,在这种情况下管理者将学生信息表中的某位学生信息删除,则系统会自动删除学生成绩表中的信息。成绩表是级联表,在学生表中某位学生的信息删除后,作为级联表中学生的成绩信息也应该保持同步删除。这种数据库的删除一致性要求,使得很多数据信息处理起来更加高效,现代计算机软件应用涉及大量数据信息的变化、更新以及删除等,在数据库中正是由于这种一致性作用的存在,使得很多信息数据的删除工作变得更加高效。
3 数据库容量测试
现代计算机软件管理和存储的数据量正在快速增长,这就对数据库的容量有了更高的要求。因此,为了保证用户数据库容量能够满足需求,需要对数据容量的增长情况进行初步的估算,这对于数据库的使用和维护,也是非常重要的。在实际数据库容量测试过程中,记录数据量等于各个字段所占字节数的总和,表的数据量等于记录数据量×记录数,数据库大小等于各表数据量的总和。
在软件系统内部自身的数据库中,其容量的大小,不是直接由基本表的大小决定的。在整个数据库中,很多内容都是占容量的。像系统表、视图、存储过程等,这些实体都占有一定的数据库容量。表的数据是最基本的表的数据,在数据库中,日志文件的容量,一般是系统自动预留文件容量的两倍左右。
4 数据库的性能测试
一些计算机应用软件在使用时,突然崩溃,很多情况下是由于数据库性能达不到最大强度的使用要求而导致的。所以,在开发软件实际应用之前有必要做好不同状态下数据库性能的测试工作,以保障数据库的功能正常,能够满足软件基础性能的需要。而对于这部分的性能测试,一般的手工测试是不能完成的。在这种情况下,需要测试人员使用专业的数据库性能测试软件。常用的性能测试软件是DataFactory,该软件的数据测试功能十分强大,并且具有很强的数据生产能力,能够十分容易地产生百万行有意义的正确的测试数据库,这就为大量的测试研究工作提供了丰富的数据支持。并且DataFactory也能够支持DB2、Oracle、Sybase、SQL Server等数据库,使得其应用的范围非常广泛。
因此,使用这种专业化的数据库测试软件,能够基本上模拟软件应用在长期应用后的数据库情况,掌握数据库的性能。对于不同数据容量的数据库,如何才能保持最佳性能,以及设计过程中对各种不同容量区间的性能,能够在实际应用中,根据软件的应用场景和信息负载量进行调整[3]。同时,这种测试,能够及时地发现数据库性能存在的不足与缺陷,可以及时通知设计人员进行改进和优化。
专业测试人员进行数据库的性能测试过程中,要保证测试环境的一致性。这是因为,在相同条件下的测试,才能够对测试结果进行比较,这是对数据库使用用户负责的测试方法。保持测试环境的一致性,使得测试的结果更具说服力。
5 数据库的压力测试
计算机软件开发时,数据库需要进行压力测试。一般常说的软件的正确性测试属于功能性测试,软件的功能正确与否,是衡量软件开发质量是否合格的重要参考指标。而数据库的压力测试,属于非功能性测试,这种测试能够对软件的响应速度做出合理的评价。实际软件开发过程中,影响软件自身响应速度的因素非常多,例如,系统算法低效、用户数据量、用户使用行为习惯、数据库级联方法等[4]。
数据库的压力测试,正是专门针对开发软件的响应速度进行的测试。在较短的时间内,如果有大量的并发用户访问,就会给软件系统应用的功能发挥造成很大影响。在这种情况下,进行压力测试是非常必要的。例如,银行系统进行的压力测试,一些购物网站的流量压力测试等,都是为了保证在某种较大数据量同时占用数据库空间的情况下,是否会导致软件系统运行缓慢,甚至导致整个网页的瘫痪[5]。因此,在新的软件系统正式投入使用之前,或者某些软件系统在日常使用过程中,在某个时间阶段会面临较大的访问数据量,而使用者对于软件系统整体能够承受的数据库信息没有精确的估计,进行压力测试就能够帮助用户分析软件系统的压力承受能力,以根据自身系统的实际情况,合理调整相关的业务接口和开放时间。
压力测试也需要借助专业的自动化测试工具。现代计算机软件开发中,使用较多的数据库压力测试方法有Web测试、数据库测试等。能够对数据库的反应时间进行优化的工具比较多,如一般基于Java的项目使用JMeter,.Net项目使用.Net集成开发环境中提供的测试方法等。测试技术人员需要掌握不同开发系统与环境下,使用合理的优化工具,这样才能够提高数据库压力测试与优化的效果。
6 结束语
在计算机软件开发过程中,涉及很多数据库的测试应用工作。由于软件应用各项功能的正常发挥,需要数据库系统的有力支持,因此,做好数据库系统测试工作,保障在任何条件下,数据库能够为软件功能的良好发挥提供强大的后台数据支持,从而不断提高计算机软件开发的质量和水平。对于用户来说,也能够更好地利用资源,做到既能够满足各项信息数据的使用快捷高效,又能够发挥出软件系统的优良性能。
[1] 熊辉.数据库测试技术在软件开发中的应用[J].电子技术与软件工程,2016(19):203-204.
[2] 高俊,邹金萍.计算机软件测试技术与开发应用研究[J].中国管理信息化,2016(7):176-177.
[3] 王欢.软件性能云测试平台关键技术的研究与应用[D].北京:北京交通大学,2017:8.
[4] 王玮琦.基于非齐次泊松过程的联锁软件可靠性建模与半实物仿真[D].北京:北京交通大学,2017:25.
[5] 秦凯伦.基于软件定义网络的无线传感器网络的研究与设计[M].南京:南京理工大学,2016:41.
Study on Database Testing Technology in Computer Software Development
SUN Huayou
(Konca Solar Cell Co. Ltd., Wuxi 214174, China)
In the process of computer software development, many system functions are designed and optimized, and database testing is needed. Through database testing to test whether software development is really successful or not is a very important step in computer software development. Based on this, in this paper, combined with some relevant experience in software testing, test method and content of database are explored and analyzed, hoping to provide some reference ideas to research and practice work in this field.
database testing; software development; redundant data; performance testing
2017-09-26
孙华友(1980-),男,高级工程师,主要研究方向:企业信息化、大数据应用
TP 311.52
A
1672-2434(2017)06-0025-03
李娟]