跳转至主要内容

我在1996年12月《Stratus 通讯》的"VOS专栏"中撰写了关于实施有效预生产测试的以下见解。时隔近13年后的今天,这些观点依然具有现实意义。

如果我能向客户提出一个建议(仅此一项请求!),那就是请务必在将应用程序新版本投入生产环境前进行压力测试。最近我参与处理了多起案例:客户部署的应用程序虽通过了所有功能测试,却在投入生产后不久便因无法承受生产负载而崩溃。
想必您也明白,软件测试往往充满变数且难以掌控。知道程序在每秒10笔交易量下运行正常,不等于它能在每秒100笔交易量下照常运作;确认它支持10条虚拟电路,不等于它能处理1000条虚拟电路。 我经手的每个案例中,程序在实验室或测试环境中运行良好,却因潜在的软件缺陷或容量限制在生产环境中彻底崩溃。通常若由我介入处理,问题根源往往在于VOS而非应用程序本身,但无论问题出在哪里,对客户的影响都是相同的。若想确认应用程序能否在生产环境中稳定运行,就必须以生产环境的标准进行测试。
多年来,我听过许多借口,解释为何无法像在生产环境中那样对软件进行极限测试。 我都不买账。你可以捕获生产环境的数据流和文件用于测试。你可以搭建合成测试生成器来模拟良性与异常输入。你可以绕过设备敏感的接口代码,直接向服务器输送高速数据流。即便无法在测试模式下让100%功能正常运行,仍有诸多技巧能让90%的应用程序全速运转。 别再纠结于模拟生产环境,转而专注于让尽可能多的代码以最快速度运行。务必将系统推向100%的CPU利用率——那些"有趣"的问题往往在此刻浮现。
通过将应用软件推向极限,您同时也在检验VOS系统的极限。您将在实验室而非生产环境中发现容量问题,从而明确系统容量的边界所在。测试阶段结束后,您将对应用部署的成功率抱有更高的信心,让您的上司和客户满意。这些难道不是充分的理由吗?