编者按:近年来,国家密集发布了相关政策法规,对于政务信息系统验收前都要求进行验收测试。文章在介绍电子政务信息系统、验收测试的基础上,重点分析了电子政务信息系统验收测试发展的方方面面,并提出了如何对当前电子政务信息系统验收测试工作的各个方面进行优化。
电子政务信息系统
电子政务的基本概念
电子政务是指国家机关在政务活动中,全面应用现代信息技术、网络技术以及办公自动化技术等进行办公、管理和为社会提供公共服务的一种全新的管理模式。相对于传统行政方式,电子政务的最大特点就在于其行政方式的电子化,即行政方式的无纸化、信息传递的网络化、行政法律关系的虚拟化等。
电子政务信息系统及其发展
电子政务信息系统发展至今,它的主要组成部分包括系统资源、应用软件和系统管理。系统资源包括硬件和软件两部分。应用软件是在系统资源基础上针对行政组织职能开发的,是电子政务系统的核心。系统管理包括组织结构、规章制度、人工处理、系统规划。
验收测试
软件测试地基本概念
1983年IEEE提出的软件工程标准术语中给软件测试下的定义是:“使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。”G. J. Myers则认为:(1)测试是为了发现故障而执行程序的过程;(2)一个好的测试用例在于能发现至今未发现的故障;(3)一个成功的测试是发现了至今未发现的故障的测试。明确指出寻找故障是测试的目的。这和Hennell提出的“测试的目的是要提供有说服力的证据证明软件没有故障,或是显示某种特殊类型的故障不存在”完全相反。如果测试是为了发现程序中的故障,就会力求设计出最能暴露故障的测试方案;相反,如果是为了表明程序正确而进行测试,就会自觉或不自觉地回避可能出现故障的地方,设计出一些不易暴露故障的测试方案,从而使程序的可靠性受到极大的影响。关于这一点,Myers在《The Art software Testing》一书中给予了充分的说明。
软件测试的基本原则和方法
软件测试的基本原则是站在用户的角度,对产品进行全面测试,尽早、尽可能多地发现缺陷,并负责跟踪和分析产品中的问题,对不足之处提出质疑和改进意见。
进一步研究应注意和遵循的原则可以概括为10项。
·所有测试的标准都是建立在用户需求之上。
·软件测试必须基于“质量第一”的思想去开展各项工作。
·事先定义好产品的质量标准。
·软件项目一启动,软件测试也就开始,而不是等程序写完,才开始进行测试。
·穷举测试是不可能的。
·第三方进行测试会更客观,更有效。
·软件测试计划是做好软件测试工作的前提。
·測试用例是设计出来的,不是写出来的,所以要根据测试的目的,采用相应的方法去设计测试用例,从而提高测试的效率,更多地发现错误,提高程序的可靠性。
·对发现错误较多的程序段,应进行更深入的测试。
·重视文档,妥善保存一切测试过程文档。
软件测试具有多种方法,软件测试方法根据软件是否需要被执行,可以分为静态测试和动态测试。按照功能划分,可以分为白盒测试和黑盒测试。
静态测试是指被测程序不在机器上运行,对模块的源代码进行研读,查找错误或收集一些度量数据,并不需要对代码进行编译和仿真运行,采用人工检测和计算机辅助静态分析手段对程序进行检测,只进行特性分析。动态测试则是指通过真正运行程序发现错误,通过有效的测试用例,对应的输入/输出关系来分析被测程序的运行情况。
黑盒测试也称功能测试或数据驱动测试。它不考虑程序内部结构和处理过程,把被测程序看成一个黑盒子,只在软件接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求。白盒测试也称结构测试或逻辑驱动测试,与黑盒测试法不同,测试人员将程序视为一个透明的白盒子,需了解程序内部结构和处理过程,以检查处理过程的细节为基础,要求对程序的结构特性做到一定程度的覆盖,对程序中的所有逻辑路径进行测试,并检验内部控制结构是否有错,确定实际的运行状态与预期的状态是否一致。
软件测试的阶段
软件测试贯穿软件产品开发的整个生命周期,软件项目一开始,软件测试就开始了,从产品的需求分析审查到最后的验收测试结束,整个软件测试阶段如图1所示。
验收测试的基本概念
验收测试是指在软件产品完成了功能测试和系统测试之后、产品发布之前所进行的软件测试活动。它是技术测试的最后一个阶段,也称为交付测试。验收测试的目的是为了确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。
验收测试的重要性
验收测试是软件开发生命周期的一个组成部分。它为软件开发团队和用户带来了信心,即软件版本将不会出现任何重大问题或意外结果。功能按照开发人员认为最符合需求的方式进行编码,但其结果并不总是与实际业务需求保持一致。借助验收测试,用户可以确保满足业务要求,并且有效地传达了对需求的任何更改。
验收测试的常见策略
验收测试常见策略有α测试和β测试等。α测试是指软件开发公司组织内部人员模拟各类用户对即将面市软件产品(称为α版本)进行测试,试图发现错误并修正。α测试的关键在于尽可能逼真地模拟实际运行环境和用户对软件产品的操作并尽最大努力涵盖所有可能的用户操作方式。经过α测试调整的软件产品称为β版本。β测试是指软件开发公司组织各方面的典型用户在日常工作中实际使用β版本,并要求用户报告异常情况、提出批评意见。
验收测试的过程和内容
验收测试的前提:系统或软件产品已通过了系统测试的软件系统。
验收测试的内容:验证系统是否达到了用户需求规格说明书中的要求,测试试图尽可能地发现软件中存留的缺陷,从而为软件进一步改善提供帮助,并保证系统或软件产品最终被用户接受。主要包括功能性测试、性能效率测试、信息安全性测试、可靠性测试、易用性测试、兼容性测试、可移植性安装测试、文档(如用户手册、操作手册等)检查等几个方面的内容。
验收测试的步骤
·制定测试计划、测试项、测试策略及验收通过准则,并经过客户参与的计划评审。
·建立测试环境,设计测试用例,并经过评审。
·准备测试数据,执行测试用例,记录测试结果。
·分析测试结果,根据验收通过准则分析测试结果,作出验收是否通过及测试评价。
·测试项目通过;
·测试项目没有通过,并且不存在变通方法,需要很大的修改;
·测试项目没有通过,但存在变通方法,在维护后期或下一个版本改进;
·测试项目无法评估或者无法给出完整的评估。此时必须给出原因。如果是因为该测试项目没有说明清楚,应该修改测试计划。
·提交测试报告。
电子政务信息系统验收测试概述及优化
电子政务信息系统验收测试的类别
传统的软件验收测试主要分为正式测试、非正式测试等。电子政务信息系统发展至今早已引入第三方测试类型,即由具备相应资质的独立第三方评测机构进行验收测试。第三方测试有别于开发人员或用户进行的自测,其目的是为了保证测试工作的客观性。
电子政务信息系统验收测试的流程
为了适应当前越来越复杂的电子政务信息系统,将第三方验收测试流程设计如图2所示。
电子政务信息系统验收测试的阶段和内容
以往的信息系统验收测试是在完成了系统测试之后,系统验收之前开展,目的是为了验证信息系统是否达到了用户需求规格说明书(可能包括项目或产品验收准则)中的要求。测试阶段主要分为测试准备阶段、测试实施阶段、回归测试阶段、总结与报告阶段,包含的内容有分析测试需求、制定测试计划、编写测试方案、熟悉系统、编写测试用例、实施测试用例、回归测试、编写测试报告[6]。而在终验阶段展开的测试已经很难保障项目的建设质量,因此根据电子政务信息系统建设工程的发展特点,将验收测试设计为子系统验收、集成、初验和终验四个阶段。
(1)子系统验收阶段
在子系统验收阶段完成电子政务信息系统建设工程中各子系统的分项验收测试工作。该阶段测试工作的主要依据是采购文件、合同、深化设计等中的相关要求,测试的重点就是功能性,主要包括以下方面:
·功能需求:依据采购文件、合同、深化设计和国家标准验证各子系统是否满足全部的功能要求,并且功能能够正常实现;
·业务需求:依据深化设计测试各子系统的业务流程,确保其关键业务能够正常执行;
·数据处理需求:依据深化设计测试各子系统数据处理的正确性,确保数据的传输和交换准确无误。
(2)集成阶段
在集成阶段完成电子政务信息系统建设工程中各子系统的整合测试工作。该阶段测试重点就是考察系统内部及系统间接口、兼容性,以及系统的稳定性方面,主要包括以下内容:
·接口测试:对系统集成后的各子系统内部接口,以及各子系统间的接口进行测试,确保接口能被正常调用,数据能够正常交换流转,实现数据共享;
·兼容性测试:测试各子系统之间各模块、数据是否兼容,在同一平台中运行互不干扰;
·稳定性测试:测试集成后的系统长时间运行的性能能力,可通过平均无故障率等指标来考察。
(3)初验阶段
初验阶段将集成的系统部署在生产环境中,测试包括硬件、网络、软件等整个系统的性能、安全、易用性、兼容性等方面,主要包括以下内容:
·性能测试:依据采购文件、合同、深化设计、需求说明等文档中的性能要求,测试相关系统的关键业务的响应时间、并发用户数、在线用户量以及资源利用情況等效率是否满足用户需求;
·安全测试:根据电子政务信息系统的相关安全要求,测试系统的信息安全性,包括访问控制、身份鉴别、权限限制、安全审计、数据备份与恢复等内容;
·易用性测试:通过功能执行的各种操作、文档查看、在线帮助信息等技术手段,测试系统的易理解性、易学性、易操作性等易用性质量特性。
·兼容性测试:主要测试电子政务信息系统与其它系统间的数据共享和交换能力。
(4)终验阶段
初验阶段完成以后,项目将进行试运行,完成试运行后进入到项目终验阶段,该阶段是以项目的最终验收为目的,测试系统的可维护性、可扩展性等,并对项目文档进行全面检查,主要包括以下内容:
·可维护性测试:测试系统上线运行后的维护能力,例如故障诊断、故障分析、故障恢复等;
·可扩展性测试:包括接口的扩展性、功能的扩展性、性能的扩展性等;
·文档检查:项目开发文档是项目投入使用后的重要指导文件,也是项目进行二次开发的重要依据,在终验阶段必要检查项目文档的完备性、正确性、一致性和易理解性。
电子政务信息系统验收测试的方法
传统信息系统的验收测试是在软件产品完成了功能测试和系统测试之后、产品发布之前所进行的软件测试活动,则更多采用黑盒测试方法对系统进行测试。而电子政务信息系统的验收测试在项目实施阶段就已经展开,单纯黑盒测试已无法满足验收测试要求,同时需要白盒测试技术,并结合各领域的自动化测试工具开展测试工作。例如在集成阶段,需要对各接口进行测试,可以利用postman等测试工具,结合白盒测试方法测试接口的功能性,以及接口的对接能力;在初验阶段,可以利用Load Runner等性能自动化工具测试系统的性能效率,包括响应时间、系统容量、资源利用率等;利用Fortify源代码扫描工具结合白盒测试技术检测软件代码的安全漏洞;利用绿盟安全漏洞扫描仪检测系统的信息安全性等。
总之伴随着电子政务信息系统发展的多元化,以及采用的信息技术的复杂化,验收测试的方法也越来越多样化,同时也要求测试人员具备更全面的技术测试能力,以达到检测目的。
参考文献:
[1]IEEE Standard Glossayr,IEEE Std 729-1983.
[2]G. J. Myers. Sotfware Reliability:Principles&Parctices,New York:John Wiley&Sons,Inc.1976.
[3]G. J. Myers. The Art of Sotfware Testing,New York:John Wiley&Sons,Inc.1979.
[4]朱少民,软件测试方法和技术[M].北京:清华大学出版社,2005.
[5]DB42,湖北省电子政务应用系统技术验收测试规范[S].湖北省质量技术监督局,2008.
[6]GW0014-2017,国家电子政务工程项目应用软件第三方测试规范[S].国家电子政务外网管理中心,2017.
作者简介:李晶(1982—),湖北武汉人,工程师,现就职于湖北省电子信息产品质量监督检验院,主要研究方向为信息化系统第三方验收测试。