摘要:本文论述的是有关和过程的问题,从测试的要素和流程等方面进行阐述,并以实际经验对测试过程中需要注意的问题进行了较为详细的说明。
关键词:网络安全软件;测试;验收
1、引言
一般来说,软件测试是对软件规格说明、软件设计和编码的后复审,目的是在软件产品交付之前尽可能的发现软件中潜伏的错误。这是软件开发中非常关键的步骤。
本文讨论的测试是指在软件开发完成之后,验收方对软件的功能和性能进行验收、评价的过程。其目的旨在验证项目承担方所提交的软件在功能和性能等方面有没有达到合同的要求。其基本方法是按照一定的测试方案逐项检验软件的各项功能,并对其现象和结果进行详细的记录、分析,从而得出评价结论。
2、测试过程
整个测试过程可以分为5个步骤:设计测试方案、修改并审定测试方案、架设测试环境、测试和记录、分析并形成测试报告。下面按顺序谈一谈测试的过程(如图1所示)。
2.1 设计测试方案
在项目承担方(被测软件的开发者)提交软件的同时,也要将各种文档提交上来,这其中包括了测试方案。因为软件是承担方设计、开发的,他们自己对该软件的功能、操作、环境要求等为了解,他们也知道软件的哪一个功能对应着合同中的哪一项条款,所以初步的测试方案由项目承担方设计出来。
测试方案要以正式文档的形式提交。文档的封面应写明保密级别、项目名称、项目编号、项目承担单位、负责人、提交时间等基本情况。正文的内容包括:
(1)项目简介。这是对项目研究的内容、所采用的关键技术等进行概要性的介绍,以让测试方初步了解项目的原理和基本情况。
(2)验收指标。合同里所提及的软件所要达到的指标,这里还要把每一个指标所对应的测试用例(case)写清楚,一般来说用表格的形式画出来,这样一目了然,便于对照。
(3)测试环境。测试所要用到的机器、网络设备、相关的操作系统等软件以及设备连接的拓扑图。有的情况下还要注明各台机器的用户名和密码,以便于测试人员使用。
(4)测试用例。这是整个方案中重要也是多的一部分。一个测试用例是一个功能的体现,有时候要用几个用例来验证一个功能。用例要设计得恰当,要能完全体现指标要求的功能,体现软件的特点。测试用例中应当写清楚测试软件的这一项功能的操作步骤以及预期效果。
2.2 修改并审定测试方案
初步的测试方案是由项目承担方自己提出的,难免会有“扬长避短”的现象,他们可能会将软件的缺陷和弊端隐藏起来,有的用例可能说明不了问题,不能验证是否达到指标的要求,而有的用例又可能是多余的,这时需要测试方修改、审定测试方案了。测试人员一定要具有较高的理论水平和丰富的测试经验,结合合同的指标和测试方案的内容进行分析,看承担方提供的方案有什么问题,能不能满足测试要求,如果有问题的话要相应的修改方案或是增删用例。另外,承担方提供的方案往往注重功能的验证,而忽视了性能的验证,所以测试方尤其要注意性能方面的指标,严格控制测试过程,该增加背景流量的要增加,该加大攻击力度的要加大,这样才能测试出网络安全软件到底能不能起到应有的作用。
对测试方案进行修改以后还应该把修改过的地方交给项目承担方负责人,双方协商确定后签字,以后的测试要完全按照议定的方案进行,不能随意更改。如果因为特殊原因在测试过程中需要改动的话,需要双方负责人签字才可。
2.3 架设测试环境
开始测试前要按照测试方案架设环境。因为是测试网络安全软件,所以需要模拟一个真实的网络环境,这可能用到路由器、交换机、集线器、防火墙等设备,有的测试只要使用局域网,而有的测试可能要连接英特网。有时候还要用到发送/监视网络流量的工具,像硬件有SmartBits,软件有Chariot、Sniffer等。根据测试方案里提供的拓扑图把所有的设备连接起来,然后分配IP地址、做好各种网络设置,安装所需软件。后测试一下网络是否按要求架设完毕,软硬件能否正常运行。一切绪之后可以开始正式测试了。
2.4 测试和记录
测试人员首先应该认真阅读项目合同和测试方案,熟悉软件的功能和操作。开始测试时,一个人负责主测,一至两个人协助(大型的测试可能要更多的人),一个人记录。因为网络相关的软件往往不是单机的,需要多台机器协作完成,所以各台主机之间的配合、操作顺序很重要。这要求测试时按照方案的内容,由主测人统一指挥下达操作指令,协助测试人员根据指令操作。记录人员则要详细记录每一个操作步骤、输入的参数、操作后出现的现象和结果以及其他各种数据。有时候为了记录的准确和直观,也为了提高数据的可信度,经常需要将计算机屏幕上的画面保存下来,留做证据以供写测试报告使用。测试者从屏幕截图并记下图片的名字,以便与测试记录的内容对应起来。
测试的过程要求严格按照测试方案进行,客观、细致的记录测试结果,不能带有任何个人主观的东西。对于一些统计性的测试则应该多测几组数据,以免因为误差而影响了测试结果。如果在测试过程中遇到疑问或软件出现了方案中没有提及的问题,测试人员可以向在场的项目承担方技术人员询问,讨论解决办法。承担方人员可以解释和说明,但不允许对设备进行任何操作,动手操作只能由测试者来完成。
2.5 分析并形成测试报告
所有的测试用例都做完之后,主测人员把测试记录和保存的图片都收集起来,对照测试方案看看是否符合方案要求,数据是否完整、可靠。确认之后可以着手写测试报告了。测试报告的内容与测试方案有些相同的地方,它也要包括项目简介、验收指标、测试环境、测试用例,不同的是它要将测试过程的记录、测试结果数据写进去,并且要对得到的结果进行分析,看看是不是达到了验收指标的要求。分析主要从功能和性能两个方面入手,将测试用例的结果和验收指标对照,逐项给出结论:通过、不通过或者基本通过。后根据这些结论给出一个整体评价。
测试报告是详细记录被测软件的功能、性能的文档,软件的表现如何都有实际的数据资料说明问题,主测人员也给出了相应的评价和意见。而软件终能不能合格,有没有达到合同的要求,还需要专家进行审议。专家是根据这份测试报告的内容进行分析,并向项目承担方提出质疑,项目承担方则需要对专家的问题给出合理的解释。所以测试报告非常重要,一定要本着对合同双方负责的态度真实的记录测试的结果,做出客观的评价。
3、结束语
本文对网络安全软件的验收测试方法和过程进行了简单的阐述,也是作者参与信息产业部信息安全与关防持续发展计划项目验收测试的一个经验总结。鉴于目前网络安全日益受到人们的重视,网络安全产品日新月异,因而对这些产品(包括硬件和软件)的测试认证的方法也将逐渐完善起来。