为什么说是TTCN3新执行器?
因为来公司时,项目组已经有一个基于内存对象模型的TTCN3执行器,就是大名鼎鼎的GTR。
为什么要做个新的?
因为业界都是基于语言转换模型的,为了向业界看齐,也为了后续执行器的长期演进,所以投入了几个人来预研,当然我作为一个刚来报道的新员工很幸运的加入了其中。
反思这近三年的开发,总的来说项目不算成功,甚至可以说是半失败的,当然这里面有太多的原因,例如:
1、技术没有得到很好的积累传承。
第一代执行器的开发骨干基本没有参与进来,按照albert的说法,刚开始做的时候连执行器是如何跑的都是不知道的。
用无知者无畏来形容非常贴切,但这显然不是一个好的开发模式。
2、对存在风险评估不足,甚至很多时候过于乐观。
如果从一开始就要求10W行的脚本,一体化转换编译控制在2分钟内,那估计项目早就cut掉了。
就是因为很长一段时间对我司TTCN3代码量规模评估不足,基本是见一个技术难点攻克一个,所以项目一直不死,但也发展不起来。
3、过多的代码重构
这个和第一点很有关系,项目从一开始就未能在正确的路上走下去,遇到太多完成98%功能而2%无法逾越的问题,结果推倒重来。
后面无数经验表明,现在的模型是越做越简单,代码量是越重构越少,可惜之前很多东西欠缺考虑。
4、应用模式问题
基于内存对象模型和基于语言转换模式是两个时代的东西,
前者适合基于脚本层的修改编译,后者更倾向于代码固化然后调用。
核心思想就是,需要从基于testcase的测试模型,转向到基于actionword的测试模型,
可以说,新执行器是天生适合actionword的,特别适合测试用例占据测试套75%甚至更多代码量的情况。
开发很多思想其实都适合于测试领域,譬如代码分层,接口调用。。。
5、人员培训
稳定的核心团队非常重要,但具备阶梯式的开发团队同样重要。
做架构的要有,做主力开发的要有,哪怕做基层持续集成的人同样那么重要。