软件的安全可靠性是衡量软件好坏的一个重要标准,安全性指与防止对程序及数据的非授权的故意或意外访问的能力有关的软件属性,可靠性指与在规定的一段时间和条件下,软件能维持其性能水平能力有关的一组属性。具体我们可以从以下几个方面来判断:
1.用户权限限制。软件是否按功能模块划分用户权限,权限划分是否合理,考察超级用户对各个用户的权限管理是否合理,包括修改用户的登录资料等。
2.用户和密码封闭性。软件对用户名和密码有无校验,有无保护措施,尤其对密码有无屏蔽功能。
3.系统对用户错误登录的次数限制。软件对用户错误登录有无次数限制,一般做法是连续三次登录失败就退出系统。
4.留痕功能。软件是否提供操作日志,比如某用户登录的时间,查询、修改或删除的动作以及离开的时间等。
5.屏蔽用户操作错误。考察对用户常见的误操作的提示和屏蔽情况,例如可否有效避免日期的录入错误或写入无效的日期。
6.错误提示的准确性。当用户操作错误或软件发生错误时,能否有准确清晰的提示,使用户知道造成错误的原因。例如当用户未输入完有效信息时存盘,系统应当给出关于未输入项的提示。
7.错误是否导致系统异常退出。考察软件运行的稳定性,当软件发生一般错误或严重错误时,软件是否会自动退出。
8.数据备份与恢复手段。主要针对有数据存储需要的软件,有的软件依靠数据库操作系统本身的备份与恢复机制,这需要用户具备一定的操作知识;好的软件会提供备份与恢复的操作,不需要用户直接对数据库系统进行操作。
9.输入数据有效性检查。当用户输入的数据有错时,软件应能判断数据的有效性,避免无效数据的生成。
10.异常情况的影响。在程序运行过程中进行掉电等试验,考查数据和系统的受影响程度;若受损,是否提供补救工具,补救的情况如何。
11.网络故障对系统的影响。当网络中断连接时,是否会造成数据的丢失。
原文转自:http://www.uml.org.cn/Test/200712141.asp
总之,在软件测试或者软件设计的时候关于可靠性可以参数以上说明,可能某一产品不求对上面的可靠性面面俱到,但至少得有这方面的设计和测试验证。我想,这也是设计好或者测试好一个产品所必需考的之一吧!