我写过的软件之UniversalTestForSoftcell

本篇记录一下UniversalTestForSoftcell的来龙去脉。。。^_^。


自从公司re-org之后,开发和测试就严格区分开,分别汇报给不同的manager,经常会出现掐架的现象。某种程度上,开发和测试之间比较紧张的关系会利于产品的质量,当然,也不能天天吵架。所以Director希望看到开发测试互相掐架的现象,但是又得控制掐架的程度--平衡的艺术。

 

以前开发花了大量的时间来建立CT的自动化测试框架,但是re-org之后这个测试框架就自然而然地归给CT用了,而函数级别的UT其实没有太大的作用。Code Review有点作用,但是成效不太明显,毕竟不能指望通过Code Review来消除全部的bug。开发人员失去了比较有效的QA手段了,Test Manager则时不时challenge说DEV做出来的产品质量有多差。权衡了一下,就决定把“提高UT到CT层次”作为最总要的team objective。我原来以为,team里面的骨干有不少,做一个新的UT框架应该不是问题,应该有人能够跳出来做一个框架。不过有点失望,任务布置下去几个月之后基本上没有实质性的进步。分析了一下,估计是几方面的原因导致的:

1、  技术积累不足

2、  时间不足

3、  主动性不足

 

想了想,决定自己又跳出来做一套新的测试框架。已经做过几个测试框架和测试工具,做一个新的框架对我来说基本上没有什么技术难度,只是工作量的问题。上班的时间太零碎,经常开各种会,参与各种讨论,基本上没有整块整块的时间来做开发。公司才能有开发环境,很多时候还得晚上周末都得在公司继续开发。痛苦了差不多2个月,终于做好了一个给softcell3的,取名为UniversalTestForSoftcell,接下来又痛苦了1个多月,弄好了另外一个,取名为UniversalTestForCCA。

 

新的框架尝试做几个方面的改进:

1、  消除多个函数参数的问题。CA的有些功能比较复杂,要做某一件事情得需要几十个参数。以前开发的UniversalHST中的自动化测试框架被N个人进行了开发,不断地扩展,原来会有意识地进行重构,但是换个manager之后,测试人员基本上只有扩展功能的意识,但是并没有做重构的意识。后来有些函数的参数都飙到30多个参数来,代码可维护性越来越差。通过把相关的控制参数归并到结构体中可以消除这个问题。

2、  剥离一些hardcode的参数。让TestCase可以以不同的配置运行,把一些运行参数从原来的代码中剥离出来,存到配置文件中,运行时加载进来。

3、  绑定Test Case描述和运行步骤。以前的测试框架中的test case描述和具体步骤是分开的,这就导致了更新test case步骤的时候往往得单独更新test case描述。更要命的是test case描述往往是有序号的,在某一个地方插入一个步骤的话会导致后面的步骤的序号也受影响了。为了解决这个问题,引入了2个宏:ADD_GROUP和ADD_STEP绑定test case的描述和具体要执行的测试步骤(函数调用)。测试步骤的序列号也能自动生成。

 

UniversalTestForSoftcell是针对Softcell3的测试框架,包含一个MiniKMS模块,利用CreateLib生成的Network,包含了ECM、EMM、CAT、PMT等信息,作为给softcell3的输入,同时把softcell3的VD和CA Task API进行封装,形成闭环进行验证。

 

做完之后给大家做了一个培训,讲解设计的原则、test case的基本实现、如何添加test case等,然后退居二线,让兄弟们去大量扩展test case了。




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本课程详细讲解了以下内容:    1.jsp环境搭建及入门、虚拟路径和虚拟主机、JSP执行流程    2.使用Eclipse快速开发JSP、编码问题、JSP页面元素以及request对象、使用request对象实现注册示例    3.请求方式的编码问题、response、请求转发和重定向、cookie、session执行机制、session共享问题     4.session与cookie问题及application、cookie补充说明及四种范围对象作用域     5.JDBC原理及使用Statement访问数据库、使用JDBC切换数据库以及PreparedStatement的使用、Statement与PreparedStatement的区别     6.JDBC调用存储过程和存储函数、JDBC处理大文本CLOB及二进制BLOB类型数据     7.JSP访问数据库、JavaBean(封装数据和封装业务逻辑)     8.MVC模式与Servlet执行流程、Servlet25与Servlet30的使用、ServletAPI详解与源码分析     9.MVC案例、三层架构详解、乱码问题以及三层代码流程解析、完善Service和Dao、完善View、优化用户体验、优化三层(加入接口和DBUtil)    1 0.Web调试及bug修复、分页SQL(Oracle、MySQL、SQLSERVER)     11.分页业务逻辑层和数据访问层Service、Dao、分页表示层Jsp、Servlet     12.文件上传及注意问题、控制文件上传类型和大小、下载、各浏览器下载乱码问题     13.EL表达式语法、点操作符和中括号操作符、EL运算、隐式对象、JSTL基础及set、out、remove     14.过滤器、过滤器通配符、过滤器链、监听器     15.session绑定解绑、钝化活化     16.以及Ajax的各种应用     17. Idea环境下的Java Web开发

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值