容错性测试和安全性测试容易被忽视,但这两项测试越来越现实其重要性,容错性对系统的稳定性、可靠性影响很大,而随着网络应用、电子商务、电子政务等越来越普及的同时,安全性越来越重要。容错性测试和安全性测试,相对来说,是比较难的,需要得到足够关注,需要得到设计人员、开发人员的更多参与。
1.容错性测试
容错性测试包括两个方面的测试:
- 输入异常数据或进行异常操作,以检验系统的保护性。如果系统的容错性好的话,系统只给出提示或内部消化掉,而不会导致系统出错甚至崩溃。
- 灾难恢复性测试。通过各种手段,让软件强制性地发生故障,然后验证系统已保存的用户数据是否丢失、系统和数据是否能很快恢复。
关于自动恢复测试,需验证重新初始化、检查点、数据恢复和重新启动等机制的正确性;对于人工干预的恢复系统,还需估测平均修复时间,确定其是否在可接受的范围内。
从容错性测试的概念可以看出,容错测试是一种对抗性的测试过程。要测试软件出现故障时,如何进行故障的转移与恢复有用的数据。故障转移(Failover)是确保测试对象在出现故障时,能成功地将运行的系统或系统某一关键部分转移到其它设备上继续运行,即备用系统就将不失时机地“顶替”发生故障的系统,以避免丢失任何数据或事务,不影响用户的使用。要进行故障转移的全面测试, 一个好的方法是将测试系统全部对象用一张系统结构图描绘出来, 对图中的所有可能发生的故障点设计测试用例。例如,系统设计架构图中,如果存在单点失效的关键对象,就是设计的重大缺陷。
2.安全性测试
在进行安全测试时,测试人员假扮非法入侵者,采用各种办法试图突破防线。例如:
- 想方设法截取或破译口令;
- 专门开发软件来破坏系统的保护机制;
- 故意导致系统失败,企图趁恢复之机非法进入;
- 试图通过浏览非保密数据,推导所需信息等等。
- 应用程序级别的安全性,包括对数据或业务功能的访问,在预期的安全性情况下,操作者只能访问应用程序的特定功能、有限的数据。其测试是核实操作者只能访问其所属用户类型已被授权访问的那些功能或数据。测试时,确定有不同权限的用户类型,创建各用户类型并用各用户类型所特有的事务来核实其权限,最后修改用户类型并为相同的用户重新运行测试。
- 系统级别的安全性,可确保只有具备系统访问权限的用户才能访问应用程序,而且只能通过相应的网关来访问,包括对系统的登录或远程访问。其测试是核实只有具备系统和应用程序访问权限的操作者才能访问系统和应用程序。
预知后事如何,请读下回分解: 第15回 回归测试的风险性和有效性之平衡策略
版权所有,软件测试演义®
——系列讨论的目录,见: 软件测试演义——中高级系列(序)