1、软件验收标准探讨摘要:目前,软件产品在验收过程中,常常会因各种原因发生纠纷,对此,提出了一套可参考的验收标准,对软件开发合同的签订和验收工作具有指导意义。关键词: 软件验收; 严重性等级; 验收标准 中图分类号: TP ;311.5文献标识码 :A文章编号:1672-5468(2005)04-0010-04一、引言目前,国内软件产品在验收过程中发生各种纠纷的情况层出不穷,甚至还有对簿公堂的情况。在其中一个软件采购合同的纠纷中,采购合同的验收标准一栏描述为(供需双方按照中标的投标文件中的)验收标准或双方认可的标准分别对平台行验收。而追溯到投标文件中的系统验收条目,只列出了验收时间(验收项目(验收
2、工作程序,而没有列出相关的验收标准。业界都存在一种共识一个软件存在缺陷错误是不可避免的。因此,软件在提交验收时,往往还会存在一些错误,如果只是比较少的(且危害性不大的错误,开发方在更正之后,用户一般都会接受。那么,究竟软件的错误数量是多少,其危害的程度又如何,才是用户不能接受,或者开发方也承认是不能接受的呢目前国内还没有一个统一的标准,在开发合同中一般也没有列明这些条款。这样,必然会在验收时,发生相互扯皮(推卸责任的事情。而且,国内大部分的软件开发商还没有建立起一支训练有素的测试队伍,对测试也不重视,往往是开发人员自己进行设计(编码后,再进行简单的测试就提交给用户,将实际的测试工作交给了用户去
3、做。而开发方在提交后的半年内,通常会留下1N2个程序员去专门更改用户方发现的各种错误。一般来说,一个软件,特别是业务类的软件通常会涉及到各个部门,其工作人员只会对自己负责的相关业务的软件模块感兴趣,并且往往只对试用过程中发生的业务种类感兴趣,一般不会主动地测试软件是否能在各种情况下完成任务。所以即使是在试用半年后,软件仍会残留错误,有时会更加激发用户和软件开发商之间的矛盾。目前,国内软件的验收没有可参照的强制性标准,就软件测试和评价来说,参照的标准是GB/T17544和GB/T16260,它们都是推荐性标准,且都是定性而非定量的标准,这样,对于软件的验收来说,存在很大的分歧和不确定性为了改变这
4、种状况,更好地规范软件的开发和验收工作,中国赛宝试验室软件评测中心和广东省信息中心合作,积极开展第三方验收测试工作。为此,在软件开发合同的签订阶段就提出软件验收项目和验收通过标准的意见;在软件的需求评审阶段,仔细审阅软件的需求规格说明书,指出不利于测试和可能存在歧义的描述;在开发方开发完软件并经过开发方内部仔细的测试后,对完成的软件进行第三方的验收测试,提供完整的错误报告,提交给用户方,由用户方根据之前签订的开发合同中相应的验收标准判断是否进行验收。二、验收项目和验收标准2.1验收项目1)功能项测试对软件需求规格说明书中的所有功能项进行测试。b)业务流程测试对软件项目的典型业务流程进行测试。c
5、)容错测试容错测试的检查内容包括:1)软件对用户常见的误操作是否能进行提示;2)软件对用户的的操作错误和软件错误,是否有准确、清晰的提示;3)软件对重要数据的删除是否有警告和确认;4)软件是否能判断数据的有效性,屏蔽用户的错误输入,识别非法值,并有相应的错误提示。d)安全性测试安全性测试的检查内容包括:1)软件中的密钥是否以密文方式存储;2)软件是否有留痕功能,即是否保存有用户的操作日志;3)软件中各种用户的权限分配是否合理。e)性能测试对软件需求规格说明书中明确的软件性能进行测试。测试的准则是要满足规格明书中的各项性能指标。f)易用性测试易用性测试的内容包括:1)软件的用户界面是否友好,是否
6、出现中英文混杂的界面;2)软件中的提示信息是否清楚、易理解,是否存在原始的英文提示;3)软件中各个模块的界面风格是否一致;4)软件中的查询结果的输出方式是否比较直观、合理。g)适应性测试参照用户的软、硬件使用环境和需求规格说明书中的规定,列出开发的软件需要满足的软、硬件环境。对每个环境进行测试。h)文档测试用户文档包括:安装手册、操作手册和维护手册。对用户文档测试的内容包括:1)操作、维护文档是否齐全、是否包含产品使用所需的信息和所有的功能模块;2)用户文档描述的信息是否正确,是否没有歧义和错误的表达;3)户文档是否容易理解,是否通过使用适当的术语、图形表示、详细的解释来表达;4)用户文档对主
7、要功能和关键操作是否提供应用实例;5)用户文档是否有详细的目录表和索引表。i)用户有特别要求的测试。2.2验收标准2.2.1软件错误的严重性等级如表1、2所示2.2.2验收标准1)测试用例不通过数的比例3%;2)不存在错误等级为1的错误;3)不存在错误等级为2的错误;4)错误等级为3的错误数量10;5)所有提交的错误都已得到更正表1严重性等级定义表严重性等级说明1不能执行正常功能或重要功能,或者危及人身安全2严重地影响系统要求或基本功能的实现,且没有办法解决3严重地影响系统要求或基本功能的实现,但存在合理的解决办法4使操作者不方便或遇到麻烦,但不影响执行正常功能或重要功能5其它错误表2错误与严
8、重性等级对应测试特性错误严重性等级功能没有实现应有的功能1没有实现部分功能,并且没有替代方案2没有实现部分功能,但有替代方案3业务业务业务流程存在重大的隐患1业务流程衔接错误2性能性能不能满足性能指标2容错由误操作或错误输入等导致死机或系统自动退出1对误操作、错误输入没有提示3没有识别非法值和错误输入,导致错误数据存储到数据库中3安全性密钥以明文方式存储2没有留痕功能2各种用户的权限分配不合理2易用界面不友好,出现中英文夹杂的界面4提示不清楚,出现原始的英文提示4界面风格不一致4查询结果输出方式不直观4适应在特定的软、硬件环境下,不能实现应有的功能1在特定的软、硬件环境下,不能实现部分功能,并
9、且没有替代方案2在特定的软、硬件环境下,不能实现部分功能,但有合理的替代方案3文档文档错误52.3验收标准的详细说明验收项目的划分参照GB/T16260标准。在该标准中,将软件的质量特性分为6大特性、21个子特性,而对于具体的软件,并非都要进行这21个特性的测试和评价。本文选取的是最通用的子特性部分,当然,针对各种不同的软件,可以对验收项目进行剪裁或扩充。鉴于目前软件验收没有相关的国家强制性标准的情况,我们自行制定了上述验收标准。首先,在表1中定义了软件错误的严重性等级,将错误分为15个等级,等级1为最严重的错误,而等级5为最轻微的错误。a)1级错误的描述这一级别的错误一般包括以下内容:没有实
10、现或错误地实现重要的功能;软件在操作过程中由于软件自身的原因自动退出系统或出现死机的情况;软件在操作过程中由于软件自身的原因对系统或数据造成破坏;特殊软件在操作过程中可能危及人身安全等。b)2级错误的描述这一级别的错误一般包括:没有实现基本功能,并且不存在替代办法;没有实现重要功能中的部分功能,并且不存在替代办法;没有满足系统的性能要求。c)3级错误的描述这一级的错误是与第2级别的错误相对应的,在第2级错误中,不存在替代方法,而第3级错误则存在替代方法。d)4级错误的描述这一级别的错误通常为易用性方面的错误。e)5级错误的描述通常为文档方面的错误,如安装手册、操作手册、维护手册中的描述错误。其
11、次对发现的每一个错误都要确定相应的严重性等级,如表2中的说明。最后,需要制定验收标准,即每一级别的错误量的可接受范围。一般来说,不允许存在1级和2级错误,而3级错误的数量则可由用户方和开发方根据软件的规模和复杂程度进行商定,并在软件开发合同中明确地列出。在软件验收测试中,测试依据包括软件的投标文件、开发合同、需求规格说明书,同时还包括特定软件的相关行业标准(这些行业标准应在开发合同中明示出来)。在进行第三方的验收测试后,软件评测中心将发现的所有错误进行总结和归纳,并提交完整的错误报告,在错误报告中包括每一级别的错误数量和错误清单(所有的错误都需经过用户方和开发方的确认)。用户方根据错误报告中每
12、一级别的错误数量和错误清单与软件开发合同中的验收标准进行对照,如错误的级别和数量在合同可接受的范围内,用户方认为软件可以验收,但要求开发方对错误报告中的所有错误进行整改,并提给软件评测中心进行回归测试,确认错误报告中的所有错误全部改正方可;如错误的级别和数量在合同可接受的范围外,用户方认为软件不可验收,要求开发方在规定的时间内全面整改软件,提交给软件评测中心再次进行完整的验收测试。结束语:实践证明,上述的件验收标准是可行的,对软件开发合同的签订和验收工作有一定的指导作用,但还比较粗略,需要在实践中不断完善。参考文献:GB/T 17544-1998信息技术-软件包-质量要求和测试;GB/T 16260-1996 信息技术-软件产品评价-质量特性及其使用指南。