江苏苏源高科技有限公司 张 彦
软件测试工程化的研究和实践
江苏苏源高科技有限公司 张 彦
随着高新技术产业的发展,信息技术在国民经济中的地位日益增加,软件工程作为信息技术产业的重要组成部分,在信息技术领域中发挥着十分重要的作用。随着因特网技术的发展,软件产品也逐渐兴起开来,但是,市场经济体制下的软件产品的质量良莠不齐,严重制约了软件行业的进一步发展,因此,这就需要我们对软件产品进行有效的监督和管理,提高软件测试的效率,使用工程化方式管理软件测试,有效保证软件产品的实用性。
软件测试;工程化;研究和实践
软件测试是对保障软件产品质量的有效方法之一,不仅能够保证软件的有效性,而且能够促进软件产品的更新换代。软件测试能够很好的避免软件运行错误对实际生产生活的影响,使得软件产品能够充分发挥其应有的作用。就目前情况分析来看,很多大型优秀的软件公司已经形成了对软件产品系统的测试方法和测试模式,实现了软件工程的规范化管理,在进行生产开发的过程中相对于其他中小型企业来说具有明显的优势。本文根据软件测试过程中主要出现的问题和特点,提出了软件测试的工程化解决方案,希望能够促进软件产业的健康稳定发展。
当前来说,世界各大公司的主要软件测试模型包括X模型、H模型以及V模型这三种软件测试模型,V模型是目前来说最为广泛采用的软件测试模型。V模型的理念在于提高了软件工程测试工作的独立性,认为软件的测试工作的重要性与软件的开发过程等同。相关测试人员的工作需要在软件项目各个阶段同时进行,在软件开发与应用的过程中要充分了解其作用和功能,并根据项目的性能特点和功能要求进行科学合理的软件测试。及时监控并发现软件运行中出现的问题并反馈给相关技术人员,以提高软件的安全性和稳定性。[1]
软件产业相对来说是一个劳动密集型产业,对于工作人员的技术素质要求也比较高。软件测试人员需要有充足的工作经验,并有较高的专业素养,才能胜任软件测试的工作。测试人员首先在测试开始之前需要对软件进行充分的了解,包括软件的运行模式、功能功效、甚至针对的用户群体等。其次测试人员要能够根据软件的实际情况设计合理的测试计划和方案。对于很多大型软件来说,往往需要多人组成的测试组来进行测试工作,这就需要测试组的各个人员之间能够进行有效的分工合作,共同设计、组织和实施软件的测试工作,保证软件测试工作的效率性和准确性。[2]
在计算机领域软件测试具有一定的生命周期是众所周知的事情,一般来说对软件的测试包括单元测试、集成测试、系统测试及验收测试,这些测试都具有相应的生命周期。软件测试人员在测试计划阶段时要充分掌握组织测试计划有关的内容,并分部分进行软件的测试,在测试之前制定软件测试计划;对于测试设计和定制个性方案的过程中,相关技术人员要充分了解该款软件的用户信息和要求,制定《测试设计方案》,确定测试的过程和方式。在测试的执行阶段测试人员可以根据《测试计划》和《测试设计方案》进行具体的测试工作,之后在测试的评估阶段根据测试过程中所发现的问题编写《测试总结分析报告》。
规范测试文档是软件测试生命周期管理的另一项有效工具,在实际操作中我们需要根据测试文档产生的时间、格式以及内容等要求进行规范。比如对于单元测试来说,《测试计划》、《测试设计方案》、《测试问题报告》以及《测试总结分析报告》是必不可少的。 IEEE Standard for Software Test Documentation 定义了测试软件的内容和文档的类型,不同的软件企业在规范的基础上,根据自身企业的特点和软件的实际情况,可以对文档进行适当的裁剪及修改,制定出符合企业自身的软件测试文档规范。[3]
在软件测试过程中,往往会显露出软件运行过程中的各种问题,对软件的问题进行有效的管理是进行软件测试工程量化管理的重要保证。一般来说,软件问题包含优先级、运行环境、严重级、问题来源、问题种类、负责人、状态、问题关联、附件、缺陷细节以及附图等内容。这些软件问题记录对于软件产品的测试工作和改进工作提供了科学的参考,因此,对软件问题进行综合的管理是当前我们所要关注的首要问题,目前来说主要的两种软件问题管理方式分别是手工或半自动化软件问题管理和软件问题自动化管理这两种管理模式。
4.1 手工或半自动化软件问题管理
在手工或者半自动化软件问题管理中,要把握住管理的核心即“问题报告单”。问题报告单能够直观准确的反映出软件的问题,是有软件问题的基本信息构成的,一般来说一个软件问题会产生一个问题报告单,问题报告单可以是 Word 版本或者Excel 版本。在问题管理的过程中我们需要保证的是问题信息的完整性,在实际操作中需要按照问题类型制定统一的报告单模板。
4.2 软件问题的自动化管理
在软件问题的综合管理模式中,软件问题的自动化管理方式目前来说得到了软件行业的广泛重视,其管理模式相对于手工或半自动化软件问题管理模式来说管理更加先进,而且管理过程中自动化程度很高解放了人力,且更加高效。我们使用HP公司的测试管理工具Quality Center管理软件问题的生命周期,通过该测试管理工具得到软件的问题状况,利用Quality Center跟踪软件问题的特点使得相关工作人员能够及时的掌握软件的运行情况,从而及时对软件问题进行修复,提高软件的质量。软件问题的自动化管理技术使得软件运行过程中的问题能够及时有效的反馈到技术人员手中,弥补了手工或半自动化软件问题管理的缺陷,有效提高了软件测试工作效率,从而促进软件产业的发展。
4.3 Q u a l i t y C e n t e r的具体应用
我公司都使用Quality Center管理测试出的软件问题,一般软件问题的处理流程为:测试人员将测试出的软件问题记录到Quality Center中,由项目主管判断软件问题是否存在,如果存在则分配给相关的开发人员进行修改处理,处理后再由测试人员验证该软件问题是否正确解决,如果正确解决则关闭该软件问题,否则还需开发人员再次修改。Quality Center可以在整个流程中管理软件问题的各个状态,并记录重要的信息。
测试实施的辅助工具主要分为白盒测试工具和黑盒测试工具。其中白盒测试工具主要测试的内容是软件的代码问题,从而问题信息的指向是软件代码,对问题的定位十分准确。
黑盒测试工具主要包括两方面的内容,一方面是功能测试工具,另一方面是性能测试工具。黑盒测试工具利用的是脚本的录制和回放功能,从而进行用户操作的模拟,将测试工具中的输出记录下来与标准的结果做出对比,发现软件测试中的问题。
随着我国IT行业的飞速发展,软件测试技术也随之兴起。将软件测试行业更加的规范化和工程化可以有效提高软件的检测效率,而且能够对整个测试过程进行控制,及时发现软件中出现的问题并有效处理。对于不同的软件而言,我们需要根据软件的具体情况进行合理的测试方式选择,从而提高软件测试的合理性和准确性,促进对于软件检测的整体管理。目前已经有很多高效的检测软件用于软件测试,也有很多软件问题管理系统用于管理软件问题,这些都提高了我国的软件行业整体质量,使得软件行业能够更高效更安全的发展。
[1]张光泽,于鑫.“软件测试”工程化教学模式初探[J].大学教育,2015,(3).
[2]李亚.“软件测试”教学探索与实践[J].计算机教育,2016,(6):31-32.
[3]Ron Patton.软件测试[M].北京:机械工业出版社,2012.