可靠性测试就是为了评估产品在规定的寿命期间内,在预期的使用、运输或储存等所有环境下,保持功能可靠性而进行的活动。是将产品暴露在自然的或人工的环境条件下经受其作用,以评价产品在实际使用、运输和储存的环境条件下的性能,并分析研究环境因素的影响程度及其作用机理。通过使用各种环境试验设备模拟气候环境中的高温、低温、高温高湿以及温度变化等情况,加速反应产品在使用环境中的状况,来验证其是否达到在研发、设计、制造中预期的质量目标,从而对产品整体进行评估,以确定产品可靠性寿命。
测试可靠性是指运行应用程序,以便在部署系统之前发现并移除失败。因为通过应用程序的可选路径的不同组合非常多,所以在一个复杂应用程序中不可能找到所有的潜在失败。但是,可测试在正常使用情况下*可能的方案,然后验证该应用程序是否提供预期的服务。如果时间允许,可采用更复杂的测试以揭示更微小的缺陷。
组件压力测试
压力测试是指模拟巨大的工作负荷以查看应用程序在峰值使用情况下如何执行操作。利用组件压力测试,可隔离构成组件和服务、推断出它们公开的导航方法、函数方法和接口方法以及创建调用这些方法的测试前端。对于那些进入数据库服务器或一些其他组件的方法,可创建一个提供所需格式的哑元数据的后端。测试仪器在观察结果的同时,反复插入哑元数据。
集中压力测试
对每个单独的组件进行压力测试后,应对带有其所有组件和支持服务的整个应用程序进行压力测试。集中压力测试主要关注与其他服务、进程以及数据结构(来自内部组件和其他外部应用程序服务)的交互。
真实环境测试
在隔离的受保护的测试环境中可靠的软件,在真实环境的部署中可能并不可靠。虽然隔离测试在早期的可靠性测试进程中是有用的,但真实环境的测试环境才能确保并行应用程序不会彼此干扰。这种测试经常发现与其他应用程序之间的意外的导致失败的交互。
随机破坏测试
测试可靠性的一个*简单的方法是使用随机输入。这种类型的测试通过提供虚假的不合逻辑的输入,努力使应用程序发生故障或挂起。输入可以是键盘或鼠标事件、程序消息流、Web 页、数据缓存或任何其他可强制进入应用程序的输入情况。应该使用随机破坏测试测试重要的错误路径,并公开软件中的错误。这种测试通过强制失败以便可以观察返回的错误处理来改进代码质量。
可能需要某种测试装备,以驱使混乱的、高压力的、不合逻辑的测试事件进入应用程序的接口中。Microsoft 使用名为“注射器”的工具,使得以将错误注射到任何 API 中,而无需访问源代码。“注射器”可用于:模拟资源失败,修改调用参数,注射损坏的数据,检查参数验证界限,插入定时延迟,以及执行许多其他功能。