本文作者 | Vincent老师
Senior Fullstack Engineer,在FLAG一线大公司拥有多年的面试经验。
来Offer全栈开发项目实践课的主讲老师,帮助上千名同学修改简历、辅导面试。
Vincent老师最喜欢的美剧《西部世界》第二季终于开播了!
集合了“人工智能主题公园、机器人暴乱革命、美国西部虚拟世界”等元素,这部HBO寄以厚望的未来台柱剧,在第二季开播当天,收视人数就达210万。
《西部世界》中的仿人类智能机器人
《西部世界》中,人类游客对机器人肆意妄为
就我自己的观感体验来说,第二季承袭了第一季的调性,依旧保持着紧张与神秘的荒野气息:血腥的印第安式割头皮、无下限的暴露镜头、行云流水的双主线走法……(好了不能再说了,否则有同学要抱怨我剧透了)
《西部世界》第二季,智能机器人屠杀人类
那么在观影之余,想必很多同学也会随着剧情展开联想和疑问:
在未来,仿真机器人真的会被IT公司制造出来吗?这些机器人会暴乱吗?
为了避免这些可怕问题的发生,我们就要来谈一下QA(质量保障),也就是Quality Assurance的重要性了。
《西部世界》中负责机器人维护的程序师
如果曾在学校里做过软件开发项目的同学,都应该有个这样的经历:对于自己开发的一个小程序,可能只要能够跑通一次就提交了事了。
如果西部世界里边的机器人是通过这样的代码跑出来的,当然会发生无人预知的可怕后果。
《西部世界》中一个智能机器人的觉醒
实际上在工业界,开发代码的流程可不像学校里学的那样。
通常,IT公司为了保证自己制造出的的产品正确运作并且稳定持续运行,他们的产品都得通过重重考核,通过QA的三道关。
第1关
- Unit Test -
Unit Test 又称单元测试。一个PR (Page Review) 要能够进入系统的代码库(repository)的第一关就是Unit Test。
顾名思义,Unit Test就是测试单个对象的某个单一功能是否完善。
举个例子来说,如果你开发了一个除法程序,那么就要测试除0、除单、除双等常见情况。
在西部世界当中,我们有时候也会看到工程师在测试一些简单的行为,比如要求机器人走路、坐下也是属于Unit Test的范畴。
《西部世界》中测试管理机器人的界面
第2关
- Integration Test -
Integration Test又称集成测试。
与Unit Test的差别在于,Integration Test一般会测试一连串的单元,而也唯有所有功能都完成才算完成。
一般常见的Integration Test是对一整个Service进行测试。
比如说Facebook要Load你的主页是否各项内容都有,而背后可能涉及到的是不止一个功能单元。
在西部世界当中,我们看到有时候机器人会被要求完成一个比较复杂的动作,如酒馆决斗、陪客人聊天等等,这个也是属于Integration Test的范畴。
《西部世界》中人类在给机器人设置台词
第3关
- QA -
这里的QA我们一般指的就是QA这个测试的人员或者团队。
和《西部世界》中不一样,在IT公司当中实际上QA权利是很大的,如果不能够通过QA的测试,他们是可以否决你的Feature release的。
QA权利那么大,为了保证QA能够“铁面无私”、不受偏见地测试某一组程序员的Feature,QA一般都由来自其它不同组的人担任。
只有这样,才能够达到最大限度的查找Bug。
《西部世界》中智能机器人讽刺人类的代码
而且QA做测试和Unit Test是不一样的,他们会想尽办法去break你的代码,用各种crack去查找你的程序是否robust。
很多时候QA给你的反馈会让你大为吃惊,比如说在Android某个特定版本下、在某个低速网络环境下你的页面loading会出现紊乱等等非常细枝末节的bug。
除此之外,IT公司还会有很多机制,比如Monitoring的系统(比如StackDriver)、Alerting的系统(比如Logstash、Kibana)等来实时监督整个产品的运行情况,避免事态失控到了不可挽回的余地。
实际上大部分情况下,IT公司都是能够发现一些比较明显的Bug的。因此,有了QA,也许《西部世界》中机器人反抗人类的的未来,很难变成现实。
更多科技求职资讯,请关注“来Offer”