打造基于企业项目的单元测试实用课程(1):引子

    前段时间,和测试经理杨先生一块聊天,说到单元测试人才的招聘,杨先生提到最近某著名培训机构就业班毕业的一些学员来面试,情况基本一样:理论只了解一些概念,实践只是测试过三角形函数,离胜任实际工作还差很远。类似的抱怨我听过不少。我查看过一些培训机构的教学提纲,也了解过一些大学的相关课程,感觉无论大学、就业培训、公开课、企业内训,似乎都有一个特点:离应用距离太远。具体来说,这些课程并没有基于企业项目基本特性来安排,无法在实际项目中应用的内容很多,实际应用中必须掌握的技术却严重缺失。

    企业项目有两个基本特性:项目复杂、时间紧张。

    项目复杂,意味着只会测试独立代码是不行的。实际项目中,代码交错纠缠,首先要隔离出测试目标,测试才可能进行。其次,独立代码的用例设计是很容易的,实际项目的用例设计,将面对失真、不可控、复杂的间接输入、局部静态变量、内部输出等等难题。

    时间紧张,意味着效率太低的技术是没有实用意义的。举个例子,基路径法设计用例,拿个十行八行、三五个分支的的代码试试还行,五十行、十几二十个分支的代码就难了,半天都做不出来,企业不会给那么多时间的(基路径法更大的缺陷在于“跟着代码走”,有方向性错误,这里按下不表)。不要告诉我,函数代码不要超过十行,这种纯理想化的想法是没意义的,我接触过的企业中,没有一个能执行函数代码不能超过五十行这一规范,这就是现实,技术必须基于现实。

    目前的课程还有一个问题,就是把太多本不属于单元测试的东西牵扯进来。我与另一位测试经理聊到这一点时,他开玩笑说,可能是老师和工具厂商的宣传者,因为无法帮助企业实现真正的单元测试,所以把别的扯进来转移视线。这其实也是我想说的。不管是什么原因,这个问题都导致单元测试理论的混乱,更增加了应用的难度,这也是必须解决的。

    基于以上,我想尝试编写一个基于企业项目的单元测试课程。思路大致如下:
    列出有代表性的现有单元测试课程提纲;
    指出其中不适用于企业项目或可有可无的部分,每一条都详细说明理由;
    列出企业应用中必不可少的技术,每一条都详细说明原因;
    编写完整的新提纲;
    编写完整的教程。

    这是一个有意义的工作,也是肯定会被拍砖的工作。欢迎广大老师、专家们参与,也欢迎拍砖。

你可能感兴趣的:(打造基于企业项目的单元测试实用课程(1):引子)