软件测试是软件开发生命周期中的一个重要环节,其目的在于发现软件中的错误,确保软件的质量。随着近几年移动通信新业务的不断推出及3G的正式商用,移动通信的业务关联度越来越高,业务支撑系统内部结构也变得越来越复杂。在业务支撑系统的每次新业务上线测试中,新业务对老业务的影响程度越来越难以预估,这给测试工作带来了许多不确定的因素。
全覆盖的回归测试必不可少
在实际的软件上线中,常常会出现新业务上线后功能正常、但一些老业务功能却变得不正常的情况。究其原因,在于新业务在开发过程中,修改了一些与老业务共用的模块或内部接口,由于对系统关联度认知与把控不够,造成了一些相关联的老业务没有测试或是测试不充分,最终导致了新业务上线后老业务功能异常的情况。我们通常将对老业务的测试称为“回归测试”,回归测试的正确性对软件质量有着举足轻重的作用。
在可预见的未来几年内,移动通信的业务种类将会越来越多,各业务间的关联度会越来越高。为防止新老业务相互影响的情况发生,应加强业务支撑系统内部软件结构的梳理与规划,在编写测试用例时充分考虑到业务的关联性,但这主要还是依赖于人为的判断。俗话说:“智者千虑,必有一失。”谁也不能保证在每次的新业务测试中,都能准确地判断出与之相关联的老业务做到回归测试的百分之百覆盖。在这种情况下,进行全系统的地毯式全覆盖测试,就成为回归测试的一个重要解决方案。
业务支撑系统是一个非常庞大的计算机软件系统,功能繁多,进行全系统的地毯式全覆盖测试,将会出现成千上万甚至是几十万个测试用例,这并非靠手工测试所能完成,于是我们需要引入自动化测试的方法。自动化测试是指通过计算机软件编程,由计算机来自动完成测试工作的一种测试方法,与手工测试一样,包括数据准备、测试执行、结果校验等环节。自动化测试系统本身就是一个计算机软件系统,在CRM(Client Relation Management,客户关系管理)领域,目前较成熟的产品有QTP(Quick Test Professional)、WinRunner等等。
如何建设自动化测试系统
建设自动化测试系统,首先必须建立起完备的测试用例库。在CRM测试中,需要记录每个业务测试的预置条件、测试步骤、结果验证标准等信息,但这些信息还仅仅只能应用于手工测试。在自动化测试中,测试用例库中还必须详细地记录预置条件相关界面中各个界面元素的名称、需要输入的数值、测试执行的按钮或链接、结果验证相关界面中各个界面元素的名称及其对应的数值。
完成测试用例库的编写后,就可以进行自动化脚本的编写开发工作。以QTP为例,采用的是VB Script,开发者需具备一定的VB编程基础。自动化测试与手工测试一样,包括数据录入、测试执行、结果验证等部分,将原先通过手工逐步操作的内容以脚本的形式记录下来,包括文本框的数据输入、下拉框的数据选择、执行按钮的点击等等。与软件编程一样,自动化脚本的编写也是一项艰苦的软件开发工作。自动化脚本编写完成后,就可以由电脑来进行自动化测试了。
自动化测试的执行效率非常高,一个复杂的测试项目,从录入数据、测试执行到结果验证一般只需几秒钟就可以完成,远远高于手工测试的速度。全系统的自动化回归测试一般只需要几个小时到十几个小时就能完成,这就使得在每次新版本上线前,都能进行一次全系统的回归测试,有效地确保了软件的质量。新上线业务对一些相关联业务的影响有时难以准确判断,通过全系统的自动化测试,能够在测试阶段及时发现,从而杜绝了在上线后出现故障。
自动化测试系统的建设是一个工作量巨大的工程,不仅在测试用例库的编写上比手工测试更为复杂、严格,而且自动化脚本的编写也是一项相当耗时耗力的工作,绝不亚于被测试软件的开发过程,因此自动化测试系统建设的成本是非常高的。
适宜关键且不经常变化部分
自动化测试比较适用于在系统中处于比较关键的位置但又不经常变化的部分,例如CRM中的用户开销户、用户套餐申请与取消、用户停复机等模块。对于会经常变化的部分,则不宜采用自动化测试的方法,刚刚花费大量时间精力编写的自动化脚本,可能在下一个的软件版本测试中又发生了变化,新编写的自动化脚本可能一次都还没有使用又要重新进行修改,那将是时间与人力成本的巨大浪费。
自动化测试是软件回归测试的一种重要的方法,但不能完全用于替代软件测试工作。计算机软件只能用于替代人的机械重复动作,而不具有对各种特殊情况的应变能力。因此,在日常测试中,采用手工测试与自动化测试相结合的方法,可以互相取长补短,基本实现全覆盖的测试,以确保软件上线的质量。
除了CRM领域外,计费账务领域也是业务支撑系统的一个重要组成部分。两者不同的是,CRM主要面向营业网点,采用界面操作的方式运作,而计费账务领域以后台程序运作为主。目前在计费账务领域还没有成熟的自动化测试工具,但只要我们遵循自动化测试的方法与思路,就可以自行开发这方面的软件,为业务支撑系统量身定做一款合适的自动化测试系统,这将大大提高测试的效率与效果。
文章来源于领测软件测试网 https://www.ltesting.net/