软件测试的重要性,正在被我们不断提高认知,尤其是在移动互联网时代,随着APP的不管增多,测试的重要性极度凸显。但是,很少有人了解测试究竟在扮演着什么样的角色,其实,测试是基础服务。
文/蔡小飞
在刚刚结束不久的2016中国软件商业生态大会(BST)上,TestinCEO王军就此问题做了比较详尽的解读。王军认为,互联网+时代下,成功的关键不在硬件,而在软件,软件成功的关键在开发、更在测试。
这一点,在互联网+时代下的工业发展中尤为明显,软件工程和测试软件工程是工业发展不可或缺的。到现在为止,我们能够看到的最高精尖的工业产品,内含的软件代码数量都是非常巨大的。今天所说的工业,不完完全全是一个纯粹的硬件产品,或者是一个经过时间、经过专利、经过你努力就能够搞出来的产品。如今的工业发展一定是和软件结合的,这其实是工业制造,或者是整个国家GDP最关键的一个环节,所有的硬件都要基于大量的不断演进进化的软件才能完成。
这些伟大成就基于软件测试
值得注意的是,有观点认为,中国的未来一定在不远的2025工业制造,软件和硬件和工业制造到底是什么样的关系呢?王军在主题分享中用一些例子进行了梳理。
也许,我们很多人都不知道,计算机软件真正参与工业化生产的里程碑是阿波罗登月,这也是软件作为一个工程,第一次真正出现在人类进化历史上。
资料显示,阿波罗登月计划实施的那个时候,计算环境是非常复杂的,当时的软件有多少代码这个还需要查证。但是,可以肯定的是,当时的测试对于阿波罗登月是非常重要的,因为人会出错,没办法进行高逻辑的计算,人在逻辑处理数据的时候没办法像计算机去完成。要实现阿波罗登月计算机程序的完善,可以想象,汉密尔顿带领一个团队为阿波罗登月所做的事情是多么复杂的挑战。
当时计算机还没有发展完善,火箭代码是没法Debug(调试)的,总不能每改一段代码就发一颗新火箭吧?打孔卡片虽然逼格高,但是总不会程序出了Bug就炸飞几千万美元的设备吧?火箭和飞船的程序员们通过纸+笔度过进行测试的。
有意思的是,火箭飞机等用的是嵌入式系统,是专用代码,执行效率超级高,电路到是没什么神秘的,关键是软件代码。相对于登月飞船的相对特定的任务目标,以无人驾驶为代表的互联网+战略所包含的技术创新,是更加复杂、不可知的任务目标,随之而来的就是更为浩瀚且不断自我学习、自我进化的软件系统。
无人驾驶研究领域最重要的技术就是机器学习软件和处理器。经验和多年驾驶体验会将我们没有意识到的事实融合起来,而计算机必须学习这些东西。当然,它们可以被编程,但它们也需要深度学习以理解自己的驾驶经验,将它们应用到未来场景中,并与其他车辆共享经验。
可是,在真正的无人驾驶中,到今天为止,包括Google在内的这些全球的无人驾驶装备,最难的问题不是在应用上,而是在软件上。涉及到哪个环节呢?社交软件不是一个静态的,必须在实际使用过程中通过实时流数据的云计算,把获取到的数据进行反馈,同时要进行深度的机器学习把所遇到的情况和使用习惯、驾驶习惯学习。
基础服务背后软件测试路还长
众所周知,软件测试其实是目标反馈的过程,描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程,在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
软件测试是当下创新最大的挑战。民用工业领域,成熟的软件持续迭代开发的成本中,测试的占比约为40%,随着跨界的软硬件结合的应用,软件测试所占的比例也在逐步增加。创新者在软件测试上存在两方面挑战,一是专业资源不足,二是自建测试资源的必要性问题。
到今天为止,所谓用到的技术,包括实时流计算、人工技能和AR终成现实,已经把识别到的视频和VR结合起来,投影到现实的屏幕,这是增强现实的应用场景。所有的硬件都要基于大量的不断演进进化的软件才能完成。
这个软件进化的过程需要多长?以自动驾驶为例,必须把人类所经过的驾驶的场景全部经历过,而且要做一个概率统计,要大家能够帮助我们完成这样一个工作,这使得现实我们面对的问题不是软件开发者出来的,不是硬件搞不好,而是软件无法在现实生活中得到大家有效的配合。
以无人机为例,无人机一般使用起来问题不大,但是,有一天载运的油等特殊东西掉下来,基于软件的操控失误就会导致其他场景、其他人物等等受到伤害。王军认为,真正从我们获取到数据,一个持续迭代的产品大概花40%预算和时间,包括提前设计之前的问题。而更大的一个难题是,有一些实验没办法在现实生活中广泛的开发。比如说样本可以找一些临床样本去做,这个带来我们无法避免的一个话题,测试的成本是非常非常高的。
创新创业是软件测试最大挑战
回过头来我们再看,伟大工程最大的挑战是分发,软件出现问题就跟我们婴儿学语言出现问题一样,是一个自然现象,我们有没有办法通过测试去保证我们使用的,包括我们软件、硬件在内没有故障,保证可用。第二个挑战是避免引发的灾难,小到可能是仅仅一个失败的故障,大到汽车的撞车、飞机的坠毁,都可能是跟软件有关。
在今天,创业者面临更大的挑战,是不是没有专业的测试必要的资源,第二是有没有必要投资,建立一个完善的测试团队,把你的软件测试的没有bug,这是两方面的问题,因为不光是钱的问题,还有时间的问题。
如何帮助创业者解决这个问题呢?王军透露,Testin做了两件事情。
第一件事情,是把每一次app的每个脚本、整个使用记录保存下来,自动系统可以比在座的任何一个人更了解,拿到一款纯新App更容易上手,可以更快速的进入应用环节,虽然不知道这个应用是干什么用的。
第二件事情,就是从前面开始,把这些使用的开发者,包括其中很多测试专家,就共享经济的方式会聚到这个平台,他们遍布在中美和东南亚地区,广泛的使用更多人的参与,在更多的场景进行测试是否适合真实使用场景,而且实时反馈问题。
基于以上这两件事情,Testin建立了一个手机真机的自动化测试的云平台,免去了开发者资源的建立和在云端的测试。在过去五年时间里帮助超过70万的开发者,累计测试超过1.3亿次,包括智能家居等测试在里面。到今天大概核算后,每分钟完成约52次软件在手机上的测试。
硬件一定不是问题,接下来就是软件和软件的进门途径。把更多的资源、更多的市场裹挟到这里,我们需要有很多的竞争对手为开发者、创业者提供希望服务,同时我们要产业链的上游,其实今天中国的创业公司面临商业逻辑和商业规则的挑战,我所了解中国企业面对的巨大挑战是商业上的授权和专利。
在这里,一个创业公司在初期不用担心这个问题,一旦到一定规模就要涉及到专利的授权和许可,这个时候,就要和产业上下游建立的产业合作开发,从而得到授权和许可。基于这种合作框架之下,在不冲突的情况下绕开一些归置,更大的利益是带来更早更先帮助开发者的支持。
要更好的实现互联网+的实践工作,就避不开创新改变,而创新改变正在让测试成为基础服务。王军坚信,中国在工业制造方面的发展、要想成功,一定是在软件上,但是软件不可能自己出来。中国未来更多的价值在软件的协同服务上,作为基础服务的测试,将为更多创业者、创新者提供服务,成为不可或缺的贡献。
|