## 《像火箭科学家一样思考》6：压力测试

这一讲咱继续说如何避免在实际工作中犯错误。我们前面讲了，对于有风险的项目你一定要区分确定和不确定的边界。明确了哪些是你知道、哪些是你不知道的，你就会比较有把握。那么还有一种情况叫“未知的未知”，也就是你不知道你不知道的事，又该如何避免呢？

我发现 NASA 失败的任务虽然多，但是它有一个优点 —— 它每一次失败都不是白失败，它总能够给你找到失败的原因，总结一个教训。而且 NASA 从来不会把失败原因归结为“偶然”，总是落实到人为因素。为什么呢？因为你原本就应该把偶然因素也给考虑到。

我们平时要参加一个什么重大活动，比如发布新产品、作报告或者参加面试，都会事先做一点练习。但是一般的练习都是追求熟练 —— 而航天事业中的练习，熟练只是一小部分，更重要的是要测试面对各种偶然突发情况的应急反应。

这就叫压力测试。如果事情没按照你设想的进行，那不是事情的错，而是你的错：你没测试到。

宇航员其实不应该叫宇航员，应该叫“宇航训练员”。你为了在太空飞六天，可能得在地面训练六年。你职业生涯做的主要事情是训练。

我们看报道说中国航天员为了出舱行走的那么几个简单动作，要练习好几百个小时。而且为了模拟失重环境他们还都是穿着潜水服在水里练，每次一下去就是好几个小时。复杂的操作就更不用说了，杨利伟为了完成第一次载人航天任务，在上天之前已经能闭着眼睛完成飞船的操作，可以说是练到了人机合一的程度。你可能会想，咱们中国人是不是有点太小心了，美国人也下这样的笨功夫吗？

![图片](https://piccdn3.umiwi.com/img/202005/19/202005191903096386637685.jpg)

美国练得可能更狠。中国现在条件好，载人航天之前是先用仿真人做测试。美国 60 年代的时候没有仿真人，用过一次黑猩猩，其他都是用真人。而宇航员太宝贵了，在地面测试用的是志愿者。

这些志愿者说白了就是来受罪的。正常人面临 5 个重力加速度 — 也叫5个g —— 就可能会失去意识，而为了测试登月航行，志愿者有时候能被加速到 36 个g。这些志愿者是真受伤了，有的人耳膜破裂，有的人眼球从眼眶里脱位，有的人内脏损伤。就得这么测，科学家才知道怎么改进飞行器。

*

测试环境往往要比航天中的的真实环境更严酷。

美国有个模拟火星环境的实验室，它把空气抽到像火星大气一样稀薄，在地面铺上具有火星特点的石头，让着陆器就在这个环境里测试。

前面说了，机遇号和勇气号着陆用的是气囊。一个明显的问题是气囊掉下来，会不会被石头给刮破呢？测试发现有些石头果然能把气囊刮破。科学家想了一个办法，像自行车轮胎有内胎和外胎一样，搞双层气囊：外胎刮破，内胎还可以坚持一下。当然总刮肯定也不行，但是你着陆的地方毕竟不会有太多锋利的石头 —— 可是就算石头不多，两层气囊够不够呢？

为了保险起见，科学家在实验室地面到处都放置了有可能刮坏气囊的石头……测试结果证明两层气囊足够了。

*

而宇航员需要演练的意外就更多了。如果任务过程中发生了爆炸、或者发动机出现故障、或者计算机当场死机，你怎么办呢？你不能束手等死！也不能到现场现想办法。

每一次航天飞机出任务之前，地面要考虑 6800 种意外。宇航员会把每一个情况都练习熟练，所以真正遇到情况的时候并不会很紧张，也不会特别慌乱。

电影《阿波罗13号》描写了一个真实的故事。在一次登月任务中，因为服务舱发生了爆炸，三个宇航员必须乘坐登月舱返回。而登月舱的设计是给两个人坐的，里面的氧气也仅供两人使用，三个人怎么坐呢？

![图片](https://piccdn3.umiwi.com/img/202005/19/202005191904269779673616.jpg)

电影中宇航员和地面指挥中心都是一片慌乱，但那其实是电影的艺术手法。真实事件中并没有那么慌乱 —— 因为这个情况之前已经考虑到，而且演练过了。

有个美国宇航员回来之后，别人问他此次任务是否和你们的计划一样。他回答说，没有一次任务和计划是一模一样的 —— 但是都在我们准备的范围之内。

这就是压力测试的关键：你准备的范围得足够大才行。而即便是这么准备，也依然会出错。

比如我们前面说的那个“火星极地着陆者号”，因为反推火箭提前熄火导致坠毁。那 NASA 既然已经千算万算，怎么还出了这样的问题呢？

每个失败背后都有一段令人感慨的故事。事后分析，反推火箭之所以熄火，因为在即将着陆之前，在距离地面还有1500米的高度上，探测器的三条腿打开了。这个动作本身没毛病，但是腿打开之后，反推火箭的传感器把腿的关节给当成了火星地面，它以为已经着陆了，就命令火箭熄火……

![图片](https://piccdn3.umiwi.com/img/202005/19/202005191905209681672409.jpg)

那你说难道反推火箭和着陆器三条腿打开的动作，就没合练过吗？本来是练过的，本来没问题。可是在地面测试的最后阶段，科学家发现腿的信号模块有个错误，他们必须做重新连接，那个问题是解决了，可是当时测试的进度已经远远落后于计划……

我们知道火星跟地球之间的距离远近有变化，去火星得赶着离得近的时候去，两年才有一个发射窗口。为了赶上这个发射窗口，腿的问题解决之后就没来得及再做一遍合练。结果没想到，腿跟反推火箭的配合出了问题。

所以好消息是你可以测试，坏消息是你的测试是有限的。

*

像着陆者号这样因为系统内部不同部分的配合出的问题，非常常见。哈勃太空望远镜，也是刚上线就发现传回来的照片是模糊的，为什么？因为这么大的望远镜需要由很多个部分组合起来才能用，而地面测试的时候没有做足够的交叉验证。

当初奥巴马的医疗改革，搞了一个由政府提供的医保系统，官方网站是 HealthCare.gov。建设这个网站花了纳税人 20 亿美元，可是它刚开通就崩溃了，舆论哗然。你看这个事儿是不是似曾相识呢？

奥巴马医保网站没有做联合测试。政府把建设网站的任务外包给了几十家公司，这些公司的软件各自单独用都没问题，没想到放一起就出问题。

有一年Facebook全面更新了用户界面，新界面更加图形化，非常漂亮，内部测试完全没问题。但是上线之后，很多用户突然间就不像以前那么愿意打开Facebook了，也不像以前那样喜欢给朋友留言了，这是为什么呢？

后来才发现，新界面对图形处理能力的要求很高，而当时很多用户用的电脑比较老旧，打开页面会变慢……可是Facebook在内部测试的时候，用的都是新电脑。

所以测试必须得全面才行，有一个没考虑到就可能出问题。而大多数测试最大的毛病，是不够真实。

航天测试有句话叫“test as you fly”，也就是要像你真实飞行一样去做测试。当然你在地面不可能完全模拟出来太空或者火星的环境，但是一定要尽可能真实。不够真实，你就可能会被测试结果所误导。

苹果公司在正式推出 iPhone 之前，曾经做过一个消费者调查，说你愿不愿意拥有一个集手机、音乐播放器和 PDA 于一体的设备 —— 结果是只有 30% 的人表示希望有这样一个设备。原来大部分人认为根本没必要把这些功能都做到一起，宁可同时携带几个设备。

根据这个调查结果，当时微软的CEO鲍尔默认为 iPhone 必败！

哪里想到 iPhone 一出来就取得了极端的成功。做消费者调查的时候 iPhone 还没出来，人们不知道iPhone 长什么样，人们不喜欢的是自己想象中的那个设备 —— 真把 iPhone 拿在手里，那个感觉完全不同。一个教训是乔布斯说得对，用户根本不知道他们喜欢什么；另一个教训就是做调查一定要尽量使用真实情境。

*

你可能听说过民意测验公司盖洛普。这个公司的创始人乔治·盖洛普当年的博士论文，就是关于如何做一个客观的调查。他发现问卷调查往往是不客观的。

盖洛普说，如果你去问报纸的读者，报纸上那么多版面和文章，你都是怎么看的啊？读者一般会说他必看的是头版的文章。但是盖洛普找人专门到读者家里去，盯着读者看报纸，读者每读一篇文章就标记下来 —— 这种调查情境其实也不够真实，我要是读者的话肯定会感到很不自在 —— 但就是这样，调查结果也和问卷调查大相径庭：事实上人们并不怎么看头版的那些时政新闻，很多人都是直接翻到体育版和娱乐版。

这个洞见是不要听人怎么说，要看人怎么做。你们公司要推出一款新鞋，你想知道定价多少最合适。如果你找几个消费者，问他们愿意为这双鞋出多少钱，那肯定不准。你应该做的是把这双鞋摆到商店里，用不同的定价做随机测试，看看哪个定价的总收益最高。

有个现在非常火的设计公司叫 IDEO，非常善于根据真实情境设计。比如有个公司委托它重新设计儿童用的牙刷，大家直观的想法是因为儿童的手比较小，儿童牙刷也应该做得比大人的牙刷小才行，对吧？IDEO 的做法是直接去到孩子家里，观察孩子们都是怎么刷牙的。他们发现孩子刷牙和大人很不一样，大人是用几个手指拿着牙刷，而孩子的手指没有那么灵活，他们都是像握拳一样，用整只手握住牙刷。所以 IDEO 设计的儿童牙刷比大人的牙刷还要更大更厚一些。

![图片](https://piccdn3.umiwi.com/img/202005/19/202005191907370897142616.jpg)

这些细节你要不到真实现场观察就不知道。再比如说，有一家医院请 IDEO 帮他们重新设计病房。医院设想的是 IDEO 肯定对墙和地面提出大改……但是 IDEO 派人在病房里假装病人躺了几天之后，认为装修的重点应该是天花板：天花板才是病人整天看到的东西。

***

这一讲我们说了压力测试中的一些学问，这些东西跟以前我们熟悉的随机测试、A/B测试、双盲测试相比，最关键的两点就是第一，场景一定要真实；第二，要多考虑各种可能发生的意外，为此有必要让测试条件比真实条件更严酷。

说到这里你是不是感到有些后怕呢？我们在生活中做重大的事情之前并没有做很多测试。你参加高考之前去考场踩过点吗？你准备面试的时候模拟过不容易回答的问题吗？可能你认为通过了都是正常的，遇到意外都是因为运气不好。

而按照航天标准，遇到坏运气，你应该责备自己：你犯了准备不充分的错误。

### 💡 精华要点
- 压力测试的关键两点：
- 第一，场景一定要真实；
- 第二，要多考虑各种可能发生的意外，为此有必要让测试条件比真实条件更严酷。
- 
- 按照航天标准，遇到坏运气，你应该责备自己：你犯了准备不充分的错误。

![图片](https://piccdn3.umiwi.com/img/202005/19/202005191908226008594967.jpg)
