计算机软件是基于计算机系统的一个重要组成部分,软件开发完毕后应与系统中其他成分集成在一起,此时需要进行一系列系统集成和确认测试。对这些测试的详细讨论已超出软件工程的范围,这些测试也不可能仅由软件开发人员完成。
在系统测试之前,软件工程师应完成下列工作:(1)为测试软件系统的输入信息设计出错处理通路;(2)设计测试用例,模拟错误数据和软件界面可能发生的错误,记录测试结果,为系统测试提供经验和帮助;(3)参与系统测试的规划和设计,保证软件测试的合理性。
系统测试应该由若干个不同测试组成,目的是充分运行系统,验证系统各部件是否都能工作并完成所赋予的任务。下面简单介绍几类系统测试。
(1)恢复测试
恢复测试主要检查系统的容错能力。当系统出错时,能否在指定时间间隔内修正错误并重新启动系统。恢复测试首先要采用各种办法强迫系统失败,然后验证系统是否能尽快恢复。对于自动恢复需验证重新初始化、检查点、数据恢复和重新启动等机制的正确性;对于人工干预的恢复系统,还需估测平均修复时间,确定其是否在可接受的范围内。
(2)安全测试
安全测试检查系统对非法侵入的防范能力。安全测试期间,测试人员假扮非法入侵者,采用各种办法试图突破防线。
例如:
①想方设法截取或破译口令;
②专门定做软件破坏系统的保护机制;
③故意导致系统失败,企图趁恢复之机非法进入;
④试图通过浏览非保密数据,推导所需信息。
理论上讲,只要有足够的时间和资源,没有不可进入的系统。因此系统安全设计的准则是使非法侵入的代价超过被保护信息的价值。此时非法侵入者已无利可图。
(3)强度测试
强度测试检查程序对异常情况的抵抗能力。强度测试总是迫使系统在异常的资源配置下运行。例如,当中断的正常频率为每秒一至两个时,运行每秒产生十个中断的测试用例;定量地增长数据输入率,检查输入子功能的反映能力;运行需要最大存储空间(或其他资源)的测试用例;运行可能导致虚存操作系统崩溃或磁盘数据剧烈抖动的测试用例等等。
(4)性能测试
对于那些实时和嵌入式系统,软件部分既使能满足功能要求,也未必能够满足性能要求。虽然从单元测试起,每一测试步骤都包含性能测试,但只有当系统真正集成之后,在真实环境中才能全面、可靠地测试运行性能系统。性能测试是为了完成这一任务。性能测试有时与强度测试相结合,经常需要其他软硬件的配套支持。
文章来源于领测软件测试网 https://www.ltesting.net/