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