当你进入任何一个领域学习时,终究会被它的庞大所折服。当你越学越深,则越敬畏。尤其在IT行业,每日如新层出不穷的各种开发测试技巧、分析理论、知识框架的变化扩充、大数据人工智能等等各种理论与实践的不断推陈出新,各种商业或开源工具软件的花样翻新。而在这一领域畅游,则精神必须高度紧张不断的充电学习,似乎少了一天的学习就恍若隔世。
软件测试最初是作为软件工程的一个分支,而今不断衍生,茁壮成长,覆盖了整个软件工程的生命周期。
纵向来看涵盖了从质量管理、文档评审、Code Review、功能验证、自动化测试架构、持续集成自动测试、性能测试、安全测试、兼容性测试、可靠性测试、TDD族乃至于数据库测试、UI测试等等。
横向则涵盖所有商业软件、系统软件、移动软件、嵌入式软件、各类工具软件等等,只要有软件存在的地方就有测试。
由此可见软件测试的知识体系更是庞大:
从数学理论基础、电脑软硬件基本理论、网络知识、测试技术理论、各种开发语言都需要涉猎(与开发不同至少熟练使用一门语言,而且工作中总是可能会遇上不同的开发语言,所以都要有所了解)、数据库理论、了解不同操作系统(包括安卓与iOS)、熟悉各种开发平台、成百上千的测试工具、测试过程控制、质量管理等等。
真正能做好软件测试领域是不容易的,如今软件测试几乎成了装与软件各个层次各个角度都有关系的大容器。大到整个开发的框架、软件测试的框架,小到每一个方法的白盒测试(测试驱动式),每一个算法效率的测试,数据库存储过程的测试等等,无所不包无所不能。
软件测试是入门容易,却深如海的学科。渐渐的软件测试的知识几乎是要有渗透入计算机的所有部分的趋势。
对于这样一个深度广度都在正在无限扩张的学科,单凭在学校里安排一个学期的课程是无法完成的,许多的专业技能需要在进入企业后进行深度和广度的深入扩展。
那么如何搭建软件测试的培训体制呢?现在在软测的教育培训上市场鱼龙混杂,有网络课程、有项目实战培训、就业式培训、证书认证培训、企业内训也有各种会议等。
对于这样复杂交错的教育培训,总是让人无从选择,分不清良莠,更多的IT学科又何尝不是如此呢?工作者在自身遇到真正瓶颈需要突破时,往往苦于无师可学,而许多学富五车的专家又无法合理和正确的将知识传达出去。此时,也许我们可以借鉴一下瑜伽(YOGA)的教育体系与方法。
1、首先对于基础理论的学习
瑜伽的教育体系的脉络是非常清晰的。首先是分成几个大分支,每个分支的理念非常清晰,有的是注重体式、有的是注重思想、有的是注重理论。这门学科也是注重理论结合实践的,例如在进行哈他瑜伽学习,主要是体式的练习,但是会用到各个理论的精华。这一套理论已经历经了几千年概念非常深厚,是所有的学习者中的重中之重,任何学习都是以理论为基础。当学习者,学完这套理论后,就是需要自己不断的练习,练习,再练习。再将练习的境界分成八个层次,而大多练习者一辈子都达不到最高的层次。
对于软件测试应该也是一样的。必须有这样一个重中之重的理论体系,作为入门的精髓。这项入门的理论应该放在高校的高年级进行,对测试进行深度和广度的所有理论的学习。之后就应该是以这个理论为线索的不断练习的过程,每一个知识点都应当辅以大量的练习,反复的练习,直到完全掌握理论为止。
当然这个练习部分,可以延伸到用课后,网络学习的方式来完成,或者是进行企业培训的方式,以完善个人对整个理论体系的理解和实践。
YOGA者必须保持持续不断的练习,同样测试学习者也需要保持不断的练习与实践。
2、分支体系的传授
YOGA与软测一样,都有许多适应时代发展而衍生的学派。
当YOGA基本理论体系学习之后,就会开始进入各个学派的学习。每个学派都会有创始人,创始人会开始传授给自己的弟子,弟子再继续带弟子,以此保证真正的精髓得以延续与扩展。
而在软测或者其他学科也是这样,有许多学派,有各路的大神提出自己的旗帜性的观点。这样的学派大多是以写书或者讲座的或者会议的方式进行。虽然写书的方式的确能快速的传播理论。但是我们发现读书的方式有时候并不能完全理解和解读作者的意图,特别是提出新思潮新学派的那些人。天知道,一个会议,最多只能听个大概,领会精神的又会有多少人呢?许多人在会议中知识得到了一些最新资讯或领悟,这也算是学习么?
其实如果能模仿YOGA,采用名人工作坊的方式,以大牛或者名人口口相传,通过几天的集中学习,名人或大牛将自己的思路和想法,直接面授传达给自己的“弟子”,通过巡回各大城市开展工作坊的方式,也许这样很多的学派才能将思想传达得更彻底更准确。工作坊结束时考核通过后并颁发证书,拥有证书的人又可以继续以工作坊的方式来再次传达思想。例如敏捷测试、探索式测试、TDD(ATDD,DDD)、某种工具的开发与使用、某种框架的理论与实施、缺陷定位机制等等。
也许反而通过古老的口口相传的方式,反而能让知识传达得更彻底更完整也更快。
3、老少皆宜的学习方式
我一直认为,软件测试应该是需要一个“道场”的,在这个道场里,可以新老学员进行交流,有名师指点、有各种套路的练习、有晋级的制度。在这样一个道场里,互相尊重,互相学习,每一个人都有合适的级位,每一个人都有相应的练习场所。
就像YOGA,明明是一个历经几千年的古老宗教,无数的练习者崇拜者,却以大众的方式为所有人服务,接纳所有人,没有高高在上,也没有因为体系的庞大而让人畏惧裹足不前。
有时候简单的传承反而有着强大的力量。或许在社会的发展中,我们因为人为的因素,让学科的学习变得越来越复杂,越来越困难。
在YOGA的学习过程中时愉悦的,每次向高难度挑战,都有老师的不断帮助和支持,永远都会有人与你同行,这种感觉是愉悦的学习。
那么在软件测试领域呢?总是感觉,如果自己不努力,就会远远被抛弃的压力感,每次努力之后看到的却是更高的山峰!也许学习本身是简单的愉悦的,只需要改变一下我们的教育和学习模式。