并发测试(concurrency testing)(图 5)剖析了当多个用户同时访问同一段应用代码、同一个模块或者数据库纪录时的效果。它鉴别并度量了系统加锁和死锁的级别以及系统中单线程代码和加锁信号的使用。从技术角度讲,并发测试可以归为一种功能测试,不过它常常和可伸缩性/负载测试配合使用,因为它需要多用个户或者虚拟用户来驱动系统。
图 5:并发测试能够识别死锁和其他并发访问问题
压力测试(stress testing)(图 6)在系统达到饱和(指资源如 CPU、内存耗尽等情况)时来测试系统以判断其行为是否发生变更,或者是否会对系统、应用程序和数据产生不利影响。容量测试(volume testing)是和压力测试及可伸缩性测试相关联的,它可以确定整个系统能够处理的事务容量。通过压力和容量测试能够知道系统分别在处理突发的访问量增加或进行持续的大容量活动时所具有的弹性,这不包括那些因为内存泄漏或者队列溢出所引发的失败。
图 6:压力测试能够确定高容量使用时的效应
一旦应用环境开始工作并进行了性能优化,可以在 75%到 90%的环境利用率下进行一项长期可靠性测试(reliability testing),用来发现任何与较长的运行时间有关的问题。在应用了冗余和负载平衡的环境中,失败转移测试(failover testing)(图 7)分析理论上的失败过程并测试和测量总体失败转移进程及其对终端用户的影响。本质上,失败转移测试回答了这样一个问题:"如果一个特定的组件运行失败,用户还可不可以在最小的中断下继续进行访问和处理?"
图 7:失败转移测试:如果组件X失败,那么将发生什么情况呢?