系统测试由许多不同类型的测试组成, 它们包括性能测试, 安全测试, 软件需求测试, 文档测试, 可用性测试, 以及培训测试. 这里,
我们注意的焦点将放在三个额外的测试类别上: 灾难自动恢复, 多主机, 和界面测试.
灾难自动恢复测试
一个计算机系统牌许多物理的和自然的威胁之下. 即使你的应用程序内建了很高的安全性, 它对于一个影响你整个系统的灾难来说也是脆弱的. 这些威胁包括恐怖分子,
洪水, 火灾, 计算机病毒和雇员的恶意破坏. 当一场大火毁了计算机中心的时候, 你崭新的应用程序上会发生些什么呢? 是的, 系统的磁带可以被恢复,
但是你的应用程序也能够成功的恢复么? 我可以想象到你在点头称是, 但我不会那么有信心的.
你希望在什么时候确定你的应用程序是否能够自动恢复呢--是在灾难发生的时候还是在系统测试的时候呢?
灾难自动恢复测试旨在考察你的应用程序是否能在不同的环境里成功的自动恢复. 你所建立的过程将成为整个系统生命周期中定期灾难恢复测试的基础. 你要测试下面的内容:
- 系统环境和操作系统能否在一个合理的时间段内恢复?
- 所有的应用程序数据库是否能恢复到同一个时间点, 从而保持数据库间的一致性呢?
- 是否能够将事务从备份的磁带创建之日起恢复到当前时间呢? 比方说, 假设一个灾难发生在星期四, 但是你远程的备份磁带是从上个星期五开始备份的,
那么你能否恢复从星期五到今天的所有事务呢?
- 你所有的安全程序是否都能在新的硬件上运行?是否有与特定服务器有关的认证无法在新的恢复服务器上使用?
- 有没有文档化的过程以确保技术支持人员能够恢复系统? 他们可能有也可能没有开发团队那样的技术实力.
- 如果需要从其它的程序或者销售商获取数据库和文件, 这些数据库和文件是否也一样可以恢复, 他们是否能够和恢复后的应用程序同步?
显然, 灾难测试是一个专门的测试. 如果你的应用程序在任何时候都要是可用的, 那么你可能希望做这样一种测试, 即使这个测试是模拟的而不是真正的灾难恢复.
多主机测试
多主机测试旨在测试运行在多个主机上并需要在相互间进行数据交流的应用程序. 这个测试是基于这些主机是如何通讯以及它们之间存在的相互依赖性而设计的.
如果这些主机相互独立的运行, 那么这个测试就要比它们相互之间存在依赖的时候要容易一些. 下面是应该注意的地方:
- 如果一台主机发生了故障你将如何恢复系统呢? 这个服务器可以进行本地恢复么? 你需不需要通过网络来发送恢复文件?
- 如果一台主机停机的时候你能否让剩下的所有主机回到同步状态呢?
- 当两台或者多台主机停机的时候恢复的复杂程度怎样?
- 当灾难发生的时候是不是所有的主机都能够恢复呢? 这与前面讲到的灾难自动恢复测试有相同的内涵.
根据你应用程序的结构而言, 多主机测试可能会非常的重要. 你运行这个程序的主机越多就越有可能在什么地方出现问题. 这个测试可能也比较难于进行,
除非你有一个可以模拟多主机的测试环境, 或者这个程序干脆就有条件在多个主机上运行. 如果你的时间表是断断续续的,
那么这个测试的不同部分可以在每个站点准备好了运行的时候进行.
|